3 x CAN GW v1.1

This is revision 1.1 of the 3 x CAN Main board. The main difference to 1.0 is that most IO is tested and updated. This is one of 3 main boards in my system and this version is designed to be located on a desktop or in a cabinet with more “normal” connectors. The other two main boards are (1) M12 design with 8 sub-modules and a (2) motor controller eith sub-modules.

 

  1. STM32H723VE with 500Mhz clock speed and loads os RAM/Flash. I have currently used ca 200Kb of 512Kb Flash and even less of SRAM. I reduced speed from 550Mhz to 500Mhz to get a CAN clock that was 25Mhz since that can be reproduced on STM32H7xx MCU’s. I have considered downgrading H723 to H573 to save a few bucks, but I have so far decided against this on all main boards.
  2. Upgraded PSU with capacitors that handle 50V and have a proper EMI filter. Input PSU is either USB through jumper or 8-36V isolated on the connector. An elegant DC/DC module convert to 5V/4A, while the last stage is a 3.3V/500mA converter. This board/MCU uses a bit of current so “as is ” we are up in ca 300mA, but CAN ports and modules are powered through 5V that handles 4A.
  3. 3 x FDCAN ports through a cable connector that connect to a DSUB9 on front panel. Two of these boards can fit in the same box if you want 6 CAN ports. CAN ports can in theory handle 12Mbps, isolated to 5KV and with SW controlled 120Ohm resistor. I just tested these ports, but I have not tested FD-CAN speeds yet. My experience with CAN tells me multiple devices connected on higher speeds will be an issue, but lets see. CAN is in general much faster and more capable that people expect if SW design is intelligent. I have worked on systems with 12 nodes on the network, but some standards insist on using CAN 1:1 as well.
  4. 3 x Module ports allowing sub-modules to be connected though a very fast serial port. Part of the design is that cables can be connected 1:1 and that sub-modules can download FW and restart etc from main board. I will need to add a bootloader for the mainboard itself, but sub-modules uses the build-in bootloader on STMH5xx MCU’s. I am currently using STM32H503 and STM32H523 on sub-modules.
  5. 1 x Link port designed to connect between main boards. This is the same as the module ports, so it can be used for a 4th module. Planned speed on these are 8Mbps full duplex, but this can be adapted. In theory we can use 12Mbps, but again – these speeds are not tested yet.
  6. 10/100Mbps Ethernet port. This is only partly tested and fixing this is next on my task-list. I also have two Ethernet modules (1) with W5500 and another dual Ethernet module, so I am undecided as to what I want with this Ethernet. I have considered removing it and only use sub-modules several times, but I can as well just leave it and not populate the PCB unless I need the extra pins/space.
  7. 1 x SPI Flash. I equip all boards/modules with a 2 Mbyte Flash as minimum. This is divided into 500Mbyte for variables and 3 images for code.
  8. 1 x SPI FRAM/PSRAM position. It uses the same interface as a SPI Flash, but a more narrow ship.
  9. 32 Gb TF Card – this is the second content that is not tested yet.
  10. Standard USB-C port – this is what I use to power the board and to test with. This is not isolated, but it will work straight up as a serial port on any PC and makes this board a CAN/USB GW for my laptops.

Considerations:

  • A WIFI/BLE or Lora module would be nice, but this can easely be added as a module.
  • More module ports would be nice, but I would need to remove Ethernet for that. The issue with the sub-modules is that you add the IO you need so this becomes a customized system in a box. My M12 design is better on this, but I am considering modules with different connector options as well.
  • I currently use 3 expensive CAN tranceivers and consider saving in the region 15USD by swapping them out with cheaper variants that lower isolation to 3KV and speed to 5Mbps – lets see.

Extensions:

  • LCD/TFT Display. It is possible to attach a LCD/TFT display through one of the 4 serial ports. You can use a 3rd party solution as well. We can easely have screen from 2″ to 10″ as needed by some systems. One option is to use a RPI with a TFT screend just connect on the UART. I have both 5″, 7″ and 10″ screens around as well as larger screens. We could even use a RPI Zero that cost 5USD if you only want a screen or any RPI if you want to use Wifi/BLE that way. The main challenge with RPI is the PSU, but I will test a solution for that as well soon. I have a RPI5 project with a 256Gb M.2 disk + a 10 inch TFT and I need to fix the PSU on that anyway.

Production:

The plan is to start a small production line either by assembling these in China or assembling in-house. I will probably test both.

BOM cost – I think an optimized BOM should be < 50.- USD – I need to work on that.

 

Leave a Reply