Forum: Mikrocontroller und Digitale Elektronik Problem mit SPI


von zhu q. (hilfe)


Lesenswert?

servus,

da ich bin ein anfänger in der uC welt, weiß ich nicht ob meine frage 
blöd ist...
ich benutze einen AVR32UC3C, jetzt möchte ich die spi-schnittstelle zu 
diemnsionieren. ich habe gedacht, dass ich zunächst das clock signal für 
spi erzeugen muss, dann wird entsprechend baud rate für die 
datenübertragung durch einen integrierten baudrategenerator erzeugt. das 
clk_spi wird beim reset von power manager generiert, darum brauche ich 
nicht kümmern, und ich habe den teilungsfaktor für den baudrategenerator 
auch richtig eingestellt, sowie die pin-zuordnung...aber das baudrate 
signal scheint ganz quatsch im oszillo.
meine frage ist, wenn ich den baud rate testen möchte, kann ich einfach 
den mithilfe dem oszillo testen oder muss ich noch zunächst ein slave 
mit dem uC verbinden?
danke sehr, bitte um hilfe

von ein Gast (Gast)


Lesenswert?

Zeig mal Deinen Code.

von Halsarmee (Gast)


Lesenswert?

zhu qiu schrieb:
> oder muss ich noch zunächst ein slave
> mit dem uC verbinden?

Nein. Du musst erst dieses Buch lesen:

http://www.duden.de/shop/nachschlagen/duden-die-deutsche-rechtschreibung-2

von Purzel H. (hacky)


Lesenswert?

>a ich bin ein anfänger in der uC welt, weiß ich nicht ob meine frage
blöd ist...
ich benutze einen AVR32UC3C, jetzt möchte ich die spi-schnittstelle zu
diemnsionieren. ich habe gedacht, dass ich zunächst das clock signal für
spi erzeugen muss,

Aeh. Ja. Ich empfehle erst man alles mit einem AVR-Mega zu bearbeiten, 
bevor's ein UC32 sein muss... Da fehlt noch etwas viel.

von honk (Gast)


Lesenswert?

zhu qiu schrieb:
> ganz quatsch im oszillo

soso...

von zhu q. (hilfe)


Lesenswert?

Danke für die Antwort.
Also mein Code :
void SPI_init(void)
{AVR32_SPI1.CR.swrst = 1;
 uint32_t csr = (0 << AVR32_SPI_CSR0_CPOL_OFFSET) |
               (0 << AVR32_SPI_CSR0_NCPHA_OFFSET) |
               (1 << AVR32_SPI_CSR0_CSAAT_OFFSET) |
               (0 << AVR32_SPI_CSR0_BITS_OFFSET)  |
                (1 << AVR32_SPI_CSR0_SCBR_OFFSET) |
               (0 << AVR32_SPI_CSR0_DLYBS_OFFSET) |
              (0 << AVR32_SPI_CSR0_DLYBCT_OFFSET);
AVR32_SPI1.csr0 = csr;
AVR32_SPI1.csr1 = csr;
AVR32_SPI1.csr2 = csr;
AVR32_SPI1.csr3 = csr;
AVR32_SPI1.cr = AVR32_SPI_CR_SPIEN_MASK;
gpio_enable_module_pin(AVR32_SPI1_SCK_PIN, AVR32_SPI1_SCK_FUNCTION);
}

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.