Обсуждаем контроллеры компании Atmel.
Ответить

Помогите с SPI slave для ATMega8

Пн сен 25, 2006 15:23:14

Товарищи, помогите, не работает spi slave, что может быть не так?
пытаюсь в протеусе соединить 2 atmega8, ведущий работает нормально, с модулем проверки spi обменивается, а ведомый с ним не общается (((

void SPI_Recieve()
{ ch = SPDR;
putchar(ch);
while (!(SPSR & temp));
k = 0; }

#include <stdio>

interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{ TCNT0=0xB7;
if( k == 1)
SPI_Recieve(); }

#include <spi>

void main(void)
{
PORTB=0x00;
DDRB=0x10;
PORTC=0x02;
DDRC=0x02;
PORTD=0x00;
DDRD=0x00;
TCCR0=0x05;
TCNT0=0xB7;
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;
MCUCR=0x00;
TIMSK=0x01;
UCSRA=0x00;
UCSRB=0xD8;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x07;
ACSR=0x80;
SFIOR=0x00;

SPCR=0x43;
SPSR=0x00;

#asm("sei")

while (1)
{ while( !(SPSR & temp) );
k = 1; };
}

На ведушем на время посылки дёргаю ногой, которая на ведомом к /ss подключена
Подскажите в чём моё незнание?

И что за беда творится с протеусом, подскажите...
Составил модель из двух atmega8 зашиваю в них один и тот же код, ставлю работу с spi, один контроллер работает, второй нет, переделал модель, немного поработали обе и опять одна перестала ((( proteus 6.5 sp5

Ср сен 27, 2006 21:52:36

прости что не в тему, но смени протеус. на 6.5 не помню каком сплатпаке с spi были глюки, в частности передавалось не то при изменении порядка передачи бит.

imho. полевой тест всегда покажет, кто был прав :)

Ср сен 27, 2006 22:19:27

да протеус сменил уже, на 6,9, только лучше увы не стало, ещё глючнее работает, но могу сомневаться что поставил нормальное лекарство, ибо ругался он, да и лекарство от 6,5 ставил ) хотя на удивление работает, только жаль, что коряво (
А по поводу практики согласен, только полевой тест показывает полную правду )

Ср сен 27, 2006 22:21:05

up

Чт сен 28, 2006 08:14:52

PROTEUS 6.9sp5 не корявый там:
http://kazus.ru/forum/topic_4628-100.html

".... на сером фоне".

Чт сен 28, 2006 08:26:45

у меня версия как раз с remexpert'а, только не смог приколотить лекарство, там в нём только isis файл, который в итоге ошибку выдаёт ( может конечно кривые руки подсобили, но вроде проблем с заменой одного файла сложно ошибиться.
Ответить