Hallo, bei allen China STM32H7 Boards die ich habe ist der Card detect Schalter nicht verdrahtet und führt dazu, wenn keine SD Karte gesteckt ist, das SDMMCx_SD_Init nicht funktioniert und in der Error Loop landet. Der Schalter ist am Adapter vorhanden, schaltet nach GND, und kann auf einen Eingang mit pullup, evtl. mit Schutzwiderstand, nach verdrahtet werden. Oder die HAL muss angepasst werden dann gibt es aber keinen Interrupt wenn Karte gesteckt/entfernt wird. Betroffen sind die Boards von Fanke und DevEBox mit STM32H750 oder STM32H743 Controller und von WEACT mit STM32H7R3. Ist das in China so üblich, den Pin nicht zu verdrahten ?
Hans-Georg L. schrieb: > Ist das in China so üblich, den Pin nicht zu verdrahten ? Nicht nur in China. Fakt ist nämlich, dass dieser primitive Mechanismus zur presence detection eigentlich überflüssig ist. Das kann man auch auf andere Weise ermitteln.
Ob S. schrieb: > Hans-Georg L. schrieb: > >> Ist das in China so üblich, den Pin nicht zu verdrahten ? > > Nicht nur in China. Fakt ist nämlich, dass dieser primitive Mechanismus > zur presence detection eigentlich überflüssig ist. Das kann man auch auf > andere Weise ermitteln. Und wie unterscheide ich zwischen einer defekten und einer nicht gesteckten Karte ?
Hans-Georg L. schrieb: > Und wie unterscheide ich zwischen einer defekten und einer nicht > gesteckten Karte ? Wozu sollte das wichtig sein? Benutzbar ist die Karte in beiden Fällen nicht und eine Fehlermeldung á la "Keine Karte gesteckt oder gesteckte Karte defekt" überläßt dem Benutzer die Wahl. Der wird ja wohl wissen, ob er eine reingesteckt hat oder nicht. Oder kann zumindest nachschauen.
Ob S. schrieb: > Hans-Georg L. schrieb: > >> Und wie unterscheide ich zwischen einer defekten und einer nicht >> gesteckten Karte ? > > Wozu sollte das wichtig sein? Benutzbar ist die Karte in beiden Fällen > nicht und eine Fehlermeldung á la "Keine Karte gesteckt oder gesteckte > Karte defekt" überläßt dem Benutzer die Wahl. Der wird ja wohl wissen, > ob er eine reingesteckt hat oder nicht. Oder kann zumindest nachschauen. Wenn du davon ausgehst, das immer eine Anzeige vorhanden und jemand vor Ort ist mag das sein. Wenn ich nun so etwas realisieren will ...
1 | if( detect_card() ) { |
2 | |
3 | if( connect_card() ) { |
4 | do_A() |
5 | else { |
6 | call_service(); |
7 | }
|
8 | |
9 | }
|
10 | else { |
11 | do_B(); |
12 | }}
|
Hans-Georg L. schrieb: > Wenn du davon ausgehst, das immer eine Anzeige vorhanden und jemand vor > Ort ist mag das sein. Auch wenn das nicht der Fall ist. Denn wenn niemand vor Ort ist, muss bei Nichtverfügbarkeit in jedem der beiden Fehlerfälle der Service gerufen werden, wenn eine funktionsfähige Karte benötigt wird, um den Job der Gesamtsache erledigen zu können. Was deinen Pseudocode betrifft: Was soll denn do_B() ausrichten? Den CD-Card-Einlegeroboter anwerfen?
Ob S. schrieb: > Hans-Georg L. schrieb: > >> Wenn du davon ausgehst, das immer eine Anzeige vorhanden und jemand vor >> Ort ist mag das sein. > > Auch wenn das nicht der Fall ist. Denn wenn niemand vor Ort ist, muss > bei Nichtverfügbarkeit in jedem der beiden Fehlerfälle der Service > gerufen werden, wenn eine funktionsfähige Karte benötigt wird, um den > Job der Gesamtsache erledigen zu können. > > Was deinen Pseudocode betrifft: Was soll denn do_B() ausrichten? Den > CD-Card-Einlegeroboter anwerfen? Nö warum, die Karte ist nur Optional. Wenn sie nicht da ist, ist es kein Fehler aber wenn sie da ist muss es die richtige sein und funktionieren. Plan B funktioniert immer ;-) Vor Ort hast du oft nur angelerntes Personal oder auch einen Endkunden. Da funktioniert das genau so: "Lauf mal dahin und stecke die Karte rein, wenn die grüne LED weiter leuchtet ist alles Ok, wenn sie ausgeht und die rote LED angeht rufe den Service an". Dazu muss der Bediener auch nicht in den Kartenslot steigen ;-))) Selbst die ganzen Arduino Adapter vom Chinesen haben den Kontakt herausgeführt, teilweise mit pullup und Längswiderstand.
Wer baut mit China Eval Boards Industrieprodukte mit Servicetechniker und Fernwartung?
Niklas G. schrieb: > Wer baut mit China Eval Boards Industrieprodukte mit Servicetechniker > und Fernwartung? Das ist eine ganz andere Frage. Es ging doch darum, das alle es angeblich so machen ... Ob S. schrieb: > Nicht nur in China. Fakt ist nämlich, dass dieser primitive Mechanismus > zur presence detection eigentlich überflüssig ist. Das kann man auch auf > andere Weise ermitteln. Dafür habe ich Beispiele aus der Praxis genommen. Bei einer Eigenentwicklung würde ich diese Leiterbahn und die 2 Widerstände auch nicht einsparen. Bisher ist auch noch nichts über alternative Methoden bekannt. Die Geschichte mit CD/D3 funktioniert nur mit 1Bit SPI. Die SDMMC benutzt aber 4 Bit Daten. Clock und CMD. Was wäre die Alternative ?. eine Menge clock Signale senden und schauen ob was an den anderen Pins wackelt und das im poll Modus ? . Da ist mir ein Pin mit Interrupt lieber.
Hans-Georg L. schrieb: > . Die Geschichte mit CD/D3 funktioniert nur mit 1Bit SPI. Die SDMMC > benutzt aber 4 Bit Daten. Nö, das 4bit Interface wird erst später aktiviert, die Karte startet im 1bit SDMMC ("SD bus") Modus (CMD, CLK, D0). Ist schon viele Jahre her, aber ich meine man kann die Karte wunderbar über D3 erkennen. Außer eben der Widerstand in der Karte ist defekt, das kann man dann nicht unterscheiden von "keine Karte drin".
:
Bearbeitet durch User
Niklas G. schrieb: > Hans-Georg L. schrieb: >> . Die Geschichte mit CD/D3 funktioniert nur mit 1Bit SPI. Die SDMMC >> benutzt aber 4 Bit Daten. > > Nö, das 4bit Interface wird erst später aktiviert, die Karte startet im > 1bit SDMMC ("SD bus") Modus (CMD, CLK, D0). > Ist schon viele Jahre her, aber ich meine man kann die Karte wunderbar > über D3 erkennen. Außer eben der Widerstand in der Karte ist defekt, das > kann man dann nicht unterscheiden von "keine Karte drin". ST scheint das aber nicht zu wissen. Die HAL schmiert bei der Initialisierung ohne Karte jedenfalls ab. Müsste ich mir bei Gelegenheit mal näher anschauen, habe aber im Moment andere Prioritäten. Mein Post war nur dazu gedacht darauf aufmerksam zu machen das es bei den Boards an der Stelle Probleme geben kann.
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.