atiny2313 и библиотека SPI
- Войдите на сайт для отправки комментариев
В общем, решил не стрелять из пушки по воробьям - решил попробовать более скромные "камушки".
Выбор остановил пока на atiny2313 - необходимо подключить NRF24L01+ и пару пинов задействать под датчик/управление нагрузкой.
Через ISP камушек спокойно программируется и работает (внутренний осциллятор использовал, работает как на 8, так и на 1МГц). Светодиодом на разных ножках поморгал - распиновку всю понял.
Подумалось, что уже пора спокойно подцеплять NRF24L01+ через SPI:
SCK - вывод 19
MISO - вывод 18
MOSI - вывод 17
CE - D6 (вывод 8) - конфигурирую в скетче
CSN - D7 (вывод 9) - аналогично
IRQ - пока в воздухе
Взял готовый скетч, где у меня все чудесно работает на 328 камне... запускаю комплияцию... и тут "грабли":(
Полно вылетело ошибок:
C:\Users\***\arduino\arduino-1.0\libraries\SPI/SPI.h: In static member function 'static void SPIClass::detachInterrupt()': C:\Users\***\arduino\arduino-1.0\libraries\SPI/SPI.h:63: error: 'SPCR' was not declared in this scope C:\Users\***\arduino\arduino-1.0\libraries\SPI/SPI.h:63: error: 'SPIE' was not declared in this scope
Догадываюсь, что это из-за того, что разные камни...
Как заставить работать???
У МК семейства tiny отсутствует аппаратный SPI, поэтому компилятор и ругается на несуществующий регистр. Но можно реализовать програмный SPI с помощью прерывания или посредством USI. Погуглите, где то натыкался на подобные статьи.
Век живи, век учись, дураком помрешь :)
http://arduino.cc/playground/Code/USI-SPI
надо попробовать :) спасибо!
Как заставить работать???
В чем компилируешь программу? Я ардуино более менее освоил, а вот с камнями пока не знаю как подступиться. Не знаю с чего начать. Есть набор камней, есть кварцы, паралельный програматор, есть USB->RX/TX, установил Winavr и IAR AVR. Вроде все есть ))
Но не понятно какая должна быть конструкция программы на Си для отдельного камня, что такое фьюзы и с чем их есть и т.д. )) Чувствую себя полным чайником. Примеры в инете смотрел, но объяснения что и как не нашел. Буду признателен за наводки
Все делаю в среде ардуино. Там все просто.
Программатор испльзую ArduinoISP (на nano v3 залил соответствующий скетч).
Заработало вот после этого туториала: http://hlt.media.mit.edu/?p=1229