Also, bei mir solls jetzt mal losgehen, da ich nen Roboter beuen wollte, der für vherschiedene Aufgaben je einen Controller haben soll, damit der HAuptcontroller nicht so überlastet ist, hab ich mich jetzt dazu durchgerungen mich mal in das Thema AVR reinzuarbeiten.
Ich hab jetzt schon da:
3x At90S2313
Das BuchBascomAVR
Installierte Version von Bascon AVR-Demo
nen Programmer von ebay, foto unten
ICh hab mich im Buch noch nicht eingelesen und will auch erstmal ein Test-Programm laufen lassen, also z.B: blinkende Diode.
Kleines ERfolgserlebnis, bevors losgeht, und Bestätigung, dass die Hardware passt.
So, jetzt meine Probleme:
Wie muss ich das BAscom-Programm einstellen, damit es klappt?
vor Allem, weil ich da kein LPT1-Ausgang finde.
Ich bräuchte ein fertiges kleiens Programm.
Wie start ich ein Programm vom AVR? (Starteingang/Reset-Eingang?)
ja und dann nur noch auf nen TEstplatine, und ich hoffe es blinkt, oder von mir aus leuchtet auch erstmal.
Eine Frage zur geplanten Programmiersprache:
Muss es Basic sein oder könntest du dich auch dazu durchringen, in C zu programmieren.
Grund:
Gerade die Atmel-Mikrokontroller sind von ihrer Architektur her speziell für die Ausführung kompilierter C-Programme ausgelegt. Da hat man also von der Perfomance her ein Heimspiel. Mit WinAVR gibt es auch eine prima Entwicklungsumgebung für 0,- EUR, die Programmierung geht mit PonyProg.
BascomAVR ist natürlich auch eine Variante. Allerdings kann ich da nicht viel helfen, da ich mich voll auf Assembler und C in Verbindung mit den Atmel-Mikrokontrollern spezialisiert habe. Die ausgefeilteren Algorithmen mit höheren Perofomanceansprüchen könnte ich mit BascomAVR auch nicht - oder nur unverhältnismässig schwerer - umsetzen.
Wenn du willst, zeige ich dir, wie man eine Leutchdiode in C mit WinAVR programmiert und dann mit PonyProg in den 2313 bringt. Vielleicht findest du dann ja den Weg in die Gemeinde der C-Programmierer.
Aber trotzdem zu deinen Fragen:
Was ich da auf dem Bild sehe ist nur ein Programmiergerät mit Adaptern für verschiedene Atmel-Bausteine. Damit kannst Du die Bausteine programmieren, diese müssen danach dann aber in das eigentliche Zielsystem umgesetzt werden.
Ich nehme an, dass du nur die AT90S2313-Bausteine hast und noch keine weitere Testplatine oder irgendein Mikrokontrollerboard. Dadurch wird es etwas komplizierter.
Ich will hier keine Werbung machen, aber für dich ist sicher dieser Link www.avr-kreis.talentraspel.de interessant. Das Ding ist extra für den Schuleinsatz konzipiert und damit lernen Schüler erfolgreich die Programmierung von Mikrokontrollern.
Man kann den AVR-Kreis auch mit Bascom programmieren, fertige Programmbeispiele habe ich in Assembler (ganzer Kurs) und C. Ich kann dir ein solches Gerät aufgebaut oder als Bausatz zum Selbstkostenpreis vermitteln. Per E-Mail bin ich im Moment unter email@df5jq.de erreichbar.
Wenn du eine Testplatine selber machen willst, dann musst du dich in der Platinenherstellung auskennen. Das kann ich für den Einstieg nicht empfehlen. Wenn man später weiter ist, kann man so aber seine Ziele am besten erreichen. Man muss dann aber auch etwas von Elektronik verstehen.
Alternativ kannst du auch ein anderes fertiges Board kaufen. Da kann ich nicht beraten. Ich mache meine Sachen ja selber. Aber lass bloss die Finger von den Conrad-Sachen (C-Control, ROBBY RP5, usw.) da kannst du auch gleich Lego kaufen.
Um ein Wochenende-Projekt nicht zum Stillstand zu bringen, wäre jetzt natürlich ein fliegender Aufbau angesagt.
Was hast du den alles im Labor?
- Lötkolben (uns was man sonst noch zum Löten braucht)?
- Vielleicht ein Stück Lochrasterplatine?
- Hoffentlich ein paar Bauteile?
1 x IC-Sockel (20-polig)
1 x Quarz (4, 8 oder 10 MHz)
2 x 22 pf Kondensator
1 x 100 KOhm Wiederstnd
1 x 100 nF Kondensator
1 x 220 Ohm Wiederstand und eine Led
- 5V (geregelt, aus einem Netztei)?
Damit brächten wir den Mikrokontroller schon ans Laufen ...
Schreib mir mal, in welche Richtung du gehen willst. Wenn dir meine Antworten zu lang sind, bitte ich um einen kurzen Hinweis. Ich schreibe halt gerne ...
Also danke erstmal für deine ausführliche Antwort.
Ich wollte mich eigentlich in Richtung Basic begeben, was allerdings daran liegt/lag, dass ich dachte, dass AVRs eigentlich auf Basic 'abgerichtet' seien und weil ich das Gefühl hatte, dass es mehr Code in Basic hier im Netz gibt. Außerdem bin ich mit Basic durch C-control etwas, wenn auch nicht sehr vertraut.
Ich hab mich mal an C++ versucht, aber da ich wenig Zeit hatte, hab ichs dann schnell wieder sein lassen, und bis jetzt wieder angefangen, obwohl natürlich, wie ich gehört habe zwischen C und C++ riesen Differenzen liegen sollen. Allerdings könnte ich mich auch dazu durchringen auf längere sicht hin C zu lernen und zu benutzen. Gibts denn Bücher speziell für Mikrokontroller?
Im Moment gehts mir eigentlich darum den AVR erstmal zum laufen zu bringen, also irgendwelche Lebenszeichen zu erhalten.
Ich hab mir auch mal PonyProg, ohne zu wissen, dass es für C ist runtergeladen und versucht irgendeine Reaktion zu erreichen, leider ohne Erfolg.
Einzig: wenn ich sage 'Read Device' erscheint die Fehlermeldung, 'Device Missing or unknown Device', nur einmal, wenn ich garnichts dran hab immer wieder.
Unter Interface Setup habe ich alle Einstellungen durchprobiert, aber der Test 'failed' immer!
Deshalb hab ich mich jetzt entschlossen erstmal nen Adapter wie unter den Artikel 'AVR-Einstieg leicht gemacht' hier im Forum, auszuprobieren.
Dafür fehlen mir aber noch Teile, eben die, die du genannt hast und noch weitere, die ich erst Montag besorgen kann.
Trotzdem 2 Fragen:
1. Muss während des Programmierens überheupt ein Qurz vorhanden sein? (Denn das ist bei dem Adapter, dem ich übrigens nicht ganz vertraue nicht der Fall)
2. Untersützt Bascom-AVR überhaupt den LPT-Port?
Naja wieder viele Fragen, ich hoffe dir vergeht nicht die Lust.
Ach ja, ich hab alle Sachen die du gennat hast da, benutze außerdem ein PC-Netzteil zur Spannungsversorgung. Mir fehlt noch nen LPT-Buchse für den Adapter nach Aufbau des Artikels.
Ein Quarz braucht bei den Controllern mit internem Takt (wie z.B. Mega 8, Mega 16, Mega32 usw) nicht vorhanden sein. Bei einem At90S2313 muss jedoch einer dran sein.
Die Spannungen am LPT reichen schon aus, wenn du ein entsprechenden Dongle (ISP-Programmierkabel hast). Natürlich muss der Controller extra nochmal mit 5V Logikspannung versorgt werden, sonst geht nix.
So, also wird der Adapter, so wie er auf dem Bild ist, also ohne weitere Spannungsversorgung, und ohne angeschlossenes Quarz nicht programmierbar sein?
Die Frage mit dem Quarz bezieht sich nur auf das Programmieren, nacher verwende ich natürlich ein Quarz( 4Mhz und 2x 27p)
'ISP-Programmierkabel hast'? Sorry, ich weiß nciht genau was du meinst, ich hab nur das Ding auf dem Foto.
ich bastle hier gerade an meinen AVR-Projekten. Von Zeit zu Zeit schaue ich mal ins Forum und wenn mir was einfällt schreib ich was rein.
Mit deinen Fragen komme ich ganz gut zurecht. Wenn es mit zu viel wird, dann sag ich Bescheid.
Zwischen C und C++ liegen Welten. Im Mikrokontrollerbereich findet man C als hardwarenahe Programmiersprache. C++ als objektorientierte Programmiersprache macht da weniger Sinn.
Die Atmel-Familie ist auf C hin optimiert. Der Einstieg über Bascom ist sicher für den Anfang ok, aber da ist zu viel gekaspelt. Man lernt nicht wirklich, wie der Mikrokontroller funktioniert. Dafür kommt man schneller zu ersten Erfolgserlebnissen.
Für C mit AVR gibt es aber auch eine Menge Resourcen im Netz. Allerdings meist in Englisch. Es macht aber Sinn, sich da einzuarbeiten. Man kommt halt weiter, wenn an die richtig professionellen Sachen geht.
PonyProg ist nicht programmiersprachenabhängig. Aus dem Quellcode (Basic, C, Pascal, Assembler) erzeugt ein deine Entwicklungsumgebung (Bascom, WinAVR, AVR-Studio, ...) den Maschinencode. Je nach Programmiersprache kommen Compiler und Assembler zum Einsatz, am Ende steht immer ein Maschinencode in irgendeinen Dateiformat. Dieser kann dann mit PonyProg in den Mikrokontroller programmiert werden.
Versuch mal PonyProg mit den Einstellungen wie im Bild. Den richtigen LPT-Anschluss musst du natürlich selber wissen. Wenn man PonyProg neu installiert hat, dann sollte man einmal "Setup->Calibrate" laufen lassen. Den Programmierzyklus solltest du wie im zweiten Bild angegeben einstellen.
Ach so:
Wenn du deinen Druckerport im BIOS auf irgendeinen anderen Modus als SPP (Standard Printer Port) eingestellt hast, dann kann es Schwierigkeiten geben, da der Port dann zusätzliche Features beherscht. Stell den Port im BIOS bitte zunächst auf den Standardwert "SPP" und wenn das nicht geht, nacheinander auf "ECC", "EPP" oder "ECC+EPP". Auf keinen Fall auf BPP (Bidirektional Printer Port), das geht nämlich definitiv nicht.
Nach jedem Einstellen musst du natürlich einen Test mit PonyProg machen. Zumindest Lesen sollte gehen, zum Schreiben hast du ja noch nichts.
wie mein Vorredner treffend bemerkte:
Programmieren geht beim AT90S2313 definitiv NICHT ohne Quarz. Habe ich zur Sicherheit gerade noch einmal ausprobiert.
Und natürlich sollten 5V am Atmel anliegen. Ob das bei deinem Programmiergerät der Fall ist, wage ich zu bezweifeln. Bitte miss das als erstes mal nach.
Was ist das eigentlich für ein komisches Programmiergerät? Wer hat dir das verkauft? Und für wieviel?
Wenn du jedoch Bascom nutzt, dann würde ich den internen Programmer nutzen, Pony brauchst du dann nicht. In Bascom lassen sich auch die Fusebit´s für Einsteiger einfacher umstellen (falls es mal nötig ist), da dort die Bedeutung besser erklärt wird.
So sieht dort die Einstellung für den Programmer gewöhnlich aus:
Normalerweise muss der Controller beim programmieren mit 5V Spannung extra versorgt werden. Ob das bei der Schaltung die du da verwendest anders ist, kann ich nicht sagen, aber wäre doch etwas ungewöhnlich.
Allerdings funktionieren die meisten Programmer (Programmieradapter) auch mit einem Treiber-IC, weil das etwas sicherer ist. Im Zweifel frag mal deinen Lieferanten, falls es nicht in der Doku steht.
Einen Takt (also Quarz) brauchst du auch beim programmieren, falls kein Taktgenerator eingebaut ist
Gut, also werd ich ihn mal mit Strom versorgen und das Quarz anschließen.
Ne Dongle habe ich nicht, ich versucht halt mit dem 'Programmieradapter' aus dem Artikel. Also ne Sparversion. Wo stell ich denn den LPT ein ?
Da steht nur Com 1-15, was ist der LPT?
Lesezeichen