12.11.2017, 09:30 | #201 |
Пользователь
Регистрация: 02.07.2012
Регион: 59
Сообщений: 64
|
Добрый день всем. Столкнулся с такой проблемой.
Мне нужно, чтобы ардуинка засыпала сама, когда нет активности по CAN шине и потом сама просыпалась, когда активность появляется. Проблема в том, что прерывание по кан шине ардуинку не будит. По другим прерываниям просыпаемся нормально, а по шине нет. Есть где что то почитать по этой теме? |
13.11.2017, 17:44 | #202 |
Пользователь
Регистрация: 29.07.2015
Регион: 64
Машина: VW Tiguan
Сообщений: 89
|
|
14.11.2017, 23:07 | #203 |
Пользователь
Регистрация: 02.07.2012
Регион: 59
Сообщений: 64
|
|
15.11.2017, 12:55 | #204 |
Пользователь
Регистрация: 29.07.2015
Регион: 64
Машина: VW Tiguan
Сообщений: 89
|
Должно просыпаться по низкому уровню INT mcp2515.
void test() { detachInterrupt(4); } настройки в setup() pinMode(7, INPUT_PULLUP); attachInterrupt (4, test, LOW); а сама mcp2515 не спит? |
15.11.2017, 22:01 | #205 |
Пользователь
Регистрация: 02.07.2012
Регион: 59
Сообщений: 64
|
Вроде, делал так. Но еще раз попробую....
Скорее всего засыпает mcp2515, ибо вся железка в спящем режиме с тремя портами, подтянутыми к VCC жрёт всего около 4 mA. Нарыл русскоязычное описание mcp 2515. http://microsin.net/adminstuff/hardw...interface.html Видимо, придется напрямую работать с регистрами CANINTE/CANITF, а, значит, курочить библиотеку... |
15.11.2017, 23:09 | #206 |
Пользователь
Регистрация: 29.07.2015
Регион: 64
Машина: VW Tiguan
Сообщений: 89
|
Сама 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 трансивер в нормальный режим. |
21.11.2017, 21:51 | #207 |
Пользователь
Регистрация: 02.07.2012
Регион: 59
Сообщений: 64
|
Нашёл на магнитоле + 5в, который появляется при активности на шине и решил наплевать на ковыряние регистров. Тупо поставил прерывание на появление RISING на пине SLA.
P.S. Твоя прога у меня снова глючит. Вылетает при выборе порта. Не помнишь, как мы с ней справились в прошлый раз? |
21.11.2017, 22:36 | #208 |
Пользователь
Регистрация: 29.07.2015
Регион: 64
Машина: VW Tiguan
Сообщений: 89
|
Я тогда подправил прогу и она стала сама сбрасывать ардуино при выбор порта. Может ты старую используешь?
|
24.11.2017, 16:18 | #209 |
Новый Пользователь
Регистрация: 15.05.2009
Возраст: 38
Город: Санкт-Петербург
Регион: 78, 98
Машина: Ford Focus 2
Сообщений: 1
|
Заинтересовался недавно микроконтроллерами, и, т.к. моргать диодами и опрашивать датчики надоело тут же, то в качестве упражнения по изучению Arduino и C решил собрать что-то для автомобиля (своего Ford Focus 2), а именно - с работой с CAN. Просто получать и отображать данные было бы слишком просто, а процесс перепрошивки блоков — наоборот, слишком громоздко, да и не думаю, что с моим нулевым опытом, получилось бы все упихнуть в ардуину, поэтому решил сделать устройство для прошивки ключей - по объему задачи как раз.
Собственно, использовал как раз сабж - CAN Shield 1.2 на MCP2515. Плюс еще SD Shield для хранения нужных файлов и LCD Keypad Shield для экрана и кнопок. Этажерка, конечно, вышла, знатная))) Видео, как все работает (почему-то видео, если его вставить сюда, не работает, поэтому ссылкой): https://youtu.be/_6MOT5jQ94o Последний раз редактировалось admin; 02.10.2018 в 19:35. |
29.01.2018, 12:25 | #210 | |
Пользователь
Регистрация: 06.04.2012
Город: Баку
Регион: другой - для добавления сообщить ab
Машина: ТЛК200
Сообщений: 41
|
Цитата:
Последний раз редактировалось admin; 02.10.2018 в 19:36. |
|
Здесь присутствуют: 6 (пользователей: 0 , гостей: 6) | |
|
|