Working on the v2 with STM32, improved analog and Ethernet. A few thoughts/updates:
- Started with STM32H563VIT6 (100-pin version), but couldn't get RMII wired properly, so had to switch to STM32H563ZIT6 (144 pins). That's going to be interesting when I start tracing
- STM32 is really needed instead of the RP2350B, I need plenty more SPI connections: 1. STM32 to the PSRAM (shared with ICE40 for the buffer), and also shared with the flash so STM32 can flash the ICE40. 2. SPI between ICE40 and the STM32. 3. SPI between ESP32 and STM32 for faster WiFi. AT is a bit slow, so I'm thinking of going the esp32-hosted-mcu route. Still have UART wired with RTS and CTS in case we need to do AT, and we want to have a bit more bandwidth 4. SPI to headers to proxy flashing of the ICE40 if needed
- I2C count stayed the same, but the combination of SPI+QSPI+RMII looks like I'll not have that many pins left on the 144 pin version either (still plenty though)
- The ICE40 has a separate VCCIO, so we can make the Logic Analyzer pin voltage configurable
- RMII needs lots of pins
- The STM32H563 also supports CAN, so that's where the CAN will be controlled from. The termination is now also behind a switch, so we can control termination in the firmware
- Lots of BOM constraints if we want to keep the board inexpensive to manufacture. Analog ICs are the most expensive. Switched some expensive old parts for their newer counterparts to save a bit
- Also, analog requires a wide range of voltages. Might switch over to a dynamic LDO and see if that is less expensive than having lots of different ones (it will be for low volume for sure, with the loading fees)
- Wiring ethernet was pretty straightforward, following the nucleo reference board for that
- Also realized that even with 144 pins, it's worthwile considering GPIO expanders so I don't have to wire all these single wires all over the board and instead connect to the I2C bus that is close by anyway
- Also, STM32H563 is surprisingly inexpensive at around 6-7 USD depending on pin-count. The benefit of having RP2350B quickly disapears (the RP2350B has a few external parts that you have to take into account also, and it has no ethernet support, so you'd need a more expensive ethernet component)
Below the 144 pins. Lots of free space still, but the SPI/I2C/UART pins obviously can't go on any pin, so it's more tight than you'd expect:

Edward Viaene
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.