Forum: Mikrocontroller und Digitale Elektronik [TI Appnote slaa281b] SD/MMC an MSP430


von Marco G. (stan)


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 :)

von Johnny Maxwell (Gast)


Lesenswert?

Warum sagst du das uns und nicht TI?

von Marco G. (stan)


Lesenswert?

Hab ich :)

von Johnny Maxwell (Gast)


Lesenswert?

Sehr gut! Dann kann man ja hoffen, dass die das auch irgendwann mal auf 
die Reihe kriegen.

von Marco G. (stan)


Lesenswert?

Interessant, sieht aus als wäre der Fehler mit dem Array-Indizes 
korrigiert ohne eine rev. C rauszugeben.

Was mir noch aufgefallen ist:
http://elm-chan.org/docs/mmc/mmc_e.html schlägt SPI mode 0 oder 3 vor, 
in der Appnote wird aber mode 2 benutzt...

von Marco G. (stan)


Lesenswert?

oder doch nicht, TI hat im MSP430x2xxFamily User's Guide das CLKPH-Bit 
(clock phase) einfach invertiert definiert...

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.