Forum: Mikrocontroller und Digitale Elektronik STM3210E EVAL SD-Controller SDIO + HiTOP


von Tobi (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Gemeinde,

ich schreibe hier mal meinen ersten Beitrag, eure Diskussionen haben 
mich schon sehr oft weitergeholfen. Hierzu erstmal ein Danke. Nun habe 
ich folgendes Problem:

Ich hab ein STM3210E-EVAL Board, auf welchem ich die SD-Karte zum Laufen 
bekommen möchte. Hierzu habe ich die "STM32F10x_StdPeriph_Lib_V3.4.0" 
zum laufen gebracht. Das Kompilieren funktioniert einwandfrei, nur bei 
der Ausführung hakt es bei mir.

HiTop 5.4 meckert, dass JTAG entweder nicht richtig konfiguriert sei, 
oder defekt ist bzw. die Schnittstelle mit Anfragen überlastet sei. Die 
Verbindung zu dem Cortino Stick funktioniert einwandfrei.

Kurios ist auch, dass die alte Version (Build 3.1.2) vor einem Monat 
einwandfrei bei mir gelaufen ist, nun jedoch die gleichen Fehler bringt.

Errorcodes:

An error occurred with Error Code 302
overrun detected accessing the access port
The system could not connect to the target!

The initialization of the debug port failed after a system reset.
The JTAG/SW interface is corrupted or misconfigured.

An error occurred with Error Code 306
Target communication error detected.
Probably the target does not respond to emulator.

An error occurred with Error Code 307
Target communication error detected.
Possible cause: the JTAG configuration is not sufficient.
Check derivative selection and JTAG settings.
Probably a reset of the system executing the command
'System > Reset test system' may help.

Es funktioniert wenn ich die SD Karte rausnehme. Dann geht sowohl das 
Connecten, als auch das Flashen und Abspielen des Programms.
Wenn man die Karte einsteckt und auf RUN klickt -> Fehler siehe oben.

Die SD-Karte habe ich vorher komplett mit Nullen beschrieben. Dadurch 
konnte ich dann mit einem Hexeditor und SD-Kartenlesegerät feststellen, 
wie viel Blöcke geschrieben werden, bevor das Programm abstürzt. Dabei 
habe ich festgestellt, dass die Datenmenge nicht immer gleich ist, bis 
zum Absturz des Programms. Einmal habe ich 243 KByte schreiben können, 
ein anderes mal nur rund 135 KByte, dann wieder über 1 Mbyte…


Lange Rede, kurzer Sinn:

bei dem Befehl:
1
TransferStatus2 = Buffercmp(Buffer_MultiBlock_Tx, Buffer_MultiBlock_Rx, MULTI_BUFFER_SIZE);
stürzt das Programm immer wieder ab. Code wurde nicht verändert, alles 
original STM Code.

An was könnte das liegen? Board defekt? Fehlerhafter Code von STM? 
SD-Karte defekt?

von Mehmet K. (mkmk)


Lesenswert?

Mit den MultiBlock Befehlen hatte auch ich gestern mein Aha-Erlebnis, 
siehe
Beitrag "STM32: Probleme mit SD_ReadMultiBlocks"
Habe aber z.Zt. keine Musse, der Sache nachzugehen, weshalb ich nur mit 
SD_ReadBlock und SD_WriteBlock arbeite. Und damit gibts keine Probleme.

Ob aber Dein Problem dasselbe ist?

von Mehmet K. (mkmk)


Lesenswert?

Noch ein Nachtrag:
Der erste Aufruf mit MultiBlock funktioniert. Zum Haenger kommt es, wenn 
dem MultiBlock ein Read/Write Block folgt. Und zwar kommt es zum Timeout 
bei der Initialisierung.

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.