PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Anfänger braucht Starthilfe



RCO
11.09.2004, 16:11
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 Buch Bascom AVR
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.

Ich hoffe, ihr könnt mir helfen

MFg Moritz

talentraspel_kai
11.09.2004, 18:20
Hallo Moritz,

jetzt habe ich deinen Thread gefunden.

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.

Bascom AVR 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 Bascom AVR 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 ...


Grüße,
Kai.

RCO
11.09.2004, 18:59
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.

MFg Moritz

RCO
11.09.2004, 19:02
Ach ja, vergessen zu sagen:

Der Atmel spuckt nach der Fehlermeldung dann nur FF FF etc aus, sagt aber Reading succesfull.

Könnte es auch sein, dass die Spannung nur über den LPT zu niedrig ist?
Sollte man noch ne Spannungsversorgung zusätzlich schlaten?

MFG Moritz

Frank
11.09.2004, 19:09
Zu deinen Fragen:

Ja Bascom unterstützt Parallelport

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.

Gruß Frank

RCO
11.09.2004, 19:13
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. :oops:

MFg Moritz

talentraspel_kai
11.09.2004, 19:36
Hallo Moritz,

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.


Grüße,
Kai.

talentraspel_kai
11.09.2004, 19:48
Hallo Moritz,

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?



Grüße,
Kai.

Frank
11.09.2004, 19:51
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:

https://www.roboternetz.de/phpBB2/album_pic.php?pic_id=194


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

RCO
11.09.2004, 19:54
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?

MFg Moritz

talentraspel_kai
11.09.2004, 19:57
Hallo Frank,

übernimm du bitte die Bascom-Betreuung. Ich schalte mich später wieder rein.


Grüße,
Kai.

Frank
11.09.2004, 20:14
Hi Kai,

ja Pony und C überlasse ich Dir ;-)

Zu was gilt nun die letzte Frage RCO? Zu Pony oder zu Bascom?
Wie Bascom eingestellt wird ist ja oben im Bild zu sehen. LPT ist der Druckerport. Gewöhnlich brauchst du da garnix ändern wenn du nur einen hast oder den ersten nimmst

Frank
11.09.2004, 20:19
Aber mach dich wegen der 5V Stromversorgung nochmal schlau. Nicht das der Pin doch irgendwo am Druckerport dran hängt und du dann nochmal 5V drauf gibst und noch irgendwas zerstörst. Man müsste ja am Platinenlayout erkennen wo der Spannungspin von Atmel 2313 hin geht

talentraspel_kai
11.09.2004, 22:16
Hallo Moritz,

hast du schon was rausbekommen?

Ich habe bei E-Bay deinen Programmer gefunden. Da steht zumindest, das du keine zusätzliche Spannungsversorgung benötigen solltest. Ausser bei einigen neueren Computern und bei Laptops. Letzendlich hilft nur eins: Messen !!!

Da steht aber auch, dass das KEIN AVR-ISP (In System Programmer) ist. Eventuell kommt daher die Verwirrung. Es kann also sein, das man bei "Programmer" was anderes auswählen muss. Dann ist es sogar möglich, das der Takt bei Programmieren generiert wird.

Leider ist der E-Bay Eintrag nicht sehr informativ. Ich empfehle dir das Gerät so schnell wie möglich wieder bei E-Bay zu verkaufen und dir einen echten ISP-Programmer zu besorgen. Das Leben wird sehr viel einfacher, wenn man Standards benutzt.

Grüße,
Kai.

RCO
12.09.2004, 14:19
Also ich bekomme immer mehr den Eindruck, dass das Ding Mist ist!
Es liegen am Controller nur schlappe 2,4 Volt an, die halt über die fünf Volt mit nen par Widerständen runtergeregelt werden.
Beim auslesen brciht die Spannung dann total auf 1,3 Volt ein.

ÜBer einen Taktgenerator angesprochen ist auch nur der Pin 5, da die Pin 4 gar keine Verbindungen hat.

Also gut, ich bin bereit in was anderes zu investieren. mitlerweile auch lieber nen ISP und nicht so ein Ding, wo man die CHips extra reinsetzen muss. Muss es da denn direkt nen STK-Bord sein, oder gibts da günstige Systeme.
ICh würde allerdings lieber was fertiges kaufen, als es selber zu bauen, da ich erstmal alle Fehlerquellen ausschließen möchte.

MFG Moritz

Frank
12.09.2004, 14:38
Ich würde Dir auch einen Standard ISP-Dongel empfehlen. Kannst du selber bauen (siehe https://www.roboternetz.de/phpBB2/viewtopic.php?t=2194) oder bekommst du fertig auch schon um die 12 Euro (z.B. robotikhardware.de). Damit kannst du eigentlich fast alle Atmel programmieren.
Wenn Du deinen AT90S2313 programmieren willst, kannst du obere Schaltung verwenden. Nur als ISP-Buchse solltest du dann einen 10 poligen Wannenstecker nehmen.
Die übliche Belegung findest du u.a. auch hier drin https://www.roboternetz.de/phpBB2/dload.php?action=file&file_id=81
Die entsprechenden PIN´s des Controllers einfach auf die entsprechenden PIn´s von der Stiftleiste oder Wannebuchse geben. Ist bei fast allen Atmel Controllern identisch

RCO
12.09.2004, 15:09
Also ich hab mir jetzt erstmal den Programmieradapter bei robotikhardware.de bestellt, komplett mit Porto allerdings 17,80.

Wie stelle ich denn den LPT-port unter Bascom ein?

12.09.2004, 15:17
So wie oben genannt

https://www.roboternetz.de/phpBB2/album_pic.php?pic_id=194

RCO
12.09.2004, 15:23
OK, das klint einfach

DAnke für die Bemühungen

MFG Moritz