реклама на сайте
подробности

 
 
> Общие ошибки у AT90CAN128 - когда они должны возникать?, А ведь все когда-то чайниками были!
galjoen
сообщение Jan 7 2008, 10:09
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640



1. Заменил ATmega64 на AT90CAN128 у двух своих устройств + добавил КАН приёмопередатчики.
2. Переписал программу (таблица прерываний и обращение к портам).
3. Разобрался (более-менее) с КАН-овскими портами.
4. Написал примитивную посылалку - принималку по КАН.
5. Попробовал - всё сразу заработало!
6. Отрубил у принимающего устройства TXCAN (не передаёт в линию ACK) - начались вопросы:
У принимающего устройства возникает ошибка "ACK error", хотя по описанию (да и логически) должна-бы возникнуть "Bit Error". Устройство-то передаёт в линию 0-й уровень (ACK), а в линии 1.
7. Запретил у принимающего устройства приём адреса генерируемого передатчиком. Судя по описанию в этом случае должна возникнуть общая ошибка - ACK error general (в линии имеется кадр с ресессивным уровнем в бите ACK). Реально у приёмника не возникает никаких ошибок. Пробовал запретить все MOb вообще, проверял разрешение всего, что относится к общим ошибкам - бесполезно.

Особенно волнует отсутствие общей ошибки (планировал использовать), что это - глюк в AT90CAN128, или во мне.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
KRS
сообщение Jan 8 2008, 12:10
Сообщение #2


Профессионал
*****

Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555



Цитата(galjoen @ Jan 7 2008, 13:09) *
6. Отрубил у принимающего устройства TXCAN (не передаёт в линию ACK) - начались вопросы:
У принимающего устройства возникает ошибка "ACK error", хотя по описанию (да и логически) должна-бы возникнуть "Bit Error". Устройство-то передаёт в линию 0-й уровень (ACK), а в линии 1.

Как раз, передатчик в ACK слоте передает recessive bit, и ждет ACK - dominant, а т.к. устройств больше нет то и появляется ошибка "ACK error"

Цитата(galjoen @ Jan 7 2008, 13:09) *
7. Запретил у принимающего устройства приём адреса генерируемого передатчиком. Судя по описанию в этом случае должна возникнуть общая ошибка - ACK error general (в линии имеется кадр с ресессивным уровнем в бите ACK). Реально у приёмника не возникает никаких ошибок. Пробовал запретить все MOb вообще, проверял разрешение всего, что относится к общим ошибкам - бесполезно.


Фильтры не влияют на поле ACK, error... если контроллер принял фрейм выставляется подтверждение, ошибки.... А уже потом решает выкинуть его или положить в MOB (уже другой уровень).
По ошибкам, полю ACK - можно узнать только состояние физического уровня.
Go to the top of the page
 
+Quote Post
galjoen
сообщение Jan 9 2008, 14:23
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640



Цитата(KRS @ Jan 8 2008, 15:10) *
Как раз, передатчик в ACK слоте передает recessive bit, и ждет ACK - dominant, а т.к. устройств больше нет то и появляется ошибка "ACK error"

И я именно об этом: приёмник выставляет dominant в ACK слоте, но из-за оторванного провода TXCAN у приёмника этого не получается (ACK остаётся recessive). И у него (у приёмника) возникает ошибка "ACK error" и больше никаких ошибок. Хотя т.к. приёмник установил на шине dominant, потом проверил, а там recessiv, он вроде-бы должен установить ошибку "Bit error". А судя по описанию (как я понял) у приёмника вообще не д.б. такой ошибки как "ACK error". То, что у передатчика возникает ошибка "ACK error" - это понятно.
Цитата(KRS @ Jan 8 2008, 15:10) *
Фильтры не влияют на поле ACK, error... если контроллер принял фрейм выставляется подтверждение, ошибки.... А уже потом решает выкинуть его или положить в MOB (уже другой уровень).
По ошибкам, полю ACK - можно узнать только состояние физического уровня.

Я понимаю так:
1. Контроллер принимает фрейм и проверяет проходит-ли он через фильтры.
2. Если проходит - кладёт его в MOb (MOb-ы), устанавливает в слоте ACK - dominant уровень, ошибки устанавливает в соответствующем MOb (MOb-ах) (в тех, в которые фрейм прошёл через фильтры).
3. Если не проходит, или испорчен до такой степени, что определить это (прохождение через фильтры) невозможно - не кладёт его (фрейм) в MOb, не устанавливает в слоте ACK - dominant уровень, ошибки устанавливает в разделе "общие ошибки" = "Stuff Error General", "CRC Error General", "Form Error General", "Acknoweledgment Error General".
A. В моём случае фрейм через фильтры не проходит.
B. Т. к. на шине других устройств нет - в слоте ACK recessive уровень.
C. Но общие ошибки (а именно "Acknoweledgment Error General") не устанавливаются.
Из-за этого невозможно проанализировать шину, что я собирался сделать в отладочных целях.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- galjoen   Общие ошибки у AT90CAN128 - когда они должны возникать?   Jan 7 2008, 10:09
|- - KRS   Цитата(galjoen @ Jan 9 2008, 17:23) И я и...   Jan 9 2008, 14:33
|- - galjoen   Цитата(KRS @ Jan 9 2008, 17:33) А рвать л...   Jan 10 2008, 10:33
|- - KRS   Цитата(galjoen @ Jan 10 2008, 13:33) Я не...   Jan 10 2008, 12:27
|- - galjoen   Цитата(KRS @ Jan 10 2008, 15:27) Для этог...   Jan 10 2008, 15:18
|- - galjoen   Цитата(KRS @ Jan 10 2008, 15:27) Вот выдр...   Jan 11 2008, 13:31
|- - KRS   Цитата(galjoen @ Jan 11 2008, 16:31) Но о...   Jan 14 2008, 15:11
|- - galjoen   Цитата(KRS @ Jan 14 2008, 18:11) Может Вы...   Jan 15 2008, 18:51
|- - KRS   Цитата(galjoen @ Jan 15 2008, 21:51) Но б...   Jan 16 2008, 07:58
|- - galjoen   Цитата(KRS @ Jan 16 2008, 10:58) А как он...   Jan 16 2008, 14:18
|- - KRS   Цитата(galjoen @ Jan 16 2008, 17:18) Инте...   Jan 16 2008, 16:35
- - KSN   Подскажите, если возникает состояние Bus off, то к...   Mar 5 2008, 04:15
|- - KRS   Цитата(KSN @ Mar 5 2008, 07:15) Подскажит...   Mar 5 2008, 18:44
- - Ancient   Не подскажет ли кто-нибудь, при каких условиях мож...   Mar 4 2009, 11:03
- - galjoen   Цитата(Ancient @ Mar 4 2009, 14:03) Не по...   Mar 4 2009, 16:37
- - Ancient   Цитата(galjoen @ Mar 4 2009, 19:37) выста...   Mar 30 2009, 07:11
- - galjoen   Цитата(Ancient @ Mar 30 2009, 11:11) а чт...   Mar 30 2009, 18:30


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 30th July 2025 - 02:56
Рейтинг@Mail.ru


Страница сгенерированна за 0.01412 секунд с 7
ELECTRONIX ©2004-2016