Aus RN-Wissen.de
Wechseln zu: Navigation, Suche
Rasenmaehroboter Test

K (Was braucht man für den Start mit einem RN-Board?)
K (Rechtschreibung)
Zeile 1: Zeile 1:
 
'''Fragen und Antworten zu RN-Boards (Roboternetz-Boards) und AVR-Grundfragen'''
 
'''Fragen und Antworten zu RN-Boards (Roboternetz-Boards) und AVR-Grundfragen'''
Dieser Artikel solle immer wiederkehrende Fragen zu RN-Boards beantworten und Einsteigern etwas die ersten Schritte erleichtern. Dieser Beitrag wird ständig ergänzt, also ab und zu mal rein schaun. Ich fasse hier wichtige Einsteiger-Infos, die in verschiedenen Beiträgen hier im Forum gesagt wurden kurz und knapp zusammen.
+
Dieser Artikel soll immer wiederkehrende Fragen zu RN-Boards beantworten und Einsteigern etwas die ersten Schritte erleichtern. Dieser Beitrag wird ständig ergänzt, also ab und zu mal reinschauen. Ich fasse hier wichtige Einsteiger-Infos, die in verschiedenen Beiträgen hier im Forum gesagt wurden, kurz und knapp zusammen.
  
 
===Wie werden RN-Boards wie [[RN-Control]], RN-Mega, RNBFRA und ähnliche programmiert?===
 
===Wie werden RN-Boards wie [[RN-Control]], RN-Mega, RNBFRA und ähnliche programmiert?===
Die Programmierung erfolgt über ein sogenanntes [[AVR-ISP Programmierkabel]] (auch ISP-Dongel genannt). Dieses Kabel wird in eine 10 polige Wannenbuchse (verpolungssicher) in das Baord gesteckt. Das andere Ende wird in den normalen Druckerport des PC´s eingesteckt.
+
Die Programmierung erfolgt über ein sogenanntes [[AVR-ISP Programmierkabel]] (auch ISP-Dongle genannt). Dieses Kabel wird in eine 10-polige Wannenbuchse (verpolungssicher) in das Baord gesteckt. Das andere Ende wird in den normalen Druckerport des PCs eingesteckt.
 
Programmiersprachen wie Basic ([[Bascom]]-Compiler) können dann per Knopfdruck ein compiliertes Programm direkt in den Chip übertragen. Anschließend kann das Kabel entfernt werden und das Board arbeitet unabhängig das Programm ab. Beim Test kann das Kabel auch eingesteckt bleiben. Hier wird es bei Verwendung von Bascom Basic und [[RN-Control]] gezeigt: [[Bascom - Erstes Programm in den AVR Controller übertragen]]
 
Programmiersprachen wie Basic ([[Bascom]]-Compiler) können dann per Knopfdruck ein compiliertes Programm direkt in den Chip übertragen. Anschließend kann das Kabel entfernt werden und das Board arbeitet unabhängig das Programm ab. Beim Test kann das Kabel auch eingesteckt bleiben. Hier wird es bei Verwendung von Bascom Basic und [[RN-Control]] gezeigt: [[Bascom - Erstes Programm in den AVR Controller übertragen]]
  
 
===Was braucht man für den Start mit einem RN-Board?===
 
===Was braucht man für den Start mit einem RN-Board?===
[[Bild:avrtutorial_ispkabel.jpg|thumb|ISP Programmierkabel]]Neben dem eigentlichen Board braucht man wie schon zuvor angesprochen einen [[AVR-ISP Programmierkabel]]. Da das selbst bauen kaum billiger ist, ist zu empfehlen ein solches mitzubestellen. Als zweites braucht man natürlich eine Stromversorgung. Ideal sind Gleichspannungsnetzgeräte die zwischen 9 und 12V liefern. Man kann hier ein normales Steckernetzteil oder ein komfortables Labornetzteil nehmen. Um etwas Reserve zu haben wäre es gut wenn das Netzteil einen Strom von mindestens 1 A liefern würde. Alternativ kann man auch Akkupacks oder Batterien nutzen, allerdings mindestens 7,2V sollten die schon liefern, sicherer sind 8,4 , 9,6 oder 12V Akkus. [[Bild:avrtutorial_netzgerät.jpg|thumb|Beispiel eines Netzgerätes]]
+
[[Bild:avrtutorial_ispkabel.jpg|thumb|ISP Programmierkabel]]Neben dem eigentlichen Board braucht man wie schon zuvor angesprochen ein [[AVR-ISP Programmierkabel]]. Da das Selbstbauen kaum billiger ist, ist zu empfehlen, ein solches mitzubestellen. Als zweites braucht man natürlich eine Stromversorgung. Ideal sind Gleichspannungsnetzgeräte, die zwischen 9 und 12V liefern. Man kann hier ein normales Steckernetzteil oder ein komfortables Labornetzteil nehmen. Um etwas Reserve zu haben wäre es gut, wenn das Netzteil einen Strom von mindestens 1 A liefern würde. Alternativ kann man auch Akkupacks oder Batterien nutzen, allerdings mindestens 7,2 V sollten die schon liefern, sicherer sind 8,4-, 9,6- oder 12-V-Akkus. [[Bild:avrtutorial_netzgerät.jpg|thumb|Beispiel eines Netzgerätes]]
Das wäre eigentlich schon das wichtigste um das Board in Betrieb zu nehmen. Allerdings ein [[RS232]] Kabel ist ebenfalls noch sehr empfehlenswert. Dieser erlaubt die Ausgabe von Texten, Variablen auf dem PC. Das ist sehr hilfreich um ein Programm debuggen zu können. Dazu wird auf dem PC ein [[Terminalprogramm]] gestartet und über die [[RS232]] Schnittstelle mit dem PC verbunden. Bei manchen Boards ist sowieso ein [[RS232]] Kabel unerläßlich, wie z.B. RN-Motor, RN-Speak etc. Nützlich ist es überall. Man kann ein solches Kabel selbst bauen oder gleich beim Kauf eines Boardes mitbestellen.
+
Das wäre eigentlich schon das Wichtigste, um das Board in Betrieb zu nehmen. Allerdings ein [[RS232]] Kabel ist ebenfalls noch sehr empfehlenswert. Dieses erlaubt die Ausgabe von Texten, Variablen auf dem PC. Das ist sehr hilfreich, um ein Programm debuggen zu können. Dazu wird auf dem PC ein [[Terminalprogramm]] gestartet und über die [[RS232]] Schnittstelle mit dem PC verbunden. Bei manchen Boards ist sowieso ein [[RS232]] Kabel unerläßlich, wie z.B. RN-Motor, RN-Speak etc. Nützlich ist es überall. Man kann ein solches Kabel selbst bauen oder gleich beim Kauf eines Boardes mitbestellen.
 
Also nochmal die Zusammenfassung für den Einstieg:
 
Also nochmal die Zusammenfassung für den Einstieg:
 
* Controllerboard
 
* Controllerboard
 
* [[AVR-ISP Programmierkabel]]
 
* [[AVR-ISP Programmierkabel]]
* RS-232 Kabel (mit 3 poligen Adapter)
+
* RS-232 Kabel (mit 3 poligem Adapter)
* Netzgerät oder Akku ('''ideal 9 bis 12V''' notfalls auch etwas niedriger oder höher, hauptsache zwischen 7,2 bis 20V)
+
* Netzgerät oder Akku ('''ideal 9 bis 12V''' notfalls auch etwas niedriger oder höher, Hauptsache zwischen 7,2 bis 20 V)
* [[Bascom]] Compiler Vollversion ist nur nötig wenn man gleich größere Programme anstrebt, ansonsten reicht das Demo das genauso wie ein vollwertiger[[Avr-gcc]]-Compiler beim Board- oder Platinenkauf sowieso mitgeliefert wird)
+
* [[Bascom]] Compiler Vollversion ist nur nötig, wenn man gleich größere Programme anstrebt, ansonsten reicht das Demo, das genauso wie ein vollwertiger[[Avr-gcc]]-Compiler beim Board- oder Platinenkauf sowieso mitgeliefert wird)
 
* Ein gutes Buch ist immer gut, siehe [[Buchvorstellungen]]
 
* Ein gutes Buch ist immer gut, siehe [[Buchvorstellungen]]
  
===Wie muß Bascom eingestellt werden damit der ISP-Programmierdongel richtig funktioniert?===
+
===Wie muss Bascom eingestellt werden, damit der ISP-Programmierdongle richtig funktioniert?===
Die üblichen Dongels ([[AVR-ISP Programmierkabel]] wie z.B. von Robotikhardware) arbeiten alle gleich. Hier sollte im Dialog von [[Bascom]] folgende Einstellungen erfolgen:
+
Die üblichen Dongles ([[AVR-ISP Programmierkabel]] wie z.B. von Robotikhardware) arbeiten alle gleich. Hier sollte im Dialog von [[Bascom]] folgende Einstellung erfolgen:
  
 
http://www.roboternetz.de/phpBB2/album_pic.php?pic_id=194.gif
 
http://www.roboternetz.de/phpBB2/album_pic.php?pic_id=194.gif
  
Weiter Infos dazu auch hier [[Bascom - Erstes Programm in den AVR Controller übertragen|Einstellungen unter Bascom]]
+
Weitere Infos dazu auch hier [[Bascom - Erstes Programm in den AVR Controller übertragen|Einstellungen unter Bascom]]
  
 
===Mit welcher Programmiersprache werden die RN-Controllerboards programmiert?===
 
===Mit welcher Programmiersprache werden die RN-Controllerboards programmiert?===
 
Bei den meisten RN-Boards handelt es sich um [[AVR]]-Boards. Diese können in Basic, C, Assembler und zum Teil in Pascal programmiert werden.  
 
Bei den meisten RN-Boards handelt es sich um [[AVR]]-Boards. Diese können in Basic, C, Assembler und zum Teil in Pascal programmiert werden.  
Am beliebtesten ist derzeit der Basic-Compiler [[Bascom]] und der C-Compiler [[Avr-gcc]]. Für den schnellen Einstieg aber durchaus auch für professionelle Programme empfehle ich Bascom. Zu dieser Programmiersprache gibt es auch mehrer  deutsche Bücher. Siehe auch unter [[Buchvorstellungen]]
+
Am beliebtesten ist derzeit der Basic-Compiler [[Bascom]] und der C-Compiler [[Avr-gcc]]. Für den schnellen Einstieg aber durchaus auch für professionelle Programme empfehle ich Bascom. Zu dieser Programmiersprache gibt es auch mehrere deutschsprachige Bücher. Siehe auch unter [[Buchvorstellungen]]
  
 
----
 
----
  
 
===Mein Programm wird nicht übertragen bzw. der Controller wird nicht erkannt! Welche Ursachen kann das haben?===
 
===Mein Programm wird nicht übertragen bzw. der Controller wird nicht erkannt! Welche Ursachen kann das haben?===
ISP-Kabel sind generell etwas empfindlich gegenüber Störungen. Das ISP Kabel sollte möglichst nicht andere Kabeln (Netzzuleitung usw.) kreuzen. Das kann manchmal auch zu unterschiedlichsten Fehlermeldungen führen.
+
ISP-Kabel sind generell etwas empfindlich gegenüber Störungen. Das ISP-Kabel sollte möglichst nicht andere Kabel (Netzzuleitung usw.) kreuzen. Das kann manchmal auch zu unterschiedlichsten Fehlermeldungen führen.
  
 
Generell sollten folgende Dinge geprüft werden:
 
Generell sollten folgende Dinge geprüft werden:
Zeile 38: Zeile 38:
 
====Stimmen die Einstellungen z.B. in Bascom [[Bascom - Erstes Programm in den AVR Controller übertragen|Einstellungen unter Bascom]]?====
 
====Stimmen die Einstellungen z.B. in Bascom [[Bascom - Erstes Programm in den AVR Controller übertragen|Einstellungen unter Bascom]]?====
  
====Ist ISP Stecker richtig rum aufgesteckt====
+
====Ist ISP-Stecker richtig rum aufgesteckt?====
Bei den meisten Boards wie auch RN-Control kann man es nicht falschrum aufstecken. Aber beim [[RNBFRA-Board]] kann dies passieren da dort aus Platzgründen kompatible Stiftleisten statt Wannenstecker genutzt wurden. Dort darauf achten das farbliche Markierung zum Boardrand zeigt
+
Bei den meisten Boards, wie auch RN-Control, kann man es nicht falschrum aufstecken. Aber beim [[RNBFRA-Board]] kann dies passieren, da dort aus Platzgründen kompatible Stiftleisten statt Wannenstecker genutzt wurden. Dort darauf achten, dass farbliche Markierung zum Boardrand zeigt
  
====Nicht die I2C-Buchse mit der ISP Buchse verwechseln====
+
====Nicht die I2C-Buchse mit der ISP-Buchse verwechseln====
Beide haben den gleichen Stecker, also unbedingt auf die Platinenbeschriftung achten. Eine Verwechslung kann Dongle oder Port beschädigen was dann auch zu Fehlermeldungen führt.
+
Beide haben den gleichen Stecker, also unbedingt auf die Platinenbeschriftung achten. Eine Verwechslung kann Dongle oder Port beschädigen, was dann auch zu Fehlermeldungen führt.
  
 
====Kabel mal etwas anders verlegen und Störquellen wie Handy etc. entfernen====
 
====Kabel mal etwas anders verlegen und Störquellen wie Handy etc. entfernen====
  
====Einfach prüfen ob auch Spannung am Board anliegt====
+
====Einfach prüfen, ob auch Spannung am Board anliegt====
Simpler Tipp, aber nicht selten wird es vergessen wenn das Board keine LED hat :-)
+
Simpler Tipp, aber nicht selten wird es vergessen, wenn das Board keine LED hat :-)
  
 
====Wackelkontakt in irgendeiner Steckverbindung====
 
====Wackelkontakt in irgendeiner Steckverbindung====
Zeile 53: Zeile 53:
  
 
====Aktuelle Bascom Version?====
 
====Aktuelle Bascom Version?====
Im About-Window von [[Bascom]] nachschaun ob ihr die aktuelle Bascom Version habt. Bei älteren Versionen soll es insbesondere beim Mega 32 zu Problemen mit den Dongels ([[AVR-ISP Programmierkabel]] kommen. Also unbedingt prüfen ob min. die aktuelle Version installiert ist. Wenn nicht, unbedingt noch runterladen, dann gehts problemlos.
+
Im About-Window von [[Bascom]] nachschauen, ob ihr die aktuelle Bascom- Version habt. Bei älteren Versionen soll es insbesondere beim Mega 32 zu Problemen mit den Dongles ([[AVR-ISP Programmierkabel]] kommen. Also unbedingt prüfen ob die aktuelle Version installiert ist. Wenn nicht, unbedingt noch runterladen, dann geht's problemlos.
  
 
====Quarz ok?====
 
====Quarz ok?====
Es ist schon vorgekommen das ein Quarz diese Fehler verursacht. Tauscht Quarz mal gegen einen anderen aus. Im Test waren einmal bei gleichen Quarz des gleichen Herstellers alle ISP Probleme weg. Und das obwohl beide Quarze im Betrieb funktionierten.
+
Es ist schon vorgekommen, dass ein Quarz diese Fehler verursacht. Tauscht den Quarz mal gegen einen anderen aus. Im Test waren einmal bei gleichem Quarz des gleichen Herstellers alle ISP-Probleme weg. Und das, obwohl beide Quarze im Betrieb funktionierten.
  
 
====Binary File eingestellt?====
 
====Binary File eingestellt?====
Prüfe ob in Bascom unter Optionen / Chip / Output auch das Binary File aktiviert ist. Dies ist wichtig da sonst ebenfalls Fehler bei der Übertragung angezeigt wird.
+
Prüfe, ob in Bascom unter Optionen / Chip / Output auch das Binary File aktiviert ist. Dies ist wichtig, da sonst ebenfalls ein Fehler bei der Übertragung angezeigt wird.
  
 
====Störungen durch andere Programme?====
 
====Störungen durch andere Programme?====
Schalte deinen Rechner mal komplett an und aus und starte wenn möglich keine anderen Anwendungen sondern nur die Übertragungssoftware bzw. Bascom. Es ist schon vorgekommen das andere Programme die Übertragung behindert haben.  
+
Schalte deinen Rechner mal komplett an und aus und starte, wenn möglich, keine anderen Anwendungen, sondern nur die Übertragungssoftware bzw. Bascom. Es ist schon vorgekommen, dass andere Programme die Übertragung behindert haben.  
  
 
====Kabel defekt?====
 
====Kabel defekt?====
Dongel Kabel überprüfen. Es kommt schwar selten vor das ein Kabel defekt ist, aber es ist auch schonmal vorgekommen das ein Stecker nicht korrekt in die Adern geschnitten hat. Also möglichst mit Multimeter/Ohmmeter jeden Kontakt durchmessen. Auch mal benachbarte Kontakte auf Kurzschluss prüfen. Stecker müssen beim [[AVR-ISP Programmierkabel|RN-ISP Dongel]] so montiert sein:  
+
Dongle-Kabel überprüfen. Es kommt zwar selten vor, dass ein Kabel defekt ist, aber es ist auch schonmal vorgekommen, dass ein Stecker nicht korrekt in die Adern geschnitten hat. Also möglichst mit Multimeter/Ohmmeter jeden Kontakt durchmessen. Auch mal benachbarte Kontakte auf Kurzschluss prüfen. Stecker müssen beim [[AVR-ISP Programmierkabel|RN-ISP Dongle]] so montiert sein:  
  
 
http://www.robotikhardware.de/bilder/isp/ispstecker.jpg
 
http://www.robotikhardware.de/bilder/isp/ispstecker.jpg
  
 
====Programm zu lang?====
 
====Programm zu lang?====
Überprüfe mal ob der Programmcode überhaupt in den Controller paßt. Leider kommt da von Bascom auch keine eindeutige Fehlermeldung, so das man oft lange nach Übertragungsfehler sucht und in Wirklichkeit nur der Programmcode zu lang ist. Klicke mal auf das Symbol "Show Compile Result". Wenn der Code in den Chip passt, dann solte dort folgender Satz zu finden sein:
+
Überprüfe mal, ob der Programmcode überhaupt in den Controller passt. Leider kommt da von Bascom auch keine eindeutige Fehlermeldung, so dass man oft lange nach Übertragungsfehlern sucht und in Wirklichkeit nur der Programmcode zu lang ist. Klicke mal auf das Symbol "Show Compile Result". Wenn der Code in den Chip passt, dann sollte dort folgender Satz zu finden sein:
 
  ROMIMAGE    : 1FD0 hex  -> Will fit into ROM
 
  ROMIMAGE    : 1FD0 hex  -> Will fit into ROM
  
Ein defekter Dongle oder Board ist wirklich sehr selten. Wenn man die Möglichkeit hat, sollte man durch CoController oder ein anderes Board/Dongel einen Test machen um die Fehlerquelle einzukreisen.
+
Ein Defekt an Dongle oder Board ist wirklich sehr selten. Wenn man die Möglichkeit hat, sollte man durch CoController oder ein anderes Board/Dongle einen Test machen, um die Fehlerquelle einzukreisen.
  
  
Zeile 79: Zeile 79:
  
 
===Wie aktiviert man den Quarz beim Mega 16 / Mega 32 ?===
 
===Wie aktiviert man den Quarz beim Mega 16 / Mega 32 ?===
Falls man das Board fertig bezieht ist dies bereits erledigt. Auch die Fusebits stimmen dann schon. Zumindest ist das bei rn-Control so der Fall. Ansonsten kann man den internen 1 Mhz Takt jederzeit mit dem Bascomcompiler oder dem Programm Pony auf die Quarzfrequenz umschalten.
+
Falls man das Board fertig bezieht ist dies bereits erledigt. Auch die Fusebits stimmen dann schon. Zumindest ist das bei rn-Control so der Fall. Ansonsten kann man den internen 1-Mhz-Takt jederzeit mit dem Bascomcompiler oder dem Programm Pony auf die Quarzfrequenz umschalten.
  
 
Unter Bascom geht dies so im Programmer-Dialogfenster:
 
Unter Bascom geht dies so im Programmer-Dialogfenster:
Zeile 92: Zeile 92:
  
 
===Wie sieht ein Grundprogramm in Basic aus, welche Angaben müssen im Code vorhanden sein??===
 
===Wie sieht ein Grundprogramm in Basic aus, welche Angaben müssen im Code vorhanden sein??===
Ein Basic Programm das mit Bascom geschrieben wird, muß in jeden Fall als erstes die Taktfrequenz über den Befehl $crystal festlegen, ansonsten funktionieren einige Funktionen nicht korrekt oder garnicht. Da man fast immer auch die RS232 Schnittstelle nutzt um mit Print Infos auszugeben, sollte man sich angewöhnen auch den $baud Befehl zum festlegen der Übertragungsrate zu nutzen. Möchte man den I2C-Bus nutzen, so müssen auch diese Ports mit Config definiert werden.
+
Ein Basic-Programm, das mit Bascom geschrieben wird, muss in jeden Fall als erstes die Taktfrequenz über den Befehl $crystal festlegen, ansonsten funktionieren einige Funktionen nicht korrekt oder garnicht. Da man fast immer auch die RS232-Schnittstelle nutzt, um mit Print Infos auszugeben, sollte man sich angewöhnen auch den $baud Befehl zum Festlegen der Übertragungsrate zu nutzen. Möchte man den I2C-Bus nutzen, so müssen auch diese Ports mit Config definiert werden.
 
Ein einfaches Grundprogramm sollte wie auf Seite [[Bascom - Erstes Programm in den AVR Controller übertragen]] beschrieben aussehen
 
Ein einfaches Grundprogramm sollte wie auf Seite [[Bascom - Erstes Programm in den AVR Controller übertragen]] beschrieben aussehen
  
 
===Einige Portleitungen am Port C scheinen nicht zu funktionieren!===
 
===Einige Portleitungen am Port C scheinen nicht zu funktionieren!===
Das kann an den Fuse-Bits liegen. Bei der Auslieferung von Controllern ist normalerweise ein sogenanntes JTAG-Interface aktiviert. Dieses Interface wird von professionellen Programmierern mit zusätzlicher hardware zur Fehlersuche genutzt. Dadurch sind allerdings einige Ports nicht verwendbar.
+
Das kann an den Fuse-Bits liegen. Bei der Auslieferung von Controllern ist normalerweise ein sogenanntes JTAG-Interface aktiviert. Dieses Interface wird von professionellen Programmierern mit zusätzlicher Hardware zur Fehlersuche genutzt. Dadurch sind allerdings einige Ports nicht verwendbar.
In der Regel sollte man dieses JTAG-Interface deaktivieren damit wieder alle Ports verfügbar sind. Dies erfolgt über die sogenannten Fusebits (Einstellungsparameter innerhalb des Controllers).
+
In der Regel sollte man dieses JTAG-Interface deaktivieren, damit wieder alle Ports verfügbar sind. Dies erfolgt über die sogenannten Fusebits (Einstellungsparameter innerhalb des Controllers).
Wird der Controller zusammen mit einem Roboternetz-Board erworben, so ist JTAG in den meisten Fällen bereits ausgeschaltet, so das nix weite rgemacht werden muss.
+
Wird der Controller zusammen mit einem Roboternetz-Board erworben, so ist JTAG in den meisten Fällen bereits ausgeschaltet, so das nix weiter gemacht werden muss.
 
Ansonsten kann man dies auch sehr einfach über die Tools PONY oder BASCOM erledigen. Besonders bequem ist es in Bascom. Hier sehen die Einstellungen so aus:
 
Ansonsten kann man dies auch sehr einfach über die Tools PONY oder BASCOM erledigen. Besonders bequem ist es in Bascom. Hier sehen die Einstellungen so aus:
  
 
http://www.roboternetz.de/bilder/bascom/bascomquarz550_f.gif
 
http://www.roboternetz.de/bilder/bascom/bascomquarz550_f.gif
  
===Ich bin Basic Neueinsteiger! Wie kommt mein Programm in den Controller?===
+
===Ich bin Basic-Neueinsteiger! Wie kommt mein Programm in den Controller?===
Dies ist mit Bascom Basic recht einfach da dieser Compiler ein eingebautes Übertragungsprogramm besitzt. Eine genaue Beschreibung findest du hier [[Bascom - Erstes Programm in den AVR Controller übertragen|ISP und Bascom]]
+
Dies ist mit Bascom-Basic recht einfach, da dieser Compiler ein eingebautes Übertragungsprogramm besitzt. Eine genaue Beschreibung findest du hier [[Bascom - Erstes Programm in den AVR Controller übertragen|ISP und Bascom]]
 
Wo man Bascom, passende Bücher und Beispiele findet, steht unter [[Buchvorstellungen]]
 
Wo man Bascom, passende Bücher und Beispiele findet, steht unter [[Buchvorstellungen]]
  
===Board führt RESET aus wenn ich ISP einstecke!===
+
===Board führt RESET aus, wenn ich ISP einstecke!===
Beim einstecken des ISP-Steckern kann es duchaus zu einem RESET kommen, insbesondere wenn das Programmierkabel noch nicht im PC steckt. In diesemfall sind einige Leitungen noch nicht auf richtigem Potential so das es zu Störungen kommen kann. Dies ist weg sobald Kabel richtig angeschlossen ist.
+
Beim Einstecken des ISP-Steckers kann es durchaus zu einem RESET kommen, insbesondere, wenn das Programmierkabel noch nicht im PC steckt. In diesem Fall sind einige Leitungen noch nicht auf richtigem Potential, so dass es zu Störungen kommen kann. Dies ist weg, sobald das Kabel richtig angeschlossen ist.
  
===Board arbeitet nicht wenn ich ISP einstecke!===
+
===Board arbeitet nicht, wenn ich ISP einstecke!===
Über das ISP Kabel wird auch die RESET-Leitung gesteuert. Es gibt einige Programme auf dem PC die diese RESET Leitung dauerhaft auf LOW schalten, wodurch das Board nicht mehr reagiert. Auch beim ausgeschaltetet PC kann diese Blockade eintreten.
+
Über das ISP Kabel wird auch die RESET-Leitung gesteuert. Es gibt einige Programme auf dem PC, die diese RESET-Leitung dauerhaft auf LOW schalten, wodurch das Board nicht mehr reagiert. Auch beim ausgeschalteten PC kann diese Blockade eintreten.
Wenn das richtige Programm geladen wird, zum Beispiel [[Bascom]] Compiler wird der Druckerport entsprechend richtig konfiguriert und der Blockade Effekt ist weg, wenn der richtige ISP-Programme in der Bascom konfiguration eingetragen ist. Eine genaue Beschreibung findest du hier [[Bascom - Erstes Programm in den AVR Controller übertragen|ISP und Bascom]]
+
Wenn das richtige Programm geladen wird, zum Beispiel [[Bascom]] Compiler, wird der Druckerport entsprechend richtig konfiguriert und der Blockadeeffekt ist weg, wenn das richtige ISP-Programm in der Bascomkonfiguration eingetragen ist. Eine genaue Beschreibung findest du hier [[Bascom - Erstes Programm in den AVR Controller übertragen|ISP und Bascom]]
  
===RN-Control: Der Spannungswandler wird schön warm wenn ich Servos anschließe. Ist das normal?===
+
===RN-Control: Der Spannungswandler wird schön warm, wenn ich Servos anschließe. Ist das normal?===
Ja, ein Servo benötigt sehr viel Strom für die Motoren. Der Spannungsregler dürfte bei guter Kühlung (extra Kühlkörper) jedoch durchaus ein bis 2 Servos verkraften. Da ein Servo nicht unbedingt stabilisierte 5V benötigt, sondern durchaus auch mit ca. 4 bis 7V funktioniert, kann man auch einfach die Plusleitung des Servos direkt an das Batteriepack anschließen. Dadurch wird der Spannungsregler umgangen und man kann sogar viel mehr Servos anschließen.
+
Ja, ein Servo benötigt sehr viel Strom für die Motoren. Der Spannungsregler dürfte bei guter Kühlung (extra Kühlkörper) jedoch durchaus ein bis zwei Servos verkraften. Da ein Servo nicht unbedingt stabilisierte 5V benötigt, sondern durchaus auch mit ca. 4 bis 7V funktioniert, kann man auch einfach die Plusleitung des Servos direkt an das Batteriepack anschließen. Dadurch wird der Spannungsregler umgangen und man kann sogar viel mehr Servos anschließen.
  
 
==Siehe auch==  
 
==Siehe auch==  

Version vom 27. März 2006, 21:08 Uhr

Fragen und Antworten zu RN-Boards (Roboternetz-Boards) und AVR-Grundfragen Dieser Artikel soll immer wiederkehrende Fragen zu RN-Boards beantworten und Einsteigern etwas die ersten Schritte erleichtern. Dieser Beitrag wird ständig ergänzt, also ab und zu mal reinschauen. Ich fasse hier wichtige Einsteiger-Infos, die in verschiedenen Beiträgen hier im Forum gesagt wurden, kurz und knapp zusammen.

Wie werden RN-Boards wie RN-Control, RN-Mega, RNBFRA und ähnliche programmiert?

Die Programmierung erfolgt über ein sogenanntes AVR-ISP Programmierkabel (auch ISP-Dongle genannt). Dieses Kabel wird in eine 10-polige Wannenbuchse (verpolungssicher) in das Baord gesteckt. Das andere Ende wird in den normalen Druckerport des PCs eingesteckt. Programmiersprachen wie Basic (Bascom-Compiler) können dann per Knopfdruck ein compiliertes Programm direkt in den Chip übertragen. Anschließend kann das Kabel entfernt werden und das Board arbeitet unabhängig das Programm ab. Beim Test kann das Kabel auch eingesteckt bleiben. Hier wird es bei Verwendung von Bascom Basic und RN-Control gezeigt: Bascom - Erstes Programm in den AVR Controller übertragen

Was braucht man für den Start mit einem RN-Board?

ISP Programmierkabel
Neben dem eigentlichen Board braucht man wie schon zuvor angesprochen ein AVR-ISP Programmierkabel. Da das Selbstbauen kaum billiger ist, ist zu empfehlen, ein solches mitzubestellen. Als zweites braucht man natürlich eine Stromversorgung. Ideal sind Gleichspannungsnetzgeräte, die zwischen 9 und 12V liefern. Man kann hier ein normales Steckernetzteil oder ein komfortables Labornetzteil nehmen. Um etwas Reserve zu haben wäre es gut, wenn das Netzteil einen Strom von mindestens 1 A liefern würde. Alternativ kann man auch Akkupacks oder Batterien nutzen, allerdings mindestens 7,2 V sollten die schon liefern, sicherer sind 8,4-, 9,6- oder 12-V-Akkus.
Beispiel eines Netzgerätes

Das wäre eigentlich schon das Wichtigste, um das Board in Betrieb zu nehmen. Allerdings ein RS232 Kabel ist ebenfalls noch sehr empfehlenswert. Dieses erlaubt die Ausgabe von Texten, Variablen auf dem PC. Das ist sehr hilfreich, um ein Programm debuggen zu können. Dazu wird auf dem PC ein Terminalprogramm gestartet und über die RS232 Schnittstelle mit dem PC verbunden. Bei manchen Boards ist sowieso ein RS232 Kabel unerläßlich, wie z.B. RN-Motor, RN-Speak etc. Nützlich ist es überall. Man kann ein solches Kabel selbst bauen oder gleich beim Kauf eines Boardes mitbestellen. Also nochmal die Zusammenfassung für den Einstieg:

  • Controllerboard
  • AVR-ISP Programmierkabel
  • RS-232 Kabel (mit 3 poligem Adapter)
  • Netzgerät oder Akku (ideal 9 bis 12V notfalls auch etwas niedriger oder höher, Hauptsache zwischen 7,2 bis 20 V)
  • Bascom Compiler Vollversion ist nur nötig, wenn man gleich größere Programme anstrebt, ansonsten reicht das Demo, das genauso wie ein vollwertigerAvr-gcc-Compiler beim Board- oder Platinenkauf sowieso mitgeliefert wird)
  • Ein gutes Buch ist immer gut, siehe Buchvorstellungen

Wie muss Bascom eingestellt werden, damit der ISP-Programmierdongle richtig funktioniert?

Die üblichen Dongles (AVR-ISP Programmierkabel wie z.B. von Robotikhardware) arbeiten alle gleich. Hier sollte im Dialog von Bascom folgende Einstellung erfolgen:

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

Weitere Infos dazu auch hier Einstellungen unter Bascom

Mit welcher Programmiersprache werden die RN-Controllerboards programmiert?

Bei den meisten RN-Boards handelt es sich um AVR-Boards. Diese können in Basic, C, Assembler und zum Teil in Pascal programmiert werden. Am beliebtesten ist derzeit der Basic-Compiler Bascom und der C-Compiler Avr-gcc. Für den schnellen Einstieg aber durchaus auch für professionelle Programme empfehle ich Bascom. Zu dieser Programmiersprache gibt es auch mehrere deutschsprachige Bücher. Siehe auch unter Buchvorstellungen


Mein Programm wird nicht übertragen bzw. der Controller wird nicht erkannt! Welche Ursachen kann das haben?

ISP-Kabel sind generell etwas empfindlich gegenüber Störungen. Das ISP-Kabel sollte möglichst nicht andere Kabel (Netzzuleitung usw.) kreuzen. Das kann manchmal auch zu unterschiedlichsten Fehlermeldungen führen.

Generell sollten folgende Dinge geprüft werden:


Stimmen die Einstellungen z.B. in Bascom Einstellungen unter Bascom?

Ist ISP-Stecker richtig rum aufgesteckt?

Bei den meisten Boards, wie auch RN-Control, kann man es nicht falschrum aufstecken. Aber beim RNBFRA-Board kann dies passieren, da dort aus Platzgründen kompatible Stiftleisten statt Wannenstecker genutzt wurden. Dort darauf achten, dass farbliche Markierung zum Boardrand zeigt

Nicht die I2C-Buchse mit der ISP-Buchse verwechseln

Beide haben den gleichen Stecker, also unbedingt auf die Platinenbeschriftung achten. Eine Verwechslung kann Dongle oder Port beschädigen, was dann auch zu Fehlermeldungen führt.

Kabel mal etwas anders verlegen und Störquellen wie Handy etc. entfernen

Einfach prüfen, ob auch Spannung am Board anliegt

Simpler Tipp, aber nicht selten wird es vergessen, wenn das Board keine LED hat :-)

Wackelkontakt in irgendeiner Steckverbindung

Stecker nochmal rein und rausziehen (am Dongle, am PC)

Aktuelle Bascom Version?

Im About-Window von Bascom nachschauen, ob ihr die aktuelle Bascom- Version habt. Bei älteren Versionen soll es insbesondere beim Mega 32 zu Problemen mit den Dongles (AVR-ISP Programmierkabel kommen. Also unbedingt prüfen ob die aktuelle Version installiert ist. Wenn nicht, unbedingt noch runterladen, dann geht's problemlos.

Quarz ok?

Es ist schon vorgekommen, dass ein Quarz diese Fehler verursacht. Tauscht den Quarz mal gegen einen anderen aus. Im Test waren einmal bei gleichem Quarz des gleichen Herstellers alle ISP-Probleme weg. Und das, obwohl beide Quarze im Betrieb funktionierten.

Binary File eingestellt?

Prüfe, ob in Bascom unter Optionen / Chip / Output auch das Binary File aktiviert ist. Dies ist wichtig, da sonst ebenfalls ein Fehler bei der Übertragung angezeigt wird.

Störungen durch andere Programme?

Schalte deinen Rechner mal komplett an und aus und starte, wenn möglich, keine anderen Anwendungen, sondern nur die Übertragungssoftware bzw. Bascom. Es ist schon vorgekommen, dass andere Programme die Übertragung behindert haben.

Kabel defekt?

Dongle-Kabel überprüfen. Es kommt zwar selten vor, dass ein Kabel defekt ist, aber es ist auch schonmal vorgekommen, dass ein Stecker nicht korrekt in die Adern geschnitten hat. Also möglichst mit Multimeter/Ohmmeter jeden Kontakt durchmessen. Auch mal benachbarte Kontakte auf Kurzschluss prüfen. Stecker müssen beim RN-ISP Dongle so montiert sein:

http://www.robotikhardware.de/bilder/isp/ispstecker.jpg

Programm zu lang?

Überprüfe mal, ob der Programmcode überhaupt in den Controller passt. Leider kommt da von Bascom auch keine eindeutige Fehlermeldung, so dass man oft lange nach Übertragungsfehlern sucht und in Wirklichkeit nur der Programmcode zu lang ist. Klicke mal auf das Symbol "Show Compile Result". Wenn der Code in den Chip passt, dann sollte dort folgender Satz zu finden sein:

ROMIMAGE     : 1FD0 hex  -> Will fit into ROM

Ein Defekt an Dongle oder Board ist wirklich sehr selten. Wenn man die Möglichkeit hat, sollte man durch CoController oder ein anderes Board/Dongle einen Test machen, um die Fehlerquelle einzukreisen.



Wie aktiviert man den Quarz beim Mega 16 / Mega 32 ?

Falls man das Board fertig bezieht ist dies bereits erledigt. Auch die Fusebits stimmen dann schon. Zumindest ist das bei rn-Control so der Fall. Ansonsten kann man den internen 1-Mhz-Takt jederzeit mit dem Bascomcompiler oder dem Programm Pony auf die Quarzfrequenz umschalten.

Unter Bascom geht dies so im Programmer-Dialogfenster:

http://www.roboternetz.de/bilder/bascom/bascomquarz550_f.gif

In Pony sieht die Einstellung der Fusebits bei Quarz-Aktivierung so aus:

http://www.roboternetz.de/phpBB2/album_pic.php?pic_id=152.gif

Siehe auch Einstellungen unter Bascom

Wie sieht ein Grundprogramm in Basic aus, welche Angaben müssen im Code vorhanden sein??

Ein Basic-Programm, das mit Bascom geschrieben wird, muss in jeden Fall als erstes die Taktfrequenz über den Befehl $crystal festlegen, ansonsten funktionieren einige Funktionen nicht korrekt oder garnicht. Da man fast immer auch die RS232-Schnittstelle nutzt, um mit Print Infos auszugeben, sollte man sich angewöhnen auch den $baud Befehl zum Festlegen der Übertragungsrate zu nutzen. Möchte man den I2C-Bus nutzen, so müssen auch diese Ports mit Config definiert werden. Ein einfaches Grundprogramm sollte wie auf Seite Bascom - Erstes Programm in den AVR Controller übertragen beschrieben aussehen

Einige Portleitungen am Port C scheinen nicht zu funktionieren!

Das kann an den Fuse-Bits liegen. Bei der Auslieferung von Controllern ist normalerweise ein sogenanntes JTAG-Interface aktiviert. Dieses Interface wird von professionellen Programmierern mit zusätzlicher Hardware zur Fehlersuche genutzt. Dadurch sind allerdings einige Ports nicht verwendbar. In der Regel sollte man dieses JTAG-Interface deaktivieren, damit wieder alle Ports verfügbar sind. Dies erfolgt über die sogenannten Fusebits (Einstellungsparameter innerhalb des Controllers). Wird der Controller zusammen mit einem Roboternetz-Board erworben, so ist JTAG in den meisten Fällen bereits ausgeschaltet, so das nix weiter gemacht werden muss. Ansonsten kann man dies auch sehr einfach über die Tools PONY oder BASCOM erledigen. Besonders bequem ist es in Bascom. Hier sehen die Einstellungen so aus:

http://www.roboternetz.de/bilder/bascom/bascomquarz550_f.gif

Ich bin Basic-Neueinsteiger! Wie kommt mein Programm in den Controller?

Dies ist mit Bascom-Basic recht einfach, da dieser Compiler ein eingebautes Übertragungsprogramm besitzt. Eine genaue Beschreibung findest du hier ISP und Bascom Wo man Bascom, passende Bücher und Beispiele findet, steht unter Buchvorstellungen

Board führt RESET aus, wenn ich ISP einstecke!

Beim Einstecken des ISP-Steckers kann es durchaus zu einem RESET kommen, insbesondere, wenn das Programmierkabel noch nicht im PC steckt. In diesem Fall sind einige Leitungen noch nicht auf richtigem Potential, so dass es zu Störungen kommen kann. Dies ist weg, sobald das Kabel richtig angeschlossen ist.

Board arbeitet nicht, wenn ich ISP einstecke!

Über das ISP Kabel wird auch die RESET-Leitung gesteuert. Es gibt einige Programme auf dem PC, die diese RESET-Leitung dauerhaft auf LOW schalten, wodurch das Board nicht mehr reagiert. Auch beim ausgeschalteten PC kann diese Blockade eintreten. Wenn das richtige Programm geladen wird, zum Beispiel Bascom Compiler, wird der Druckerport entsprechend richtig konfiguriert und der Blockadeeffekt ist weg, wenn das richtige ISP-Programm in der Bascomkonfiguration eingetragen ist. Eine genaue Beschreibung findest du hier ISP und Bascom

RN-Control: Der Spannungswandler wird schön warm, wenn ich Servos anschließe. Ist das normal?

Ja, ein Servo benötigt sehr viel Strom für die Motoren. Der Spannungsregler dürfte bei guter Kühlung (extra Kühlkörper) jedoch durchaus ein bis zwei Servos verkraften. Da ein Servo nicht unbedingt stabilisierte 5V benötigt, sondern durchaus auch mit ca. 4 bis 7V funktioniert, kann man auch einfach die Plusleitung des Servos direkt an das Batteriepack anschließen. Dadurch wird der Spannungsregler umgangen und man kann sogar viel mehr Servos anschließen.

Siehe auch


LiFePO4 Speicher Test