Autor |
Programmieren eines Roboters |
|
|
|
|
BID = 103457
robodriver Stammposter
Beiträge: 217
|
|
Hi leute,
ich möchte mir einen Roboter bauen und ihn von einem Microprozessor (AT90S1200) steuern lassen.
Zum Programmieren hab ich AVR Studio 4; da ist dieser Ic auch aufgeführt und man kann das geschriebene Programm auch gleich auf den Controller schreiben lassen, dies macht man über den COM-Anschluss. aber ich weis nicht welche leitungen des COM-Anschlusses an welchen Pin des AVR´s kommen. Und ich hab auch schon gehört, das man zur Übertragung drei Wiederstände benötigt.
Währe toll wenn ihr mir eventuell einen Schaltplan oder Link geben könntet.
Vielen Dank |
|
BID = 103495
SIGINT Stammposter
Beiträge: 381 Wohnort: Mönchengladbach
|
|
BID = 103676
MinceR Stammposter
Beiträge: 277
|
du kannst nicht dirket vom avrstudio auf den µC gehen. das geht nur mit dem stk500 board. oder du nimmst die hex datei die das avrstudio macht(in deimen projekt ordner) und gehst dann über sp12 (programmiergerät und software) ist die 3 widerständeschaltung am LPT..
anleitung und sp12 http://www.xs4all.nl/~sbolt/e-index.html
sehr gute seite. wenn du eh assembler schreibst lies dir mal das über avrmon durch..
|
BID = 103703
SIGINT Stammposter
Beiträge: 381 Wohnort: Mönchengladbach
|
Hi zusammen,
soweit ich weiß sind die AVRs In-circuit programmable,d.h. man kann den µC direkt in der Zielschaltung programmieren... man muss eventuell ein paar widerstände an die Programmierleitungen packen, um den Programmieradapter von der
Schaltung zu trennen (100% sicher bin ich mir da aber nicht).
Eine andere Möglichkeit wäre es eine VM auf dem AVR zu schreiben,die einen Pseudo-Maschienen Code ausführt,den man sich so zusammenstellen kann,wie man will. Das hat jemand für den PIC16F84 gemacht: nannte sich PICARO,oder so. Vorteil dabei: Man kann sich Assembler-Befehle ausdenken:
z.B. "WLCD wert" für Write-LCD, oder MUL op1 für eine Multiplikation.
Gruß,
SIGINT
P.S.: Ganz vergessen: Bei der VM kann man auch ein Remote-Bootloader einbauen,der das Programm per RS232 in den Speicher lädt :)
[ Diese Nachricht wurde geändert von: SIGINT am 19 Sep 2004 20:41 ]
|
BID = 103791
MinceR Stammposter
Beiträge: 277
|
in system programmieren ist kein ding. musst du beim layout nur berücksichtigen. kannst z.b. jumper oder sowas in die richtung verwenden um die miso mosi sck vom rest der schaltung zu trennen. damit deine schaltung nicht beim programmieren durchdreht. brauchst 5 anschlüsse. die 3 oben genannten + reset + gnd. so zumindest mach ich das fast immer..
|
BID = 104390
robodriver Stammposter
Beiträge: 217
|
Kann ich die Komplizierte Schaltung am Reset nicht auch weg lassen?
Kann ich Reset einfach mit GND oder Vcc verbinden oder eventuell sogar direkt an den LPT?
|
BID = 104697
MinceR Stammposter
Beiträge: 277
|
klar, das ist nur ein brown out reset. also wenn die spannung zu weit abfällt wird der µC resettet. den reset würde ich mit eine RC schaltung anschliessen. also von Ub in widerstand, dann in den µC und gleichzeitig in nen kondensator.
sinn dieser schaltung ist folgender. beim ein schalten ist der kondensator leer, der reset ist auf gnd. nach xx zeit wird der kondensator immer voller und voller bis am reset Ub anliegt. somit wird der µC einen tick nachdem du spannung angelegt hast erst resetet. kannst ihn zur not aber auch über einen 1k widerstand oder so an ub schliessen also einfach nen pull up. das programmiergerät muss reset nämlich auf masse ziehen können sonst kann er nicht beschrieben werden... und laufen tut er nur wenn reset auf ub liegt...
|
BID = 104901
robodriver Stammposter
Beiträge: 217
|
Also zusammenfasende: zum Programmieren muss der Reset an 5V liegen und sonst auf Masse?
|
BID = 104987
MinceR Stammposter
Beiträge: 277
|
nene, einfach gesagt der reset muss so angeschlossen werden wie auf den bild hier
Bild eingefügt
der widerstand und kondensator sollte also auch auf deiner fertigen platine sein. somit wird der µC erst resetet wenn die spannung ein paar ms schon anliegt, sonst könnte er fehler machen...
edit: ich würde eh dieses programmiergerät vorschlagen. den 100ohm widerstand und 22pf kondensator kannste getrost streichen, ach ich änder das bild mal eben aufs nötigste...
[ Diese Nachricht wurde geändert von: MinceR am 22 Sep 2004 15:50 ]
|
BID = 104997
MinceR Stammposter
Beiträge: 277
|
http://pskz.ngz-server.de/MinceR/misc/icp_interface.gif
so das riecht im normal fall aus. du musst aber natürlich xtal1 und xtal2 an nen quarz anschliessen wie auf diesem bild http://www.xs4all.nl/~sbolt/Images/progrmmr.gif
je nachdem wie schnell er sein soll kannste auch ein anderes quarz nehmen.. also wenn der 8MHz verträgt kannste halt ein 8MHz quarz nehmen. und du brauchst natürlich 5V von deiner schaltung damit er saft hat...
die schaltung reicht meines wissens nach für alle AT90xxxxx und alle ATmegas...
MfG MinceR
|
BID = 105436
robodriver Stammposter
Beiträge: 217
|
Also muss währed des Programmierns der Reset auf High sein? wird dann nicht alles gleich wieder gelöscht?
|
BID = 105442
robodriver Stammposter
Beiträge: 217
|
Ähm, die erste Datei kann ich nicht öffnen (auf Arbeit), diese Seite ist gesperrt, kannst du das Bild eventuell auch als Bitmap anhängen, das müsste dann gehen.
|
BID = 105515
MinceR Stammposter
Beiträge: 277
|
nene, der reset muss wärend des programmierens vom programmiergerät auf high und low gezogen werden können.
wenn der reset auf Low ist hält der microcontroller an und steht dann im programm an erste stelle, also wenn der reset auf high geht startet der das programm vom anfang an.
ausserdem kann wenn der reset auf L ist er auch programmiert werden. dann sind die miso mosi usw automatisch fürs programmieren eingestellt.
das mit dem reset ist halt nur das wenn dein programmiergerät am reset hängt dein programmiergerät ihn auf H und L ziehen kann und wenn es nicht drann hängt wird der µC beim einschalten resetet. der soll ja nicht wenn du die spannung einschaltest irgendwas aus deinem geschribenen programm machen sondern beim ersten befehl anfangen..
Das Dateiformat *.bmp ist nicht erlaubt ! Denken Sie bitte an den Traffic ! Deswegen nicht hochgeladen
|
BID = 105522
MinceR Stammposter
Beiträge: 277
|
also zum löschen,
der µC wird natürlich nicht durch den reset gelöscht. du hast einmal speicher fürs programm, der geht nur verloren wenn du das programmiergerät ranhängst und ihn neu beschreibst. und du hast den sram in dem alle arbeitsregister sind usw. der geht bei jedem mal wenn er keine spannung mehr hat verloren. aber damit du wichtige gemessene daten speichern kannst wenn du das willst haste das eeprom.
hab momentan leider keine zeit,
MfG MinceR
|
BID = 105888
robodriver Stammposter
Beiträge: 217
|
Wenn der Microcontroller nicht mehr am strom hängt, sollte er das Programm auf keinen Fall "vergessen"!
Wird das Programm nicht im eeprom gespeichert?
|