Hallo NG, kann mir bitte jemand sage, der schon mal SPI auf dem AT91SAM7S verwendet hat, ob die SPI-Initialisierung so passt (Die Pins vom SD-Kartenleser sollen zugewiesen werden)? Oder habe ich noch was vergessen? Vielen Dank! Peter init_spi: // verwendete Register auf Stack legen PUSH {r0, r1} // Basisadresse setzen LDR r0, =PIO_BASE // den entsprechenden PINS die Funktion zuweisen LDR r1, =BIT11 | BIT12 | BIT13 | BIT14 STR r1, [r0, #PIO_PDR] STR r1, [r0, #PIO_ASR] LDR r1, =0 STR r1, [r0, #PIO_BSR] // Basisadresse setzen LDR r0, =PIO_BASE // enable SPI-Clock (ID=5) LDR r1, =1 << 5 STR r1, [r0, #PMC_PCER] // Basisadresse setzen LDR r0, =SPI_BASE // SPI-MODE: fixed LDR r1, =0x81; // SPI Enable, Software Reset STR r1, [r0, #SPI_CR] LDR r1, =0x01; // SPI Enable STR r1, [r0, #SPI_CR] LDR r1, =0xE0011; // Master Mode, Fixed Select STR r1, [r0, #SPI_MR] LDR r1, =0x4A02; // 8bit, CPOL: 0, ClockPhase: 1, STR r1, [r0, #SPI_CSR0] // SCLK: 200kHz // Basisadresse setzen LDR r0, =PDC_BASE LDR r1, =AT91C_PDC_TXTEN | AT91C_PDC_RXTEN STR r1, [r0, #PDC_PTCR] // Basisadresse setzen LDR r0, =SPI_BASE STR r1, [r0, #SPI_PTCR] // urspruengliche Register vom Stack holen POP {r0, r1} // Zurueck aus Subroutine MOV pc, r14
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.