Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: CAN AUTOBAUD Detect
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > Controller Area Network (CAN)
Bustler
Доброго всем время суток. Пытаюсь реализовать самоподстройку скорости на шине CAN . Дивайс dsPIC30F6010A , CAN контролер TJA1054AT. При ручной установке все работает нормально. У меня следующая проблема: при выполнении моего алгоритма уже после 3 "подхода" к непосредственной конфигурации бит-времени,программа застревает , так как контролер CAN не хочет переключаться в мод конфигурации (до этого 2 раза значит переключался). Соответственно OPMODE не дает подтверждения. Перед переключением нулю регистер CiCTRL и даю немного времени для обработки. Может кто уже встречался с подобной проблемой ? Зарание благодарен за отклики.
Lelikk
А алгоритм перебирает последовательно бит-рейты?
Может быть просто попробовать поставить везде задержек побольше и посмотреть что получится
Bustler
Цитата(Lelikk @ Jan 6 2009, 10:24) *
А алгоритм перебирает последовательно бит-рейты?
Может быть просто попробовать поставить везде задержек побольше и посмотреть что получится


Да, последовательно перебирает все возможный битрейты вместе с биттаймингом пока не получит нормальный фрейм. Фреймы генерирует CANalizer от Vectorа. Насчет задержек уже пробывал, все равно отключается. Я как понял,если исходить,что алгоритм без бага, что после какого то кол-ва эррорфрэймов (без акка), CAN контроллер сам переходит в idle. Но флажков ошибок нет. Это и cтранно или я чего то не догоняю.
Lelikk
Цитата(Bustler @ Jan 9 2009, 12:08) *
Да, последовательно перебирает все возможный битрейты вместе с биттаймингом пока не получит нормальный фрейм. Фреймы генерирует CANalizer от Vectorа. Насчет задержек уже пробывал, все равно отключается. Я как понял,если исходить,что алгоритм без бага, что после какого то кол-ва эррорфрэймов (без акка), CAN контроллер сам переходит в idle. Но флажков ошибок нет. Это и cтранно или я чего то не догоняю.


Еще раз перечитал первое сообщение: у вас контроллер CAN в процессоре? Ведь TJA1054 это только трансивер.
И он поддерживает бит-рейт только до 125kbps. Вы не превышаете это значение?

Если нет, то можно попробовать сбрасывать полностью модуль CAN в процессоре.
SAR
Цитата(Lelikk @ Jan 10 2009, 14:08) *
Если нет, то можно попробовать сбрасывать полностью модуль CAN в процессоре.


Вроде пробует уже, сбрасывает... пишет

Цитата(Bustler @ Dec 18 2008, 16:43) *
Перед переключением нулю регистер CiCTRL и даю немного времени для обработки.


OPMODE дает подтверждение только тогда, когда есть возможность переключиться в требуемый режим.
А такая возможность появляется тогда, когда модуль увидит, что шина свободна.
... а шина становится свободной (в понимании контроллера) тогда, когда на ней будет последовательно 11 единиц, и продолжительность этого интервала напрямую зависит от установленной длительности бита.
Проверьте, может на третий раз что-то не сходится в настройках бит-рейта?
Может случайно сильно низкую скорость устанавливаете, а CAN-ализатор сильно часто посылки при этом отсылает?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.