PCCar.ru - Ваш автомобильный компьютер

PCCar.ru - Ваш автомобильный компьютер (http://pccar.ru/index.php)
-   Общение с машиной (http://pccar.ru/forumdisplay.php?f=14)
-   -   Arduino+CANBUS Shield (http://pccar.ru/showthread.php?t=23221)

ghans 12.11.2017 09:30

Добрый день всем. Столкнулся с такой проблемой.
Мне нужно, чтобы ардуинка засыпала сама, когда нет активности по CAN шине и потом сама просыпалась, когда активность появляется.
Проблема в том, что прерывание по кан шине ардуинку не будит. По другим прерываниям просыпаемся нормально, а по шине нет. Есть где что то почитать по этой теме?

xmetal 13.11.2017 17:44

Цитата:

Сообщение от ghans (Сообщение 394651)
Проблема в том, что прерывание по кан шине ардуинку не будит. По другим прерываниям просыпаемся нормально, а по шине нет. Есть где что то почитать по этой теме?

а кто будит ардуину по кан прерыванию, mcp2515?

ghans 14.11.2017 23:07

Как я понимаю, да.
Вот эта железка
Вот схема http://www.hobbytronics.co.uk/datash...an-bus-100.pdf

xmetal 15.11.2017 12:55

Должно просыпаться по низкому уровню INT mcp2515.


void test()
{
detachInterrupt(4);
}

настройки в setup()
pinMode(7, INPUT_PULLUP);
attachInterrupt (4, test, LOW);

а сама mcp2515 не спит?

ghans 15.11.2017 22:01

Вроде, делал так. Но еще раз попробую....

Скорее всего засыпает mcp2515, ибо вся железка в спящем режиме с тремя портами, подтянутыми к VCC жрёт всего около 4 mA.
Нарыл русскоязычное описание mcp 2515. http://microsin.net/adminstuff/hardw...interface.html
Видимо, придется напрямую работать с регистрами CANINTE/CANITF, а, значит, курочить библиотеку... :shok:

xmetal 15.11.2017 23:09

Сама 2515 не засыпает. Для доступа к регистрам есть в библиотеке функции
INT8U mcp2515_readRegister(const INT8U address);
void mcp2515_setRegister(const INT8U address, register const INT8U value);
и еще вот эта, управление режимами
INT8U mcp2515_setCANCTRL_Mode(const INT8U newmode);
они не доступны извне, их нужно из приват перенести в паблик.
Когда 2515 выходит из сна устанавливается режим только прослушивания, нужно переводить в нормальный режим. У меня по другому сделано, Can трансивер выводит из сна ардуину, а ардуино будит 2515 и переводит Can трансивер в нормальный режим.

ghans 21.11.2017 21:51

Нашёл на магнитоле + 5в, который появляется при активности на шине и решил наплевать на ковыряние регистров. Тупо поставил прерывание на появление RISING на пине SLA.

P.S. Твоя прога у меня снова глючит. Вылетает при выборе порта. Не помнишь, как мы с ней справились в прошлый раз?

xmetal 21.11.2017 22:36

Я тогда подправил прогу и она стала сама сбрасывать ардуино при выбор порта. Может ты старую используешь?

civil-zz 24.11.2017 16:18

Вложений: 2
Заинтересовался недавно микроконтроллерами, и, т.к. моргать диодами и опрашивать датчики надоело тут же, то в качестве упражнения по изучению Arduino и C решил собрать что-то для автомобиля (своего Ford Focus 2), а именно - с работой с CAN. Просто получать и отображать данные было бы слишком просто, а процесс перепрошивки блоков — наоборот, слишком громоздко, да и не думаю, что с моим нулевым опытом, получилось бы все упихнуть в ардуину, поэтому решил сделать устройство для прошивки ключей - по объему задачи как раз.

Собственно, использовал как раз сабж - CAN Shield 1.2 на MCP2515. Плюс еще SD Shield для хранения нужных файлов и LCD Keypad Shield для экрана и кнопок. Этажерка, конечно, вышла, знатная)))

Видео, как все работает (почему-то видео, если его вставить сюда, не работает, поэтому ссылкой):

https://youtu.be/_6MOT5jQ94o

elik745i 29.01.2018 12:25

Цитата:

Сообщение от civil-zz (Сообщение 395319)
Заинтересовался недавно микроконтроллерами, и, т.к. моргать диодами и опрашивать датчики надоело тут же, то в качестве упражнения по изучению Arduino и C решил собрать что-то для автомобиля (своего Ford Focus 2), а именно - с работой с CAN. Просто получать и отображать данные было бы слишком просто, а процесс перепрошивки блоков — наоборот, слишком громоздко, да и не думаю, что с моим нулевым опытом, получилось бы все упихнуть в ардуину, поэтому решил сделать устройство для прошивки ключей - по объему задачи как раз.

Собственно, использовал как раз сабж - CAN Shield 1.2 на MCP2515. Плюс еще SD Shield для хранения нужных файлов и LCD Keypad Shield для экрана и кнопок. Этажерка, конечно, вышла, знатная)))

Видео, как все работает (почему-то видео, если его вставить сюда, не работает, поэтому ссылкой):

https://youtu.be/_6MOT5jQ94o]

Интересная штука!


Часовой пояс GMT +4, время: 22:53.

Работает на vBulletin® версия 3.8.4.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot