Strona 1 z 1

[SPI] Nie działa sprzętowe SPI

: niedziela 28 sty 2018, 12:59
autor: acid3
Czy ktoś mógłby zerknąć co robię źle ...

IDE : AtmelStudio 7.0.1645
AVR : ATMega 16A DIP40
Taktowanie : Wewnętrzne 8MHz

SPI nie rusza w ogóle, sprawdzam SALEAE, 74HC595


Kod: Zaznacz cały

#define F_CPU 8000000
 
#include <avr/io.h>
#include <util/delay.h>

 
void init_spi(void){
 
     DDRB |=  (1 << PB7);
     DDRB &= ~(1 << PB6);
     DDRB |=  (1 << PB5);
     DDRB |=  (1 << PB4);
     
     PORTB |= (1 << PB7);
     PORTB |= (1 << PB6);
     PORTB |= (1 << PB5);
     PORTB |= (1 << PB4);
 
    SPCR = ((1 << SPE)| (1 << MSTR));
 
    SPSR = (1 << SPI2X);
 
}
 
uint8_t rcv_spi(void) {
 
    SPDR = 0xff;
 
    while(!(SPSR & (1 << SPIF)));
 
    return SPDR;
 
}
 
 
void xmit_spi (uint8_t txData){
 
    SPDR = txData;
 
    while(!(SPSR & (1 << SPIF)));
 
}

int main(void){
   
   init_spi();
   xmit_spi(0xFF);
   _delay_ms(100);
 
}

Re: [SPI] Nie działa sprzętowe SPI

: niedziela 28 sty 2018, 13:23
autor: ZbeeGin
Tylko na linii ~SS wystaw stan wysoki. Dla reszty pinów daj zarządzać przez SPI ich stanem.
Oczywiście odpinasz programator na czas testów...

Re: [SPI] Nie działa sprzętowe SPI

: niedziela 28 sty 2018, 13:32
autor: acid3
ZbeeGin pisze:Oczywiście odpinasz programator na czas testów...


Tak, odpinam, nie wpływa to na jakiekolwiek zmiany zachowania.

Niestety, ograniczenie się do wystawienia stanu wysokiego tylko na CS nic nie zmieniło.

Nie ma żadnych "drgnięć" na liniach SCK, MOSI. (tak, chcę tylko wysyłać)

Re: [SPI] Nie działa sprzętowe SPI

: niedziela 28 sty 2018, 14:05
autor: ZbeeGin
Hmm... Wszystkie moje Atmel-e są w robocie, bo bym sprawdził u siebie. :(

Sprawdź jeszcze czy jak wystawiasz stan wysoki na pinie SS to on się tam rzeczywiście pojawia, a najlepiej go podciągnij też rezystorem na zewnątrz. Gdyby coś z zewnątrz ustawiło stan niski to SPI w procesorze może to błędnie zinterpretować i przełączy się w tryb Slave. Wtedy piny SCK, MOSI są konfigurowane przez SPI i oczywiście nic na nich nie zobaczysz...

Re: [SPI] Nie działa sprzętowe SPI

: niedziela 28 sty 2018, 14:17
autor: Antystatyczny
Pokaż schemat połączeń. Może coś pomyliłeś?

Re: [SPI] Nie działa sprzętowe SPI

: niedziela 28 sty 2018, 14:40
autor: acid3
Tu już nawet nie o schemat chodzi, bo sprawdzam tylko na Salci

...........

W całym tym zamieszaniu zapomniałem o pętli while(1)

<masakra> <załamany>