Непонятное поведение Arduino Pro Mini в digitalRead на SPI
- Войдите на сайт для отправки комментариев
Здравствуйте! Какое-то время тому назад я заказал на Али парочку плат на чипе cc2530 от TI и cc-debugger программатор чтоб прошить в них прошивку с ZNP (ZigBee Network Processor). Использовать эту штуку я планировал с atmega48/88/168/328 (у кого хватит памяти) через SPI. А прототипировать решил на Arduini Pro Mini 3.3v (так как сс2530 тоже 3,3 вольтовая) работающей от внутреннего резонатора на 8МГц.
Набросал я пробную програмку - вот она https://gist.github.com/zeran86/590af22f027f06e9397cdf935c350f0d но дело как-то не пошло. Почему-то сс2530 сбрасывал пин SRDY (8й пин ардуины) в 0 до конца передачи (перед последним байтом), хотя делать этого не должен. Я грешил на сс2530, писал на форуме ТиАй, но потом решил попробовать подключить к плате stm32 с ардуиновским загрузчиком .. и был очень удивлен когда там все работало как надо! попробовал на другой Про Мини - та же тема, и на другой стм32 - работает! Т.е. тот же код, такое же подключение - получается, что проблема в ардуине/атмеге328?
А теперь, собственно вопрос - может подскажет кто, почему у ардуины такое странное поведение? Возможно, я как-то не так к пинам подключил? Вроде читал даташит на атмегу328 но понять не могу, в чем дело ((
Скрины с логического анализатора
1 - http://joxi.ru/GrqLYKbfQDKk6A
2 - http://joxi.ru/12MDe4OhM9G06m
В гисте на гитлабе есть пример програмки и вывод в сериал.
Для понимания как должно работать - скрин с документации сс2530 с описанием POLL сценария - http://joxi.ru/zANDe4nhBnOjym
Хоть подскажите в какую сторону копать.
Спасибо.