|
Драйвер CAN |
|
|
|
Oct 13 2005, 08:36
|
Знающий
   
Группа: Свой
Сообщений: 506
Регистрация: 29-09-05
Из: Донецк
Пользователь №: 9 063

|
Создал драйвер для CAN. Все уровни соответствуют стандарту. Посчитал, что дифференциальный усилитель не обязателен. Приемный транзистор четко переключается при переходе из Recessive в Dominant и наоборот.Однако MCP2510 выдает ошибку линии.В чем моя ошибка?Что я не так делаю?Думаю , что все это связано с протоколом.Где-то я его не дочитал.
Прикрепленные файлы
drv.bmp ( 8.46 килобайт )
Кол-во скачиваний: 302
|
|
|
|
|
Oct 13 2005, 08:48
|

Знающий
   
Группа: Свой
Сообщений: 877
Регистрация: 26-01-05
Из: Екатеринбург
Пользователь №: 2 206

|
Цитата(upc2 @ Oct 13 2005, 13:36) Создал драйвер для CAN. Все уровни соответствуют стандарту. Посчитал, что дифференциальный усилитель не обязателен. Приемный транзистор четко переключается при переходе из Recessive в Dominant и наоборот.Однако MCP2510 выдает ошибку линии.В чем моя ошибка?Что я не так делаю?Думаю , что все это связано с протоколом.Где-то я его не дочитал. а сколько устройств сейчас на шине?
--------------------
Пасу котов...
|
|
|
|
|
Oct 13 2005, 10:48
|

Странник
   
Группа: Свой
Сообщений: 766
Регистрация: 29-08-05
Из: Екатеринбург
Пользователь №: 8 051

|
Цитата(upc2 @ Oct 13 2005, 13:36) Создал драйвер для CAN. Все уровни соответствуют стандарту. Посчитал, что дифференциальный усилитель не обязателен. Приемный транзистор четко переключается при переходе из Recessive в Dominant и наоборот.Однако MCP2510 выдает ошибку линии.В чем моя ошибка?Что я не так делаю?Думаю , что все это связано с протоколом.Где-то я его не дочитал. Хм, я зачем этот весь огород, да еще на таких "крутых" транзисторах? 315/361 Если уж диф. схема не нужна то проще сделать на простом открытом коллекторе... На какой скорости проводятся опыты? Без драйвера работает? (Одна подтяжка к +5 , диод в цепи TX, катодом к ТХ, анод к RX, RX к подтяжке...)
--------------------
"Как много есть на свете вещей, которые мне не нужны!" Сократ
|
|
|
|
|
Oct 13 2005, 11:18
|
Знающий
   
Группа: Свой
Сообщений: 506
Регистрация: 29-09-05
Из: Донецк
Пользователь №: 9 063

|
Хм, я зачем этот весь огород, да еще на таких "крутых" транзисторах? 315/361 Если уж диф. схема не нужна то проще сделать на простом открытом коллекторе... На какой скорости проводятся опыты? Без драйвера работает? (Одна подтяжка к +5 , диод в цепи TX, катодом к ТХ, анод к RX, RX к подтяжке...) [/quote] Драйвер всетаки нужен.Но это потом.Хочу соединить 2 компьютера. Скорость можно задавать из приложения.Ни на одной не идет. При начале передачи выдает ошибку линии. Сейчас проверю ваше предложение.Может я уже спалил микросхемы.
|
|
|
|
|
Oct 13 2005, 11:32
|
Знающий
   
Группа: Свой
Сообщений: 506
Регистрация: 29-09-05
Из: Донецк
Пользователь №: 9 063

|
Цитата(Andy Mozzhevilov @ Oct 13 2005, 14:02) не совсем понятен смысл 2 транзисторов в передатчике, поскольку диф-сигнала в линии они не создадут, проще уж применить схему просто с открытым коллектором. Далее, нужно взять 2х лучевой скоп и посмотреть сигнал Tx и Rx на передающем конце. Приемный конец должен генерить доминантный ACK в соответствующем месте. В общем нужно определить, принимает ли и подтверждает приемник, и дело только в передатчике, или приемник не принимает. Возможно дело в правильности настройки CAN контроллера. Эту схему я скопировал с MCP2551 и 82250 .Уже около года не могу приобрести эти микросхемы.Вот и взялся городить огород.Кончно будут и транзисторы другие, и операционник на входе.Как только соединю 2 компьютера, так дело пойдет быстрее.Все сигналы соответствуют стандарту.А , что значит правильность настройки CAN?В режиме зацикливания все работает прекрасно.
|
|
|
|
|
Oct 13 2005, 11:41
|

Знающий
   
Группа: Свой
Сообщений: 877
Регистрация: 26-01-05
Из: Екатеринбург
Пользователь №: 2 206

|
Цитата(upc2 @ Oct 13 2005, 16:32) стандарту.А , что значит правильность настройки CAN? CAN контроллер же программируется. Это действо может содержвать ошибки. Поэтому предположение, что если принимающий контроллер не отвечает (то есть не подтверждает прием кадра в поле ack), то возможно что-то с настройкой контроллера. Если он отвечает, то возможно что-то со схемотехникой драйверов. Нужно посмотреть задержки распространения сигнала ack от приемника, через его драйверы, через драйверы передатчика и на вход rx передатчика. Задержка на распространение сигнала должна укладываться в определенные границы, которые зависят от скорости обмена и настройки can контроллера. Цитата В режиме зацикливания все работает прекрасно.
--------------------
Пасу котов...
|
|
|
|
|
Oct 13 2005, 12:01
|

Странник
   
Группа: Свой
Сообщений: 766
Регистрация: 29-08-05
Из: Екатеринбург
Пользователь №: 8 051

|
Цитата(upc2 @ Oct 13 2005, 16:32) Эту схему я скопировал с MCP2551 и 82250 .Уже около года не могу приобрести эти микросхемы. Дык 82250 уже лучше и не ждать, выбери из TJA1050-TJA1054.
|
|
|
|
|
Oct 13 2005, 12:09
|

Странник
   
Группа: Свой
Сообщений: 766
Регистрация: 29-08-05
Из: Екатеринбург
Пользователь №: 8 051

|
Или примени драйвер 485-го интерфейса. PS: Не надо изобретать велосипед.
--------------------
"Как много есть на свете вещей, которые мне не нужны!" Сократ
|
|
|
|
|
Oct 14 2005, 03:34
|

Странник
   
Группа: Свой
Сообщений: 766
Регистрация: 29-08-05
Из: Екатеринбург
Пользователь №: 8 051

|
Вот так должно работать, на небольшом расстоянии между CAN-контроллерами. (При R=5К и скорости 125Кбит) Код +5v | ---- R | | TX ----|<|--* | | RX ---------* | | ---- | GND--| | | | | | ... | | | | GND--| | ---- | | | TX ----|<|--* | | RX --------- | ---- Необходимо включить и настроить один узел на прием ВСЕХ пакетов на определенной скорости. Другим попытаться передать на той же скорости. Не использовал MCP2510, настроек регистров не подскажу. Может стоит поискать в инете примеры с исходниками, в которых используется применяемый контроллер? PS: Для связи между PC желательна не диф. схема, а схема с гальванической развязкой, иначе по общему проводу будут помехи(особенно если PC вклющены в разные фазы), которые могут приводить к ошибкам. Для подавления помех можно попробовать зашунтировать сигнальную линию небольшой емкостью на каждом контроллере. (Это касается приведенной выше схемы).
--------------------
"Как много есть на свете вещей, которые мне не нужны!" Сократ
|
|
|
|
|
Oct 14 2005, 03:45
|

Знающий
   
Группа: Свой
Сообщений: 877
Регистрация: 26-01-05
Из: Екатеринбург
Пользователь №: 2 206

|
Цитата(upc2 @ Oct 13 2005, 17:56) Вы правы.В петлевом режиме контроллер сам формирует сигнал ACK для передатчика.И поэтому ошибки "Посылка с ошибкой"в режиме зацикливания нет. Наверно дальше надо соединять два контроллера. Так они еще не соединены, что ли? :-O Я же первым вопросом это спросил. Если контроллер на шине только 1, ему никто ничего не подтверждает, поэтому он и не может ничего передать.
--------------------
Пасу котов...
|
|
|
|
|
Oct 14 2005, 08:35
|
Знающий
   
Группа: Свой
Сообщений: 506
Регистрация: 29-09-05
Из: Донецк
Пользователь №: 9 063

|
Можно сказать , что два компьютера соединены по схеме которую я привел.Линия и устройства питаются от отдельного источника.При передаче по осциллографу видно, что все правильно. Ориентируюсь на AN228 с сайта Microchip.Управляю своей версией Kit 2510.Использую их MCP2510.DLL. Вроде все работает.В петлевом режиме все пишется и передается.Фильтры и маски настроены на прием всех сообщений.Но все время ошибка линии.Может на входе используется и третье состояние?Кто может сказать , что должно быть на выводе RX драйвера шины сейчас попробую соединить напрямую по схеме spf.Компьютеры стоят рядом.
|
|
|
|
|
Oct 14 2005, 08:44
|

Знающий
   
Группа: Свой
Сообщений: 877
Регистрация: 26-01-05
Из: Екатеринбург
Пользователь №: 2 206

|
Цитата(upc2 @ Oct 14 2005, 13:35) Можно сказать , что два компьютера соединены по схеме которую я привел.Линия и устройства питаются от отдельного источника.При передаче по осциллографу видно, что все правильно. Ориентируюсь на AN228 с сайта Microchip.Управляю своей версией Kit 2510.Использую их MCP2510.DLL. Вроде все работает.В петлевом режиме все пишется и передается.Фильтры и маски настроены на прием всех сообщений.Но все время ошибка линии.Может на входе используется и третье состояние?Кто может сказать , что должно быть на выводе RX драйвера шины сейчас попробую соединить напрямую по схеме spf.Компьютеры стоят рядом. Такое ощушение, что вы не слышите вопросов. Второй CAN контроллер программируется? Или просто подключен к CAN шине? Посмотрите, что у второго CAN контроллера на Tx, если там постоянная 1, то он не слышит приема, если он подтверждает прием пакета от первого CAN контроллера в поле ACK, то значить проблемы с линией. Нужно локализоваться сначала в этом, а потом уже искать причину в драйверах или схеме соединения.
--------------------
Пасу котов...
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|