-
Notifications
You must be signed in to change notification settings - Fork 740
add new lib Memory_Flash_NAND #2601
base: master
Are you sure you want to change the base?
Conversation
Hi, nice pull request. I just created some more specific NAND symbols for an own project. Looking forward to see this merged. Have you considered also adding support for a 16-bit IO-bus to the symbols? Or would that conflict with the 8-bit version? |
fdbb759
to
a480a29
Compare
Ok, making separate symbols for 8/16 bit modules probably makes more sense. |
That looks like a nice addition. Thank you very much ❤️ I have not done a full review yet, but want to start the discussion on some points that are visible from the screenshot and the diff:
|
Hi @cpresser, thank you a lot for a the comments.
Please be aware I didn't update the screenshots after the little fixes after commit 3270326. |
@KiCad/librarians
I personally would like to rework the library, I have merged at least one new symbol recently and was already thinking of improving it. Option 1 would allow that. |
screenshots in initial post are now updated. |
In the official ONFI specs but also in the documentation for the chip mentioned above the ground uses for pads
but in the diagram(BGA63) above only two ground are shown K3 and C5 is this intentional? upon closer inspection these are marked as "passive" Is this acceptable ? |
https://kicad-pcb.org/libraries/klc/S4.3/ |
Yes. This is perfectly fine and in accordance to KLC. Regarding the library where this will go into: We will soon start merging stuff for KiCad v6.0 which will include breaking changes. That also means I have to put in some time to finally give this PR a full review. |
@cpresser I am currently on vacation and more than happy to invest one week (from 1.9 on) to help sorting these thing. Just let me know. |
Memory_Flash_NAND.lib
Outdated
DEF ONFI_NV-DDR2x8_BGA-132 U 0 20 Y Y 2 L N | ||
F0 "U" 0 0 50 H V C CNN | ||
F1 "ONFI_NV-DDR2x8_BGA-132" 0 -100 50 H V C CNN | ||
F2 "Package_BGA:BGA-132_12x18mm_Layout11x17_P0.5mm" 0 -200 50 H I C CNN |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The package name appears to be wrong. The pitch is 0.8 in the footprint is correct but the filename suggest is it P0.5mm
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This comment was intended for the BGA63 package
Also after discussion on IRC it might be better to make the pads smaller 0.4mm instead of 0.5mm to make it more easy to route. pads should be a bit smaller but you need clearance to match the largest the ball can get post-reflow |
4d1a4fa
to
9c0e957
Compare
I strongly disagree on arbitrarily shrinking pads. We do follow manufacturers conventions and IPC rules. The default footprint should be exact. (The BGA63 should be build according to |
@chschlue |
yes I agree and just had an deeper look into the onfi datasheet, page 13
to keep it simple I would suggest to make all pads 0.5mm instead of building two variants. |
See the IPC 7351B pad sizes at https://github.com/pointhi/kicad-footprint-generator/blob/master/scripts/Packages/Package_BGA/ipc_7351b_bga_land_patterns.yaml. 0.45mm nominal balls should get 0.4mm pads and 0.55mm balls should be 0.5mm pads. I agree with @cpresser that the default footprint should match the part according to the IPC rules we have selected for this library. Any deviation could be handled by a manufacturer-specific footprint, but I don't see recommended pad sizes for the BGA-63 in the ONFI spec. Am I missing it? All I see is on page 17 that the 0.45mm ball size is repeated. https://www.gigadevice.com/datasheet/gd9fx1gxf2a/ shows 0.45mm balls. And JEDEC MO-207 (https://www.jedec.org/sites/default/files/docs/MO-207L.pdf) variant That doesn't really clear things up but maybe it helps? Also, @cpresser the script updates you merged don't include the ball diameter in the footprint name. We don't always have that info if the IPC pads aren't used, but perhaps it should be added if known. What do you think? |
Flash lib reorg [RFC]:
Thoughts @cpresser @evanshultz? |
I get what you're saying. It is rather annoying. Can we pick one candidate part that conforms to the ONFI spec and add it so the symbol isn't generic? Then other specific devices could be an ALIAS or the user could place the one symbol in our lib and modify the properties as they see fit for another MPN they prefer. |
Yesterday I stumbled across the IPC footprint generator and it just got into my mind we should use something similar here now. This would make the need of a symbol template obsolete and is already because the amount of various flashes very useful |
is this different from this project? |
I assume you mean one of the IPC-compliant footprint generators at https://github.com/pointhi/kicad-footprint-generator. Did you see https://github.com/KiCad/kicad-library-utils/tree/master/schlib/autogen? There is a generator for some STM32 symbols there, along with other simple devices like connectors and resistor networks. The schematic and schematic symbol file format is changing for KiCad v6 and there is simple inheritance which may help? |
@evanshultz yes this is the generator I was talking about. The one for the symbols is really cool as well, together with this |
As for splitting libraries: Currently there are not nearly enough symbols in there. The only reason we are discussing a split is because the current library is messy. I plan to fix that (with breaking changes). Currently I see 3 major options for ONFI-Symbols (and similar Devices, for example SPI and QSPI serial-flash with 8 pins) I would argue that the B option is not good. Its more maintaining effort when a small change is needed. My current idea is to prefix generic symbols. Examples:
The fully specified devices could be aliases to those. Afaik with the v6 symbol file format we can also have aliases that have a different package. That said, I am also okay with option A (only fully specified symbols). If new compatible devices show up we can just add an alias. |
had an deeper look into the SchLib/AutoGen today, never used python before, so it is rather dirty. |
@cpresser |
This adds a new library for ONFI NAND flashes which all follow this documentation
http://www.onfi.org/-/media/client/onfi/specs/onfi_4_2-gold.pdf?la=en
These generic symbols could be used in two different ways:
Further generic symbols (mainly BGA-100, BGA-152) will be inserted by me once the current are merged.
All symbols are drop in compatible to each other.
All contributions to the kicad library must follow the KiCad library convention
Thanks for creating a pull request to contribute to the KiCad libraries! To speed up integration of your PR, please check the following items: