Hallo Mikrocontroller Community, bin dabei eine SD/MMC-Karte im SPI-Modus über RS232 auszulesen (irgendwann auch zu beschreiben ;-) ). Habe den Beispielkode von cc5x.de (für borland C++ und WinXP)angepasst und mir ein paar Routinen zum setzen/abfragen der RS23 Pins geschrieben. Soweit dass Vorspiel ! Mein Problem: Ich bekomme die SD/MMC-Karte nur sporadisch in den SPI-Modus und erhalte häufig die Antwort 3 ("in idle state" & "erase reset") von der Karte (sowohl bei Init als auch während der Abfrage). Hat sowas schon mal erlebt/versucht/erfolgreich beendet ? Könnt ihr mir mal ein Paar Tipps geben ? DAnke im Vorraus
RS23 sollte eigentlich RS232 heißen ;-) TxD -> CS Chipselect DTR -> Do Dataout DTR -> Clk Clock DSR -> DI DataIn
Hmm. Mir scheint das eine der weniger geeigneten Schnittstellen für ein derartiges Unterfangen zu sein. Ist das ein "proof-of-concept", daß sich die serielle Schnittstelle zu jedem Kram ver...biegen lässt oder worin besteht der tiefere Sinn? Wenn schon überhaupt eine Schnittstelle zum "bit-banging" verwendet werden muss, dann sollte es doch die parallele sein - ja, mit entsprechender Treiberunterstützung lässt sich die auch unter den ernstgemeinten Windows-Versionen ansprechen.
das ist 1. arsch langsam und 2. nicht gerade elegant.. du darfst nämlich entweder einen schönen triber mit der ddk schreiben oder aber sowas wie giveio verwenden... gut das mit der ddk wäre schon ok in meinen augen nur 1. hast du die ddk und 2. hast du ahnung von driver schreiben ??? ich nicht drum würde ich empfehlen einen kleinen uC nehmen der einen uart hat und einfach eine rs232<=>spi bridge damit zu machen... damit sollte es viel einfacher und schneller gehen als im polling betrieb unter windows...benötigt aber extra hardware... gut soviel zu meinen einwänden g wie hast du die bösen rs232 leitungen an die karte gegeben ?? ich hoffe nicht direkt...
@Hans: Wenn sich Dein Beitrag auf meinen Hinweis beziehen sollte: Glaubst Du allen Ernstes, daß "bit-banging" an der seriellen Schnittstelle eines PCs auch nur annähernd so schnell funktioniert wie "bit-banging" an der parallelen Schnittstelle? Das ist nochmal deutlich langsamer. Eine sinnvolle Lösung (mal von einem der tausenden fertigen SD-Card-Lesegeräten abgesehen) wäre der FT2232C, der nämlich eine frei programmierbare Multiprotokollschnittstelle namens "MPSSE", mit der sich vorzüglich auch SPI realisieren lässt.
offensichtlich hab ich mehr als 4min gebraucht um zu tippsen ;) und ich meinte nicht bitbangen sonder byte an den avr über rs232 und der schiebts weiter... und das in beiden richtungen.. also nur eine dumme rs232<=>spi bridge... aber der ft wäre natürlich ideal... wusste garnicht das es sowas gibt ;) der könnte eigentilch beim logic analyzer projekt sehr nützlich sein.. mal gucken ;) 73
mit rs232 klappts soweit ganz gut Langsam: OK Hatte nen unsauberen Pegel auf CS 1k pulldown und die welt ist in Ordnung Zugriff auf die Pinns hab ich mittels DTR/RTS EscapeCommFunction(hFlie,SET/CLRpin) Txd EscapeCommFunction(hFlie,SET/CLRBREAK) Funktioniert tadellos Proof-Of-Concept Stimmt soll ne SW zum Laufen bringen und wollte mir das Eval-kit sparen
Nachtrag: giveio und dergleichen sollte auf gar keinen Fall dazu verwendet werden, direkt mit der seriellen Schnittstelle zu kommunizieren. Das Problem liegt in den nicht behandelbaren Interrupts, die die Schnittstelle auslöst und obendrein im Devicetreiber der seriellen Schnittstelle, der damit nicht glücklich ist, wenn im "unter'm Arsch" an der Hardware 'rumgefummelt wird.
unsigned char SPI(unsigned char sndbyt) { unsigned char ret=0; DWORD dwCommModemStatus; for (unsigned char i=8;i>=1;i--) { if (sndbyt & ex(i-1))EscapeCommFunction(hFile,CLRDTR);//out else EscapeCommFunction(hFile,SETDTR); EscapeCommFunction(hFile,CLRRTS); //Clk _-- for (int sl=0;sl<250000;sl++); GetCommModemStatus(hFile,&dwCommModemStatus); //in if (!(dwCommModemStatus & MS_DSR_ON)) ret+=ex(i-1); EscapeCommFunction(hFile,SETRTS); //Clk --_ } return ret; }
ich muss MSP430 programmieren mit dem software IAR/C, ich weiss ehrlich gesagt nicht wie ich anfane. kann mir jemand beispiele geben oder kurse dafür wie man die pins definiert usw
Ich glaub du bist hier im falschen Thread. ;-) Der is seit 26.7. quasi tot. Mach doch am Besten nen neuen auf.
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.