atiny2313 и библиотека SPI

ustas
Offline
Зарегистрирован: 12.03.2012

 В общем, решил не стрелять из пушки по воробьям - решил попробовать более скромные "камушки". 

Выбор остановил пока на 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

Догадываюсь, что это из-за того, что разные камни...

Как заставить работать???

 

maksim
Offline
Зарегистрирован: 12.02.2012

У МК семейства tiny отсутствует аппаратный SPI, поэтому компилятор и ругается на несуществующий регистр. Но можно реализовать програмный SPI с помощью прерывания или посредством USI. Погуглите, где то натыкался на подобные статьи.

ustas
Offline
Зарегистрирован: 12.03.2012

 Век живи, век учись, дураком помрешь :)

http://arduino.cc/playground/Code/USI-SPI

надо попробовать :) спасибо!

axill
Offline
Зарегистрирован: 05.09.2011

ustas пишет:

Как заставить работать???

В чем компилируешь программу? Я ардуино более менее освоил, а вот с камнями пока не знаю как подступиться. Не знаю с чего начать. Есть набор камней, есть кварцы, паралельный програматор, есть USB->RX/TX, установил Winavr и IAR AVR. Вроде все есть ))

Но не понятно какая должна быть конструкция программы на Си для отдельного камня, что такое фьюзы и с чем их есть и т.д. )) Чувствую себя полным чайником. Примеры в инете смотрел, но объяснения что и как не нашел. Буду признателен за наводки

ustas
Offline
Зарегистрирован: 12.03.2012

Все делаю в среде ардуино. Там все просто.

Программатор испльзую ArduinoISP (на nano v3 залил соответствующий скетч).

Заработало вот после этого туториала: http://hlt.media.mit.edu/?p=1229