Hello Everyone, Recently I spent long-time in rewriting and testing rx and tx processing for mcp251x driver (especifically for AT91 and MCP2515) which now use Asynchronous mode in normal conditions which is fast and if there is some MERRF error then it switches to slow path which is Synchronous and later switch back fast/Async path when error condition is removed. Moreover it does bus recovery through restart-ms if BUS goes offline and this continues till BUS becomes online. There isn't any sort of hanging in any case.
On Sat, Jul 24, 2010 at 4:14 PM, Alexander Holler <[email protected]>wrote: > Am 24.07.2010 17:01, schrieb Alexander Holler: > > > That doesn't help. The irq isn't trigger by MERR but the loop in the IRQ >> will not be left if that bit is set. Clearing the bit doesn't help, >> either clearing it doesn't work, or the bit will get set again almost >> right after it was cleared. >> > > The datasheet says > > "Once an interrupt flag is set by the device, the flag can not be reset by > the MCU until the interrupt condition is removed." > > So it's likely that this bit can' be cleared until the error has gone away > (even if it isn't used as trigger). > > > Regards, > > Alexander > At the moment that driver code is very ugly thats why I haven't posted it on mailing-list yet. On monday I can post it if someone want to test it (kindly let me know); although I will post cleaned-up patch some time later. Regards, Fawad Lateef
_______________________________________________ Socketcan-core mailing list [email protected] https://lists.berlios.de/mailman/listinfo/socketcan-core
