[Stack-up][Fixed] Problems when using more than one dielectric
Fixes #328
This commit is contained in:
parent
e42ab5e6be
commit
5e3404949d
|
|
@ -40,6 +40,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||
### Changed
|
||||
- Diff:
|
||||
- Now the default is to compare all the schematic pages. (#319)
|
||||
- Report:
|
||||
- loss tangent decimals, added one more.
|
||||
|
||||
### Fixed
|
||||
- QR lib update: Problems when moving the footprint to the bottom for
|
||||
|
|
@ -51,6 +53,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||
- Report: Problems when using NPTH holes with sizes that doesn't correspond to
|
||||
real drill tools. It generated bogus reports about wrong OARs. (#326)
|
||||
- BoM: Digi-key link in the HTML output.
|
||||
- Problems when using more than one dielectric in the stack-up. (#328)
|
||||
|
||||
## [1.4.0] - 2022-10-12
|
||||
### Added
|
||||
|
|
|
|||
|
|
@ -332,9 +332,10 @@ class Globals(FiltersOptions):
|
|||
self.impedance_controlled = value == 'yes'
|
||||
logger.debug("- Impedance controlled: "+value)
|
||||
elif name == 'layer':
|
||||
ly = PCBLayer.parse(e)
|
||||
stackup.append(ly)
|
||||
self.get_data_from_layer(ly, materials, thicknesses)
|
||||
lys = PCBLayer.parse(e)
|
||||
for ly in lys:
|
||||
stackup.append(ly)
|
||||
self.get_data_from_layer(ly, materials, thicknesses)
|
||||
if stackup:
|
||||
GS.stackup = stackup
|
||||
if len(materials):
|
||||
|
|
|
|||
|
|
@ -1509,9 +1509,11 @@ class PCBLayer(object):
|
|||
def parse(items):
|
||||
name = 'PCB stackup layer'
|
||||
layer = PCBLayer()
|
||||
layers = [layer]
|
||||
n_layers = 1
|
||||
layer.name = _check_str(items, 1, name)
|
||||
for i in items[2:]:
|
||||
i_type = _check_is_symbol_list(i)
|
||||
i_type = _check_is_symbol_list(i, allow_orphan_symbol=('addsublayer'))
|
||||
tname = name+' '+i_type
|
||||
if i_type == 'type':
|
||||
layer.type = _check_str(i, 1, tname)
|
||||
|
|
@ -1525,9 +1527,19 @@ class PCBLayer(object):
|
|||
layer.epsilon_r = _check_float(i, 1, tname)
|
||||
elif i_type == 'loss_tangent':
|
||||
layer.loss_tangent = _check_float(i, 1, tname)
|
||||
elif i_type == 'addsublayer':
|
||||
new_layer = PCBLayer()
|
||||
new_layer.name = layer.name
|
||||
new_layer.type = layer.type
|
||||
layers.append(new_layer)
|
||||
layer = new_layer
|
||||
n_layers += 1
|
||||
else:
|
||||
logger.warning('Unknown layer attribute `{}`'.format(i))
|
||||
return layer
|
||||
if n_layers > 1:
|
||||
for n, layer in enumerate(layers):
|
||||
layer.name += ' ({}/{})'.format(n+1, n_layers)
|
||||
return layers
|
||||
|
||||
|
||||
def _symbol(name, content=None):
|
||||
|
|
|
|||
|
|
@ -41,7 +41,7 @@ Impedance controlled: YES
|
|||
#?stackup
|
||||
|----------------------|----------------------|----------|-----------|-----------------|-----------|--------------|
|
||||
#?stackup
|
||||
#stackup:| ${%-20s,name} | ${%-20s,type} | ${%-8s,color} | ${%9d,thickness} | ${%-15s,material} | ${%9.1f,epsilon_r} | ${%12.2f,loss_tangent} |
|
||||
#stackup:| ${%-20s,name} | ${%-20s,type} | ${%-8s,color} | ${%9d,thickness} | ${%-15s,material} | ${%9.1f,epsilon_r} | ${%12.3f,loss_tangent} |
|
||||
#?stackup
|
||||
|
||||
# Important sizes
|
||||
|
|
|
|||
|
|
@ -41,7 +41,7 @@ Impedance controlled: YES
|
|||
#?stackup
|
||||
|----------------------|----------------------|----------|-----------|-----------------|-----------|--------------|
|
||||
#?stackup
|
||||
#stackup:| ${%-20s,name} | ${%-20s,type} | ${%-8s,color} | ${%9d,thickness} | ${%-15s,material} | ${%9.1f,epsilon_r} | ${%12.2f,loss_tangent} |
|
||||
#stackup:| ${%-20s,name} | ${%-20s,type} | ${%-8s,color} | ${%9d,thickness} | ${%-15s,material} | ${%9.1f,epsilon_r} | ${%12.3f,loss_tangent} |
|
||||
#?stackup
|
||||
|
||||
# Important sizes
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@ Impedance controlled: YES
|
|||
#?stackup
|
||||
|----------------------|----------------------|----------|-----------|-----------------|-----------|--------------|
|
||||
#?stackup
|
||||
#stackup:| ${%-20s,name} | ${%-20s,type} | ${%-8s,color} | ${%9d,thickness} | ${%-15s,material} | ${%9.1f,epsilon_r} | ${%12.2f,loss_tangent} |
|
||||
#stackup:| ${%-20s,name} | ${%-20s,type} | ${%-8s,color} | ${%9d,thickness} | ${%-15s,material} | ${%9.1f,epsilon_r} | ${%12.3f,loss_tangent} |
|
||||
#?stackup
|
||||
|
||||
Materials:
|
||||
|
|
|
|||
|
|
@ -46,7 +46,8 @@
|
|||
(layer "In1.Cu" (type "copper") (thickness 0.035))
|
||||
(layer "dielectric 2" (type "core") (thickness 0.48) (material "FR4") (epsilon_r 4.5) (loss_tangent 0.02))
|
||||
(layer "In2.Cu" (type "copper") (thickness 0.035))
|
||||
(layer "dielectric 3" (type "prepreg") (thickness 0.48) (material "FR4") (epsilon_r 4.5) (loss_tangent 0.02))
|
||||
(layer "dielectric 3" (type "prepreg") (thickness 0.24) (material "Kapton") (epsilon_r 3.2) (loss_tangent 0.004)
|
||||
addsublayer (thickness 0.24) (material "Kapton") (epsilon_r 3.2) (loss_tangent 0.004))
|
||||
(layer "B.Cu" (type "copper") (thickness 0.035))
|
||||
(layer "B.Mask" (type "Bottom Solder Mask") (color "Red") (thickness 0.01) (material "Dry Film") (epsilon_r 3.3) (loss_tangent 0))
|
||||
(layer "B.Paste" (type "Bottom Solder Paste"))
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ Board size: 59.69x48.26 mm (2.35x1.9 inches)
|
|||
|
||||
- This is the size of the rectangle that contains the board
|
||||
- Thickness: 1.6 mm (63 mils)
|
||||
- Material: FR4
|
||||
- Material: FR4 / Kapton
|
||||
- Finish: ENIG
|
||||
- Layers: 4
|
||||
- Copper thickness: 35 µm
|
||||
|
|
@ -31,15 +31,16 @@ Impedance controlled: YES
|
|||
|----------------------|----------------------|----------|-----------|-----------------|-----------|--------------|
|
||||
| F.SilkS | Top Silk Screen | White | | Liquid Photo | | |
|
||||
| F.Paste | Top Solder Paste | | | | | |
|
||||
| F.Mask | Top Solder Mask | Blue | 10 | Liquid Ink | 3.3 | 0.00 |
|
||||
| F.Mask | Top Solder Mask | Blue | 10 | Liquid Ink | 3.3 | 0.000 |
|
||||
| F.Cu | copper | | 35 | | | |
|
||||
| dielectric 1 | prepreg | | 480 | FR4 | 4.5 | 0.02 |
|
||||
| dielectric 1 | prepreg | | 480 | FR4 | 4.5 | 0.020 |
|
||||
| In1.Cu | copper | | 35 | | | |
|
||||
| dielectric 2 | core | | 480 | FR4 | 4.5 | 0.02 |
|
||||
| dielectric 2 | core | | 480 | FR4 | 4.5 | 0.020 |
|
||||
| In2.Cu | copper | | 35 | | | |
|
||||
| dielectric 3 | prepreg | | 480 | FR4 | 4.5 | 0.02 |
|
||||
| dielectric 3 (1/2) | prepreg | | 240 | Kapton | 3.2 | 0.004 |
|
||||
| dielectric 3 (2/2) | prepreg | | 240 | Kapton | 3.2 | 0.004 |
|
||||
| B.Cu | copper | | 35 | | | |
|
||||
| B.Mask | Bottom Solder Mask | Red | 10 | Dry Film | 3.3 | 0.00 |
|
||||
| B.Mask | Bottom Solder Mask | Red | 10 | Dry Film | 3.3 | 0.000 |
|
||||
| B.Paste | Bottom Solder Paste | | | | | |
|
||||
| B.SilkS | Bottom Silk Screen | Black | | Direct Printing | | |
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ Board size: 59.69x48.26 mm (2.35x1.9 inches)
|
|||
|
||||
- This is the size of the rectangle that contains the board
|
||||
- Thickness: 1.6 mm (63 mils)
|
||||
- Material: FR4
|
||||
- Material: FR4 / Kapton
|
||||
- Finish: ENIG
|
||||
- Layers: 4
|
||||
- Copper thickness: 35 µm
|
||||
|
|
@ -31,15 +31,16 @@ Impedance controlled: YES
|
|||
|----------------------|----------------------|----------|-----------|-----------------|-----------|--------------|
|
||||
| F.SilkS | Top Silk Screen | White | | Liquid Photo | | |
|
||||
| F.Paste | Top Solder Paste | | | | | |
|
||||
| F.Mask | Top Solder Mask | Blue | 10 | Liquid Ink | 3.3 | 0.00 |
|
||||
| F.Mask | Top Solder Mask | Blue | 10 | Liquid Ink | 3.3 | 0.000 |
|
||||
| F.Cu | copper | | 35 | | | |
|
||||
| dielectric 1 | prepreg | | 480 | FR4 | 4.5 | 0.02 |
|
||||
| dielectric 1 | prepreg | | 480 | FR4 | 4.5 | 0.020 |
|
||||
| In1.Cu | copper | | 35 | | | |
|
||||
| dielectric 2 | core | | 480 | FR4 | 4.5 | 0.02 |
|
||||
| dielectric 2 | core | | 480 | FR4 | 4.5 | 0.020 |
|
||||
| In2.Cu | copper | | 35 | | | |
|
||||
| dielectric 3 | prepreg | | 480 | FR4 | 4.5 | 0.02 |
|
||||
| dielectric 3 (1/2) | prepreg | | 240 | Kapton | 3.2 | 0.004 |
|
||||
| dielectric 3 (2/2) | prepreg | | 240 | Kapton | 3.2 | 0.004 |
|
||||
| B.Cu | copper | | 35 | | | |
|
||||
| B.Mask | Bottom Solder Mask | Red | 10 | Dry Film | 3.3 | 0.00 |
|
||||
| B.Mask | Bottom Solder Mask | Red | 10 | Dry Film | 3.3 | 0.000 |
|
||||
| B.Paste | Bottom Solder Paste | | | | | |
|
||||
| B.SilkS | Bottom Silk Screen | Black | | Direct Printing | | |
|
||||
|
||||
|
|
|
|||
|
|
@ -29,21 +29,22 @@ Impedance controlled: YES
|
|||
|----------------------|----------------------|----------|-----------|-----------------|-----------|--------------|
|
||||
| F.SilkS | Top Silk Screen | White | | Liquid Photo | | |
|
||||
| F.Paste | Top Solder Paste | | | | | |
|
||||
| F.Mask | Top Solder Mask | Blue | 10 | Liquid Ink | 3.3 | 0.00 |
|
||||
| F.Mask | Top Solder Mask | Blue | 10 | Liquid Ink | 3.3 | 0.000 |
|
||||
| F.Cu | copper | | 35 | | | |
|
||||
| dielectric 1 | prepreg | | 480 | FR4 | 4.5 | 0.02 |
|
||||
| dielectric 1 | prepreg | | 480 | FR4 | 4.5 | 0.020 |
|
||||
| In1.Cu | copper | | 35 | | | |
|
||||
| dielectric 2 | core | | 480 | FR4 | 4.5 | 0.02 |
|
||||
| dielectric 2 | core | | 480 | FR4 | 4.5 | 0.020 |
|
||||
| In2.Cu | copper | | 35 | | | |
|
||||
| dielectric 3 | prepreg | | 480 | FR4 | 4.5 | 0.02 |
|
||||
| dielectric 3 (1/2) | prepreg | | 240 | Kapton | 3.2 | 0.004 |
|
||||
| dielectric 3 (2/2) | prepreg | | 240 | Kapton | 3.2 | 0.004 |
|
||||
| B.Cu | copper | | 35 | | | |
|
||||
| B.Mask | Bottom Solder Mask | Red | 10 | Dry Film | 3.3 | 0.00 |
|
||||
| B.Mask | Bottom Solder Mask | Red | 10 | Dry Film | 3.3 | 0.000 |
|
||||
| B.Paste | Bottom Solder Paste | | | | | |
|
||||
| B.SilkS | Bottom Silk Screen | Black | | Direct Printing | | |
|
||||
|
||||
Materials:
|
||||
|
||||
- FR4, 1.6 mm
|
||||
- FR4 / Kapton, 1.6 mm
|
||||
- ENIG
|
||||
- 4 layers
|
||||
- 35 µm copper thickness
|
||||
|
|
|
|||
Loading…
Reference in New Issue