Wie bekomme ich das C-Programm in den AVR-Chip?
Moin moin!
Ich hab mir gerade WinAVR runtergeladen (WinAVR-20030913-bin-install.exe), ein 18MB-Monstrum. Allerdings bin ich jetzt unangenehm ueberrascht, dass das eine unuebersichtliche Ansammlung von Tools ist, die alle irgendwie nicht richtig zusammengehoeren.
"Programmers Notepad" hab ich inzwischen als den Editor identifiziert, mit dem ich den Quellcode schreibe. Dort muss man anscheinend erst unter "Options" irgendwie den Compiler einbinden, um den Quellcode ueberhaupt kompilieren zu koennen. Das sollte ja wohl gcc.exe sein, hab ich also mal dort eingetragen und versucht ein Minimalprogramm
int main(void)
{
return 0;
}
zu kompilieren. Aber schon das ging nicht ("gcc.exe: no input files,> Process Exit Code: 1").
In dem Readme steht dann noch was von makefiles und binutils, das sieht fuer mich alles aus wie C-Softwareentwicklung unter Unix, sprich Steinzeit, was mir noch nie gelegen hat ;-)
AVRs sind doch weit verbreitet, da gibts doch bestimmt ein vernuenftiges Entwicklungstool, so wie zum Beispiel die CControl-Basic Entwicklungsumgebung von Conrad. Muss ja nix besonderes sein, bloss ein Editor mit nem Knopf "Compile" und nem Knopf "Download to Microcontroller". Sowas wie ne sehr einfache Version vom MS Developerstudio oder dem JCreator halt, bloss um den Download-Knopf erweitert...
Kennt jemand sowas bzw weiss, wo man sowas herbekommt??
Falls nicht:
- Kann mir jemand sagen, wie ich in diesem komischen Programmers Notepad die Tools einbinden muss, damit sie aus meinem Quellcode eine Datei machen, die ich dann in den AVR-Chip schiessen kann?
-Wie kriege ich besagte Datei dann in den Chip? Anscheinend ja nicht vom Programmers Notepad aus?
-Muss ich mich bei AVR auch noch um das Linken kuemmern oder macht wenigstens das der Compiler?
Makefiles und den ganzen Summs sollte ich eigentlich nicht brauchen, meine erste Anwendung waere ein einziges C-File. Falls man bei den AVRS schon fuer einfache Portzugriffe Headerfiles (.h) einbinden muss, geht das hoffentlich noch ohne Make??
Assemblerprogrammierung taete mich auch noch interessieren, beim 68HC... (CC1) bin ich da recht fit. Ist das Handling da vielleicht bei AVRs einfacher als das von C-Programmen?
Die Hardware sollte ich eigentlich komplett haben: Ein AVR-ISP Adapter fuer den Parallelport, eine kleine Schaltung um die Pins meines AT90SLS2343 und 5V auf ein Gegenstueck zum zehnpoligen Stecker am Adapter zu bringen (nach der Schaltung im AVR-Tutorial bei Microcontroller.com).
Kann jemand helfen???
Nils
Downloading, Installing and Configuring WinAVR
Hallo,
bin/war in einer ähnlichen Situation wie du. Eine, wie ich meine, gute Einführung findest du unter
http://www.avrfreaks.net/Tools/ToolF...fig_WinAVR.pdf
Allerdings habe ich die Übertragung vom PC auf den Mikrocontroller mit dem Programm Ponyprog v2.06 beta
Download unter:
http://www.lancos.com/ppwin95.html
bewerkstelligt.
Device auswählen, Setup durchführen und zwar so:
SETUP INTERFACE SETUP PARALLEL, AVR ISP I/0, nicht vergessen den LPTx Port auswählen und anschließend zu kalibrieren.
Dann *.hex Datei aus WinAVR.pdf Kapitel 6 (Your First WINAVR Project) laden und übertragen.
Das Kabel vom Parallelport zum Mikrocontroller sollte möglichst kurz sein. (Ich hatte eines das ca. 2m was zu ständigen Problemen bei der Übertragung führte, nachdem ich die Länge des Kabels halbiert habe, funktioniert es jetzt ausgezeichnet)
Folgenden Stecker (Paralleles Interface für AVR und PonyProg) habe ich mir gebastelt
http://s-huehn.de/elektronik/avr-prog/avr-prog.htm
Viel Erfolg
robi
Liste der Anhänge anzeigen (Anzahl: 1)
Moin moin!
Inzwischen hab ich das WinAVR-Paket halbwegs ent-droeselt. Kjions Tutorial war da ne grosse Hilfe. Ich habs erstmal genauso eingerichtet wie dort beschrieben, mit den drei Make-Eintraegen bei den Tools und dem Speicherplatz-Anzeiger.
Jetzt kaempfe ich mit dem Programmieren, aber da ich C mal sehr gut konnte, krieg ich das schon "wiederbelebt". Hab da auch die Anleitung von Christian Schifferle installiert, die ist gar nicht schlecht, um die Eigenheiten des AVR-Cs kennenzulernen.
Das naechste Problem wird dann das Schiessen des Flash-Speichers. Ich hab mir wie gesagt den AVR-ISP bestellt. Dann hab ich auf mikrocontroller.net diesen Schaltplan fuer die ISP-Programmierung gefunden und das ganze leicht abgewandelt, weil ich ja nen anderen Chip benutze (AT90S2343) und einen anderen ISP-Stecker hab. Bei mir kommt dann der zehnpolige Stecker vom Adapter auf einer Pfostenleiste (2*5) an und von da gehen dann die Signale Reset, SCK, MISO und MOSI zu einer 8poligen Fassung. Zum Programmieren stecke ich meinen AVR da rein, danach kommt er in die wirkliche Anwendung. Externen Oszillator brauch ich keinen.
Wo ich mir noch nicht ganz sicher bin: In dem Schaltplan ist eine 5V-Spannungsquelle angegeben, ist damit gemeint, das auf dem Vcc-Pin des Adapters 5V rauskommen und den Chip und die Schaltung fuer die Programmierung versorgen? Oder muss ich die 5V von aussen anlegen, um damit den Adapter, die Schaltung und den AVR zu versorgen?
Ein anderes Problem ist Windows XP: Wenn ich das Make-Tool zum Programmieren aufrufe, bekomme ich die Meldungen:
avrdude -p at90s2343 -P lpt1 -c avrisp -U flash:w:stepper.hex
avrdude: serial_open(): can't set attributes for device "lpt1"
Ich vermute mal, das ist diese (absichtliche?) Fehlfunktion von Windows XP, dass Portzugriffe prinzipiell geblockt werden. Weiss jemand dafuer eine Loesung? Ich meine mal gelesen zu haben, dass es ein Programm gibt, dass man einmal ausfuehrt und dann hat man auf den Port, den man dabei angegeben hat, freien Zugriff. Dummerweise kann ich das aber im www nirgends finden...
Besten Dank fuer alle Tips,
Nils