ARDUINO UNO R3

http://sites.schaltungen.at/bascom-avr/arduino-uno-r3

http://www.linksammlung.info/

http://www.schaltungen.at/

                                                                                             Wels, am 2015-05-10

BITTE nützen Sie doch rechts OBEN das Suchfeld  [                                                              ] [ Diese Site durchsuchen]

DIN A3 oder DIN A4 quer ausdrucken
**********************************************************************************
DIN A4  ausdrucken
*********************************************************
Offizielles Bascom Forum
http://bascom-forum.de/forum.php

Bascom-AVR-Forum
http://bascom-forum.de/forumdisplay.php?8-Bascom-AVR-Forum

Bascom Fehler
http://bascom-forum.de/forumdisplay.php?14-Bascom-Fehler




*********************************************************

ATMEL ATmega8, ATmega48, ATmega88, ATmega168, ATmega328


BASCOM-AVRmeets ARDUINO
Verwendung von ARDUINO-Hardware in Verbindung mitBASCOM-AVR-Programmen
23. August 2013

NEU: Siehe TIPP im Abschnitt "PROGRAMMIERUNG"



 
Abb.1 ARDUINO-UNO-Board

Wenn esum kleine bis mittlere Microcontrollerprojekte geht, dann erfreut sichder Bascom-AVR-Compiler [8] schon seit vielen Jahren grosserBeliebtheit.Die verwendete Programmiersprache ist verhältnismäßigeinfach erlernbar und eröffnet somit einen schnellen Weg zurUmsetzung eigener Projektideen. Dabei stellt sich allerdings immer auchwieder die Frage nach einer geeigneten Hardwareplattform. Wem einLochrasteraufbau dabei zu provisorisch erscheint, dem bleibthäufig nur der Entwurf eines speziellen, auf die eigene Anwendungabgestimmten Layouts mit anschliessender Platinenfertigung. Nachdem soetwas in der Regel aber mit nicht unerheblichem Zusatzaufwand verbundenist, versucht man diesen Weg speziell dann zu vermeiden, wenn es nur umden Aufbau von  Einzelexemplaren geht. Hier entstand nun die Idee,einer Nutzung der weit verbreiteten und preiswert erhältlichenARDUINO-Boards auch für BASCOM-AVR-Anwendungen.
Bei ARDUINO [1] handelt es sich umeineaus Italien stammende, inzwischen sehr erfolgreich eingeführteSoft- und Hardwareplattform. Es existieren Boards fürunterschiedliche, sich in ihrer LeistungsfähigkeitunterscheidendeProzessoren. Darüberhinaus gibt es auch noch eine Vielzahlsogenannter"Shields" [3][4], womit entsprechend ihrer Funktionbestückte Zusatzboards bezeichnet werden. Mithilfe ihrerSteckleisten lassen sie sich aufeinfachste Weise mit den Hauptprozessorplatinen verbinden.Inzwischen dürfte es kaum noch eine Microcontrolleranwendunggeben, für die es nicht auch schon ein geeignetes Shield alsFertigbaustein gibt [6];[7].
Die ARDUINO-Programmerstellung erfolgtin der Regel in einer Varianten der Sprache "C++". Um sie nutzen zukönnen, müssten BASCOM-Programmierer allerdings erst einmalerheblich um- bzw. dazulernen. Da in Verbindung mit ARDUINO aber diegleichen, aus der AVR-Familie von Firma ATMEL stammenden ProzessorenVerwendung finden, lässt sich jegliche ARDUINO-Hardwaregrundsätzlich auch für BASCOM-AVR-Projekte einsetzen, was indiesem Beitrag näher erläutert werden soll.

ARDUINO-PROZESSORBOARDS

Wie schon angedeutet, gibt esARDUINO-Boards unterschiedlichster Leistungsstufen. Wir wollen uns andieser Stelle aber auf die Beschreibung des zur mittleren Klassegehörenden Standard-Boards "ARDUINO-UNO" [2] ( Abb.1 )beschränken. Seineelektrischen Daten sind dabei weitgehend identisch mit der vereinzeltnoch angebotenen Vorgängerversion, die auf denschönen Namen "Duemilenove" ( italienisch für "2009" )hörte.
Der "UNO" verwendet einen mit 16MHz getakteten ATMEL-Prozessor des Typs"ATMEGA328P". Die Versorgungsspannung für das Board kann imBereich zwischen etwa 7 und  15V liegen. Als Anschlüssestehendafür ein Pin auf der Steckleiste und eine konzentrischeStandard-Steckbuchse zur Verfügung. Daneben besteht auch noch dieMöglichkeit einer 5V-Versorgung über den auf der Platinebefindlichen USB-Anschluss. Je nach benutzem Versorgungsanschlusserfolgtdabei eine automatische Auswahl zwischen den möglichen Varianten.

Ein weiterer Microcontroller dient derBereitstellung einer USB-Schnittstelle. Seine seriellenRxD/TxD-Anschlüsse sind fest mit den UART-Ports desHauptprozessors verbunden. Um von aussen auf den hierbei benutztenUSB-Baustein des Typs "ATMEGA16U2-MU(R)" ) zugreifen können, wird ein u.a. im Softwarepaket des"UNO" [1] zu findender Treiber benötigt. 
Über Steckkontakte besteht einZugriff auf die Ports "PD0-PD7"; "PB0-PB5" und "PC0-PC5" desHauptprozessors. ARDUINO hat sich hierfür eigene Bezeichnungengem. Tabelle 1 erlaubt und unterscheidet dabei auch zwischen Analog-und Digitalports, wobei die mit "Analog-In" deklariertenAnschlüsse selbstverständlich auch als digitale Ein- oderAusgänge benutzt werden können. Alle verfügbarenProzessorports sind somit entsprechend der für den ATMEGA328P inseinem Datenblatt genannten Angaben frei verwendbar. EineEinschränkung ergibt sich lediglich für die auch zurIn-Circuit-Programmierung benutzen Ports "PB3"-"PB5", die zumindestwährend des Programmiervorgangs nicht auch noch mit einem gegenMasse geschlossenemSchalter verbunden sein dürfen.

ARDUINO-Leiste
ARDUINO-Pin
ATMEGA328P-Port
FUNKTION
Digital( PWM~ )
0
PD.0
UART RX ( TTL )

1
PD.1
UART TX ( TTL )
m
2
PD.2
INT0

3
PD.3
INT1

4
PD.4


5
PD.5


6
PD.6


7
PD.7


8
PB.0


9
PB.1


10
PB.2


11
PB.3
ICSP MOSI

12
PB.4
ICSP MISO

13
PB.5
ICSP SCK   und LED

Ground



ARef



SDA
PC.4
I2C SDA

SCL
PC.5
I2C SCL
Power
-



IORef



Reset



+3.3Vout

max.ca. 150mA

+5Vout

max.ca. 500mA

Ground



Ground



+Uinca. 7-15V


Analog-In
A0
PC.0
 

A1
PC.1
 

A2
PC.2


A3
PC.3


A4
PC.4


A5
PC.5





Tabelle 1   Zuordnungzwischen ARDUINO-Pins und ATMEGA328P-Microcontroller-Ports  
Anm.: Die Ports A0-A5 bzw. PC.0-PC.5sind auch als digitale Ein- und Ausgänge verwendbar

Nicht unerwähnt bleiben sollendie auf der Platine befindlichenLED's zur Anzeige der 5V-Versorgungsspannung, der seriellen Daten "RxD"und "TxD", sowie des logischen Zustandes an "PB5". Darüberhinausexistiert auch noch eine RESET-Taste, über die jederzeit einNeustart des ausgeführten Arbeitsprogrammes möglich ist.
Während der an der Steckleisteherausgeführte 5V-Anschluss mit max. etwa 500mA zusätzlichbelastbar ist, beschränkt sich die Belastbarkeit des3.3V-Anschlusses auf nur etwa 150mA.
Ein elektrisches Schaltbild des"ARDUINO-UNO" ist unter [11] herunterladbar.

Für Fälle, in denen dieLeistungsfähigkeit des ATMEGA328P-Prozessors nicht genügt,gibt es in ähnlicher Ausführung auch noch den grösseren"ARDUINO MEGA" mit seinem ATMEGA2560 Prozessor.


ARDUINO-SHIELDS

Aufdie Prozessorplatine steckbare Shields gibt es für dieunterschiedlichsten Anwendungen. 
Hiereine Auswahl:


Die Nutzung dieser Shields unterBASCOM-AVR dürfte sich unterschiedlich aufwendig gestalten.Während sich bei der Umsetzung einfacher Funktionen ( z.B.Relaissteuerung ) keine Schwierigkeiten ergeben sollten, dürftebei komplexeren Anwendungen noch etwas Programmierarbeit zu leistensein. Die jeweils mit den ARDUINO-Shields verfügbarenJava-Subroutinen können dabei aber ggf. eine zusätzlicheHilfebei der Programmentwicklung darstellen.
Darüberhinaus gibt es aber auchnochuniversell verwendbare Proto-PCB's. Dabei handelt es sich um ebenfallssteckbare und entsprechend eigener Wünsche bestückbareLochrasterplatinen ( Abb.2 ).


Abb.2  PCB-Shield fürPrototypen

Da es auf einfachsteWeise eine universelle Zeichendarstellung erlaubt, möchte ichetwas ausführlicher noch auf das LCD-Shield [7] nach Abb.3eingehen.Verwendet werden dabei die standardisierten LC-Displays mit16x2-Zeichen. Die mit derUNO-Masterplatine herzustellenden Querverbindungen werden bei seinemAufstecken automatisch geschlossen. Insgesamt erfolgt hierbei eineBelegung von 6 bzw. 7 ( bei Backlightsteuerung ) derverfügbaren Prozessorports.


Abb.3  Shield mit 16x2-Zeichen-Standard-LC-Display und Eingabetasten

Der zur LCD-Steuerung benötigteProgrammcode sieht im einfachenFall folgendermassen aus:


LCD-Pin
ARDUINO-Pin
( Proc.-Port )
Funktion
1
Ground
Ground
2
+5V
+5V
3

Kontrast( 0 bis +5V )
4
8    ( PB.0 )
RS
5

R/W ( fest an Ground gelegt )
6
9    ( PB.1 )
En
7

DB0
8

DB1
9

DB2
10

DB3
11
4   ( PD.4 )
DB4
12
5   ( PD.5 )
DB5
13
6   ( PD.6 )
DB6
14
7   ( PD.7 )
DB7
15

+LED
16

-LED
Tabelle 2   Zuordnung zwischen LCD- und ARDUINO-Pins
Anm.: ARDUINO-Pin 10 ( PB.2 ) kann zur Steuerung derLCD-Hintergrundbeleuchtungbenutzt werden

Eine Besonderheit desbenutzten Shields sind die Fünf, neben einem weiterenRESET-Auslösernochzusätzlich vorhandenen Taster. Eine Widerstandsanordnung( Abb.4 ) bewirkt dabei, dass sich bei ihrer Betätigungverschiedene, am Analogeingang "A0" bzw. "PC.0" des Hauptprozessorsanliegende Spannungswerteeinstellen. Mithilfe des nachgeschalteten 10Bit-AD-Wandlers lässtsich damit die programmgesteuerte Auslösungunterschiedlichster Vorgänge realisieren.


Abb.4  LCD-Shield: Funktion der Eingabetasten     

PROGRAMMIERUNG

ZurProgrammierung der ARDUINO-Boards benutze ich einen preiswerten,über den 6pol. ICSP-Anschluss anschliessbaren USB-Stick [9]. Einezugehörige, aus dem Internet herunterladbare Windows-Software[10] kann benutzt werden, um die vorher mit dem BASCOM-AVR-Compilererstellten HEX-Files in den Speicherbereich desjeweiligen Prozessors auf dem ARDUINO-Board zu übertragen. Wirdhierzu auch das mit den Boards gelieferte Chipexemplar benutzt, so sindauch keine weiteren Änderungen bei den Fuse-Einstellungenerforderlich, womit sich der gesamte Programmiervorgang besonderseinfach gestaltet. Zu beachten istallerdings, dass der üblicherweise auf dem Baustein zu findendeARDUINO-Bootloader hierbei überschrieben wird und somitanschliessend nicht mehr zur Verfügung steht, so dass erim Bedarfsfall erst wieder neu geladen werden müsste.


Abb.5  Vorgehensweise zurÄnderung der Fuse-Einstellungen
( bei Verwendung des Programmiertools nach [10] )

Den "ARDUINO-UNO" gibt es inverschiedenen Hardwareversionen. Neben einer SMD-Version gibt es aucheine Variante, beider der Hauptprozessor in einer 28pol. DIL-Fassung steckt. Sollanstelle des mitgelieferten Chips ein anderes, noch fabrikfrischesChipexemplar benutzt werden,so istzuerst zu beachten, dass es sich hierbei tatsächlich um einenBaustein des Typs"ATMEGA328P-PU" handelt. Prozessoren mit der abweichenden Aufschrift"ATMEGA328-PU"unterscheiden sich hiervon in einigen wichtigen Parametern, so dassein  Programmierungversuch in der Regel zu einer Fehlermeldungführt, wobei nur wenige Programmertypen auch den "ATMEGA328" ohne"P" zu unterstützen scheinen.
Weiterhin ist bei denFuse-Einstellungen derHaken für den Vorteiler durch Acht zu entfernen und dieTakteinstellung auf externe Quarze ">8MHz" zu setzen ( siehe auchAbb.5 ). NachDurchführung dieser Einstellungen und ihrer erfolgreichenKontrolle sollte es keine weiterenProbleme geben.

Grundsätzlich sollten sichdie unter BASCOM-AVR erstellten Hex-Files auch unter Verwendung einergeeigneten Bootloadersoftware übertragen lassen, womit sich derEinsatzeiner separaten Programmierhardware ggf. erübrigen würde,aber ichselbst besitze keine in diese Richtung gehenden Erfahrungen und nachdemder 15-Euro-Stick-Programmer seinen Dienst so problemlos versieht, istmeine Neigung zu entsprechenden eigenen Versuchen auch mehr als gering.

NEU: Tipp im August 2013:
Ein interessanter Hinweisstammt von Thomas Schiller undwurde in der ZeitschriftFUNKAMATEUR ( Heft 9/2013,Seite 980 ) publiziert. Es gehtum das kleine Softwaretool "XLOADER" ( http://russemotto.com/xloader/), das in Verbindung mit den üblichen ARDUINO-Boards benutztwerden kann. Über ihre USB-Schnittstelle und unter Verwendung derdabei auf den von Haus aus verwendeten AVR-Prozessoren bereitsvorinstallierten Bootloader-Software erlaubt "XLOADER" das Ladenjeglicher HEX-Files und kommt somit ohne eine Nutzung irgendwelcherARDUINO-Software oder auch externer ISP-Programmer aus.

VERFÜGBARKEIT

VieleHändler bieten inzwischen die Originalversionen der ARDUINO-Boardseinschliesslich passender Shields an. Ich selbst habevorzugsweise von den unter [5] und [6] genannten inländischenHändlern bezogen. Das mit diesen Boards und Shields verbundeneHandelspotential wurde inzwischen aber auch von fernöstlichenHerstellernerkannt, so dass es von dort mittlerweile schon eine grosse Menge vonNachbauten bzw. Clones gibt. Diese werden oft zu erstaunlichniedrigen Preisen angeboten, weichen in Details aber häufig dochetwas von den Originalen ab. In wie weit sie dabei auch derenQualitätsstandards halten, dürfte nur in jedem Einzelfallklärbar sein. Interessenten für diese Produkte dürfenggf. auchkeinen Eigenimport scheuen und sollten sich einmal bei z.B.EBAYumschauen.



[1]  http://www.arduino.cc/
[2]  http://arduino.cc/en/Main/ArduinoBoardUno/
[3]  http://arduino.cc/en/Main/ArduinoShields
[4]  http://shieldlist.org/
[5]  http://www.watterott.com/de/Arduino 
[6]  http://www.komputer.de/zen/              
[7]  http://www.komputer.de/zen/index.php?main_page=product_info&cPath=30&products_id=170
[8]  http://www.mcselec.com/
[9]  http://shop.myavr.de/index.php?sp=article.sp.php&artID=200006
[10]http://shop.myavr.de/index.php?sp=download.sp.php&suchwort=dl112
[11] http://arduino.cc/en/uploads/Main/Arduino_Uno_Rev3-schematic.pdf



Quelle:
http://www.kh-gps.de/bascom_arduino.htm


DIN A4 ausdrucken

*********************************************************

Impressum: Fritz Prenninger, Haidestr. 11A, A-4600 Wels, Ober-Österreich, mailto:[email protected]
ENDE