at90can128 problem s CAN (vyreseno)

Diskuze a poradna o programátorech a programování různých obvodů

Moderátor: Moderátoři

Zpráva
Autor
Uživatelský avatar
WLAB
Příspěvky: 867
Registrován: 13 zář 2005, 00:00
Bydliště: Praha

#16 Příspěvek od WLAB »

To sice podle datasheetu ano (i to tak ocekavam) a bez nastaveneho rtrtagu se to tak i chova, ale s nim ne.... Koukam na to, co mi rika AVRSTUDIO, to sice muze kecat, ale ten ovladac se chova v souladu s tim.
de omnibus dubitandum est
Uživatelský avatar
divous
Příspěvky: 164
Registrován: 08 říj 2010, 00:00
Bydliště: ValMez

#17 Příspěvek od divous »

Jo,takhle....
Na to jsem narazil také. Problém je v tom, že po odeslání RTR zprávy se ti
některé registry podle mně neznámé logiky přenastaví.
Sám se ten mob nevypne. Po odeslání zprávy jej musíš prostě vypnout "natvrdo" CANCDMOB = 0;
Uživatelský avatar
WLAB
Příspěvky: 867
Registrován: 13 zář 2005, 00:00
Bydliště: Praha

#18 Příspěvek od WLAB »

Zatím to podle všech indicií vypadá tak, že po odeslání RTR zprávy přejde mob automaticky do RX režimu s cílem zachytit odpověď. V případě, že není nastavena maska (je 0) přijme se následně cokoliv z busu. V případě, že se takový příjem uskuteční TXOK automaticky zmizí a je nahrazeno RXOK.

Tahle vlastnost není nijak dokumentovaná v manuálu a pravděpodobně ji nejde nijak vypnout.

Takže maska bude muset být nastavena na přesnou shodu. Bude snaha zachytit TXOK a zrušit automatický RX command. Protože ale není jisté, že ISR, která to zrušení provede, proběhne dřív než dorazí odpověd, bude muset být pro příjem odpovědí vyhrazen mob s vyšší prioritou než ten, který odesílá žádosti, a tento si zprávu syáhne. To je teda opičárna... 8O
de omnibus dubitandum est
Uživatelský avatar
divous
Příspěvky: 164
Registrován: 08 říj 2010, 00:00
Bydliště: ValMez

#19 Příspěvek od divous »

A je ještě větší, když si uvědomíš, že ti ten mob přijme jakoukoliv zprávu,
která nebyla přijata žádným mobem s vyžší prioritou.
Proto jsem ti také psal, že ten mob musíš okamžitě vypínat ihned po odeslání zprávy.
Uživatelský avatar
WLAB
Příspěvky: 867
Registrován: 13 zář 2005, 00:00
Bydliště: Praha

#20 Příspěvek od WLAB »

Kdyz se pred vyslanim RTR zpravy nastavi maska tak, aby se srovanvaly vsechny bity, tak neprijme jakoukoliv zpravu, ale jen tu, ktera ma stejne ID jako odchozi RTR.

Zakazat MOb ihned po odeslani je sice fajn, ale to se nemusi stihnout nez prijde odpoved, zvlast, kdyz ji odesle HW automaticky....
de omnibus dubitandum est
Uživatelský avatar
WLAB
Příspěvky: 867
Registrován: 13 zář 2005, 00:00
Bydliště: Praha

#21 Příspěvek od WLAB »

Andrea píše:Když se zpráva vyšle a nastaví se TXOK, tak se mob zakáže, tak nemůže něco přijmout, kdo ví, na co tam koukáš.


Proste to tak neni, po odeslani remote frame se MOB nezakaze, ale prestavi se samocine na prijem. Coz je obzvlast pikantni, kdyz neni nastavena maska. V manualu o tom neni ani slovo.

Krom experimentu myslenku potvrzuje vyjadreni Atmel supportu:

When RTRTAG is set, the frame which goes out, is considered as a Remote Frame. In that case, the AT90CAN128 device is expected to receive some data. When the data arrives, you see that the RXOK flag is set. This is the expected behavior.

Best Regards,
Jain Joseph
Atmel Technical Support Team
de omnibus dubitandum est
Odpovědět

Zpět na „Programování PIC, ATMEL, EEPROM a dalších obvodů“