![]() |
Добрый день всем. Столкнулся с такой проблемой.
Мне нужно, чтобы ардуинка засыпала сама, когда нет активности по CAN шине и потом сама просыпалась, когда активность появляется. Проблема в том, что прерывание по кан шине ардуинку не будит. По другим прерываниям просыпаемся нормально, а по шине нет. Есть где что то почитать по этой теме? |
Цитата:
|
|
Должно просыпаться по низкому уровню INT mcp2515.
void test() { detachInterrupt(4); } настройки в setup() pinMode(7, INPUT_PULLUP); attachInterrupt (4, test, LOW); а сама mcp2515 не спит? |
Вроде, делал так. Но еще раз попробую....
Скорее всего засыпает mcp2515, ибо вся железка в спящем режиме с тремя портами, подтянутыми к VCC жрёт всего около 4 mA. Нарыл русскоязычное описание mcp 2515. http://microsin.net/adminstuff/hardw...interface.html Видимо, придется напрямую работать с регистрами CANINTE/CANITF, а, значит, курочить библиотеку... :shok: |
Сама 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 трансивер в нормальный режим. |
Нашёл на магнитоле + 5в, который появляется при активности на шине и решил наплевать на ковыряние регистров. Тупо поставил прерывание на появление RISING на пине SLA.
P.S. Твоя прога у меня снова глючит. Вылетает при выборе порта. Не помнишь, как мы с ней справились в прошлый раз? |
Я тогда подправил прогу и она стала сама сбрасывать ардуино при выбор порта. Может ты старую используешь?
|
Вложений: 2
Заинтересовался недавно микроконтроллерами, и, т.к. моргать диодами и опрашивать датчики надоело тут же, то в качестве упражнения по изучению Arduino и C решил собрать что-то для автомобиля (своего Ford Focus 2), а именно - с работой с CAN. Просто получать и отображать данные было бы слишком просто, а процесс перепрошивки блоков — наоборот, слишком громоздко, да и не думаю, что с моим нулевым опытом, получилось бы все упихнуть в ардуину, поэтому решил сделать устройство для прошивки ключей - по объему задачи как раз.
Собственно, использовал как раз сабж - CAN Shield 1.2 на MCP2515. Плюс еще SD Shield для хранения нужных файлов и LCD Keypad Shield для экрана и кнопок. Этажерка, конечно, вышла, знатная))) Видео, как все работает (почему-то видео, если его вставить сюда, не работает, поэтому ссылкой): https://youtu.be/_6MOT5jQ94o |
Цитата:
|
Часовой пояс GMT +4, время: 15:18. |
Работает на vBulletin® версия 3.8.4.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot