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

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


Знающий
****

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



На обоих контроллерах стоят одинаковые приложения.Оба контроллера
программируются.Скорость передачи одинаковая.При начале передачи
одного на входе другого появляются импульсы.Приема данных не вижу.
Даже в режиме "только чтение" на втором не получаю данных.
Проверить осциллографом ack на втором Tx не догадался .Спасибо
Сейчас проверю.CANINTF сигнализирует две ошибки.Посылка с ошибкой.
Это связано с подтверждением ack.И ошибка линии.Как он выявляет эту
ошибку?
Go to the top of the page
 
+Quote Post
Andy Mozzhevilov
сообщение Oct 14 2005, 09:39
Сообщение #17


Знающий
****

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



Цитата(upc2 @ Oct 14 2005, 14:09)
На обоих контроллерах стоят одинаковые приложения.Оба контроллера
программируются.Скорость передачи одинаковая.При начале передачи
одного на входе другого появляются импульсы.Приема данных не вижу.
Даже в режиме "только чтение" на втором не получаю данных.

Я не знаю, что означает этот режим для CAN.

Цитата
Проверить осциллографом ack на втором Tx не догадался .Спасибо

Я об этом выше писал.

Цитата
Сейчас проверю.CANINTF сигнализирует две ошибки.Посылка с ошибкой.
Это связано с подтверждением ack.И ошибка линии.Как он выявляет эту
ошибку?

Так это надо документацию на MCP смотреть, в каких случаях контроллер эту ошибку выставляет.

Еще совет, посмотрите 2 лучевым скопом сразу сигналы на Tx одного и Rx другого на предмет временнЫх задержек, завалов фронтов и т.п.. Что-там видно?


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


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

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



Цитата(upc2 @ Oct 14 2005, 14:09)
Скорость передачи одинаковая.
*


Какая эта скорость? если не секрет...

Цитата
Приема данных не вижу.


Чем это пытаетесь определять?
Считыванием регистров или по сигналу прерывания?
Формирование сигнала прерывания разрешено?


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


Знающий
****

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



Разобрался с ошибками.Регистр CANINTF указывал на регистр EFLG.
Тот указывал на ошибку "Передатчик в пассивном состоянии сч.ошибок >127"
Ошибка "Посылка с ошибками" указывала , что приемный буфер переполнен.
Что-то я запутался.Счетчик ошибок отключает передатчик.При передаче одной
посылки набегает столько ошибок?Наверно помехи.Сейчас буду разбираться.
Надо немного перепаять схемы.Это я смотрел на закоротку предложенную sfj.
Go to the top of the page
 
+Quote Post
spf
сообщение Oct 14 2005, 11:08
Сообщение #20


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

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



Цитата(upc2 @ Oct 14 2005, 15:55)
Что-то я запутался.Счетчик ошибок отключает передатчик.При передаче одной
посылки набегает столько ошибок?Наверно помехи.Сейчас буду разбираться.
*


Посылка передается до тех пор паке не будет передана без ошибок или не переполнится счетчик ошибок. Это по спецификации, да и в доке на контроллер должно быть описано.

Такая ситуация возникает когда на шине только один контроллер, остальные

выключены
неверно настроены
обрыв связи
у них неисправен выход TX, который долже формировать ask ...


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


Знающий
****

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



Цитата(upc2 @ Oct 14 2005, 15:55)
Разобрался с ошибками.Регистр CANINTF указывал на регистр EFLG.
Тот указывал на ошибку "Передатчик в пассивном состоянии сч.ошибок >127"

Передатчик переходит в пассивное состояние, если при передаче зафиксировано больше 127 ошибок. Также передатчик будет переходить в пассивное состояние и там оставаться, если он не получил 127 подтверждений ACK от других CAN контроллеров на шине.
То есть однозначно у вас передатчик не слышит приемника, либо приемник вообще не принимает.

Цитата
Ошибка "Посылка с ошибками" указывала , что приемный буфер переполнен.

Это в каком контроллере, том же который передает?

Цитата
Что-то я запутался.Счетчик ошибок отключает передатчик.При передаче одной посылки набегает столько ошибок?Наверно помехи.

Нет, в CAN же аппаратное подтверждение приема пакетов. Поэтому единожды начав передавать сообщение CAN контроллер будет его пытаться передать, пока оно не будет подтверждено другими CAN контроллерами в сети.
Если других CAN контроллеров в сети нет, или они не работают, то передатчик попытается передать сообщение 128 раз, каждый раз добавляя ошибку передачи, и потом перейдет в пассивный режим. Как он будет в пассивном режиме работать, не помню, нужно спецификацию CAN смотреть, там эта ситуация описана.

Цитата
Сейчас буду разбираться.
Надо немного перепаять схемы.Это я смотрел на закоротку предложенную sfj.
*

Вы сначала убедитесь, что второй CAN контроллер у вас принимает пакеты и подтверждает их ACK. Третий раз уже советую это сделать.


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


Знающий
****

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



Цитата(spf @ Oct 14 2005, 13:19)
Цитата(upc2 @ Oct 14 2005, 14:09)
Скорость передачи одинаковая.
*


Какая эта скорость? если не секрет...

Цитата
Приема данных не вижу.


Чем это пытаетесь определять?
Считыванием регистров или по сигналу прерывания?
Формирование сигнала прерывания разрешено?
*



Скорость 50 бит/с. Я в программе вижу состояние всех регистров MCP2510.
Если я разрешил прием всех посылок, то хочу увидеть появление данных
в буфере 0 приемного регистра.Или это не так?Это мой первый пуск CANа.
Go to the top of the page
 
+Quote Post
upc2
сообщение Oct 14 2005, 11:21
Сообщение #23


Знающий
****

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



<<Это в каком контроллере, том же который передает? >>
Да это выдает каждое приложение.Кажется до меня начинает доходить.
Вы правы со счетчиком. Второй контроллер должен ответить.Значит
сообщение должно быть для него.Все дело в фильтрах и масках.
Go to the top of the page
 
+Quote Post
upc2
сообщение Oct 14 2005, 11:25
Сообщение #24


Знающий
****

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



<<Вы сначала убедитесь, что второй CAN контроллер у вас принимает пакеты и подтверждает их ACK. Третий раз уже советую это сделать. >>
Сейчас этим занимаюсь.Перепаиваю схемы.
Go to the top of the page
 
+Quote Post
Andy Mozzhevilov
сообщение Oct 14 2005, 11:29
Сообщение #25


Знающий
****

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



Цитата(upc2 @ Oct 14 2005, 16:21)
<<Это в каком контроллере, том же который передает? >>
Да это выдает каждое приложение.Кажется до меня начинает доходить.
Вы правы со счетчиком. Второй контроллер должен ответить.Значит
сообщение должно быть для него.Все дело в фильтрах и масках.
*

CAN контроллер должен подтверждать все сообщения. Маски здесь не при чем. Фильтры и маски - они только для того, чтобы приложения не загружать прерыванием на каждое сообщение из CAN. то есть можно настроить так, чтобы аппаратно прерывания генерились только на нужные сообщения, не более того.
У вас проблема явно ниже, сам CAN контроллер не принимает сообщения.
Ответьте на вопрос, у вас ACK на Tx есть на принимающем контроллере или нет?


--------------------
Пасу котов...
Go to the top of the page
 
+Quote Post
Andy Mozzhevilov
сообщение Oct 14 2005, 11:32
Сообщение #26


Знающий
****

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



Цитата(upc2 @ Oct 14 2005, 16:25)
<<Вы сначала убедитесь, что второй CAN контроллер у вас принимает пакеты и подтверждает их ACK. Третий раз уже советую это сделать. >>
Сейчас этим занимаюсь.Перепаиваю схемы.
*

Зачем там перепаивать, нужно скопом посмотреть на ноге Tx принимающего контроллера. Как только там увидите ack - значит CAN контроллер слышит шину. Пока там подтверждения не добьетесь, работать ничего не будет.


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


Знающий
****

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



Andy Mozzhevilov

На 2 дня выпал из обсуждения.Спасибо за вашу настойчивость.
Посмотрел осциллографом и не увидел посылок.По сигналу
WriteCAN вижу появление одного импусьса.Вероятно ack, но
не вижу всей посылки.Раньше все это видел.Что-то намудрил
с программой.Сейчас разберусь.
Go to the top of the page
 
+Quote Post
upc2
сообщение Oct 20 2005, 05:23
Сообщение #28


Знающий
****

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



Все заработало.
Моя схема схема драйвера шины имеет много недостатков.
1.На приемный транзистор наводятся большие шумы.
Поборол блокировочным конденсатором 0.33 мкФ включенным в базу.
2.У импульсов сильно завалены фронты.Можно было поработать с
транзисторами, но не стал.Купил на радиорынке 82С250.
Простая схема соединения предложенная spf не работает с MCP2510.
При начале передачи вывод Tx генерит непрерывную последовательность
импульсов.Без всякого протокола.Вероятно происходит завязка с Rx
входом.
С сигналом ack тоже проблематично.Если все нормально , то посылка так
быстро проскакивает ( хотя я снизил скорость до 10 Кбит/с) , что ничего не
разберешь.Если отключаешь второе устройство , то сигнала подтверждения
просто нет.
Тему можно закрыть.
Go to the top of the page
 
+Quote Post
spf
сообщение Oct 20 2005, 05:35
Сообщение #29


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

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



Цитата(upc2 @ Oct 20 2005, 10:23)
Все заработало.
*


Ну и славно...

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


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


Знающий
****

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



Цитата(spf @ Oct 20 2005, 08:35)
Цитата(upc2 @ Oct 20 2005, 10:23)
Все заработало.
*


Ну и славно...

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



Спасибо за рекомендации и ссылки.Все полезно.У нас сейчас идет "атака " на CAN.Переориентировал заявку в коммерческом отделе на TJA1050.
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 - 07:49
Рейтинг@Mail.ru


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