This is an idea I have been toying with for a while and wanted to get an opinion. When I first heard about CAN-FD I thought it was going to be the answer to this problem. However most mid range microcontrollers do not have support for CAN-FD (LPC546 excluded). The STM32H7 does have support, but the cost of that microcontroller is far too high for most applications. There are some devices like the TCAN4550 and the Microchip version which are quite good, but not as flexible.
With an RS-485 transceiver and an iCE40 or other FPGA one can make a custom transceiver system. The idea would be to interface a microcontroller over SPI or UART to the FPGA. The FPGA would handle the actual protocol, which would be similar to CAN.
The advantages of such a system are:
- Flexible system speed and cost (up to 48 Mbit/s)
- Many settable addresses per device
- Option for a multi-cast system
- Not restricted to a particular architecture
My questions are:
- Is the cost really worth it or am I just trying to reinvent the wheel here?
- Can arbitration still occur at high speeds or are very accurate clocks needed?
- Is there already a project like this out there that I just missed?
It might make for a great open source protocol that I would certainly be willing to put some effort into developing.