[TI Appnote slaa281b] SD/MMC an MSP430

#830749
Lesenswert?

Hi,

http://focus.ti.com/mcu/docs/mcusupporttechdocsc.tsp?sectionId=96&tabId=1502&abstractName=slaa281b

in der Appnote slaa281 Rev. b ist der MOSI/MISO-Fehler scheinbar 
behoben, dafür andere nicht:

- die Funktionen mit Rückgabewerten vom Typ char müssen entweder als 
unsigned char umgeschrieben werden, oder der compiler muss das als 
unsigned interpretieren.

- die "Funktion" CS_HIGH in Datei hal_MMC_hardware_board.h ist 
falsch:
1
#define halSPITXDONE  (UCB0STAT&UCBUSY)       /* Wait for TX to finish */
2
...
3
#define CS_HIGH()   while(!halSPITXDONE); MMC_CS_PxOUT |= MMC_CS  // Card Deselect
denn sie wartet (zumindest bei den USCI-Modulen) solange die USCI 
nicht busy ist!

richtig wäre:
1
#define halSPITXDONE  (UCB0STAT&UCBUSY)       /* Wait for TX to finish */
2
...
3
#define CS_HIGH()   while(halSPITXDONE); MMC_CS_PxOUT |= MMC_CS  // Card Deselect
oder logischer:
1
#define halSPITXDONE  (!(UCB0STAT&UCBUSY))       /* Wait for TX to finish */
2
...
3
#define CS_HIGH()   while(!halSPITXDONE); MMC_CS_PxOUT |= MMC_CS  // Card Deselect

- in der main.c macht die Schleife eine Umdrehung zu viel:
1
unsigned char buffer[512];
2
...
3
for (i = 0; i <= 512; i++) 
4
    buffer[i] = 0;

Mehr ist mir bisher nicht aufgefallen und jetzt scheint es auch zu 
funktionieren :)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren