Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[54.173.221.132] |
|
Сообщ.
#1
,
|
|
|
Нужно связать два котроллера по SPI, и вродебы все ничего, еслиб была аппаратная поддержка, которой нет (контроллер ATtiny26)
Опыта в программировании контроллеров у меня не много, а поиск ничего вразумительного не дает. Пишу на Си в IAR, лучшеб какой-нибудь примерчик .. если есть канешна, или где про это почитать. буду признателен |
Сообщ.
#2
,
|
|
|
SPI - примитивный синхронный интерфейс. Непонятно, в чем может быть проблема.
Для мастера: Передача: выставил бит данных, выдал тактовый сигнал, снял тактовый сигнал и далее по кругу. Прием: выдал тактовый сигнал, прочитал бит данных, снял тактовый сигнал и далее по кругу. Для синхронизации обмена удобно использовать сигнал SS. Прочитать можно в русскоязычных описаниях, например, микроконтроллеров PIC или того же AVR. Ищи здесь: http://www.microchip.ru или здесь: http://www.atmel.ru |
Сообщ.
#3
,
|
|
|
длительность значения не имеет? и еще режимы мастер-слэйв вся разница в том какой порт настроен на вход а какой на выход и все? или что то еще?
и еще как организовать прерывание по SPI если вывод INT0 уже занят, и контроллер находится в спящем режиме? |
Сообщ.
#4
,
|
|
|
Цитата Deus @ Для чужих SPI - может иметь. Но у тебя же все свое? И большой простор для творчества. длительность значения не имеет? Цитата Deus @ В SPI синхроимпульс(SCK) генерирует мастер.еще режимы мастер-слэйв вся разница в том какой порт настроен на вход а какой на выход и все? Цитата Deus @ Задействовать другой вход, способный вывести из спячки(если таковой имеется). Или попытаться мультиплексировать INT0 посредством внешней схемы. еще как организовать прерывание по SPI если вывод INT0 уже занят, и контроллер находится в спящем режиме? |
Сообщ.
#5
,
|
|
|
Цитата и еще как организовать прерывание по SPI если вывод INT0 уже занят, и контроллер находится в спящем режиме? в ATiny26 есть встроенный SPI. т е тебе не надо INT0, там есть прерывания от USI по старту и переполнению, которые работают в режиме спячки |
Сообщ.
#6
,
|
|
|
Цитата potor @ в ATiny26 есть встроенный SPI. т е тебе не надо INT0, там есть прерывания от USI по старту и переполнению, которые работают в режиме спячки спасибо, подсказал, в datasheet есть подробное описание как построить SPI при помощи USI... до этого было не по глазам |