www.mikrocontroller.net

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

Autor: Marco G. (stan)
Datum: 02.04.2008 12:11

Hi,

http://focus.ti.com/mcu/docs/mcusupporttechdocsc.t...

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:
#define halSPITXDONE  (UCB0STAT&UCBUSY)       /* Wait for TX to finish */
...
#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:
#define halSPITXDONE  (UCB0STAT&UCBUSY)       /* Wait for TX to finish */
...
#define CS_HIGH()   while(halSPITXDONE); MMC_CS_PxOUT |= MMC_CS  // Card Deselect 
oder logischer:
#define halSPITXDONE  (!(UCB0STAT&UCBUSY))       /* Wait for TX to finish */
...
#define CS_HIGH()   while(!halSPITXDONE); MMC_CS_PxOUT |= MMC_CS  // Card Deselect 

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

Mehr ist mir bisher nicht aufgefallen und jetzt scheint es auch zu
funktionieren :)
Autor: Johnny Maxwell (Gast)
Datum: 02.04.2008 16:18

Warum sagst du das uns und nicht TI?
Autor: Marco G. (stan)
Datum: 02.04.2008 16:30

Hab ich :)
Autor: Johnny Maxwell (Gast)
Datum: 02.04.2008 16:48

Sehr gut! Dann kann man ja hoffen, dass die das auch irgendwann mal auf
die Reihe kriegen.
Autor: Marco G. (stan)
Datum: 29.04.2008 14:49

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...
Autor: Marco G. (stan)
Datum: 29.04.2008 15:05

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

Antwort schreiben

Die Angabe einer Email-Adresse ist freiwillig. Wenn Sie automatisch per Email über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Suchfunktion und Betreffsuche benutzen - vielleicht gibt es schon einen ähnlichen Beitrag
  • Aussagekräftigen Betreff wählen
  • Im Betreff angeben um welchen Controllertyp es geht (AVR, PIC, ...)
  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang
  • JPEG-Dateien (.jpg) nur für Fotos und Scans verwenden
  • Schaltpläne, Screenshots usw. als PNG oder GIF anhängen

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [pre]vorformatierter Text (z.B. Code in anderen Sprachen)[/pre]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel






webmaster@mikrocontroller.netImpressumWerbung auf Mikrocontroller.net