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

 
 
> SPI и ATmega64, Проблема с передачей данных
РоманО
сообщение Mar 7 2012, 09:50
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 15
Регистрация: 25-09-08
Пользователь №: 40 478



Здравствуйте, все!

Появилась проблема при работе с SPI на меге64. И не то, чтобы я неопытный, и проектов понаделал кучу, но вошел в ступор и никак не могу понять в чем проблема.

Mega в MasterMode.

Инициализация:
Код
void spi_init(void)
{
  SPCR = 0x5С; //setup SPI
  SPSR = 0x00; //setup SPI
}


Передача данных:
Код
char spi_sendbyte(char byte)
{
  SPDR = byte;  // Start transmission
  while(!(SPSR & (1<<SPIF)));  // Wait for transmission complete
  return (SPDR);  
}


Код проверен, использовался не раз.

При вызове spi_sendbyte контроллер намертво залипает, при этом ножки его (SCK, MOSI) так и не дергаются.

Помогите разобраться в проблеме.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 2)
Юрий_СВ
сообщение Mar 7 2012, 10:07
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 73
Регистрация: 4-05-08
Пользователь №: 37 272



Может SS настроен как вход и находится в низком уровне ?

Сообщение отредактировал Юрий_СВ - Mar 7 2012, 10:15
Go to the top of the page
 
+Quote Post
РоманО
сообщение Mar 7 2012, 11:10
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 15
Регистрация: 25-09-08
Пользователь №: 40 478



А чего -.

Дополнение: Проблема чисто программная. Сижу и с ИАРом и с АВРСтудией. Симулятором наблюдаю следующее: при инициализации SPI при выполнении строки: SPSR = 0x00 снимается бит MSTR в SPCR. При этом SPSRстановится равным 0x80. И это мне вообще непонятно.

Все, Спасибо Юрию. Действительно SS настроен на вход. Как говорится слона то я и не заметил
Go to the top of the page
 
+Quote Post

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

 


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


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