upc2 0 13 октября, 2005 Опубликовано 13 октября, 2005 · Жалоба Создал драйвер для CAN. Все уровни соответствуют стандарту. Посчитал, что дифференциальный усилитель не обязателен. Приемный транзистор четко переключается при переходе из Recessive в Dominant и наоборот.Однако MCP2510 выдает ошибку линии.В чем моя ошибка?Что я не так делаю?Думаю , что все это связано с протоколом.Где-то я его не дочитал. drv.bmp Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Andy_Mozzhevilov 0 13 октября, 2005 Опубликовано 13 октября, 2005 · Жалоба Создал драйвер для CAN. Все уровни соответствуют стандарту. Посчитал, что дифференциальный усилитель не обязателен. Приемный транзистор четко переключается при переходе из Recessive в Dominant и наоборот.Однако MCP2510 выдает ошибку линии.В чем моя ошибка?Что я не так делаю?Думаю , что все это связано с протоколом.Где-то я его не дочитал. <{POST_SNAPBACK}> а сколько устройств сейчас на шине? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
upc2 0 13 октября, 2005 Опубликовано 13 октября, 2005 · Жалоба Создал 2 примочки LPT. Вообщем соеденены 2 компьютера. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
spf 0 13 октября, 2005 Опубликовано 13 октября, 2005 · Жалоба Создал драйвер для CAN. Все уровни соответствуют стандарту. Посчитал, что дифференциальный усилитель не обязателен. Приемный транзистор четко переключается при переходе из Recessive в Dominant и наоборот.Однако MCP2510 выдает ошибку линии.В чем моя ошибка?Что я не так делаю?Думаю , что все это связано с протоколом.Где-то я его не дочитал. <{POST_SNAPBACK}> Хм, я зачем этот весь огород, да еще на таких "крутых" транзисторах? 315/361 Если уж диф. схема не нужна то проще сделать на простом открытом коллекторе... На какой скорости проводятся опыты? Без драйвера работает? (Одна подтяжка к +5 , диод в цепи TX, катодом к ТХ, анод к RX, RX к подтяжке...) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Andy_Mozzhevilov 0 13 октября, 2005 Опубликовано 13 октября, 2005 · Жалоба не совсем понятен смысл 2 транзисторов в передатчике, поскольку диф-сигнала в линии они не создадут, проще уж применить схему просто с открытым коллектором. Далее, нужно взять 2х лучевой скоп и посмотреть сигнал Tx и Rx на передающем конце. Приемный конец должен генерить доминантный ACK в соответствующем месте. В общем нужно определить, принимает ли и подтверждает приемник, и дело только в передатчике, или приемник не принимает. Возможно дело в правильности настройки CAN контроллера. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
upc2 0 13 октября, 2005 Опубликовано 13 октября, 2005 · Жалоба Хм, я зачем этот весь огород, да еще на таких "крутых" транзисторах? 315/361 Если уж диф. схема не нужна то проще сделать на простом открытом коллекторе... На какой скорости проводятся опыты? Без драйвера работает? (Одна подтяжка к +5 , диод в цепи TX, катодом к ТХ, анод к RX, RX к подтяжке...) <{POST_SNAPBACK}> Драйвер всетаки нужен.Но это потом.Хочу соединить 2 компьютера. Скорость можно задавать из приложения.Ни на одной не идет. При начале передачи выдает ошибку линии. Сейчас проверю ваше предложение.Может я уже спалил микросхемы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
upc2 0 13 октября, 2005 Опубликовано 13 октября, 2005 · Жалоба не совсем понятен смысл 2 транзисторов в передатчике, поскольку диф-сигнала в линии они не создадут, проще уж применить схему просто с открытым коллектором. Далее, нужно взять 2х лучевой скоп и посмотреть сигнал Tx и Rx на передающем конце. Приемный конец должен генерить доминантный ACK в соответствующем месте. В общем нужно определить, принимает ли и подтверждает приемник, и дело только в передатчике, или приемник не принимает. Возможно дело в правильности настройки CAN контроллера. <{POST_SNAPBACK}> Эту схему я скопировал с MCP2551 и 82250 .Уже около года не могу приобрести эти микросхемы.Вот и взялся городить огород.Кончно будут и транзисторы другие, и операционник на входе.Как только соединю 2 компьютера, так дело пойдет быстрее.Все сигналы соответствуют стандарту.А , что значит правильность настройки CAN?В режиме зацикливания все работает прекрасно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Andy_Mozzhevilov 0 13 октября, 2005 Опубликовано 13 октября, 2005 · Жалоба стандарту.А , что значит правильность настройки CAN? CAN контроллер же программируется. Это действо может содержвать ошибки. Поэтому предположение, что если принимающий контроллер не отвечает (то есть не подтверждает прием кадра в поле ack), то возможно что-то с настройкой контроллера. Если он отвечает, то возможно что-то со схемотехникой драйверов. Нужно посмотреть задержки распространения сигнала ack от приемника, через его драйверы, через драйверы передатчика и на вход rx передатчика. Задержка на распространение сигнала должна укладываться в определенные границы, которые зависят от скорости обмена и настройки can контроллера. В режиме зацикливания все работает прекрасно. <{POST_SNAPBACK}> Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
spf 0 13 октября, 2005 Опубликовано 13 октября, 2005 · Жалоба Эту схему я скопировал с MCP2551 и 82250 .Уже около года не могу приобрести эти микросхемы. <{POST_SNAPBACK}> Дык 82250 уже лучше и не ждать, выбери из TJA1050-TJA1054. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
spf 0 13 октября, 2005 Опубликовано 13 октября, 2005 · Жалоба Или примени драйвер 485-го интерфейса. PS: Не надо изобретать велосипед. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
upc2 0 13 октября, 2005 Опубликовано 13 октября, 2005 · Жалоба Вы правы.В петлевом режиме контроллер сам формирует сигнал ACK для передатчика.И поэтому ошибки "Посылка с ошибкой"в режиме зацикливания нет. Наверно дальше надо соединять два контроллера.Но все время есть ошибка "Ошибка на линии". Это я анализирую регистр CANINTF. Проверка на себя,как было предложено выше, не помогла. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
spf 0 14 октября, 2005 Опубликовано 14 октября, 2005 · Жалоба Вот так должно работать, на небольшом расстоянии между CAN-контроллерами. (При R=5К и скорости 125Кбит) +5v | ---- R | | TX ----|<|--* | | RX ---------* | | ---- | GND--| | | | | | ... | | | | GND--| | ---- | | | TX ----|<|--* | | RX --------- | ---- Необходимо включить и настроить один узел на прием ВСЕХ пакетов на определенной скорости. Другим попытаться передать на той же скорости. Не использовал MCP2510, настроек регистров не подскажу. Может стоит поискать в инете примеры с исходниками, в которых используется применяемый контроллер? PS: Для связи между PC желательна не диф. схема, а схема с гальванической развязкой, иначе по общему проводу будут помехи(особенно если PC вклющены в разные фазы), которые могут приводить к ошибкам. Для подавления помех можно попробовать зашунтировать сигнальную линию небольшой емкостью на каждом контроллере. (Это касается приведенной выше схемы). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Andy_Mozzhevilov 0 14 октября, 2005 Опубликовано 14 октября, 2005 · Жалоба Вы правы.В петлевом режиме контроллер сам формирует сигнал ACK для передатчика.И поэтому ошибки "Посылка с ошибкой"в режиме зацикливания нет. Наверно дальше надо соединять два контроллера. Так они еще не соединены, что ли? :-O Я же первым вопросом это спросил. Если контроллер на шине только 1, ему никто ничего не подтверждает, поэтому он и не может ничего передать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
upc2 0 14 октября, 2005 Опубликовано 14 октября, 2005 · Жалоба Можно сказать , что два компьютера соединены по схеме которую я привел.Линия и устройства питаются от отдельного источника.При передаче по осциллографу видно, что все правильно. Ориентируюсь на AN228 с сайта Microchip.Управляю своей версией Kit 2510.Использую их MCP2510.DLL. Вроде все работает.В петлевом режиме все пишется и передается.Фильтры и маски настроены на прием всех сообщений.Но все время ошибка линии.Может на входе используется и третье состояние?Кто может сказать , что должно быть на выводе RX драйвера шины сейчас попробую соединить напрямую по схеме spf.Компьютеры стоят рядом. lpt_can.bmp Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Andy_Mozzhevilov 0 14 октября, 2005 Опубликовано 14 октября, 2005 · Жалоба Можно сказать , что два компьютера соединены по схеме которую я привел.Линия и устройства питаются от отдельного источника.При передаче по осциллографу видно, что все правильно. Ориентируюсь на AN228 с сайта Microchip.Управляю своей версией Kit 2510.Использую их MCP2510.DLL. Вроде все работает.В петлевом режиме все пишется и передается.Фильтры и маски настроены на прием всех сообщений.Но все время ошибка линии.Может на входе используется и третье состояние?Кто может сказать , что должно быть на выводе RX драйвера шины сейчас попробую соединить напрямую по схеме spf.Компьютеры стоят рядом. <{POST_SNAPBACK}> Такое ощушение, что вы не слышите вопросов. Второй CAN контроллер программируется? Или просто подключен к CAN шине? Посмотрите, что у второго CAN контроллера на Tx, если там постоянная 1, то он не слышит приема, если он подтверждает прием пакета от первого CAN контроллера в поле ACK, то значить проблемы с линией. Нужно локализоваться сначала в этом, а потом уже искать причину в драйверах или схеме соединения. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться