![]() |
покажи весь скетч и либу для шилда
При передачи данных шилду (по SPI) нет аппаратного подтверждения принятых данных, поэтому нужно проверять программно, например, прочитать один из регистров cnf и сравнить с тем, что туда было записано. Если совпадает, значит соединение прошло успешно. Не во всех либах это сделано. Ещё момент, у тебя перемычка J1 (рядом с контактом Тх) открыта, а это значит, что питание для платы 3.3В, а не 5В. По крайней мере, для настоящего Pro Micro. Проверь напряжение на Vcc. И чем питается шилд? Судя по фотке, кварц на шилде 8Мгц, это влияет на значения регистров CNF, с помощью которых устанавливается скорость CAN шины в шилде. Чаще всего используется 16МГц, поэтому в либе значения могут быть рассчитаны для 16, а не для 8 |
Gorynch
либа отсюда https://github.com/Seeed-Studio/CAN_BUS_Shield напряжение на vcc 4.64 - на китайских про микро перемычка открыта как я понимаю, шилд питается от ардуины, которая в свою очередь от usb порта ноутбука шилд соединял с ардуиной по инструкции от iti1 у которого всё работает (правда с другим шилдом) скетчи пробовал разные вот один и зних: Код:
// demo: CAN-BUS Shield, receive data with check mode по факту, на данный момент - шилда/ардуино подключены к проводке авто и как только на них поступает питание - шилда начинает безостановки что-то принимать (светодиод rx мерцает, почти непрерывно светится) но ардуино нихрена не получает от шилды - даже сообщение из START_INIT (не появляется в мониторе порта ни при каких условиях, и на ардуине светодиод rx не моргает вообще) |
ПрОвода питания от ардуины к шилду на картинке нет. Есть земля и данные
В данном скетче для проверки наличия нового сообщения идёт обращения к шилду через SPI, по идее для этого нужно использовать прерывание от шилда по пину 2 (в твоём случае), это будет быстрее Увеличь скорость rs232 до 115200 (и в скетче, и на компе) Добавь обработку прихода данных от компа: пришла "1" (т.е. ты в терминале нажал 1 и Enter) - инициализировать шилд, пришла "2" - запустить приём данных от шилда Светодиод rx на ардуине связан с rs232, а не с шилдом. Когда пойдут данные должен моргать Tx Самое главное - в скетче значения регистров CNF рассчитаны для 16МГц. Нужно пересчитывать для 8, или менять кварц |
Disgraced, попробуйте этот скетч, я им сканировал FF3, только скорость CAN поменяйте:
PHP код:
|
Итак, по порядку: соединил разъем шилда 5V и разъем VCC ардуины - никакого эффекта.
Скетч в посте от lti1 не дал результата, в мониторе порта по прежнему тишина. Gorynch, по вашей подсказке поменял кварц - впаял на 16mhz. Что получилось - скетч из моего поста, шилда запитана, кварц на 16mhz - в мониторе порта поток сообщений: Код:
CAN BUS Shield init fail Т.е. до этого не было никаких сообщений, а теперь сообщает что всё плохо. По поводу Цитата:
|
в ардуино не силён, но что-то вроде
PHP код:
в либе на mcp2515 добавь своих отладочных сообщений в терминал, чтобы понять где именно затык |
У меня таже проблема!
На шилде светодиод RX аж светится, а на Arduino данные не идут. Кварц тоже кстати 8MhZ. Gorynch Спасибо что направил в нужную сторону! Такс, Выдернул отсюда https://github.com/Flori1989/MCP2515_lib с поддержкой 8MhZ. Теперь вопрос как установить 8MhZ в скетче. Вот так нужно? Или она сама определит? if(CAN_OK == CAN.begin(CAN_500KBPS,MCP_8MHz)) Вот так данные пошли Цитата:
На диагностической колодке CAN-Comfort нету чтоль? Я невижу нажатий кнопок на руле в упор! |
T_r_D, скетч который ты выложил - у тебя работает? у тебя кварц 8MHz? А шилд, как у меня на фото?
Цитата:
|
Disgraced у меня шилд с кнопками вообще.
Но это не важно! Кварц у меня 8мегагерц так что качай по ссылке библиотеку и заливай мой скетч. И да, у меня после этого заработало, но только я увидел то что мне не нужно :) На магнитоле FT CAN так что надо шилд допилить. Микруху уже заказал, через пару недель приедет. |
Цитата:
Я уже в отчаянии. |
Часовой пояс GMT +4, время: 13:14. |
Работает на vBulletin® версия 3.8.4.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot