Content originally posted in LPCWare by bavarian on Thu Sep 13 06:33:39 MST 2012
Hello,
to finally clarify this chip revision issue:
1) Rev '-' is an earlier version of LPC1850, e.g. CAN_1 was not working at all (but it also includes the bug from the A version)
2) The marking ESD1148ZRY is a marking error, in fact this device is an LPC4350 Rev A, the errata for this version includes the CAN problem
Unfortunately there is no waterproof workaround for the problem, if you change a register in the CAN block then the respective register (same offset from the block base address) from the other peripheral blocks will change as well.
The only workaround I could think of is using semaphores and use only one block at a time. Before every usage you then need to initialise the registers again to make sure they contain the correct values, after the task is finished it would be good style to disable the peripheral to reduce the risk of side effect if the registers change by dealing with the CAN registers.
Best regards.