STM32F407 Based W5500 Ethernet Controller CAN Bus Board and Testing
Posted: Thu Feb 13, 2025 2:07 pm
None of us at the Uni had had much experience of working with a CAN Bus. We wanted to use this Comms technology to transfer data back and forth from a laptop to up to 25 motor modules. Could the data be transferred fast enough for our needs?
We determined that we could use Ethernet as the main Comms path to a master Ethernet to Can Bus controller board to transfer data back and forth. To test this idea out, I designed up a STM32F407 (we used this MCU for everything) based W5500 Ethernet transceiver and a SN65HVD230 Can Bus controller IC.
First off I designed up a board that we could add on a TaoBao purchased W5500 Ethernet module board. This worked well, so the next board I had a go at integrating the W5500 IC directly onto the main board. At the time, I found three competing W5500 designs online, so fingers crossed behind my back, I picked one and added the design onto my board. The red DIP switch helped set the Ethernet Address, as we needed 14 or so of these boards on one network via DHCP.
At first it didn't want to work properly, so I soldered some fine magnet wire to the SPI bus pins on the W5500 so I could monitor what was going on. This helped conclude there was a software issue, not a hardware one: I thought designing this board was rather cool. Close up of the board under test:
We determined that we could use Ethernet as the main Comms path to a master Ethernet to Can Bus controller board to transfer data back and forth. To test this idea out, I designed up a STM32F407 (we used this MCU for everything) based W5500 Ethernet transceiver and a SN65HVD230 Can Bus controller IC.
First off I designed up a board that we could add on a TaoBao purchased W5500 Ethernet module board. This worked well, so the next board I had a go at integrating the W5500 IC directly onto the main board. At the time, I found three competing W5500 designs online, so fingers crossed behind my back, I picked one and added the design onto my board. The red DIP switch helped set the Ethernet Address, as we needed 14 or so of these boards on one network via DHCP.
At first it didn't want to work properly, so I soldered some fine magnet wire to the SPI bus pins on the W5500 so I could monitor what was going on. This helped conclude there was a software issue, not a hardware one: I thought designing this board was rather cool. Close up of the board under test: