Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Микроконтроллеры (MCU) и микропроцессоры (MPU) > проблемы с SPI slave


Автор: codexby 16.11.2008, 17:52
приветсвую smile

пробую делать связь по SPI между 2-мя mega16 (1й master, 2й slave).  (использую СAVR2, шпротеус). Slave из 8 байтов пакета принимает только первый. тоже самое наблюдается если использовать только 2й мк в слэйв и данные посылать с генератора SPI (SPI monitor).
где может быть ошибка? может где-то надо указывать сколько байт пересылается за 1 раз? перерыл инет - везде либо теория или пример с приемом 1 байта.

Код

// SPI interrupt service routine 
interrupt [SPI_STC] void spi_isr(void) 
{ 
      unsigned char data; 
      data=SPDR; 
      printf("%02X\n\r",data);    
} 

void main(void) 
{ 

PORTB=0x00; 
DDRB=0x40; 

// SPI Type: Slave 
// SPI Clock Rate: 31,250 kHz 
// SPI Clock Phase: Cycle Half 
// SPI Clock Polarity: Low 
// SPI Data Order: MSB First 
SPCR=0xC3; 
SPSR=0x00; 

// Clear the SPI interrupt flag 
#asm 
    in   r30,spsr 
    in   r30,spdr 
#endasm 

// Global enable interrupts 
#asm("sei") 

while(1);

Автор: smalcom 16.11.2008, 20:12
ну и? программу отправки угадать надо?

Цитата

(использую СAVR2, шпротеус).

а на железе как оно себя ведет?

Автор: codexby 16.11.2008, 21:47
Цитата(smalcom @ 16.11.2008,  20:12)
ну и? программу отправки угадать надо?

а на железе как оно себя ведет?

программа отправки тут пока что ни причем, т.к. готовое master-устройство в шпротеусе (spi-monitor) я думаю работает правильно. и отправка с master-мк в симуляции идет правильно, весь вопрос в slave.
на железе не проверял, т.к. прежде чем паять надо чтобы работало в симуляции, иначе искать другие варианты

Автор: smalcom 17.11.2008, 23:58
Цитата

программа отправки тут пока что ни причем, т.к. готовое master-устройство в шпротеусе (spi-monitor) я думаю работает правильно. и отправка с master-мк в симуляции идет правильно, весь вопрос в slave.
на железе не проверял, т.к. прежде чем паять надо чтобы работало в симуляции, иначе искать другие варианты


ну раз ты так думаешь и в этом уверен, то успехов тебе в поиске бага

Автор: Alexei 19.11.2008, 21:08
Я бы ни в коем случае не стал пологаться на Протеус, это всего лишь красивая игрушка с множеством глюков.(ИМХО)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)