Forum

Einloggen | Registrieren | RSS  

Calcifornia

Wiesbaden,
16.03.2010,
17:18
 

AVR Ram (Elektronik)

Hallo,
wie ist es möglich mit einem AVR (microcontroller)
einen Rambaustein als Speicher zu beschreiben und mit einem Computer auszulesen?

Danke

x y

16.03.2010,
18:54

@ Calcifornia

AVR Ram

» wie ist es möglich mit einem AVR (microcontroller)
» einen Rambaustein als Speicher zu beschreiben und mit einem Computer
» auszulesen?

Man muss ihn anschließen.

geralds(R)

Homepage E-Mail

Wien, AT,
16.03.2010,
19:07

@ Calcifornia

AVR Ram

» Hallo,
» wie ist es möglich mit einem AVR (microcontroller)
» einen Rambaustein als Speicher zu beschreiben und mit einem Computer
» auszulesen?
»
» Danke

---
Hallo,

Das kommt zum Einen darauf an, welchen AVR du hast.
Wenn der Controller die Möglichkeit bietet, über seine Ports eine Adress- und Datenbus Verbindung zu machen,
dann ist das leicht.
Das macht der Controller mit seiner "Automatik" selbst.
Dann sind nur ein paar Befehle nötig.

Hast dagegen einen Controller, der nur über seine Ports als herkömlich I/O schaltet, dann musst einiges basteln.
Dann anschließend musst per Software die Schreib-Lese Sequenzen selbst herstellen.
Dabei sind vereinfacht 4 Schritte nötig:
* Adresse aktivieren mit der Steuerleitung WR oder RD Vorbereitung; Nebenbei -- Device Enable nicht vergessen!
* Adresse zwischenspeichern
* Daten auf den Port legen bei WR bzw. lesend holen bei RD
* Daten mit der Steuerleitung WR oder RD enablen --- durchschalten, die Daten verarbeiten.

Ein Beispiel wäre die Display Ansteuerung.
8 Datenbits, 2 Adr.-, 3 Steuerleitungen.

Die Adressleitungen vom Controller wären lediglich Ausgänge.
Es sei denn, Adr-Dat sind gemultiplext, oder die Ports machen auch was anderes.
Da könnte auch u.U. eine Tri-State Funktion von Nöten sein.
Kommt auch auf deine wirkliche Anwendung an.

Tip:
Schau dir die 8051 Derivate an -- Adr-Dat mux.
Dazu die Steuerleitungen.
Die könntest auf den AVR rüber abbilden.

Grüße
Gerald

--
...und täglich grüßt der PC:
"Drück' ENTER! :wink: Feigling!"

hws(R)

E-Mail

59425 Unna,
16.03.2010,
20:26

@ Calcifornia

AVR Ram

» Hallo,
» wie ist es möglich mit einem AVR (microcontroller)
» einen Rambaustein als Speicher zu beschreiben und mit einem Computer
» auszulesen?

Vermutlich gar nicht, mit dem aufwand den du zu machen gewillt bist. Zur Datenübertragung von µC zu PC gibts bessere Möglichkeiten.

Wie man ein Ram an einen AVR anschließt, steht in diversen Atmel-Applikationen. Dann kann man den (je nach Applikation) als linearen Speicherbereich beschreiben bzw lesen.

Aber sobald man den µC abschaltet oder das Ram rausnimmt, abzieht oder so (Spannung fällt aus), ist der Raminhalt weg. Man muss also eine Batteriepufferung vorsehen.

Oder man nimmt ein (E)Eprom, welches auch bei Spannungsausfall seinen Speicherinhalt behält. Oder man nimmt eine SD-Karte. (auch dafür gibts Applikationen)

Oder man nimmt ne Serielle Verbindung zwischen µC und PC.

Wie üblich: Beachte Punkt 2 der "7 Tipps für Neulinge"
Setze mal etwas früher an: was und welche Daten willst du von wo nach wo übertragen. Dann kommt man evtl auf eine bessere Lösung als ein Ram zum Austausch zu nehmen. (oder begründe deine Entscheidung)

hws

Calcifornia

Wiesbaden,
19.03.2010,
16:22

@ hws

AVR Ram

» Vermutlich gar nicht, mit dem aufwand den du zu machen gewillt bist. Zur
» Datenübertragung von µC zu PC gibts bessere Möglichkeiten.
»
» Wie man ein Ram an einen AVR anschließt, steht in diversen
» Atmel-Applikationen. Dann kann man den (je nach Applikation) als linearen
» Speicherbereich beschreiben bzw lesen.
»
» Aber sobald man den µC abschaltet oder das Ram rausnimmt, abzieht oder so
» (Spannung fällt aus), ist der Raminhalt weg. Man muss also eine
» Batteriepufferung vorsehen.
»
» Oder man nimmt ein (E)Eprom, welches auch bei Spannungsausfall seinen
» Speicherinhalt behält. Oder man nimmt eine SD-Karte. (auch dafür gibts
» Applikationen)
»
» Oder man nimmt ne Serielle Verbindung zwischen µC und PC.
»
» Wie üblich: Beachte Punkt 2 der "7 Tipps für Neulinge"
» Setze mal etwas früher an: was und welche Daten willst du von wo nach wo
» übertragen. Dann kommt man evtl auf eine bessere Lösung als ein Ram zum
» Austausch zu nehmen. (oder begründe deine Entscheidung)
»
» hws

Ich möchte einen AVR gesteuerten Roboter bauen mit dem Konrad SW bzw farb kamera modul.
Der Tip mit der SD Karte ist mir auch die Tage eingefallen, das gefällt mir, denn so kann ich bis zu (momentan) 16GB aufzeichnen.
Wenn der Roboter nach einer längeren zeit wieder "zuhause" ist kann ich dann die SD Karte rausnehmen und im PC lesen.

PS:
Noch ein Paar fragen:
Wenn ich den ISP Programmer mit Ponyprog benutzen würde (ist ja alles noch in der Planung), in welcher Sprache wird das dann Programmiert?
Ich glaube Assembler, aber geht das auch mit C++?

mit freundlichen Grüßen

geralds(R)

Homepage E-Mail

Wien, AT,
19.03.2010,
16:48
(editiert von geralds
am 19.03.2010 um 16:49)


@ Calcifornia

AVR Ram; programmieren

Hi,

» Ich möchte einen AVR gesteuerten Roboter bauen mit dem Konrad SW bzw farb
» kamera modul.
» Der Tip mit der SD Karte ist mir auch die Tage eingefallen, das gefällt
» mir, denn so kann ich bis zu (momentan) 16GB aufzeichnen.

Das mit deer SD-Karte geht natürlich gut.
Ist ein definiertes Peripheriegerät, das am AVR Port gut anzupassen geht.

Die passende Software im PC wirst dann auch brauchen, damit du die Daten verarbeiten kannst.
Ausser dir genügen die Daten in Hex oder Binär.

» Wenn der Roboter nach einer längeren zeit wieder "zuhause" ist kann ich
» dann die SD Karte rausnehmen und im PC lesen.
»
» PS:
» Noch ein Paar fragen:
» Wenn ich den ISP Programmer mit Ponyprog benutzen würde (ist ja alles noch
» in der Planung), in welcher Sprache wird das dann Programmiert?
» Ich glaube Assembler, aber geht das auch mit C++?
»

Mit Ponyprog würde ich gar nicht anfangen.
Besser ist das Entwicklungstool STK500 oder STK600.
Damit kannst alle AVR programmieren.
Dazu hast gleich ein Prototyping Board zum Spielen.
Das ist nicht allzu teuer, mit Ponyprog vergleichend, es
bleibt dir in der Zukunft mit guten Diensten zur Verfügung.

Die Routinen können in Assembler und oder C, C++ programmiert (erstellt) werden.
Dann anschließend wird ein HEX-File beim Compilieren gemacht.
Dieses schickst zum AVR-Chip, programmierst ihn damit.

Grüße
Gerald

--
...und täglich grüßt der PC:
"Drück' ENTER! :wink: Feigling!"

hws(R)

E-Mail

59425 Unna,
19.03.2010,
17:01

@ Calcifornia

AVR Ram

» Ich möchte einen AVR gesteuerten Roboter bauen mit dem Konrad SW bzw farb
» kamera modul.

Und das Video selbst auf die SD Karte schreiben? Inclusive Digitalisierung ? Da wird der Atmel aber leicht überfordert sein.
Da würde ich mir mal diverse Fertiglösungen Überwachungskameras bei Pearl mal ansehen. Oder die Brillengestellkamera für's skaten.

» Wenn ich den ISP Programmer mit Ponyprog benutzen würde (ist ja alles noch
» in der Planung), in welcher Sprache wird das dann Programmiert?

Egal. Der ISP Prommer dient nur dazu, fertigen Hex-Code in den µC zu brennen.
Woher der Hexcode kommt, ist egal. Man kann mit Datenblatt selbst Hex-code schreiben, üblicherweise geht's aber per Assembler, der den Hexcode dann aus seinem Assemblercode erzeugt.

Oder aus C. Dafür gibts bei Atmel den kostenlosen WinAVR Compiler. Der macht aus der C-Source die Hexcodes für den Prommer.

Mein lieber Scholli, da hast du aber noch einiges zu tun bei der Grundlage ...

hws

hws(R)

E-Mail

59425 Unna,
19.03.2010,
17:07

@ geralds

AVR Ram; programmieren

» [SD-Karte] Ist ein definiertes Peripheriegerät, das am AVR Port gut anzupassen geht.
Und du hast auch entsprechende AVR-Routinen, um unter FAT32 in ein entsprechendes File zu schreiben?

» Ausser dir genügen die Daten in Hex oder Binär.
Und um die aus einem Videostrom einer der üblichen Kameramodule zu machen ... - nicht mit nem AVR.

hws

Calcifornia

25.03.2010,
19:40

@ hws

AVR Ram; programmieren

» » [SD-Karte] Ist ein definiertes Peripheriegerät, das am AVR Port gut
» anzupassen geht.
» Und du hast auch entsprechende AVR-Routinen, um unter FAT32 in ein
» entsprechendes File zu schreiben?
»
» » Ausser dir genügen die Daten in Hex oder Binär.
» Und um die aus einem Videostrom einer der üblichen Kameramodule zu machen
» ... - nicht mit nem AVR.
»
» hws

Calcifornia

25.03.2010,
19:48

@ hws

AVR Ram; programmieren

» » [SD-Karte] Ist ein definiertes Peripheriegerät, das am AVR Port gut
» anzupassen geht.
» Und du hast auch entsprechende AVR-Routinen, um unter FAT32 in ein
» entsprechendes File zu schreiben?
»
» » Ausser dir genügen die Daten in Hex oder Binär.
» Und um die aus einem Videostrom einer der üblichen Kameramodule zu machen
» ... - nicht mit nem AVR.
»
» hws

Also, Ich hab mich jetzt für Assembler entschieden.
So, kennt sich da jemand aus?
wo könnte ich so ne kamera anschließen?
Ich würde dann die Daten der Kamera durch einen ATMega8 (515) in die SD karte leiten und später auf dem PC "auswerten", also konvertieren.
An welchen Pins kann ich das machen?
Einfach I´s nehmen und als Port nehmen???
Bin noch anfänger und hab nur die Wichtigsten sachen behandelt.
(Register, Ports, EEPROM, etc.)

PS: Noch ne frage:
Ich habe den Plan meines Roboters jetzt in ein Auto verwandelt (einfachere fortbewegung). Ich will ein "Dreirad" bauen und das Lenkrad per Servo steuern.
die haben ja ansprechzeiten zwischen 1ms und 2ms.
Wenn ich die Taktzahl nehme und ein bissle rechnen tue
( :-) ), dann müsste ich dafür aber auch wissen wieviele Takte ein bestimmter Assembler-Befehl "braucht".
Die Ret (Return) Anweisung braucht ja z.B. (glaub ich) 3 Takte. Es muss ja möglichst genau werden...

MFG Calcifornia

geralds(R)

Homepage E-Mail

Wien, AT,
25.03.2010,
19:59
(editiert von geralds
am 25.03.2010 um 19:59)


@ Calcifornia

AVR Ram; programmieren

---
Hi,

Da gibt es noch eine Entscheidungshilfe.
Hier kannst dich auch durchgraben:

http://www.roboternetz.de/phpBB2/dload.php?action=category&cat_id=15

µController, Schaltpläne, Programme, Hilfen --- alles kannst hier finden.

Grüße
Gerald

--
...und täglich grüßt der PC:
"Drück' ENTER! :wink: Feigling!"

hws(R)

E-Mail

59425 Unna,
25.03.2010,
22:31

@ Calcifornia

AVR Ram; programmieren

» Also, Ich hab mich jetzt für Assembler entschieden.
» So, kennt sich da jemand aus?
Ja, ich habe µC's und (insbesondere Atmels) schon in Assembler programmiert.
Vom ersten AT1200er (als der vor >15 Jahren rauskam, mit einem von der Firma bezahlten Seminar und Entwicklungshardware / Software, die heute museumsreif ist, die ich aber noch habe) bis zum aktuellen AVR-Dragon Entwicklingssystem und C-Compiler WinAVR.

» wo könnte ich so ne kamera anschließen?
» Ich würde dann die Daten der Kamera durch einen ATMega8 (515) in die SD
» karte leiten und später auf dem PC "auswerten", also konvertieren.

Versuch doch erstmal, irgendwelche beliebige Daten so auf eine SD karte zu schreiben, dass ein PC die lesen kann.
Z.B. "Test1, Test2 ... Test xxxx" bis du ein oder wieviel GB voll hast.

(lasse mich aber gern des Gegenteiles überzeugen)

Hast du eine Ahnung, wie man Daten unter einem µC auf eine SD-Karte unter Verwendung des FAT32 Dateisystems schreibt?
Oder überhaupt wie das Directory unter FAT32 aufgebaut ist?
OK, ein beliebiges riesengrosses File per PC auf die Karte schreiben und dann dessen Inhalt per µC zu überschreiben ginge auch. (wenn man etwas Ahnung von FAT32 hat)

» An welchen Pins kann ich das machen?
» Einfach I´s nehmen und als Port nehmen???

Ja, nur hat ein üblicher Atmel nicht die Power, einen Videostrom in ein PC-lesbares Format zu konvertieren und auf eine SD Karte zu schreiben.
Kannst du ein FBAS Signal (wie es üblicherweise von einer Videokamera geliefert wird) in ein PC-übliches Format wandeln?

» Bin noch anfänger und hab nur die Wichtigsten sachen behandelt.
» (Register, Ports, EEPROM, etc.)

Dann lern noch nen paar Monate und erkenne, dass das so nicht geht. Und kaufe dann bei Pearl oder so eine passende Kamera, die auf SD Karte schreibt.

» PS: Noch ne frage:
» Ich habe den Plan meines Roboters jetzt in ein Auto verwandelt
Egal, das Problem "Videosignal Format-wandeln und auf eine SD Karte schreiben" ändert sich damit nicht.

» .. dann müsste ich dafür aber auch wissen wieviele Takte ein
» bestimmter Assembler-Befehl "braucht".

Kann man im Manual bei Atmel nachlesen und ebendieses Manual kostenlos runterladen - allerdings nur in englisch.

» Die Ret (Return) Anweisung braucht ja z.B. (glaub ich) 3 Takte. Es muss ja
» möglichst genau werden...

Nöö, die Mechanik ist eh so lahm, dass du dir über die ansteuernde Software keinen Kopf machen musst.
Eher musst du die Elektronik "bremsen" damit die Mechnik noch mitkommt. War machen 3 Takte (RET) im Prozessor aus und wieviel µS braucht ein Servo für eine bestimmte Bewegung?

Ich behaupte mal, deine Wünsche und deine Kenntnisse sind um den Faktor x0000 fach auseinander.

Lass auf deinem Entwicklungssystem die LED nach dem Turorial "Blink" (Suchfunktion der Suchmaschine deines Vertrauens) mal blinken. Dann beherrscht du die ersten Schritte in AVR-Assembler, Prommer, ASM Programmierung und "Probierhardware".

Dann schreib damit irgendwas auf eine SD Karte (siehe oben, SD-Karten Anbindung musst du natürlich auch erstmal zusammenlöten) und versuche das per PC zu lesen.
DANACH können wir weiter diskutieren.

hws