Forum: Mikrocontroller und Digitale Elektronik Programmierung AT91SAM7S64 RS232 / USB


von Ma G. (brian)


Lesenswert?

Hallo liebe Microcontroller-Gemeinde,

ich bin mit dem Latein meiner Programmiersprachen am Ende und suche 
jemanden der einen RS232 / USB Konverter mit NAND Flash Speicher 
programmieren kann. (Selbstverständlich gegen Bezahlung) Ich kann es auf 
jeden Fall nicht. Und mir ist auch klar, dass es eine ganze Weile dauern 
würde, bis ich dem erforderlichen Niveau angelangt bin.

Die Aufgabe der Platine liegt darin, selbstständig Daten über die RS232 
Schnittstelle auf den internen Speicher (NAND Flash) abzulegen. 
Spannungsversorgung geschieht über die RS232. Die Schnittstelle der 
Datenquelle entspricht den RS232 Spezifikationen. Die Schnittstelle zum 
Herunterladen verwendet ein Startbit, 8Datenbits mit dem 
niedrigstwertigen Bit an erster Stelle, ein Bit geradzahliger Parität 
und 1 Stoppbit.

Der ATMEL ist ein AT91SAM7S64.

Ich bin recht zuversichtlich, dass es hier jemanden gibt, der mein 
fehlendes Wissen ersetzen kann.

Ich hoffe, dass die Beschreibung fürs erste ausreichend ist.
Weitere Infos gibt es gern auch nachträglich.

von Timmo H. (masterfx)


Lesenswert?

Also ich habe gerade ein uC Programmiert, der die Daten, die über die 
serielle Schnittstelle via SRecords gesendet werden in einen NOR-Flash 
schreiben. Der Treiber für den Flash-Speicher umfasst gerade mal 30 
Zeilen oder so. Du musst doch eigentlich nur den Befehlssatz des 
Flash-Speichers umsetzen, eigentlich muss man dafür noch nichtmal 
wirklich viel von der Programmierung des Atmels verstehen. Wo genau 
liegt denn dein Problem? Empfangen der Daten, oder schreiben/löschen des 
Flash-Speichers?

von Rooney B. (rooney)


Lesenswert?

Naja NOR != NAND


Soll das zyklisch passieren, oder auf welche Adresse sollen die Daten 
geschrieben werden?

von Ma G. (brian)


Lesenswert?

Hallo Timmo,

das Problem ist hier die Umsetzung des Protokolles für den Datentransfer 
über die RS232. Die Routine muß über die RS232 die Daten anfordern, die 
dann von der Datenquelle über die RS232 in den Flash-Speicher 
geschrieben werden sollen.

Und da waren sie wieder die kleinen Probleme.
Eine Displaysteuerung würde ich gerade noch hinbekommen, das jedoch 
übersteigt etwas meinen Horizont.

Es ist von der Logik her sicher kein besonders großer Umfang an 
Quelltext.

Strukturell könnte ich es als Flussdiagramm aufzeichnen.
Nur in der Umsetzung hakt es.

von Ma G. (brian)


Lesenswert?

Es sollen 8 verschiedene Nachrichtentypen zyklisch über die RS232 
eingelesen werden.

von Rooney B. (rooney)


Lesenswert?

Poste einmal ein Flussdiagramm, aber so wie es sich anhört scheint es 
nicht so kompliziert zu sein.

Ich würde dir dennoch raten es selbst zu machen, immerhin willst ja was 
lernen und dieses Forum wird dir sicher unter die Arme greifen. Oder 
hast du einen dringenden Abgabetermin?

von Timmo H. (masterfx)


Lesenswert?

@ Rooney Bob
> Naja NOR != NAND
Das ist schon klar, aber vom Prinzip bleibt es immer gleich. Nur dass 
man bei NAND größere Blockgrößen hat und er etwas anders angesprochen 
wird. Man kann halt nicht Byte/Wortweise schreiben, aber das wars auch 
schon fast.
Aber er scheint ja eh nur Probleme mit den Protokollen zu haben...

von Ma G. (brian)


Angehängte Dateien:

Lesenswert?

Richtig.

Das Problem liegt ganz klar beim Protokoll.

Auszug hängt an.
Spätestens beim Aushandeln der Baud Rate hört es bei mir auf.

von Timmo H. (masterfx)


Lesenswert?

Gibt es eine Grundbaudrate? Sprich es werden meinetwegen die ersten 
Bytes immer mit 9600 baud übertragen und dann eingestellt wie sie 
tatsächlich sein soll? Oder aber niemand weiß wie schnell es ist, und es 
muss anhand der Bits erkannt werden mit welcher Baudrate gesendet wird?

von Ma G. (brian)


Lesenswert?

Die Baud Rate wird immer zu Beginn einer Übertragung ausgehandelt. Die 
Grundbaudrate ist 9600. Maximal werden 115200 Baud unterstützt. Der 
ATMEL kann ja die 115200.

von Timmo H. (masterfx)


Lesenswert?

Gut, dann kann ich das Problem nicht ganz nachvollziehen. Du musst doch 
nur die paar Bytes auslesen die du empfängst (80 EE F0 04 87 + 01 01 + 
0X, wobei X sagt wie die Baudrate sein soll). Ist doch nur ein 
stinknormaler vergleich mehrerer Bytes.

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.