Comment by mrheosuper
1 day ago
I wish many manufactures would begin adding Pin mux inside MCU, like espressif. So most of the time you don't care which pin has which function, and make designing pcb for it much less painful.
1 day ago
I wish many manufactures would begin adding Pin mux inside MCU, like espressif. So most of the time you don't care which pin has which function, and make designing pcb for it much less painful.
Nordic's nRF family is the major other vendor I've seen doing this, almost all peripheral can be on any pin. It's definitely a big help for designing boards.
PIO kinda sorta does this but yeah the Pico could definitely benefit from a more flexible pin mux, since bringing up PIO peripherals is messy.
Pico never quite has a function where it’s needed.
Definitely - the ESP32S3 is an absolute joy to work with and layout.
How do you go about designing a PCB with this in mind though? At least in KiCad, the requirement to make nets first and layout last makes it so I basically have to do a draft layout in my head, connect the pins in the circuit diagram and then do the final layout.
Do you have a better workflow for this?
I'd love to have something that I can just feed a list of tags for each pin and have it pick the pins and make the layout in the fewest layers and/or with fewest vias possible (the latter would be amazing for making perfboard prototypes). Something like MCU_PIN1={uart1_tx,gpio_out,gpio_in,gpio_in_pullup...}, J2_PIN1={uart1_tx}, ... and then it just...figures it out and gives me pin table that I can use in the code (like a bunch of #defines).