Организация LIN шины на AVR.

Обсуждаем контроллеры компании Atmel.
Ответить
Открыл глаза
Сообщения: 74
Зарегистрирован: Вс янв 24, 2010 21:29:07

Сообщение Gin87 »

Добрый день. Есть ли желающие разобраться в LIN? Задумка слушать команды master устройства в автомобиле, а потом возможно рулить другими slave устройствами. Код буду писать на C в AVR Studio. Возможно у кого-то есть знания по LIN. Поделитесь пожалуйста. Вопросы:

1) С помощью чего объединить Tx, Rx в LIN?
2) Как ловить 13 bit разрыва синхронизации.

Либо предлагаю совместными усилиями сделать железку.
Реклама
Электрический кот
Аватара пользователя
Сообщения: 1031
Зарегистрирован: Чт июн 20, 2013 00:00:58
Откуда: москва, м.Сходненская

Сообщение Mishany »

у меня есть лог управы стеклоподъемников с ховера. я в теме мне тоже интересно. а так пока по теме
http://www.gaw.ru/html.cgi/txt/app/micr ... AVR308.htm
AVR286
AVR322
Реклама
Открыл глаза
Сообщения: 74
Зарегистрирован: Вс янв 24, 2010 21:29:07

Сообщение Gin87 »

Я делаю это для Калины. Логи тоже есть.

Сначала нужно разобраться как работает железка. Популярный приемопередатчик это TJA1020. И вот непонятно TJA1020 он просыпается после 13 бит в нуле и шлет данные в МК, или эти 13 бит нужно отсекать программно с помощью МК, используя флаг переполнения буфера usart?

Еще есть L9637, пойдет ли она?
Электрический кот
Аватара пользователя
Сообщения: 1031
Зарегистрирован: Чт июн 20, 2013 00:00:58
Откуда: москва, м.Сходненская

Сообщение Mishany »

1020 это просто преобразователь уровней, в нем оу и транзисторы, основное ложиться на мк, вроде как по апнотам используется усарт, но с какам то секретом который есть на меге 88 кпримеру, пока особо не вникал, завтра попробую в лог анализаторе подобрать настройки усарта для лина мож что и получиться....
Реклама
Эиком - электронные компоненты и радиодетали
Вымогатель припоя
Аватара пользователя
Сообщения: 672
Зарегистрирован: Ср фев 29, 2012 01:58:32
Откуда: Харьков, Украина

Сообщение eess9 »

Mishany писал(а):но с какам то секретом который есть на меге 88 кпримеру
если вы планируете использовать что-то типа ATmega88, то советую посмотреть в сторону ATtiny167
http://www.atmel.com/Images/Atmel-8265- ... asheet.pdf
По параметрам практически не уступает контроллерам уровня ATmega88, а плюсом для вас будет встроенный LIN-контроллер :)) Он должен снять большое количество вопросов у вас, если внимательно прочитаете даташит.
Реклама
Электрический кот
Аватара пользователя
Сообщения: 1031
Зарегистрирован: Чт июн 20, 2013 00:00:58
Откуда: москва, м.Сходненская

Сообщение Mishany »

думаю будет жирновато использовать мк с аппаратным LIN
по апноутам можно на ATTINY45/85 используя USI в режиме прослушки LIN Slave Only эти мк на порядок дешевле и более экономичны в размерах.
только надо общими усилиями заставить принимать LIN
выдержка Кроме того, любое устройство AVR, по крайней мере, с одним свободным USART или USI может поддерживать Slave LIN после незначительной
модификация исходного кода (include files, register definition, timer usage,....).

скачиваем атмеловскую библиотеку для AVR322_LIN_V1.3
Реклама
Открыл глаза
Сообщения: 74
Зарегистрирован: Вс янв 24, 2010 21:29:07

Сообщение Gin87 »

Я уже веду работу по подстройке к скорости обмена. Пишу для Atmega 16.
Посмотрел файл от Mishany. Нифига непонятно. Как нарисовать сову называется. Вроде как посылка от мастер устройства выглядит как: 13 бит в нуле- это разрыв синхронизации, потом синхронизация 10 бит, потом 10 бит PID данные, потом 10 бит данные, потом 10 бит контрольная сумма.

Планирую:
1) Вычисление скорости обмена, и ее подстройка.
2) Отсекание "разрыва синхронизации"
3) Прием 10 бит синхронизации и удостовериться что там 0х55
4) Прием данных
5) Вычисление контрольной суммы и сравнение значения с последний байтом посылки.
6) Сравнение поленных данных с табличными данными.
7) Выполнить нужное действие.

А где можно взять симулятор LIN, чтобы проводить эксперименты на столе ? МБ есть какая-то программа?
Последний раз редактировалось Gin87 Ср окт 07, 2015 18:45:29, всего редактировалось 1 раз.
Электрический кот
Аватара пользователя
Сообщения: 1031
Зарегистрирован: Чт июн 20, 2013 00:00:58
Откуда: москва, м.Сходненская

Сообщение Mishany »

программы нет, я пользуюсь логическим анализатором (сам собрал), шина только на авто есть, либо собирать эмулятор на аппаратной основе для экспериментов, еще канхакера собрал тоже во всю пользую... но с каном проще его можно на любом stm32 сэмулировать.
Открыл глаза
Сообщения: 74
Зарегистрирован: Вс янв 24, 2010 21:29:07

Сообщение Gin87 »

Mishany, а ты аськой пользуешься? или чем-то более быстрым чем форум кота?
Родился
Сообщения: 13
Зарегистрирован: Ср мар 20, 2019 01:09:54

Сообщение puff »

фигасебе!
я тут уже несколько подходов делал в поисках лога от стеклоподъемника greatwall (правда, кнопка от safe - но вдруг совпадает?)
в итоге плюнул, решил свою смастерить, приспособить под это валяющуюся без дела атмегу. чтобы вспомнить, и чтоб было от чего отталкиваться - попробовал загуглить, и сразу пишут про логи с ховера!!!
Mishany, не поделитесь?

Добавлено after 11 minutes 54 seconds:
Gin87, и как успехи?
а драйвер все же специализированный используете? смотрю в даташит на tja1021 (есть у меня такие), и не очень понимаю, зачем там предлагают для мастер LIN через диод и резистор соединять с INH
Друг Кота
Сообщения: 12867
Зарегистрирован: Сб дек 18, 2021 19:25:32

Сообщение Martian »

puff писал(а):cмотрю в даташит на tja1021 (есть у меня такие), и не очень понимаю, зачем там предлагают для мастер LIN через диод и резистор соединять с INH
AH1103_v3 0_TJA1021_22_24_27_29 LIN transceiver.pdf
(577.01 КБ) 237 скачиваний
страница 30. 4.1.7.5 LIN master switch Master termination towards INH
и на будущее: помимо даташитов существуют application note (hints) и reference manual
Контактная информация:
Электрический кот
Аватара пользователя
Сообщения: 1031
Зарегистрирован: Чт июн 20, 2013 00:00:58
Откуда: москва, м.Сходненская

Сообщение Mishany »

гляну, нужна прога логического анализатора Saleae Logic
Вложения
HOVER.rar
(38.44 КБ) 120 скачиваний
Родился
Сообщения: 13
Зарегистрирован: Ср мар 20, 2019 01:09:54

Сообщение puff »

всем спасибо! апнот просто не попадался, а специально погуглить я как-то не догадался.
кстати, попадались схемы без трансивера - через два транзистора, например.
мастер-плата у меня с трансивером, но в качестве слейва как-то жирновато, и для опытов, кмк, можно мегу с транзисторами для согласования уровней использовать?

кстати, в грейтволовской кнопке есть МК, но нету трансивера.

открыл файлы в лоджике, скорость 20000, версия LIN v2.x, но как интерпретировать команды - не очень понятно: где заканчиваются данные от мастера и начинаются от слейва. попробую на выходных поподавать PID и первый байт после него на кнопку, посмотрим, будет ли реакция.
Электрический кот
Аватара пользователя
Сообщения: 1031
Зарегистрирован: Чт июн 20, 2013 00:00:58
Откуда: москва, м.Сходненская

Сообщение Mishany »

для приемника достаточно одного полевика 2n7002 и уарта
Родился
Сообщения: 13
Зарегистрирован: Ср мар 20, 2019 01:09:54

Сообщение puff »

раскопал вот этот AN (ссылки вверху немного устали)
https://ww1.microchip.com/downloads/en/ ... oc7548.pdf
ну и на GAW сверяюсь - и похоже, что в грейтволе какой-то свой протокол, не совсем отвечающий стандартам (ну или слейвы не всегда отвечают)
+ не очень понятно, байт checksum - он входит в число data bytes, или является отдельным.
+ еще из любопытного, лоджик показывает в синкбайте биты 0 и 1 разной длины почему-то)

раскопал какой-то проект для AVR (похоже, приложение к AN), но там чересчур много всего наворочено. Мне б для начала просто слушать научиться.

похоже, алгоритм для этого должен быть таким: ждем прерывание по спаду, если оно длится дольше 10 предполагаемых бит, по появлению единички включаем USART на прием, ждем 0x55, принимаем следующий байт, парсим параметры, проверяем на ошибки, выполняем свою логику, и наверное должны считать/отправлять CRC мастеру? отключаем USART, возвращаемся опять в начало, где ждем прерывание по спаду.
Друг Кота
Сообщения: 12867
Зарегистрирован: Сб дек 18, 2021 19:25:32

Сообщение Martian »

Что значит, "ссылки устали"? предложенный мной апноут относится к LIN 2.2a, в то время как Вы раскопали на десять лет старше документ версии 1.3
Контактная информация:
Родился
Сообщения: 13
Зарегистрирован: Ср мар 20, 2019 01:09:54

Сообщение puff »

не, я про ссылки выше. ваша - главным образом про аппаратную реализацию и различия трансиверов.
кстати, для одного приема - молчаливых слушаталей, так сказать - можно и правда тини85 на одном полевике подключить, кмк?
Друг Кота
Сообщения: 12867
Зарегистрирован: Сб дек 18, 2021 19:25:32

Сообщение Martian »

Понятно. ну дык, Вы подняли некротему ;)
если просто слушать, то достаточно чего угодно. полевой транзистор не критично, но это будут просто попытки изготовление собственного ресивера интерфейса вместо того, чтобы просто взять готовый
Контактная информация:
Родился
Сообщения: 13
Зарегистрирован: Ср мар 20, 2019 01:09:54

Сообщение puff »

ну почему попытки? для небольших дешевых применений вроде бы вполне имеет место?)
но я пока с софтверной частью закопался)

на GAW перевод http://ww1.microchip.com/downloads/en/A ... oc1637.pdf
и там даже код есть, но он ассемблерный.
в доке вроде бы хорошая диаграмма обработчика прерывания. попробую изобразить это на си.
Первый раз сказал Мяу!
Аватара пользователя
Сообщения: 22
Зарегистрирован: Сб окт 30, 2010 09:31:51

Сообщение Rediska »

Ну и чем кончилось, уважаемые?
Ответить

Вернуться в «AVR»