реклама на сайте
подробности

 
 
> Не включается SPI в Atmega128, прошу помощи
Panych
сообщение Feb 11 2008, 10:30
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 335
Регистрация: 17-06-04
Из: Москва
Пользователь №: 35



Почему может не включаться SPI?
Дошел до совсем простого, вот код из IAR:
void main( void )
{
#define SETBIT(ADDRESS,BIT) (ADDRESS |= (1<<BIT))
#define CLEARBIT(ADDRESS,BIT) (ADDRESS &= ~(1<<BIT))
#define CHECKBIT(ADDRESS,BIT) (ADDRESS & (1<<BIT))

SETBIT( DDRB, 2 );
SETBIT( DDRB, 1 );
SPCR = 0x53;
SPSR = 0x00;
SPDR = 0x55;
}
Ведь должен выдаться байт наружу? Но SCK и MOSI даже не определены как выходы, причем по первым двум командам - они переводятся на выход, а вот инициализация SPI переводит их обратно.
Чего-то не понимаю?
Плату прозвонил, микруха свежеустановленная...


--------------------
Всегда не хватает времени, чтобы выполнить работу как надо, но на то, чтобы ее переделать, время находится. (Закон Мескимена.)
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Liseev
сообщение Feb 11 2008, 10:48
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 99
Регистрация: 27-10-07
Из: СПб
Пользователь №: 31 797



А что у вас творится с ножкой SS?
Если вы используете режим MASTER и SS определен как вход, то низкий уровень на нем будет воспринят контроллером как попытка другим мастером на шине начать цикл передачи, соответственно контроллер автоматически перейдет в режим SLAVE и будет ждать, когда на входе SCK появятся тактовые импульсы...

Смотрите даташит на 128 мегу, стр 166

Сообщение отредактировал Liseev - Feb 11 2008, 10:49
Go to the top of the page
 
+Quote Post
Panych
сообщение Feb 11 2008, 11:29
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 335
Регистрация: 17-06-04
Из: Москва
Пользователь №: 35



Цитата(Liseev @ Feb 11 2008, 13:48) *
А что у вас творится с ножкой SS?
Смотрите даташит на 128 мегу, стр 166

Liseev, спасибо, именно в ней дело, не сообразил, хотя даташит конечно читал, но этот момент не прочувствовал.
vesago, спасибо за пример!


--------------------
Всегда не хватает времени, чтобы выполнить работу как надо, но на то, чтобы ее переделать, время находится. (Закон Мескимена.)
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 22:29
Рейтинг@Mail.ru


Страница сгенерированна за 0.01397 секунд с 7
ELECTRONIX ©2004-2016