<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
		<id>https://rn-wissen.de/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Paul93</id>
		<title>RN-Wissen.de - Benutzerbeiträge [de]</title>
		<link rel="self" type="application/atom+xml" href="https://rn-wissen.de/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Paul93"/>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Spezial:Beitr%C3%A4ge/Paul93"/>
		<updated>2026-04-11T17:35:44Z</updated>
		<subtitle>Benutzerbeiträge</subtitle>
		<generator>MediaWiki 1.25.1</generator>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=RN-Definitionen&amp;diff=14912</id>
		<title>RN-Definitionen</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=RN-Definitionen&amp;diff=14912"/>
				<updated>2009-05-11T19:43:48Z</updated>
		
		<summary type="html">&lt;p&gt;Paul93: /* RS232 Stecker */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Steckerbelegungen für den Bereich Robotik- und Mikrocontroller== &lt;br /&gt;
Empfohlen und erarbeitet im RoboterNetz.de, um Schaltungen kompatibler zueinander zu gestalten. Alle Boards mit dem Kürzel RN-... halten sich an die hier festgelegten Definitionen. &lt;br /&gt;
Es wird empfohlen sich bei der Entwicklung eigener Schaltungen möglichst an diese Vereinbarung zu halten. Dadurch ist sichergestellt, dass auch andere Komponenten anderer Mitglieder oder Firmen in eurer Projekt integriert werden können. Und umgekehrt habt ihr dann auch die Möglichkeit, eigene Platinen-Entwürfe steckerkompatibel im RoboterNetz oder an anderer Stelle zu veröffentlichen. &lt;br /&gt;
&lt;br /&gt;
Einheitliche Stecker vereinfachen einfach das Handling!&lt;br /&gt;
&lt;br /&gt;
Die Steckerdefinitionen können auch als PDF geladen werden:&lt;br /&gt;
http://www.roboternetz.de/phpBB2/dload.php?action=file&amp;amp;file_id=81&lt;br /&gt;
&lt;br /&gt;
==Die verschiedenen Steckerarten==&lt;br /&gt;
&lt;br /&gt;
===RN-Busstecker===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
====I2C-Bus Stecker====&lt;br /&gt;
Ein universeller serieller Bus, mit dem sich sehr einfach verschiedene Boards ansteuern lassen. Der Bus hat den Vorteil, dass zwei Leitungen ausreichen und keine festen Taktraten und Zyklen beachtet werden müssen. Zahlreiche integrierte Schaltkreise (wie Porterweiterungen, LCD-Treiber, usw.) sowie fast alle RN-Boards nutzen diesen Bus. Am [[I2C]]-Bus können mehrere Boards/Bausteine angeschlossen werden, da jeder Baustein seine Slave-Adresse besitzt. &lt;br /&gt;
&lt;br /&gt;
Dieser Bus (Stecker) sollte auf jedem Controllerboard vorhanden sein, dadurch sind den Erweiterungen kaum Grenzen gesetzt. &lt;br /&gt;
&lt;br /&gt;
Der hier definierte Standard ist nicht nur zu allen RN-Boards kompatibel, sondern auch  zu vielen Schaltungen diverser Hersteller. Auch die Zeitschrift Elektor hat diesen Bus bereits genutzt (Elektor nutzt nur den Pin 10 nicht).&lt;br /&gt;
&lt;br /&gt;
[[Bild:rndefinition_wannenstecker.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:stecker_10pol_i2c.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Pin 1        SCL (Taktleitung)&lt;br /&gt;
 Pin 3        SDA (Datenleitung)&lt;br /&gt;
 Pin 5        +5V&lt;br /&gt;
 Pin 7        +5V&lt;br /&gt;
 Pin 9        Batteriespannung max. +12V&lt;br /&gt;
 Pin 2,4,6,8  GND&lt;br /&gt;
 Pin 10  INT  Diese Leitung kann von allen I2C-Bus Erweiterungen genutzt&lt;br /&gt;
              werden, um den Hauptcontroller darüber zu informieren, dass &lt;br /&gt;
              sich Daten (z.B. von Sensoren) verändert haben. In diesem Fall&lt;br /&gt;
              wird die Leitung solange auf Masse gelegt bis der entsprechende &lt;br /&gt;
              I2C-Baustein ausgelesen wird.&lt;br /&gt;
              Der Controller muss also immer alle I2C-Bausteine auslesen &lt;br /&gt;
              solange diese Leitung auf Masse liegt. Bei einem Hauptboard&lt;br /&gt;
              (wie z.B. RN-Control oder RNBFRA) kann diese Leitung auf einen&lt;br /&gt;
              interruptfähigen Port geleitet werden. &lt;br /&gt;
              Beim Elektor-Standard gibt es diese Leitung nicht, hier liegt &lt;br /&gt;
              dieses Signal immer auf Masse! &lt;br /&gt;
&lt;br /&gt;
Empfehlenswert ist es, dass die Spannungen an Pin 5,7 und 9 über Jumper auf einem Board deaktivierbar sind. Dadurch lassen sich identische Boards mit eigenen Stromversorgungen ebenfalls über I2C verbinden, denn nur ein Board darf diese Spannungen bereitstellen. Bei [[RN-Control]] ist dies bereits ab Version 1,4 über Jumper wählbar.&lt;br /&gt;
&lt;br /&gt;
 Bezugsmöglichkeit für passende Wannenbuchse:&lt;br /&gt;
 z.B. Reichelt (Best.Nr. WSL10G)&lt;br /&gt;
 Conrad-Elektronik (Best.Nr. 742512-12)&lt;br /&gt;
 Robotikhardware.de Kabelset&lt;br /&gt;
 Passender Stecker:&lt;br /&gt;
 z.B. Reichelt: &amp;quot;Pfostenbuchse&amp;quot; (Best.Nr. PFL 10)&lt;br /&gt;
&lt;br /&gt;
====SPI-Bus Stecker====&lt;br /&gt;
Ein universeller Stecker für den [[SPI]]-Bus. Der SPI-Bus eignet sich ähnlich wie der [[I2C]]-Bus zur Vernetzung mehrere Microcontroller oder spezieller Schaltkreise. Genau wie für den I2C-Bus gibt es auch für den SPI-Bus speziele IC´s wie LCD-Treiber, Porterweiterungen usw. &lt;br /&gt;
Vorteil des SPI-Busses ist die höhere Geschwindigkeit. Nachteil ist das mindestens 3 Leitungen notwendig sind (MISO,MOSI und SCK). Wenn mehr als ein Teilnehmer angeschlossen wird, so ist für jeden Teilnehmer noch eine Zusatzleitung zum selektieren des SLAVE (Empfangsboardes) notwendig. Um auch die Verwendung des [[SPI]]-Busses für Roboternetz-User zu standardisieren und möglichst leicht zugänglich zu machen, wird folgende Steckerbelegung empfohlen:&lt;br /&gt;
&lt;br /&gt;
 Pinbelegung&lt;br /&gt;
 Pin 1 Port (kann zur Auswahl anderer Slave genutzt werden) &lt;br /&gt;
 Pin 2 Port (kann zur Auswahl anderer Slave genutzt werden) &lt;br /&gt;
 Pin 3 Port (kann zur Auswahl anderer Slave genutzt werden) &lt;br /&gt;
 Pin 4 Port (kann zur Auswahl anderer Slave genutzt werden) &lt;br /&gt;
 Pin 5 SS (Standard Slave) &lt;br /&gt;
 Pin 6 MISO &lt;br /&gt;
 Pin 7 MOSI &lt;br /&gt;
 Pin 8 SCK &lt;br /&gt;
 Pin 9 GND &lt;br /&gt;
 Pin 10 Logikspannung 5V &lt;br /&gt;
&lt;br /&gt;
Mit diesem Stecker können somit 1 bis 5 Teilnehmer angesprochen werden. Über einen Multiplexer (möglichst an Pin 1 bis 4) könnte dies noch erhöht werden (in dem Sonderfall müssten alle Teilnehmer Multiplexer nutzen).&lt;br /&gt;
Der Vorteil des Steckers ist zudem, das er kompatibel zu den anderen 10 poligen Steckern der RN-Definition ist. Er kann somit auch für ganz andere Dinge wie LCD-Ansteuerung usw. genutzt werden, falls SPI nicht benötigt wird.&lt;br /&gt;
&lt;br /&gt;
[[Bild:rndefinition_wannenstecker.gif|center]]&lt;br /&gt;
&lt;br /&gt;
 Bezugsmöglichkeit für passende Wannenbuchse:&lt;br /&gt;
 z.B. Reichelt (Best.Nr. WSL10G)&lt;br /&gt;
 Conrad-Elektronik (Best.Nr. 742512-12)&lt;br /&gt;
 Passender Stecker:&lt;br /&gt;
 z.B. Reichelt: &amp;quot;Pfostenbuchse&amp;quot; (Best.Nr. PFL 10)&lt;br /&gt;
&lt;br /&gt;
====RS232 Stecker====&lt;br /&gt;
Die serielle Schnittstelle (RS232) kann wahlweise als 9-poliger SUB-D Stecker  (PC üblich) oder als 3-polige Stiftleiste herausgeführt werden. &lt;br /&gt;
Die 3-polige Stiftleiste bietet sich immer dann an, wenn nur wenig Platz auf dem Board vorhanden ist. Da die 3-polige Stiftleiste auch auf fast allen RN-Boards vorhanden ist, sollte man diese dem 9-poligen SUB-D Stecker vorziehen. Ein weiterer Vorteil dieser Stiftleiste ist die einfache Umpolung von RX/TX durch Umdrehen des Steckers.&lt;br /&gt;
&lt;br /&gt;
Die Belegung ist identisch mit der des CCRP5 (Conrad Roboter). Passende PC-Adapterkabel sind leicht anzufertigen und gibt es auch fertig im Fachhandel (z.B. http://robotikhardware.de).&lt;br /&gt;
&lt;br /&gt;
 Empfohlene Steckverbindung auf der Platine:	&lt;br /&gt;
 Stiftleiste 3-polig  Raster 2,54mm &lt;br /&gt;
 Pin 1   RX&lt;br /&gt;
 Pin 2   GND&lt;br /&gt;
 Pin 3   TX&lt;br /&gt;
&lt;br /&gt;
Bei einem 9 Poligem D-SUB Stecker muss RX mit dem Pin 2, TX mit dem Pin 3 und GND mit dem Pin 5 verbunden werden (siehe [[RS232]] Kontaktbelegug).&lt;br /&gt;
&lt;br /&gt;
Wie Abbildung 1 x 3 Kontakte&lt;br /&gt;
 &lt;br /&gt;
[[Bild:stift3.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:rn232adapter.jpeg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Bezugsquellen:&lt;br /&gt;
 z.B. Reichelt (Best.Nr. LU2,5MS3)&lt;br /&gt;
 Passende Stecker: &lt;br /&gt;
 Robotikhardware RS232-Kabel &lt;br /&gt;
 Reichelt PS25/3G BR&lt;br /&gt;
 Reichelt Crimpset (PSK254/3W und PSK-Kontakte und CRIMPZANGE PSK)&lt;br /&gt;
&lt;br /&gt;
====RS232 TTL Stecker====&lt;br /&gt;
&lt;br /&gt;
Die serielle Schnittstelle (RS232) im 5V-TTL-Pegel. Diese Schnittstelle ist vor allem dann interessant, wenn mehrere Controller miteinander verbunden werden. Die Stiftleiste ist 4-polig ausgelegt, um Verwechslungen mit der RS232 und dem PC-Pegel (+/-12V) zu vermeiden. Zudem lässt sich so ein Pegelwandler-Schaltkreis (z.B. Max232) anschließen und mit Spannung versorgen). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:stift4.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  Empfohlene Steckverbindung auf der Platine:&lt;br /&gt;
  Stiftleiste 4-polig  Raster 2,54mm &lt;br /&gt;
  Pin 1   RX&lt;br /&gt;
  Pin 2   TX&lt;br /&gt;
  Pin 3   GND&lt;br /&gt;
  Pin 4   5V&lt;br /&gt;
 &lt;br /&gt;
Bezugsquellen:&lt;br /&gt;
 z.B. Reichelt (Best.Nr. LU2,5MS4)&lt;br /&gt;
 Passende Stecker:&lt;br /&gt;
 Reichelt PS25/5G BR&lt;br /&gt;
 Reichelt Crimpset (PSK254/5W und PSK-Kontakte und CRIMPZANGE PSK)&lt;br /&gt;
&lt;br /&gt;
====RS485 Stecker====&lt;br /&gt;
Ein weiterer wichtiger Bus ist neben I2C, RS232 der [[RS485]] Bus. Dieser hat einige Vorteile. So können beispielsweise mehrere Slaves an einen Master angeschlossen werden. Die Übertragung kann wahlweise abwechselnd in eine oder in beide Richtungen gleichzeitig erfolgen. Es sind sehr hohe Übertragungsraten bis in den Mbit-Bereich über größere Entfernungen möglich.&lt;br /&gt;
&lt;br /&gt;
[[Bild:rndefinition_wannenstecker.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  Empfohlene Steckverbindung auf der Platine:	&lt;br /&gt;
  Wannenstecker Rastermaß 2,54mm 10-polig&lt;br /&gt;
  Pin 1   Volle Batteriespannung&lt;br /&gt;
  Pin 3   GND&lt;br /&gt;
  Pin 5   5V&lt;br /&gt;
  Pin 7   RS485 A   (kein TTL-Pegel)&lt;br /&gt;
  Pin 9   RS 485 B  (kein TTL-Pegel)&lt;br /&gt;
&lt;br /&gt;
  Pin 2   Volle Batteriespannung&lt;br /&gt;
  Pin 4   GND&lt;br /&gt;
  Pin 6   5V&lt;br /&gt;
  Pin 8   RS 485 C  (kein TTL-Pegel)&lt;br /&gt;
  Pin 10  RS 485 D  (kein TTL-Pegel)&lt;br /&gt;
&lt;br /&gt;
Diese Steckerbelegung hat einige Vorteile. Man kann auch nur einen Stecker mit 5 Polen aufstecken, wenn man nur einen Half-Duplex Bus benötigt. Man hat dann in diesen 5 Polen alles drin und die Belegung entspricht sogar noch den bisherigen Normierungen von uns (+12 / GND / +5 / Port / Port). Möchte man Vollduplex nutzen, dann müsste man den vollen Stecker benutzen - man hat also die Wahl! &lt;br /&gt;
&lt;br /&gt;
'''Pinbelegung der 5 poligen Alternative:'''&lt;br /&gt;
&lt;br /&gt;
  Pin 1   Volle Batteriespannung&lt;br /&gt;
  Pin 2   GND&lt;br /&gt;
  Pin 3   5V&lt;br /&gt;
  Pin 4   RS 485 C  (kein TTL-Pegel)&lt;br /&gt;
  Pin 5   RS 485 D  (kein TTL-Pegel)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:stift5.gif|center]]	&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Alternativ zum Wannenstecker können auch Stiftleisten mit gleicher Belegung eingesetzt werden!&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
  Bezugsquellen für Stecker:&lt;br /&gt;
  z.B. Reichelt (Best.Nr. WSL10G)&lt;br /&gt;
  Conrad-Elektronik (Best.Nr. 742512-12)&lt;br /&gt;
  robotikhardware.de Kabelset&lt;br /&gt;
  Passende Stecker:&lt;br /&gt;
  Reichelt PS25/5G BR&lt;br /&gt;
  Reichelt Crimpset (PSK254/5W und PSK-Kontakte und CRIMPZANGE PSK)&lt;br /&gt;
&lt;br /&gt;
===Universelle Anschlüsse für Sensoren und Aktoren===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
====Servo Stecker (sowie Sensoren/Aktoren die '''einen Port''' benötigen)====&lt;br /&gt;
Für den Anschluss von [[Servos]] gibt es bereits verschiedene Standard-Stecker der Modellbauhersteller. Für die Roboternetz-Definition haben wir uns einen der weitest verbreiteten herausgesucht und übernommen. Boards, die den Anschluss von Servos oder auch Modellbau-Empfängern erlauben, sollten diese 3-polige Stiftleiste vorsehen. Handelsübliche Servos können direkt angesteckt werden.&lt;br /&gt;
&lt;br /&gt;
Diese dreipolige Anschluss eignet sich jedoch auch, um Sensoren oder Aktoren, welche mit einem Datenport auskommen, anzuschließen.  &lt;br /&gt;
&lt;br /&gt;
 Empfohlene Steckverbindung auf der Platine:	&lt;br /&gt;
 Stiftleiste 3-polig  Raster 2,54mm &lt;br /&gt;
 &lt;br /&gt;
 Pin 1  GND&lt;br /&gt;
 Pin 2  +5 V&lt;br /&gt;
 Pin 3  Datenport (PWM-Signal) &lt;br /&gt;
	&lt;br /&gt;
Wie Abbildung 1 x 3 Kontakte&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[[Bild:stift3.gif|center]]	&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wobei sich die Steckerbelegung von Hersteller zu Hersteller unterscheidet.&lt;br /&gt;
&lt;br /&gt;
[[Bild:servosteckerbelegung.gif|center]]&lt;br /&gt;
&lt;br /&gt;
[[Bild:servo.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
 Bezugsquellen:&lt;br /&gt;
 z.B. Reichelt (Best.Nr. LU2,5MS3)&lt;br /&gt;
 Passende Stecker:&lt;br /&gt;
 Reichelt PS25/3G BR&lt;br /&gt;
 Reichelt Crimpset (PSK254/3W und PSK-Kontakte und CRIMPZANGE PSK)&lt;br /&gt;
 Servostecker im Modellbauladen&lt;br /&gt;
&lt;br /&gt;
====Universalanschluss 5 polig ('''2 Ports''' + Spannungen)====&lt;br /&gt;
Für den Anschluss von Aktoren (Relais, LED usw.) als auch Sensoren wurde eine 5-polige Stiftleiste festgelegt. Da viele Aktoren mehrere Ports benötigen, werden immer 2  Portleitungen zusammen mit den Spannungen auf jede Stiftleiste gelegt. &lt;br /&gt;
&lt;br /&gt;
 Empfohlene Steckverbindung auf der Platine:	&lt;br /&gt;
 Stiftleiste 5-polig  Raster 2,54mm &lt;br /&gt;
 &lt;br /&gt;
 Pin 1 Batteriespannung (max. 12 V)&lt;br /&gt;
 Pin 2 GND&lt;br /&gt;
 Pin 3 +5V&lt;br /&gt;
 Pin 4 Port 1 &lt;br /&gt;
 Pin 5 Port 2 &lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
[[Bild:stift5.gif|center]]	&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Bezugsquellen:&lt;br /&gt;
 z.B. Reichelt (Best.Nr. LU2,5MS5)&lt;br /&gt;
 Passende Stecker:&lt;br /&gt;
 Reichelt PS25/5G BR&lt;br /&gt;
 Reichelt Crimpset (PSK254/5W und PSK-Kontakte und CRIMPZANGE PSK)&lt;br /&gt;
&lt;br /&gt;
====Datenportstecker 10polig ('''8 Ports''')====&lt;br /&gt;
&lt;br /&gt;
Zum Experimentieren benötigt man oft mehrere Ports. Auch gibt es Aktoren/Sensoren oder sonstige Erweiterungen, die viele Ports benötigen. Für all diese Zwecke empfehlen wir den universellen Datenportstecker. Er verwendet die gleiche Belegung wie auch die Atmel Entwicklungsboards (z.B. STK500) und wird z.B. auch mehrfach auf dem Board [[RN-Control]] bereitgestellt.&lt;br /&gt;
&lt;br /&gt;
Seit August 2005 kann ein Datenportstecker auch als [[#Endstufenstecker 10polig (für Motoransteuerungen)|Endstufenstecker]] genutzt werden.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
 Empfohlene Steckverbindung auf der Platine:&lt;br /&gt;
 Pin 1   Port 0&lt;br /&gt;
 Pin 2   Port 1&lt;br /&gt;
 Pin 3   Port 2&lt;br /&gt;
 Pin 4   Port 3&lt;br /&gt;
 Pin 5   Port 4&lt;br /&gt;
 Pin 6   Port 5&lt;br /&gt;
 Pin 7   Port 6&lt;br /&gt;
 Pin 8   Port 7&lt;br /&gt;
 Pin 9   GND&lt;br /&gt;
 Pin 10  Logikspannung 5V&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:rndefinition_wannenstecker.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Zu finden bei EAGLE ist der Datenportstecker unter der Bezeichnung &amp;quot;ML10&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
 Bezugsmöglichkeit für passende Wannenbuchse:&lt;br /&gt;
 z.B. Reichelt (Best.Nr. WSL10G)&lt;br /&gt;
 Conrad-Elektronik (Best.Nr. 742512-12)&lt;br /&gt;
 http://www.Robotikhardware.de Kabelset&lt;br /&gt;
 Passender Stecker:&lt;br /&gt;
 z.B. Reichelt: &amp;quot;Pfostenbuchse&amp;quot; (Best.Nr. PFL 10)&lt;br /&gt;
&lt;br /&gt;
===Weitere Stecker===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
====ISP - Programmierstecker====&lt;br /&gt;
Über diesen Anschluss kann ein RN-Controllerboard sowie fast alle anderen auf dem Markt befindlichen AVR-Boards mit einem Standard ISP-Kabel direkt an einen Parallelport des PCs angeschlossen und programmiert werden.&lt;br /&gt;
Die Belegung des ISP-Anschlusses ist zu dem weit verbreiteten STK200-Programmier-Dongle und zum STK500 Starterkit von Atmel kompatibel. Ein entsprechender Dongle ist für  ca. 13-15 Euro über zahlreiche Händler lieferbar. &lt;br /&gt;
&lt;br /&gt;
Als Sicherung gegen falsches Zusammenstecken besitzt der Wannenstecker eine Aussparung und die Buchse Nut und Feder. Die Feder (der Vorsprung) an der Buchse und die Aussparung in der Wanne befinden sich nach der RN-Definition bei Pin 5=/RESET.&lt;br /&gt;
&lt;br /&gt;
Empfohlene Steckverbindung auf der Platine:&lt;br /&gt;
&lt;br /&gt;
 Pin 1  MOSI&lt;br /&gt;
 Pin 2  VCC&lt;br /&gt;
 Pin 3  Nicht belegt&lt;br /&gt;
 Pin 4  GND&lt;br /&gt;
 Pin 5  RESET&lt;br /&gt;
 Pin 6  GND&lt;br /&gt;
 Pin 7  SCK&lt;br /&gt;
 Pin 8  GND&lt;br /&gt;
 Pin 9  MISO&lt;br /&gt;
 Pin 10 GND &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[[Bild:rndefinition_wannenstecker.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Bezugsmöglichkeit für passende Wannenbuchse:&lt;br /&gt;
 z.B. Reichelt (Best.Nr. WSL10G)&lt;br /&gt;
 Conrad-Elektronik (Best.Nr. 742512-12)&lt;br /&gt;
 Passender Stecker:&lt;br /&gt;
 z.B. Reichelt: &amp;quot;Pfostenbuchse&amp;quot; (Best.Nr. PFL 10)&lt;br /&gt;
&lt;br /&gt;
====JTAG Stecker====&lt;br /&gt;
[[JTAG]] - (Joint Test Action Group) bezeichnet den IEEE-Standard 1149.1, der ein Verfahren zum Debugging von  Hardware beschreibt. Es ist also ein normiertes Interface zum Debuggen und Programmieren von vielen Microcontrollern, zum Beispiel die [[AVR]]-Serie. Er kann somit als Alternative des [[ISP]]-Steckers genutzt werden. Wie auch der ISP-Stecker benötigt man jedoch ein entsprechendes PC-Interface (JTAG-Dongel). Zum Debuggen ist eine spezielle Entwicklersoftware notwendig, derzeit gibt es dies meines Wissens nur für Assembler.&lt;br /&gt;
Das JTAG- Interface wird allerdings in Hobby Bereich deutlich weniger eingesetzt als das weit verbreitete [[ISP]]-Interface, vermutlich wegen der höheren Donglekosten. &lt;br /&gt;
Um auch die Verwendung des [[JTAG]]-Interfaces für Roboternetz-User zu erleichtern und zu standardisieren, wird die untere Steckerbelegung empfohlen. Bei der Ausarbeitung wurden die bisherigen Empfehlungen von [[Atmel]] und anderen Anbietern berücksichtigt, so das bereit passende Interfaces verfügbar sind.&lt;br /&gt;
&lt;br /&gt;
 Pinbelegung&lt;br /&gt;
 Pin 01 - TCK   (Test Clock)  &lt;br /&gt;
 Pin 02 - GND   (Masse)&lt;br /&gt;
 Pin 03 - TDO   (Test Data Output) &lt;br /&gt;
 Pin 04 - VREF  (Wird seltener genutzt und ist oft unbelegt. Kontrolle der Betriebsspannung) &lt;br /&gt;
 Pin 05 - TMS   (Test Mode Select Input)&lt;br /&gt;
 Pin 06 - NSRST (Wird seltener genutzt und ist oft unbelegt. RESET Eingang des Targets.&lt;br /&gt;
                 Ausgang zur Überwachung der RESET-Leitung des Targets)&lt;br /&gt;
 Pin 07 - VCC   (+5V)&lt;br /&gt;
 Pin 08 - NTRST &lt;br /&gt;
 Pin 09 - TDI   (Test Data Input)&lt;br /&gt;
 Pin 10 - GND   (Masse)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:rndefinition_wannenstecker.gif|center]]&lt;br /&gt;
&lt;br /&gt;
 Bezugsmöglichkeit für passende Wannenbuchse:&lt;br /&gt;
 z.B. Reichelt (Best.Nr. WSL10G)&lt;br /&gt;
 Conrad-Elektronik (Best.Nr. 742512-12)&lt;br /&gt;
 Passender Stecker:&lt;br /&gt;
 z.B. Reichelt: &amp;quot;Pfostenbuchse&amp;quot; (Best.Nr. PFL 10)&lt;br /&gt;
&lt;br /&gt;
====Endstufenstecker 10polig (für Motoransteuerungen)====&lt;br /&gt;
&lt;br /&gt;
Wenn ein Motorboard nicht über I2C/ RS232 oder anderen Bus angesteuert wird, so wird folgender Wannenstecker als Anschluss empfohlen.  Die Belegung ist angelehnt an die beliebten Motortreiberschaltkreise L293D, L298 und ähnliche H-Brücken.&lt;br /&gt;
&lt;br /&gt;
Der Stecker eignet sich somit zum Ansteuern von einem oder zwei DC-Motoren (z.B. Getriebemotoren) oder einem Schrittmotor. &lt;br /&gt;
Auch Endstufen, die nur einen Motor ansteuern können, sollten diesen Stecker verwenden. Empfehlenswert sind dann Jumper, um zwischen Motor1 und Motor2 zu wählen. Auf diese Weise können einfach zwei Endstufen durchgeschleift werden (zwei gleiche Stecker am Kabel).&lt;br /&gt;
&lt;br /&gt;
Die mit NC (Not Connected) gekennzeichneten PINs sind absichtlich nicht normiert, um diese im Einzelfall auch individuell für Sonderfunktionen nutzen zu können. Allerdings darf hier nur ein Pegel zwischen 0 und 5V angelegt werden, kein höherer Pegel! Die NC-Pins müssen nicht genutzt werden, können also unbelegt bleiben. Wer jedoch für alle Fälle gerüstet sein möchte, sollte die NC-Pins per Jumper auf einen AD-Port legen können. Es ist damit zu rechnen, dass einige Boards die NC-Ports für ein Strommessignal (0 bis 2,5V) nutzen. &lt;br /&gt;
&lt;br /&gt;
Der Motorendstufenstecker ist seit dem August 2005 kompatibel zu dem definierten universellen [[#Datenportstecker 10polig (8 Ports)|Datenportstecker]]. Datenportstecker sind mehrfach auf Standard-Boards wie RN-Control, Atmel STK500 und anderen Boards, die im Roboternetz vorgestellt wurden, vorhanden. Somit lassen sich Datenportstecker sehr schnell als Endstufenstecker nutzen und umgekehrt. Beim Entwickeln neuer Boards kann dies noch verbessert werden, indem man die PWM-Ports entsprechend dem Endstufenstecker auch auf den Datenportstecker legt. &lt;br /&gt;
&lt;br /&gt;
 Empfohlene Steckverbindung auf der Platine:&lt;br /&gt;
 Pin 1 Motor 1 IN 1 &lt;br /&gt;
 Pin 2 Motor 1 IN 2 &lt;br /&gt;
 Pin 3 Motor 2 IN 1 &lt;br /&gt;
 Pin 4 Motor 2 IN 2 &lt;br /&gt;
 Pin 5 NC (siehe Anmerkung)&lt;br /&gt;
 Pin 6 Enable Motor1 ein (eventuell PWM) &lt;br /&gt;
 Pin 7 NC  (siehe Anmerkung)&lt;br /&gt;
 Pin 8 Enable Motor2 ein (eventuell PWM) &lt;br /&gt;
 Pin 9 GND &lt;br /&gt;
 Pin 10 Logikspannung 5V &lt;br /&gt;
&lt;br /&gt;
[[Bild:rndefinition_wannenstecker.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Bezugsmöglichkeit für passende Wannenbuchse:&lt;br /&gt;
 z.B. Reichelt (Best.Nr. WSL10G)&lt;br /&gt;
 Conrad-Elektronik (Best.Nr. 742512-12)&lt;br /&gt;
 Robotikhardware.de Kabelset&lt;br /&gt;
 Passender Stecker:&lt;br /&gt;
 z.B. Reichelt: &amp;quot;Pfostenbuchse&amp;quot; (Best.Nr. PFL 10)&lt;br /&gt;
&lt;br /&gt;
====LCD Stecker====&lt;br /&gt;
Für Boards mit wenig Platz oder freien Ports wurde ein sehr kompakter Stecker mit nur 10 Leitungen definiert. Es sind jedoch alle Leitungen vorhanden, um fast alle LCDs im sogenannten 4-Bit-PIN-Mode zu betreiben. &lt;br /&gt;
Bei Verwendung dieses Steckers muss jedoch die Kontrastspannung am LCD festgelegt werden (ein 10k Poti reicht). LCDs mit Beleuchtung können die Versorgungsspannung mit einem Vorwiderstand auch zur Versorgung der Beleuchtung nutzen. Auf diese Weise reicht ein 10-poliges Kabel aus.&lt;br /&gt;
&lt;br /&gt;
Dieser LCD-Stecker ist seit dem August 2005 kompatibel zu dem definierten universellen [[#Datenportstecker 10polig (8 Ports)|Datenportstecker]]. Datenportstecker sind mehrfach auf Standard-Boards wie RN-Control, Atmel STK500 und anderen Boards, die im Roboternetz vorgestellt wurden, vorhanden. Somit lassen sich Datenportstecker sehr schnell als LCD-Stecker oder Endstufenstecker nutzen und umgekehrt. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Empfohlene Steckverbindung auf der Platine:&lt;br /&gt;
 Pin 1 DB7 &lt;br /&gt;
 Pin 2 DB6 &lt;br /&gt;
 Pin 3 DB5 &lt;br /&gt;
 Pin 4 DB4 &lt;br /&gt;
 Pin 5 EN2 (wird nur bei manchen LCDs benötigt)&lt;br /&gt;
 Pin 6 EN &lt;br /&gt;
 Pin 7 R/W &lt;br /&gt;
 Pin 8 RS &lt;br /&gt;
 Pin 9 GND &lt;br /&gt;
 Pin 10 +5V &lt;br /&gt;
&lt;br /&gt;
[[Bild:rndefinition_wannenstecker.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Da auch fast alle LCDs den gleichen 16-poligen Anschluss besitzen, kann alternativ auch eine 16-polige Wannenbuchse vorgesehen werden:&lt;br /&gt;
&lt;br /&gt;
 Pin 1    GND&lt;br /&gt;
 Pin 2    5V&lt;br /&gt;
 Pin 3    Vee Kontrastspannung (0-4V)&lt;br /&gt;
 Pin 4    RS (CS)&lt;br /&gt;
 Pin 5    R/W  (SID)&lt;br /&gt;
 Pin 6    Enable (1)  (SCLK)&lt;br /&gt;
 Pin 7    DB0 (SOD)&lt;br /&gt;
 Pin 8    DB1&lt;br /&gt;
 Pin 9    DB2&lt;br /&gt;
 Pin 10   DB3&lt;br /&gt;
 Pin 11   DB4&lt;br /&gt;
 Pin 12   DB5&lt;br /&gt;
 Pin 13   DB6&lt;br /&gt;
 Pin 14   DB7,MSB&lt;br /&gt;
 Pin 15   LED – Beleuchtung +&lt;br /&gt;
 Pin 16   LED – Beleuchtung -&lt;br /&gt;
&lt;br /&gt;
20 poliger LCD-Anschluss (redefiniert am 27.02.2006)&lt;br /&gt;
Für Grafik-LCD oder Anzeigen bei denen der 16-polige Stecken nicht ausreicht.&lt;br /&gt;
(sollte '''nur in Ausnahmefällen verwendet''' werden)&lt;br /&gt;
 Pin 1 GND &lt;br /&gt;
 Pin 2 5V &lt;br /&gt;
 Pin 3 Vee Kontrastspannung (0-4V) &lt;br /&gt;
 Pin 4 RS (CS) &lt;br /&gt;
 Pin 5 R/W (SID) &lt;br /&gt;
 Pin 6 Enable (1) (SCLK) &lt;br /&gt;
 Pin 7 DB0 (SOD) &lt;br /&gt;
 Pin 8 DB1 &lt;br /&gt;
 Pin 9 DB2 &lt;br /&gt;
 Pin 10 DB3 &lt;br /&gt;
 Pin 11 DB4 &lt;br /&gt;
 Pin 12 DB5 &lt;br /&gt;
 Pin 13 DB6 &lt;br /&gt;
 Pin 14 DB7,MSB &lt;br /&gt;
 Pin 15 Enable2 bei 4 zeiligen Displays für 2. Controller  &lt;br /&gt;
 Pin 16 Reset &lt;br /&gt;
 Pin 17 LED – Beleuchtung + &lt;br /&gt;
 Pin 18 LED – Beleuchtung - &lt;br /&gt;
 Pin 19 CS2 (wird nur bei manchen Displays zusätzlich genutzt) &lt;br /&gt;
 Pin 20 nc (keine fest definierte Verwendung)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Bezugsmöglichkeit für passende '''Wannen''':&lt;br /&gt;
 z.B. Reichelt: &amp;quot;Wannenstecker&amp;quot; (Best.Nr. WSL10G, Best.Nr. WSL16G, Best.Nr. WSL20G)&lt;br /&gt;
 z.B. Conrad: &amp;quot;MESSERL. M GER. LÖTSTIFTEN&amp;quot;(Best.Nr. 742512-12, Best.Nr. 742537-MF, Best.Nr. 742551-MF)&lt;br /&gt;
 Bezugsmöglichkeit für passende '''Kabelbuchsen''':&lt;br /&gt;
 z.B. Reichelt: &amp;quot;Pfostenbuchse&amp;quot; (Best.Nr. PFL 10, Best.Nr. PFL 16, Best.Nr. PFL 20)&lt;br /&gt;
 z.B. Conrad: &amp;quot;PFOSTEN-STECKVERBINDER&amp;quot; (Best.Nr. 702013-MF, Best.Nr. 742198-MF, Best.Nr. 742309-MF&lt;br /&gt;
 Robotikhardware.de: '''Kabelset'''&lt;br /&gt;
&lt;br /&gt;
====Encoder Stecker für 2 externe QuadraturEncoder (Drehzahlmessung)====&lt;br /&gt;
Diese Schnittstelle dient zum Anschluss von 2 Quadratur-Encodern mit zusätzlichem Null-Positions-Eingang (SYNC) . &lt;br /&gt;
Encoder dienen vornehmlich als Wegstreckenzähler oder zur Regelung von Drehzahlen.&lt;br /&gt;
&lt;br /&gt;
Dieser Stecker ist auch kompatibel zu dem definierten universellen [[#Datenportstecker 10polig (8 Ports)|Datenportstecker]]. Datenportstecker sind mehrfach auf Standard-Boards wie RN-Control, Atmel STK500 und anderen Boards, die im Roboternetz vorgestellt wurden, vorhanden. Somit lassen sich Datenportstecker sehr schnell als Encoder-Stecker  nutzen und umgekehrt. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Empfohlene Steckverbindung auf der Platine:&lt;br /&gt;
 Pin 1 ENC 1 A (sollte ein Timer Eingang, z.B. Timer0 sein) &lt;br /&gt;
 Pin 2 ENC 1 B&lt;br /&gt;
 Pin 3 ENC 2 A (sollte ein Timer Eingang, z.B. Timer1 sein) &lt;br /&gt;
 Pin 4 ENC 2 B  &lt;br /&gt;
 Pin 5 NC &lt;br /&gt;
 Pin 6 ENC 1 Sync (sollte Interrupt Eingang sein) &lt;br /&gt;
 Pin 7 NC &lt;br /&gt;
 Pin 8 ENC 2 Sync (sollte Interrupt Eingang sein) &lt;br /&gt;
 Pin 9 GND &lt;br /&gt;
 Pin 10 +5V &lt;br /&gt;
&lt;br /&gt;
[[Bild:rndefinition_wannenstecker.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Bezugsmöglichkeit für passende Wannenbuchse:&lt;br /&gt;
 z.B. Reichelt (Best.Nr. WSL10G)&lt;br /&gt;
 Conrad-Elektronik (Best.Nr. 742512-12)&lt;br /&gt;
 Robotikhardware.de Kabelset&lt;br /&gt;
&lt;br /&gt;
==Platinenmaße / Bohrlöcher==&lt;br /&gt;
RN-Boards haben einheitliche Platinengrößen mit definierten Bohrlöchern. Dies gestattet die platzsparende &amp;quot;Huckepack&amp;quot;-Montage. Diese Standardmaße werden dringend empfohlen, RN-Boards die für einen besonderen Zweck konzipiert werden, welches ein anderes Platinenmaß erfordert (z.B. Adapter, speziell für Gehäuseeinbau etc.) können natürlich davon abweichen. &lt;br /&gt;
&lt;br /&gt;
[[Bild:platine_halbeuro.gif|center]]&lt;br /&gt;
&lt;br /&gt;
Passendes Eagle Script hier http://www.roboternetz.de/phpBB2/dload.php?action=file&amp;amp;file_id=127&lt;br /&gt;
&lt;br /&gt;
[[Bild:platine_euro.gif|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:platine_vierteleuro.gif|center]]&lt;br /&gt;
&lt;br /&gt;
Passendes Eagle Script hier http://www.roboternetz.de/phpBB2/dload.php?action=file&amp;amp;file_id=181&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Weitere Definitionen werden regelmäßig ins WIKI übernommen''&lt;br /&gt;
&lt;br /&gt;
== Logo für Standard ==&lt;br /&gt;
Boards, die den Standard nutzen, kann man auch an folgendem Logo erkennen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:roboternetzstandard.gif|center]]&lt;br /&gt;
&lt;br /&gt;
== Kombinationsmöglichkeiten, die sich ergeben==&lt;br /&gt;
Durch einheitlichen Standard sind beispielsweise folgende Kombinationen denkbar:&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
http://www.roboternetz.de/bilder/boardkombination.gif&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
* [[RN-Slave ID Übersicht]]&lt;br /&gt;
* [[I2C]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Microcontroller]]&lt;br /&gt;
[[Kategorie:Praxis]]&lt;br /&gt;
[[Kategorie:Elektronik]]&lt;br /&gt;
[[Kategorie:Robotikeinstieg]]&lt;br /&gt;
[[Kategorie:Projekte]]&lt;/div&gt;</summary>
		<author><name>Paul93</name></author>	</entry>

	<entry>
		<id>https://rn-wissen.de/wiki/index.php?title=Bascom_-_Erstes_Programm_in_den_AVR_Controller_%C3%BCbertragen&amp;diff=14343</id>
		<title>Bascom - Erstes Programm in den AVR Controller übertragen</title>
		<link rel="alternate" type="text/html" href="https://rn-wissen.de/wiki/index.php?title=Bascom_-_Erstes_Programm_in_den_AVR_Controller_%C3%BCbertragen&amp;diff=14343"/>
				<updated>2008-12-13T22:42:13Z</updated>
		
		<summary type="html">&lt;p&gt;Paul93: /* Wie ist der Ablauf mit Bascom Basic? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Wie ist der Ablauf mit Bascom Basic?==&lt;br /&gt;
Atmel Controller (also auch [[RN-Control]]) lassen in verschiedenen Programmiersprachen programmieren.  Sehr beliebt sind diesbezüglich der Basic Compiler [[Bascom]], der C Compiler GCC und der AVR Studio Assembler. &lt;br /&gt;
&lt;br /&gt;
Der Einstieg wird einem besonders einfach beim [[Bascom]] Compiler gemacht. Nicht nur dass dieser unzählige von Funktion besitzt, nein auch die Entwicklungsumgebung ist sehr umfangreich. Simulator, [[Terminalprogramm]] und Flasher (Übertragungsprogramm) sowie eine ganze Reihe anderer Tools sind bereits integriert. Zudem erzeugt der Compiler überraschend kompakten Maschinencode.&lt;br /&gt;
Es gibt eine kostenlose Demo-Version von [[Bascom]]. Die Einschränkung gegenüber der Vollversion besteht im wesentlichen darin, das nur 4K Code erzeugt werden kann. Dies reicht bereits für viele kleinere Anwendungen aus. Für ca. 90 Euro gibt’s auch eine Vollversion ohne Einschränkung. Fast alle gängigen [[Atmel]]-Controller lassen sich mit Bascom Basic programmieren.&lt;br /&gt;
&lt;br /&gt;
Der Einstieg ist sehr einfach. Nachdem man sich die Demo oder Vollversion besorgt hat, installiert man das Programm über SETUP auf einem Windows-Rechner, dies ist recht unproblematisch.&lt;br /&gt;
Das Programm wird anschließend über das START-Menü aufgerufen.&lt;br /&gt;
&lt;br /&gt;
Bevor ein erstes Programm entwickelt wird, sollte man erst mal einige grundsätzliche Optionen in Bascom einstellen. Zum Programmieren eines Controllers benötigt man ein speziellen Adapter welcher einige Leitungen des Controllers (SPI-Ports und RESET) mit dem PC verbindet. Man spricht hier von einem [[AVR-ISP Programmierkabel|AVR-ISP Programmierkabel]] oder auch [[AVR-ISP Programmierkabel|ISP-Dongel]] genannt, dieser wird oft an den Druckerport des PC  angeschlossen. &lt;br /&gt;
&lt;br /&gt;
Beispiel eines ISP-Programmierkabels (hier [[AVR-ISP Programmierkabel|Bauanleitung]]):&lt;br /&gt;
&lt;br /&gt;
[[Bild:avrtutorial_ispkabel.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
Verwendet man ein solches Kabel, so sollte man in Bascom folgende Optionen einstellen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
http://www.roboternetz.de/bilder/bascom/bascomispoptionen.gif&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dann müsst ihr noch im BIOS nachsehen, welche Adresse der zu verwendend Port hat. Dies macht ihr indem ihr beim Neustart die Taste [Entf] drückt. Dort müsst ihr dann etwas suchen, da diese Einstellungen bei jedem BIOS anders sind. '''WICHTIG: Verändert auf keinen fall die Einstellungen im BIOS!'''&lt;br /&gt;
Die Adresse tragt ihr nun in das Feld &amp;quot;LPT-Adress&amp;quot; ein.&lt;br /&gt;
&lt;br /&gt;
Diese Optionen bleiben dauerhaft gespeichert und müssen nicht bei jedem neuen Programm geändert werden.&lt;br /&gt;
&lt;br /&gt;
Nun müssen noch die Output-Optionen in [[Bascom]] festgelegt werden. Bascom ist in der Lage eine ganze Reihe von verschiedenen Dateien zu generieren um später verschiedene Programmiertools und Debugger nutzen zu können. Empfehlenswert ist folgende Grundeinstellung:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
http://www.roboternetz.de/bilder/bascom/bascomoutputoptionen.gif&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Das erste Programm===&lt;br /&gt;
&lt;br /&gt;
Über das Menü File/New kann dann ein neues Fenster für ein erstes Bascom-Programm geöffnet werden.&lt;br /&gt;
Als erstes Einstiegsprogramm könnte ein &amp;quot;Hello World&amp;quot;-Programm so aussehen:&lt;br /&gt;
&lt;br /&gt;
  Print &amp;quot;**** RN-CONTROL sagt Hello World *****&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Dieses Programm würde allerdings kaum funktionieren, außer wenn man unter Optionen den Controllertyp, die genaue Quarzfrequenz und Baudrate des verwendeten Controllers (Controllerboard´s) richtig eingestellt hat.&lt;br /&gt;
&lt;br /&gt;
Es ist allerdings empfehlenswert diese Werte lieber im Programmcode mit festzulegen. Dadurch hat man eine wesentlich bessere Übersicht und kann die Programme auch leichter, ohne zusätzliche Kommentare, an interessierte weitergeben. Eventuell vorhandene Einstellungen im Optionsmenü werden durch die Anweisungen im Code außer Kraft gesetzt.&lt;br /&gt;
Im Falle von dem Microcontrollerboard [[RN-Control]] mit AVR [[ATMega32]] sollte daher jeder Quelltext mit folgenden Zeilen beginnen:&lt;br /&gt;
&lt;br /&gt;
  $regfile = &amp;quot;m32def.dat&amp;quot;&lt;br /&gt;
  $framesize = 32&lt;br /&gt;
  $swstack = 32&lt;br /&gt;
  $hwstack = 32&lt;br /&gt;
  $crystal = 16000000&lt;br /&gt;
  $baud = 9600&lt;br /&gt;
   do&lt;br /&gt;
     Print &amp;quot;**** RN-CONTROL sagt Hello World *****&amp;quot;&lt;br /&gt;
     wait 1&lt;br /&gt;
   loop&lt;br /&gt;
&lt;br /&gt;
Die erste Anweisung $regfile  legt fest für welchen Controllertyp überhaupt Code produziert werden soll. Die Anweisungen    $framesize,  $swstack,  $hwstack sind eigentlich bei dem kleinen Programm nicht notwendig. Sie legen den Platz fest, der für bestimmte Stackbereiche (lokale Variablen / Funktionsparameter) reserviert wird. Man sollte sich jedoch gleich angewöhnen diese Anweisungen in den Code zu schreiben. Das ermitteln der richtigen Werte für die Stackgröße ist etwas aufwendiger, dazu bietet Bascom spezielle Funktionen für den Simulator. In der Regel kommt man aber mit den oberen Werten schon bei den meisten Programmen hin. Im Zweifel sollte man die Werte etwas erhöhen. Je höher die Werte, desto mehr Speicher wird natürlich benötigt. Zu geringe Werte können aber unter Umständen, wenn z.B. viele Subroutinen, Funktionen, Interrupts, lokale Variablen genutzt werden, zu seltsamen schwer auffindbaren Programmfehlern führen. &lt;br /&gt;
Wenn also eine Funktion völlig unsinnige Ergebnisse liefert oder Abstürze erfolgen, dann ist es Zeit den Stack mal zu prüfen.&lt;br /&gt;
&lt;br /&gt;
Die Anweisung $crystal legt die Quarzfrequenz fest. Es ist wichtig, dass Bascom weiss, mit welcher Quarzfrequenz der Controller arbeitet. Ansonsten liefern viele Funktionen falsche Ergebnisse oder funktionieren erst garnicht. Anzumerken ist hier, dass [[AVR]] Controller der Mega Serie (wie der [[ATMega32]] in [[RN-Control]]) nach dem Kauf noch gar keinen Quarz sondern den internen Taktgenerator nutzen. Der interne Taktgenerator läuft immer mit 1 Mhz, so dass man bei neuen Controllern eigentlich   $crystal=1000000 angeben müsste. Zumindest solange bis man den Quarz über die sogenannten Fusebits (bestimmte Einstellungen im Controller) aktiviert.&lt;br /&gt;
Da in diesem Beispiel jedoch das Board [[RN-Control]] gleich auf die vollen 16 Mhz umgeschaltet werden soll,  geben wir gleich $crystal = 16000000  an.&lt;br /&gt;
&lt;br /&gt;
Die Anweisung  $baud = 9600 bestimmt die Übertragungsgeschwindigkeit der RS232 Schnittstelle im Controller. 9600 Baud ist ein Wert der sehr oft genutzt wird. Da ein Controller ja kein Bildschirm besitzt, erfolgen alle Ausgaben gewöhnlich über diese RS232  Schnittstelle. Man muss also nur das eingebaute [[Terminalprogramm]] in [[Bascom]] starten und kann dann alle Ausgaben des angeschlossenen Controllers am Bildschirm verfolgen. Dies ist sehr hilfreich bei der Fehlersuche in Programmen, daher gehört neben dem [[AVR-ISP Programmierkabel]] eigentlich auch immer ein RS232-Kabel zur Standard Ausstattung eines Programmierers.&lt;br /&gt;
&lt;br /&gt;
Nachdem nun der Quellcode erstellt wurde muss dieser compiliert (in Maschinencode übersetzt) werden. Dies geschieht durch einen einfachen Klick: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
http://www.roboternetz.de/bilder/bascom/bascomcompilieren550_a.gif&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hat man noch einen Fehler im Quellcode, dann steht nun gewöhnlich im unteren Bereich eine Fehlermeldung, ansonsten dürfte ein Fenster ähnlich wie dieses erscheinen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
http://www.roboternetz.de/bilder/bascom/bascomcompiliermsg_b.gif&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dieser Vorgang dauert oft nur wenige Sekunden, danach ist das Maschinencodeprogramm fertig. Damit es ausgeführt werden kann, muss es natürlich in den Controller übertragen werden. Dazu verbindet man das Controllerboard über ein ISP-Programmierkabel mit dem Druckerport des PC´s. Zudem schaltet man die Betriebsspannung des Baords ein. Nun kann der Bascom Programmiermodus durch einen Klick aktiviert werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
http://www.roboternetz.de/bilder/bascom/bascomprgaktivieren550_c.gif&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Im Bascom Programmiermodus wird der Maschinencode in Hex-Form angezeigt. In diesem Dialog brauchen wir eigentlich nur die Übertragung zu starten. Dies geschieht wiederum durch einen Klick:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
http://www.roboternetz.de/bilder/bascom/bascomispstart550_d.gif&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Auch die Übertragung dauert nur wenige Sekunden. Wenn alles geklappt hat sollte in der Statuszeile links &amp;quot;OK&amp;quot; stehen. Leider ist die ISP Übertragung manchmal etwas störanfällig so das man einen zweiten oder dritten Versuch braucht. Kommt dies öfters vor, sollte man prüfen ob nicht ein Netzkabel oder eine andere Störquelle das ISP Kabel kreuzt.&lt;br /&gt;
&lt;br /&gt;
Nachdem man das Programm übertragen hat, muss man bei einem neuen Controller noch die sogenannten Fusebit´s umschalten. Unter dem Begriff Fusebit´s versteht man bestimmte Controllereinstellungen die ebenfalls über das ISP-Programmierkabel geändert werden können. Es gibt eine ganze Reihe von Einstellungen die man verändern kann, dies ist bei jedem Controller ein wenig anders. gewöhnlich reicht es jedoch den Quarz zu aktivieren und ein soganannten JTAG-Interface zu deaktivieren. Das JTAG-Interface ist ein spezielles Debugger-Interface um Programmfehler zu finden, es kann jedoch nur genutzt werden wenn man spezielle Zusatzhardware besitzt. Da dies selten der Fall ist kann man diese Port´s auch für andere Zwecke nutzen, daher wird dieses oft deaktiviert.&lt;br /&gt;
Um die Fusebit´s nun zu ändern rufen wir im Programmierdialog die Tafel mit den [[Fusebits]] durch einen klick auf:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
http://www.roboternetz.de/bilder/bascom/bascomfusebitdialog550_e.gif&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Controller muss beim Aufruf dieses Dialoges angeschlossen und mit Strom versorgt werden.&lt;br /&gt;
Nun können wir die [[Fusebits]] an zwei Stellen ändern. Dies geht in [[Bascom]] sehr bequem, da wir in zwei Feldern nur eine andere Auswahl treffen müssen, siehe Bild:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
http://www.roboternetz.de/bilder/bascom/bascomquarz550_f.gif&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Beim Quarz ist es meist die unterste Auswahlmöglichkeit. Die [[Fusebits]] sind also richtig eingestellt wenn es wie auf dem oberen Bild aussieht. Bei dem Board [[RN-Control]] sind diese Einstellungen in der Regel nicht notwendig da diese bereits vor der Auslieferung umgestellt werden.&lt;br /&gt;
Die Fusebits müssen auch nur einmal umgestellt werden. Die Einstellungen  bleiben auch erhalten wenn ein neues Programm eingespielt wird.&lt;br /&gt;
Nicht vergessen dass nach der Änderungen der Fusebit-Auswahl diese auch über den Button &amp;quot;WRITE FS&amp;quot; und &amp;quot;WRITE FSH&amp;quot; in den Controller übertragen werden müssen. &lt;br /&gt;
&lt;br /&gt;
Vorsicht: Vor der Übertragung darauf achten dass die richtigen Quarzeinstellungen gewählt wurden. Man kann den Controller dort nämlich auch auf aktive externe Taktgeneratoren umstellen. Wenn man dies versehentlich tut und keinen echten Taktgenerator hat, dann ist der Controller quasi tot und muss gewechselt werden.&lt;br /&gt;
&lt;br /&gt;
Mit der Programmübertragung wird gleichzeitig auch immer ein RESET ausgeführt und das Programm im Controller gestartet. Wenn Sie nun also das Terminalprogramm in Bascom starten (Parameter 9600 baud, 8 Bit, 1 Stopp Bit), dann wird im Sekundentakt  ''**** RN-CONTROL sagt Hello World *****''  erscheinen.&lt;br /&gt;
&lt;br /&gt;
'''Nun viel Spaß beim Einstieg'''&lt;br /&gt;
&lt;br /&gt;
==Autor==&lt;br /&gt;
* Frank&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
*[[Bascom]]&lt;br /&gt;
*[[AVR-ISP Programmierkabel]]&lt;br /&gt;
*[[RN-Board FAQ-Seite]] &lt;br /&gt;
*[[Atmel]]&lt;br /&gt;
*[[RN-Control]]&lt;br /&gt;
*[[AVR-Einstieg leicht gemacht]]&lt;br /&gt;
*[[Buchvorstellungen]]&lt;br /&gt;
&lt;br /&gt;
==Weblinks==&lt;br /&gt;
[http://www.roboternetz.de/phpBB2/viewforum.php?f=32 Bascom-Forum]&lt;br /&gt;
[[Kategorie:Microcontroller]]&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:Grundlagen]]&lt;br /&gt;
[[Kategorie:Praxis]]&lt;br /&gt;
[[Kategorie:Robotikeinstieg]]&lt;/div&gt;</summary>
		<author><name>Paul93</name></author>	</entry>

	</feed>