uAlfat (SD-Interface mit eigenem Kontroller) über UART anst

Gast #790955
Lesenswert?

Hallo, hat schon mal jemand von euch Erfahrungen mit dem uAlfat von 
GHI-electronics gemacht? Dies ist ein SD-Karten-Interface, das einen 
eigenen Kontroller besitzt. Man mus z.B. nur "I" und "CR" senden, um die 
Initialisierung zu  starten. Dies ist die SD-Init Funktion, die als 
Bibliothek mitgelierfert wird. Der Link befindet sich hier:
http://www.ghielectronics.com/details.php?id=1&sid=2

Folgende Pin-Belegung habbe ich zwischen uART und uC
1: an UART-Empfangs-pin des uC angeschlossen (Der uC hat eine eigene 
UART-Funktionalität)
2: An UART-Sende-Pin angeschlossen (SD-Init wird korrekt gesendet, am 
Oszi verfolgt)
3: -
4: GND (wäre nicht nötig, Fehler im Layout)
5: GND
6: RTS, Port als Eingang konfiguriert
7: Portpin, benutze ich aber nicht
8: GND (Pin 8 und Pin 5 stellen UART -Kommuikation ein, möglich ist auch 
IIC und SPI)
9: -
10: -
11: -
12: 3,3V
13: 3,3V
14: Portpin als Ausgang
15: GND
16: -

Die Baudrate ist auf 9613 eingestellt, nötig wären 9600, da dies die 
Werkeinstellung vom UALFAT ist, der uC kann aber nicht genauer.

Folgenden Fehler habe ich: Die Initialisierung wird korrekt gesendet 
durch den uC, der uART solte dies durch vier Zeichen, die einen 
Error-Code darstellten, quittieren.
Die Antwort vom uART schau ich mir auch auf dem OSzi an. Machmal sendet 
er den korrekten Code "!" "0" "0" "RC", dies bedeutet, er hat alles 
initialisiert. Manchmal kommt der Code mit der Aussage "TimeOut-Error", 
ein anderes mal kommt eine vielzhl an Zeichen, die deutlich mehr als die 
erwarteteten 4 sind, die Baudrate scheint auch größer zu sein.

Mein Programmablauf sieht folgedermaßen aus:
UART-Einstellungen des uC
Dann Reset des uART durch toggeln des Reset-Pins
Dann folt einigen Sekunden Code, der nichts mit SD-Kommuikation zu 
tun´hat.
Dann Einschalten der UART-Kommuikation des uC (ich benutze den V850 von 
NEC)
Dann initialisiere ich die UART-Transimit-Unit des uC
Dann sende ich ein Zeichen und warte bis es den Transcieve-Buffer 
verlassen hat (Das erste Zeichen wird aus irgendeinem Grund zweimal 
gesendet, deshalb schalte ich danach den Sende-Pin des uC erst auf 
UART-Funktion um)
Dann kommt der Befehl zum Initialisierung des SD-Interfaces durch zwei 
Zeichen, die nacheinander gesendet werden.(Diese werden korekt 
ausgesendet)

Wie gesagt, manchmal kommt nur Müll zurück vom uALFAT, selten kommt die 
richtige Antwort, was mache ich falsch? Ich tippe auf irgendeine 
Fehlerhafte Beschaltung des uALFAT. Spannungsversorgung ist korekt, 
danaben benutze ich noch den RESET-Pin und den SendePin.

Hat schon mal jemand mit dem Ding gearbeitet? WElcher kontroller dabei 
der Gegenpart war spielt ja keine Rolle.

mfg Daniel
Gast #792916
Lesenswert?

Beim V850 gibt es im Datenblatt eine Beispielseite für die 
Baudrateneistellung. Dort sind für die nötigen 9600 Baud als Alternative 
9613 angeben. Ich bin mir ziemlich sicher, dass man ganau 9600 Baud 
nicht einstellen kann. Bisher hab ich den Fehler noch nicht gefunden, 
ich arbeite aber dran.
Gast #1111436
Lesenswert?

sry für's wiederbeleben dieses alten threads.
kann mir jemand sagen, ob es einen deutschen reseller für die 
ghi-electronics-produkte gibt? hab stundenlang gesucht und keinen 
hinweis gefunden. der niederländische reseller scheint irgendwie nur 
nach NL und BE zu versenden. sieht auch alles sehr nach 
großkundenverkauf aus.

danke für die mühen.
Gast #2791924
Lesenswert?

Wer den uALFAT via UART verwendet und keinen Hardware-Handshake mit RTS 
und CTS macht, muss CTS auf 0 legen.

Es gibt inzwischen einen Nachfolger des uALFAT-SD, nämlich das ALFAT SD 
Board. Wer zusätzlich zur SD-Karte noch einen USB-Anschluss haben 
möchte, kann zum ALFAT OEM-Board greifen.

Distributor für GHI-Produkte ist z.B. Watterott.
Gast #2871038
Lesenswert?

Ein Problem mit dem uALFAT-SD ist, dass dass Teil keinen Unterschied 
macht zwischen busy (der User muss warten, bis die angeforderten Daten 
fertig zur Ausgabe sind) und wenn keine weiteren Daten verfügbar sind 
(dann kann man ewig warten). In beiden Fällen sendet das Board nämlich 
0xFF.
Hier hilft nur ein abgestimmtes timeout.
Und vielleicht ein Firmware-update???

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren