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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Драйвер CAN
upc2
сообщение Oct 13 2005, 08:36
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 506
Регистрация: 29-09-05
Из: Донецк
Пользователь №: 9 063



Создал драйвер для CAN.
Все уровни соответствуют стандарту.
Посчитал, что дифференциальный усилитель не обязателен.
Приемный транзистор четко переключается при переходе
из Recessive в Dominant и наоборот.Однако MCP2510
выдает ошибку линии.В чем моя ошибка?Что я не так делаю?Думаю , что
все это связано с протоколом.Где-то я его не дочитал.
Прикрепленные файлы
Прикрепленный файл  drv.bmp ( 8.46 килобайт ) Кол-во скачиваний: 302
 
Go to the top of the page
 
+Quote Post
Andy Mozzhevilov
сообщение Oct 13 2005, 08:48
Сообщение #2


Знающий
****

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



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


а сколько устройств сейчас на шине?


--------------------
Пасу котов...
Go to the top of the page
 
+Quote Post
upc2
сообщение Oct 13 2005, 09:12
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 506
Регистрация: 29-09-05
Из: Донецк
Пользователь №: 9 063



Создал 2 примочки LPT. Вообщем соеденены 2 компьютера.
Go to the top of the page
 
+Quote Post
spf
сообщение Oct 13 2005, 10:48
Сообщение #4


Странник
****

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



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


Хм, я зачем этот весь огород, да еще на таких "крутых" транзисторах? 315/361

Если уж диф. схема не нужна то проще сделать на простом открытом коллекторе...

На какой скорости проводятся опыты?

Без драйвера работает? (Одна подтяжка к +5 , диод в цепи TX, катодом к ТХ, анод к RX, RX к подтяжке...)


--------------------
"Как много есть на свете вещей, которые мне не нужны!" Сократ
Go to the top of the page
 
+Quote Post
Andy Mozzhevilov
сообщение Oct 13 2005, 11:02
Сообщение #5


Знающий
****

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



не совсем понятен смысл 2 транзисторов в передатчике, поскольку диф-сигнала в линии они не создадут, проще уж применить схему просто с открытым коллектором.

Далее, нужно взять 2х лучевой скоп и посмотреть сигнал Tx и Rx на передающем конце. Приемный конец должен генерить доминантный ACK в соответствующем месте.
В общем нужно определить, принимает ли и подтверждает приемник, и дело только в передатчике, или приемник не принимает.
Возможно дело в правильности настройки CAN контроллера.


--------------------
Пасу котов...
Go to the top of the page
 
+Quote Post
upc2
сообщение Oct 13 2005, 11:18
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 506
Регистрация: 29-09-05
Из: Донецк
Пользователь №: 9 063



Хм, я зачем этот весь огород, да еще на таких "крутых" транзисторах? 315/361

Если уж диф. схема не нужна то проще сделать на простом открытом коллекторе...

На какой скорости проводятся опыты?

Без драйвера работает? (Одна подтяжка к +5 , диод в цепи TX, катодом к ТХ, анод к RX, RX к подтяжке...)

*

[/quote]

Драйвер всетаки нужен.Но это потом.Хочу соединить 2 компьютера.
Скорость можно задавать из приложения.Ни на одной не идет.
При начале передачи выдает ошибку линии.
Сейчас проверю ваше предложение.Может я уже спалил микросхемы.
Go to the top of the page
 
+Quote Post
upc2
сообщение Oct 13 2005, 11:32
Сообщение #7


Знающий
****

Группа: Свой
Сообщений: 506
Регистрация: 29-09-05
Из: Донецк
Пользователь №: 9 063



Цитата(Andy Mozzhevilov @ Oct 13 2005, 14:02)
не совсем понятен смысл 2 транзисторов в передатчике, поскольку диф-сигнала в линии они не создадут, проще уж применить схему просто с открытым коллектором.

Далее, нужно взять 2х лучевой скоп и посмотреть сигнал Tx и Rx на передающем конце. Приемный конец должен генерить доминантный ACK в соответствующем месте.
В общем нужно определить, принимает ли и подтверждает приемник, и дело только в передатчике, или приемник не принимает.
Возможно дело в правильности настройки CAN контроллера.
*


Эту схему я скопировал с MCP2551 и 82250 .Уже около года не могу
приобрести эти микросхемы.Вот и взялся городить огород.Кончно будут и
транзисторы другие, и операционник на входе.Как только соединю 2
компьютера, так дело пойдет быстрее.Все сигналы соответствуют
стандарту.А , что значит правильность настройки CAN?В режиме зацикливания
все работает прекрасно.
Go to the top of the page
 
+Quote Post
Andy Mozzhevilov
сообщение Oct 13 2005, 11:41
Сообщение #8


Знающий
****

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



Цитата(upc2 @ Oct 13 2005, 16:32)
стандарту.А , что значит правильность настройки CAN?

CAN контроллер же программируется. Это действо может содержвать ошибки.
Поэтому предположение, что если принимающий контроллер не отвечает (то есть не подтверждает прием кадра в поле ack), то возможно что-то с настройкой контроллера.
Если он отвечает, то возможно что-то со схемотехникой драйверов. Нужно посмотреть задержки распространения сигнала ack от приемника, через его драйверы, через драйверы передатчика и на вход rx передатчика. Задержка на распространение сигнала должна укладываться в определенные границы, которые зависят от скорости обмена и настройки can контроллера.

Цитата
В режиме зацикливания
все работает прекрасно.
*


--------------------
Пасу котов...
Go to the top of the page
 
+Quote Post
spf
сообщение Oct 13 2005, 12:01
Сообщение #9


Странник
****

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



Цитата(upc2 @ Oct 13 2005, 16:32)
Эту схему я скопировал с MCP2551 и 82250 .Уже около года не могу
приобрести эти микросхемы.
*


Дык 82250 уже лучше и не ждать, выбери из TJA1050-TJA1054.
Go to the top of the page
 
+Quote Post
spf
сообщение Oct 13 2005, 12:09
Сообщение #10


Странник
****

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



Или примени драйвер 485-го интерфейса.

PS:
Не надо изобретать велосипед.

Прикрепленное изображение


--------------------
"Как много есть на свете вещей, которые мне не нужны!" Сократ
Go to the top of the page
 
+Quote Post
upc2
сообщение Oct 13 2005, 12:56
Сообщение #11


Знающий
****

Группа: Свой
Сообщений: 506
Регистрация: 29-09-05
Из: Донецк
Пользователь №: 9 063



Вы правы.В петлевом режиме контроллер сам формирует сигнал ACK для
передатчика.И поэтому ошибки "Посылка с ошибкой"в режиме зацикливания нет. Наверно дальше надо соединять два контроллера.Но все время есть
ошибка "Ошибка на линии". Это я анализирую регистр CANINTF.
Проверка на себя,как было предложено выше, не помогла.
Go to the top of the page
 
+Quote Post
spf
сообщение Oct 14 2005, 03:34
Сообщение #12


Странник
****

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



Вот так должно работать, на небольшом расстоянии между CAN-контроллерами. (При R=5К и скорости 125Кбит)

Код
          +5v
            |
----        R
   |        |
TX ----|<|--*
   |        |
RX ---------*  
   |        |
----        |
GND--|      |
     |      |
     |      |
       ...
     |      |
     |      |
GND--|      |
----        |
   |        |
TX ----|<|--*
   |        |
RX ---------  
   |
----


Необходимо включить и настроить один узел на прием ВСЕХ пакетов на определенной скорости.
Другим попытаться передать на той же скорости.

Не использовал MCP2510, настроек регистров не подскажу.
Может стоит поискать в инете примеры с исходниками, в которых используется применяемый контроллер?


PS:
Для связи между PC желательна не диф. схема, а схема с гальванической развязкой, иначе по общему проводу будут помехи(особенно если PC вклющены в разные фазы), которые могут приводить к ошибкам.

Для подавления помех можно попробовать зашунтировать сигнальную линию небольшой емкостью на каждом контроллере. (Это касается приведенной выше схемы).


--------------------
"Как много есть на свете вещей, которые мне не нужны!" Сократ
Go to the top of the page
 
+Quote Post
Andy Mozzhevilov
сообщение Oct 14 2005, 03:45
Сообщение #13


Знающий
****

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



Цитата(upc2 @ Oct 13 2005, 17:56)
Вы правы.В петлевом режиме контроллер сам формирует сигнал ACK для
передатчика.И поэтому ошибки "Посылка с ошибкой"в режиме зацикливания нет. Наверно дальше надо соединять два контроллера.

Так они еще не соединены, что ли? :-O
Я же первым вопросом это спросил.
Если контроллер на шине только 1, ему никто ничего не подтверждает, поэтому он и не может ничего передать.


--------------------
Пасу котов...
Go to the top of the page
 
+Quote Post
upc2
сообщение Oct 14 2005, 08:35
Сообщение #14


Знающий
****

Группа: Свой
Сообщений: 506
Регистрация: 29-09-05
Из: Донецк
Пользователь №: 9 063



Можно сказать , что два компьютера соединены по схеме которую я
привел.Линия и устройства питаются от отдельного источника.При передаче по осциллографу видно, что все правильно.
Ориентируюсь на AN228 с сайта Microchip.Управляю своей версией
Kit 2510.Использую их MCP2510.DLL. Вроде все работает.В петлевом
режиме все пишется и передается.Фильтры и маски настроены на прием всех сообщений.Но все время ошибка линии.Может на входе используется и третье состояние?Кто может сказать , что должно быть на выводе RX драйвера шины
сейчас попробую соединить напрямую по схеме spf.Компьютеры стоят рядом.
Прикрепленные файлы
Прикрепленный файл  lpt_can.bmp ( 35.06 килобайт ) Кол-во скачиваний: 119
 
Go to the top of the page
 
+Quote Post
Andy Mozzhevilov
сообщение Oct 14 2005, 08:44
Сообщение #15


Знающий
****

Группа: Свой
Сообщений: 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, то значить проблемы с линией.
Нужно локализоваться сначала в этом, а потом уже искать причину в драйверах или схеме соединения.


--------------------
Пасу котов...
Go to the top of the page
 
+Quote Post

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

 


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


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