ATMega16M1 wie lange dauert das aktivieren des CAN-Controllers?

#4042633
Lesenswert?

Hallo, ich habe in einem Quelltext gesehen das nach dem aktivieren des 
CAN-Controllers auf das Flag gewartet wird, das der CAN-Controller 
bereit ist. Ich habe im Datenblatt dazu nichts gefunden wie lange das 
ganze dauern soll da ich ungerne darauf polen will. Den Controller 
selber habe ich noch nicht sonst könnte ich das einfach mal über einen 
Ausgang und dem LA oder Oszi ausmessen. Hat vielleicht jemand 
Erfahrungen damit oder hat im Datenblatt etwas dazu gefunden.

http://www.atmel.com/images/doc8209.pdf
1
CANGCON = 0x02 ;   // enable CAN 
2
    
3
    while(!(CANGSTA & (1<<ENFIG)));   // wait until CAN bus being enabled 
4
}
Gast #4043095
Lesenswert?

Ja, interessant.

Gebraucht habe ich das noch nie, auch nicht beim 90CAN32.
Empfang passiert dann einfach.
Und bevor man mit einer Message-Box versucht zu senden bietet es sich 
sowieso an, per:
1
if(CANSTMOB & (1<<TXOK)) // fertig mit Senden?

abzufragen, ob die Message-Box bereit ist.

Dann läuft bei richtiger Programmierung auch der Rest des Programmes 
weiter wenn der CAN mal unterbrochen oder falsch terminiert ist.
#4043447
Lesenswert?

@Frank K.: Ich denke du hast recht. Es geht hier anscheinend nicht darum 
wie lange die Initilisierung des CAN-Controller nach dem Einschalten 
dauert, sondern einfach darum das man 11 rezessive Bits abwartet bevor 
man auf den Bus senden. Siehe End of Frame
http://upload.wikimedia.org/wikipedia/commons/5/5e/CAN-Bus-frame_in_base_format_without_stuffbits.svg

@Peter D.: nein es gibt keine Angabe im Quelltext dazu.

Habe natürlich schon vor nach dem Senden die Fehlerflags auszuwerten.

Habe heute Mittag mal ein Ticket bei Atmel eröffnet mal sehen was die 
dazu schreiben.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren