[an error occurred while processing this directive]
Самому сделать несложно, трудности как всегда сильно преувеличены.
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено GM 11 октября 2005 г. 14:41
В ответ на: а если ТХ не подключать? любой контроллер станет silent отправлено yes 11 октября 2005 г. 14:18

есть задачка - сделать монитор CAN шины (например на TMS320C2407).
насколько сложно?

Совсем не сложно, всё аппаратно делает сам CAN-контроллер. Необходимо только правильно настроить регистры контроллера. Программы приема и передачи занимают примерно 10 строк кода на асме (каждая), да и то, если вызывать из Си.

может есть какие-то готовые app-notы или примеры такого кода
Я делал только на TMS320F2808, поэтому могу сказать только за него. Есть приличное описание – spru074d, пример spra876a и программы к нему на С spra876a.zip, достаточно, чтобы написать свою программу.

какие трудности могут быть
Трудности только в первой стыковке двух модулей – первый модуль посылает и принимает сообщения, второй осуществляет эхо – принимает сообщение и отправляет его обратно. Задача облегчается тем, что есть самопроверка (self test mode, bit STM=1 in CANMC register) без выхода наружу – можно передавать сообщения и принимать их, используя только один модуль.

где можно быстро и правильно прочитать про логическую организацию CAN, ну и если есть какие-то стандартные протоколы "овер-CAN" взглянуть на них
Для начала можно посмотреть здесь http://www.gaw.ru/html.cgi/txt/interface/can/can20a.htm и ыокруг. Потом надо посмотреть описания сан-ис разных производителей, потом можно посмотреть на описания драйверов шины – очень пользительно для понимания работы сана на физическом уровне. У меня за 3 месяца накопилось 25 мегов разной документации по кану – по-моему, больше, чем достаточно, чтобы стартовать.

сейчас хотелось бы понять - правильно ли я представляю процедуру
по синхроимпульсу определить "баудрэйт"
Непонятно, что такое синхроимпульс. Просто отловите осциллом одну картинку обмена по шине и измерьте длину одного импульса, который и даст Вам искомый битрейт.

запустить приемник на все мессажи, и складывать их в память потом нужно попытаться отловить нужные
Не совсем так. Ставите все мейлбоксы на прием, затем, скажем в SCC режиме, во всех масочных регистрах (LAM(0),LAM(3), CANGAM) ставите все единички, затем устанавливаете все АМЕ во всех MSGID – и вуаля! – принимаете все сообщения с кан-шины. Причем есть возможность принимать как 11-битные, так и 29-битные ID. Для приличия можно еще механизм подтверждения сообщений отключить.

если я ничего не упустил - то это проще чем с готовым разбираться...
Не факт, конечно, но у самопального кака есть определенные плюсы.

Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 
NoIX ключ Запомнить

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru