by adom
0805 MLCC · 1 µF ±10% X7R · 50 V
← Commit history
Update characterization page for CL21B105KBFNNNE — audit corrections
1 file changed
+253−14
CL21B105KBFNNNE.html+253−14@@ -122,7 +122,7 @@ </div> <div class="spec-card"> <div class="sc-label">Insulation R</div>- <div class="sc-value">5GΩ</div>+ <div class="sc-value">500MΩ</div> <div class="sc-detail">min @ 50V DC</div> </div> <div class="spec-card">@@ -142,8 +142,8 @@ <tr><td>Capacitance</td><td>1µF ±10% (K)</td></tr> <tr><td>Rated Voltage</td><td>50V DC</td></tr> <tr><td>Dielectric Type</td><td>X7R (Class II)</td></tr>- <tr><td>Dissipation Factor</td><td>≤5.0%</td></tr>- <tr><td>Insulation Resistance</td><td>5GΩ</td></tr>+ <tr><td>Dissipation Factor</td><td>≤10%</td></tr>+ <tr><td>Insulation Resistance</td><td>500MΩ</td></tr> <tr><td>Temp Coefficient</td><td>±15% (X7R)</td></tr> <tr><td>Test Voltage</td><td>1.0 ± 0.2 Vrms</td></tr> <tr><td>Test Frequency</td><td>1.0 kHz ± 10%</td></tr>@@ -159,7 +159,7 @@ <tr><td>Storage Temp</td><td>−55°C to +125°C</td></tr> <tr><td>Termination</td><td>Ni/Sn (lead-free)</td></tr> <tr><td>Solder Compatibility</td><td>Sn-3.0Ag-0.5Cu</td></tr>- <tr><td>Mass</td><td>~0.012g</td></tr>+ <tr><td>Mass</td><td>~0.018g</td></tr> </table> </div> </div>@@ -192,7 +192,7 @@ <line x1="456" y1="103" x2="464" y2="103" stroke="#484f58" stroke-width="0.5"/> <text x="470" y="69" fill="#e6edf3" font-size="10">1.25 max</text> <text x="120" y="164" fill="#8b949e" font-size="10" text-anchor="middle">0805 (2012 metric)</text>- <text x="380" y="118" fill="#8b949e" font-size="10" text-anchor="middle">Mass: ~0.012g</text>+ <text x="380" y="118" fill="#8b949e" font-size="10" text-anchor="middle">Mass: ~0.018g</text> </svg> </div> </div>@@ -215,7 +215,7 @@ <h2 class="section-title">Impedance Behavior</h2> <div class="chart-wrap"> <h3>Impedance vs. Frequency (characteristic for 1µF X7R)</h3>- <svg width="100%" height="260" viewBox="0 0 700 260">+ <svg id="impedance-chart" width="100%" height="260" viewBox="0 0 700 260"> <rect x="60" y="20" width="600" height="200" fill="#0d1117" rx="4"/> <line x1="60" y1="220" x2="660" y2="220" stroke="#21262d" stroke-width="1"/> <line x1="60" y1="170" x2="660" y2="170" stroke="#21262d" stroke-width="0.5" stroke-dasharray="4,4"/>@@ -230,7 +230,7 @@ <circle cx="464" cy="205" r="5" fill="#00b8b0" opacity="0.8"/> <path d="M464,205 L489,197 L519,189 L660,186" stroke="#f85149" stroke-width="2.5" fill="none" stroke-dasharray="6,3"/> <line x1="464" y1="205" x2="464" y2="230" stroke="#00b8b0" stroke-width="0.5" stroke-dasharray="3,3" opacity="0.5"/>- <text x="464" y="248" fill="#00b8b0" font-size="10" text-anchor="middle">SRF: ~8 MHz</text>+ <text x="464" y="248" fill="#00b8b0" font-size="10" text-anchor="middle">SRF: Not specified in Samsung catalog</text> <rect x="120" y="24" width="100" height="20" rx="4" fill="rgba(0,184,176,0.12)"/> <text x="170" y="38" fill="#00b8b0" font-size="10" text-anchor="middle">Capacitive</text> <rect x="530" y="24" width="100" height="20" rx="4" fill="rgba(248,81,73,0.12)"/>@@ -239,7 +239,7 @@ <text x="262" y="240" fill="#3fb950" font-size="9" text-anchor="middle">Usable range (≤ SRF)</text> <text x="12" y="124" fill="#484f58" font-size="9" text-anchor="middle" transform="rotate(-90,12,124)">|Z| impedance</text> </svg>- <div class="chart-note">SRF ~8 MHz. Use at ≤ ⅓ SRF (~3 MHz) for predictable capacitive behavior. X7R dielectric shows moderate ESR.</div>+ <div class="chart-note">SRF: Not specified in Samsung catalog. X7R dielectric shows moderate ESR.</div> </div> </div> @@ -247,7 +247,7 @@ <h2 class="section-title">Reflow Soldering Profile</h2> <div class="chart-wrap"> <h3>Standard Reflow Profile (Samsung CL21 Series)</h3>- <svg width="100%" height="220" viewBox="0 0 700 220">+ <svg id="reflow-chart" width="100%" height="220" viewBox="0 0 700 220"> <rect x="60" y="10" width="600" height="170" fill="#0d1117" rx="4"/> <line x1="60" y1="180" x2="660" y2="180" stroke="#21262d" stroke-width="1"/> <line x1="60" y1="10" x2="60" y2="180" stroke="#21262d" stroke-width="1"/>@@ -282,12 +282,12 @@ <h2 class="section-title">Environmental & Reliability</h2> <div class="env-grid"> <div class="env-card"><div class="env-name">Adhesive Strength</div><div class="env-spec">No damage</div><div class="env-detail">10N (0805), 10s hold</div></div>- <div class="env-card"><div class="env-name">Vibration</div><div class="env-spec">No damage</div><div class="env-detail">10–55Hz, 1.5mm amp, 6h total</div></div>- <div class="env-card"><div class="env-name">Solderability</div><div class="env-spec">≥95% metallized</div><div class="env-detail">235 ± 5°C, 2 ± 0.5s dip</div></div>- <div class="env-card"><div class="env-name">Bending Test</div><div class="env-spec">ΔC within ±12.5%</div><div class="env-detail">2mm deflection (0805)</div></div>- <div class="env-card"><div class="env-name">Soldering Heat</div><div class="env-spec">ΔC within ±7.5%</div><div class="env-detail">260 ± 5°C, 10 ± 1s</div></div>+ <div class="env-card"><div class="env-name">Vibration</div><div class="env-spec">ΔC within ±5%</div><div class="env-detail">10–55Hz, 1.5mm amp, 6h total</div></div>+ <div class="env-card"><div class="env-name">Solderability</div><div class="env-spec">≥95% metallized</div><div class="env-detail">245 ± 5°C, 3 ± 0.3s dip</div></div>+ <div class="env-card"><div class="env-name">Bending Test</div><div class="env-spec">ΔC within ±10%</div><div class="env-detail">1mm deflection (0805)</div></div>+ <div class="env-card"><div class="env-name">Soldering Heat</div><div class="env-spec">ΔC within ±7.5%</div><div class="env-detail">270 ± 5°C, 10 ± 1s</div></div> <div class="env-card"><div class="env-name">Temperature Cycle</div><div class="env-spec">ΔC within ±7.5%</div><div class="env-detail">5 cycles, −55°C ↔ +125°C</div></div>- <div class="env-card"><div class="env-name">Insulation Resistance</div><div class="env-spec">5GΩ min</div><div class="env-detail">50V DC, 25°C</div></div>+ <div class="env-card"><div class="env-name">Insulation Resistance</div><div class="env-spec">500MΩ min</div><div class="env-detail">50V DC, 25°C</div></div> <div class="env-card"><div class="env-name">Dielectric Strength</div><div class="env-spec">No damage</div><div class="env-detail">250% rated (125V), 1–5s</div></div> </div> </div>@@ -323,5 +323,244 @@ <div class="source">Samsung Electro-Mechanics CL21 Series Datasheet · Adom Component Characterization</div> </div>+<script>+(function() {+ function setupChartTooltip(svgId, dataPoints, color, formatX, formatY) {+ const svg = document.getElementById(svgId);+ if (!svg) return;+ const ns = 'http://www.w3.org/2000/svg';++ const dot = document.createElementNS(ns, 'circle');+ dot.setAttribute('r', '5');+ dot.setAttribute('fill', color);+ dot.setAttribute('stroke', '#0d1117');+ dot.setAttribute('stroke-width', '2');+ dot.style.display = 'none';+ dot.style.pointerEvents = 'none';+ svg.appendChild(dot);++ const tipGroup = document.createElementNS(ns, 'g');+ tipGroup.style.display = 'none';+ tipGroup.style.pointerEvents = 'none';+ const tipBg = document.createElementNS(ns, 'rect');+ tipBg.setAttribute('rx', '4');+ tipBg.setAttribute('fill', '#161b22');+ tipBg.setAttribute('stroke', '#30363d');+ tipBg.setAttribute('stroke-width', '1');+ const tipLine1 = document.createElementNS(ns, 'text');+ tipLine1.setAttribute('font-family', 'JetBrains Mono, monospace');+ tipLine1.setAttribute('font-size', '10');+ tipLine1.setAttribute('fill', '#e6edf3');+ const tipLine2 = document.createElementNS(ns, 'text');+ tipLine2.setAttribute('font-family', 'JetBrains Mono, monospace');+ tipLine2.setAttribute('font-size', '10');+ tipLine2.setAttribute('fill', color);+ tipGroup.appendChild(tipBg);+ tipGroup.appendChild(tipLine1);+ tipGroup.appendChild(tipLine2);+ svg.appendChild(tipGroup);++ const vLine = document.createElementNS(ns, 'line');+ vLine.setAttribute('stroke', color);+ vLine.setAttribute('stroke-width', '0.5');+ vLine.setAttribute('stroke-dasharray', '3,3');+ vLine.setAttribute('opacity', '0.5');+ vLine.style.display = 'none';+ vLine.style.pointerEvents = 'none';+ svg.appendChild(vLine);++ function lerp(pts, svgX) {+ if (svgX <= pts[0].sx) return pts[0];+ if (svgX >= pts[pts.length-1].sx) return pts[pts.length-1];+ for (let i = 0; i < pts.length - 1; i++) {+ if (svgX >= pts[i].sx && svgX <= pts[i+1].sx) {+ const t = (svgX - pts[i].sx) / (pts[i+1].sx - pts[i].sx);+ return {+ sx: svgX,+ sy: pts[i].sy + t * (pts[i+1].sy - pts[i].sy),+ vx: pts[i].vx + t * (pts[i+1].vx - pts[i].vx),+ vy: pts[i].vy + t * (pts[i+1].vy - pts[i].vy),+ };+ }+ }+ return pts[0];+ }++ svg.addEventListener('mousemove', function(e) {+ const pt = svg.createSVGPoint();+ pt.x = e.clientX; pt.y = e.clientY;+ const svgPt = pt.matrixTransform(svg.getScreenCTM().inverse());+ const minX = dataPoints[0].sx, maxX = dataPoints[dataPoints.length-1].sx;+ if (svgPt.x < minX - 10 || svgPt.x > maxX + 10) {+ dot.style.display = 'none'; tipGroup.style.display = 'none'; vLine.style.display = 'none';+ return;+ }+ const p = lerp(dataPoints, svgPt.x);+ dot.setAttribute('cx', p.sx); dot.setAttribute('cy', p.sy); dot.style.display = '';+ vLine.setAttribute('x1', p.sx); vLine.setAttribute('y1', p.sy);+ vLine.setAttribute('x2', p.sx); vLine.setAttribute('y2', 220); vLine.style.display = '';++ const xLabel = formatX(p.vx);+ const yLabel = formatY(p.vy);+ tipLine1.textContent = xLabel;+ tipLine2.textContent = yLabel;++ const tipX = p.sx + 12, tipY = p.sy - 28;+ const boxW = Math.max(xLabel.length, yLabel.length) * 7 + 16;+ const boxH = 32;+ const adjustedX = tipX + boxW > 660 ? p.sx - boxW - 12 : tipX;+ const adjustedY = tipY < 10 ? p.sy + 12 : tipY;++ tipBg.setAttribute('x', adjustedX); tipBg.setAttribute('y', adjustedY);+ tipBg.setAttribute('width', boxW); tipBg.setAttribute('height', boxH);+ tipLine1.setAttribute('x', adjustedX + 8); tipLine1.setAttribute('y', adjustedY + 13);+ tipLine2.setAttribute('x', adjustedX + 8); tipLine2.setAttribute('y', adjustedY + 26);+ tipGroup.style.display = '';+ });++ svg.addEventListener('mouseleave', function() {+ dot.style.display = 'none'; tipGroup.style.display = 'none'; vLine.style.display = 'none';+ });++ svg.style.cursor = 'crosshair';+ }++ function fmtFreq(f) {+ if (f >= 1e9) return (f/1e9).toFixed(1) + ' GHz';+ if (f >= 1e6) return (f/1e6).toFixed(1) + ' MHz';+ return (f/1e3).toFixed(0) + ' kHz';+ }+ function fmtZ(z) {+ if (z >= 1000) return (z/1000).toFixed(2) + ' k\u03A9';+ if (z >= 1) return z.toFixed(1) + ' \u03A9';+ return (z*1000).toFixed(0) + ' m\u03A9';+ }+ function fmtTime(t) { return t.toFixed(0) + 's'; }+ function fmtTemp(t) { return t.toFixed(0) + '\u00B0C'; }++ // Impedance chart+ var impedanceData = [+ {sx:60, sy:76, vx:10000, vy:15.9155},+ {sx:118, sy:98, vx:25985, vy:6.1248},+ {sx:176, sy:119, vx:67523, vy:2.357},+ {sx:234, sy:140, vx:175461, vy:0.9071},+ {sx:291, sy:162, vx:455941, vy:0.3491},+ {sx:349, sy:183, vx:1184775, vy:0.1343},+ {sx:407, sy:204, vx:3078668, vy:0.0517},+ {sx:465, sy:205, vx:8000000, vy:0.0199},+ {sx:465, sy:205, vx:8000000, vy:0.05},+ {sx:490, sy:192, vx:12000000, vy:0.09},+ {sx:520, sy:180, vx:20000000, vy:0.15},+ {sx:562, sy:165, vx:40000000, vy:0.3},+ {sx:660, sy:129, vx:200000000, vy:1.5},+ ];+ setupChartTooltip('impedance-chart', impedanceData, '#00b8b0', fmtFreq, function(z) { return '|Z| = ' + fmtZ(z); });++ // Reflow chart (multi-curve with click to switch)+ var reflowStd = [+ {sx:80,sy:175,vx:0,vy:25},{sx:200,sy:130,vx:60,vy:150},{sx:300,sy:130,vx:150,vy:150},+ {sx:380,sy:80,vx:195,vy:220},{sx:420,sy:30,vx:210,vy:245},{sx:460,sy:30,vx:225,vy:245},+ {sx:500,sy:80,vx:240,vy:220},{sx:580,sy:130,vx:280,vy:150},{sx:660,sy:175,vx:360,vy:25}+ ];+ var reflowLimit = [+ {sx:80,sy:175,vx:0,vy:25},{sx:200,sy:130,vx:60,vy:150},{sx:300,sy:130,vx:150,vy:150},+ {sx:370,sy:65,vx:190,vy:230},{sx:410,sy:15,vx:205,vy:260},{sx:470,sy:15,vx:230,vy:260},+ {sx:510,sy:65,vx:250,vy:230},{sx:580,sy:130,vx:280,vy:150},{sx:660,sy:175,vx:360,vy:25}+ ];+ var reflowCurves = [+ { data: reflowStd, color: '#d29922', label: 'Standard' },+ { data: reflowLimit, color: '#f85149', label: 'Limit' }+ ];++ (function setupReflowMultiCurve() {+ var svg = document.getElementById('reflow-chart');+ if (!svg) return;+ var ns = 'http://www.w3.org/2000/svg';+ var activeIdx = 0;++ var dot = document.createElementNS(ns, 'circle');+ dot.setAttribute('r', '5'); dot.setAttribute('stroke', '#0d1117'); dot.setAttribute('stroke-width', '2');+ dot.style.display = 'none'; dot.style.pointerEvents = 'none'; svg.appendChild(dot);++ var vLine = document.createElementNS(ns, 'line');+ vLine.setAttribute('stroke-width', '0.5'); vLine.setAttribute('stroke-dasharray', '3,3');+ vLine.setAttribute('opacity', '0.5'); vLine.style.display = 'none'; vLine.style.pointerEvents = 'none';+ svg.appendChild(vLine);++ var tipGroup = document.createElementNS(ns, 'g');+ tipGroup.style.display = 'none'; tipGroup.style.pointerEvents = 'none';+ var tipBg = document.createElementNS(ns, 'rect');+ tipBg.setAttribute('rx', '4'); tipBg.setAttribute('fill', '#161b22');+ tipBg.setAttribute('stroke', '#30363d'); tipBg.setAttribute('stroke-width', '1');+ var tipLine1 = document.createElementNS(ns, 'text');+ tipLine1.setAttribute('font-family', 'JetBrains Mono, monospace'); tipLine1.setAttribute('font-size', '10'); tipLine1.setAttribute('fill', '#e6edf3');+ var tipLine2 = document.createElementNS(ns, 'text');+ tipLine2.setAttribute('font-family', 'JetBrains Mono, monospace'); tipLine2.setAttribute('font-size', '10');+ var tipLine3 = document.createElementNS(ns, 'text');+ tipLine3.setAttribute('font-family', 'JetBrains Mono, monospace'); tipLine3.setAttribute('font-size', '9'); tipLine3.setAttribute('fill', '#484f58');+ tipGroup.appendChild(tipBg); tipGroup.appendChild(tipLine1); tipGroup.appendChild(tipLine2); tipGroup.appendChild(tipLine3);+ svg.appendChild(tipGroup);++ function setActive(idx) {+ activeIdx = idx;+ var c = reflowCurves[idx];+ dot.setAttribute('fill', c.color); vLine.setAttribute('stroke', c.color); tipLine2.setAttribute('fill', c.color);+ }+ setActive(0);++ function lerp(pts, svgX) {+ if (svgX <= pts[0].sx) return pts[0];+ if (svgX >= pts[pts.length-1].sx) return pts[pts.length-1];+ for (var i = 0; i < pts.length - 1; i++) {+ if (svgX >= pts[i].sx && svgX <= pts[i+1].sx) {+ var t = (svgX - pts[i].sx) / (pts[i+1].sx - pts[i].sx);+ return { sx: svgX, sy: pts[i].sy + t * (pts[i+1].sy - pts[i].sy), vx: pts[i].vx + t * (pts[i+1].vx - pts[i].vx), vy: pts[i].vy + t * (pts[i+1].vy - pts[i].vy) };+ }+ }+ return pts[0];+ }++ svg.addEventListener('click', function() { setActive((activeIdx + 1) % reflowCurves.length); });++ svg.addEventListener('mousemove', function(e) {+ var pt = svg.createSVGPoint(); pt.x = e.clientX; pt.y = e.clientY;+ var svgPt = pt.matrixTransform(svg.getScreenCTM().inverse());+ var c = reflowCurves[activeIdx];+ var minX = c.data[0].sx, maxX = c.data[c.data.length-1].sx;+ if (svgPt.x < minX - 10 || svgPt.x > maxX + 10) {+ dot.style.display = 'none'; tipGroup.style.display = 'none'; vLine.style.display = 'none'; return;+ }+ var p = lerp(c.data, svgPt.x);+ dot.setAttribute('cx', p.sx); dot.setAttribute('cy', p.sy); dot.style.display = '';+ vLine.setAttribute('x1', p.sx); vLine.setAttribute('y1', p.sy);+ vLine.setAttribute('x2', p.sx); vLine.setAttribute('y2', 180); vLine.style.display = '';++ var xLabel = fmtTime(p.vx);+ var yLabel = 'Temp = ' + fmtTemp(p.vy);+ var curveLabel = 'Click to switch \u2022 ' + c.label;+ tipLine1.textContent = xLabel; tipLine2.textContent = yLabel; tipLine3.textContent = curveLabel;++ var tipX = p.sx + 12, tipY = p.sy - 38;+ var boxW = Math.max(xLabel.length, yLabel.length, curveLabel.length) * 6.5 + 16;+ var boxH = 44;+ var adjustedX = tipX + boxW > 660 ? p.sx - boxW - 12 : tipX;+ var adjustedY = tipY < 10 ? p.sy + 12 : tipY;++ tipBg.setAttribute('x', adjustedX); tipBg.setAttribute('y', adjustedY);+ tipBg.setAttribute('width', boxW); tipBg.setAttribute('height', boxH);+ tipLine1.setAttribute('x', adjustedX + 8); tipLine1.setAttribute('y', adjustedY + 13);+ tipLine2.setAttribute('x', adjustedX + 8); tipLine2.setAttribute('y', adjustedY + 26);+ tipLine3.setAttribute('x', adjustedX + 8); tipLine3.setAttribute('y', adjustedY + 39);+ tipGroup.style.display = '';+ });++ svg.addEventListener('mouseleave', function() {+ dot.style.display = 'none'; tipGroup.style.display = 'none'; vLine.style.display = 'none';+ });++ svg.style.cursor = 'pointer';+ })();+})();+</script> </body> </html>