A few years before I started using the AT90CANxxx types for my own CAN-based projects.
This worked okay for me, as I used the same bit-rate setting for all my nodes at 125kbit/s.
Therefore I paid not much attention on the error management. ACK errors normally come from disconnected cables and other errors I did not see.
Now, one of the nodes - which is a CAN->USB-dongle - shall be used to connect to a CAN-controlled model railway.
The model railway seems to work also at 125kbit/s but nothing more is known to me. I opened one of the modules and it has a 16MHz oscillator in it.
Listening to the communication with my dongle works superb - I can see the messages coming in and no errors are reported . It looks like only CAN2.0A messages occur
Now for transmission:
I send out a simple message with CAN-ID 0x409 with DLC 1 and get a FERR or FERG. Also the bus state changes to passive.
Trying this again a few more times the bus state returns to active.
I cannot be sure that the way I handle errors is correct. Same to signaling bus-state-changes.
Are there typical reasons which lead to a FERR-error ? The bit-rate-config for 125kbit/s can be achieved in more than ONE combinations AFAIK. Can this be the reason ?