Das Herzstück eines Arduino, unabhängig von dem Modell, ist ein ATMEL-Microcontroller. Aktuelle Boards enthalten meist einen ATmega328p oder ATmega2560. Alles andere auf dem Board ist mehr oder weniger nebensächlich.
Mit einer DIP-Version (also nicht SMD) eines µC kann leicht ein Arduino-Clon auf einem Steckbrett aufgebaut werden. Man kann dies natürlich auch auf einer einegentwickelten PCB aufbauen, was eine kleine und günstige Schaltung ermöglicht.
Es muss ja nicht immer gleich ein ATmega sein. Manchmal reicht auch ein viel kleinerer Microcontroller, z.B. ein ATtiny84A. Ein ganzes Board ist es zwar nicht, aber mit etwas Vorarbeit doch ein 'echter' Arduino.
Bei diesem Microcontroller handelt es sich um die weitgehend kompatible Weiterentwicklung des ATtiny24. Der Baustein wird im Format DIP-14 mit folgender Pinbelegung gefertigt:
Auszug aus der Beschreibung des Herstellers:
- 120 Powerful Instructions – Most Single Clock Cycle Execution
- 32 x 8-bit General Purpose Working Registers
- Up to 20 MIPS Throughput at 20 MHz
- 8 K Bytes of In-System Self Programmable Flash
- 512 Bytes In-System Programmable EEPROM
- 512 Bytes Internal SRAM
- Write/Erase Cycles: 10,000 Flash/100,000 EEPROM
- One 8-bit Timer/Counter with Two PWM Channels
- One 16-bit Timer/Counter with Two PWM Channels
- 10-bit ADC
- USI – Universal Serial Interface
- Pin Change Interrupt on 12 Pins
- Low Power Idle, ADC Noise Reduction, Standby and Power-down Modes
- Internal Calibrated Oscillator
- 12 Programmable I/O Lines
- 1.8 – 5.5V Operating Voltage
- 210 μA at 1.8 V and 1 MHz (Active Mode)
- 33 μA at 1.8 V and 1 MHz (Idle Mode)
- 0.1 μA at 1.8 V and +25°C (Power-down Mode)
Umgemünzt auf die Arduino Pins egibt sich folgende Belegung:
Im Unterschied zu einem ATmega wird bei ATtiny wird kein Arduino-Bootloader benutzt. Die Programmierung erfolgt nicht über USB, sondern mit Hilfe eines Programmers.
Hier musste ich feststellen, dass mein Programmer (USBASP) nicht mit diesem µC kompatibel ist. Auf diese Idee kam ich aber erst nach etlichen Versuchen und Prüfungen/Austausch aller Kabel. Dann musste eben ein Arduino Mega (mit ArduinoISP Sketch) in die Bresche springen.
Die Verkabelung (Für UNO oder MEGA):
Signal (ICSP) |
Arduino Mega | Arduino UNO | ATtiny84A |
RST | 53 | 10 | Pin 4 |
MOSI | 51 | 11 | Pin 7 |
MISO | 50 | 12 | Pin 8 |
SCK | 52 | 13 | Pin 9 |
3.3/5V | 3.3/5V | 3.3/5V | Pin 1 |
GND | GND | GND | Pin 14 |
Bei der Verwendung des internen Oszillators werden keine weitere externe Bautele zum Betrieb des µC benötigt! So sieht es dann in etwa aus (LED ist natürlich zum Programmieren nicht notwendig, sie war jedoch nützlich für den ersten Test):
Bevor man anfangen kann, muss die ArduinoIDE für die Benutzung von ATtiny vorbereitet werden. Unter http://code.google.com/p/arduino-tiny/downloads/list lädt man die neueste Version des Plugins und installiert diese entsprechend der Anweisungen. Nach dem IDE-Neustart kann in dem Boards-Menü ein Eintrag für ATtiny84 ausgewählt werden. Mit dem Menüeintrag 'Bootloader installieren' wird der Chip für die erste Nutzung vorbereitet. Ein Bootloader wird dabei zwar nicht installiert, es werden jedoch die notwendigen "Fuses" gesetzt. Danach kann ein eigener Sketch auf den Microcontroller geladen werden (wieder mit dem ArduinoISP).
Zum ersten Test habe ich den Blink-Sketch verwendet. Jetzt habe ich einen HiTech-Blinklicht ;)
Läuft wunderbar auch mit einem Akku (tagelang):
Selbstverständlich kann ein Steckbrett-Arduino auch mit einem ATmega328p aufgebaut werden, wie auch bei einem UNO, Nano, Pro Mini etc.
Dieser µC in DIP-28 Form besitzt folgende Pinbelegung:
Dieser µC soll auch mit einem Bootloader versehen werden, dabei werden (je nach Boardauswahl) Fusen gesetzt. Bei einem 'richtigen' Arduino wird ein Crystal-Oscillator ('Quarz') verwendet. Aber es geht auch mit dem internen Taktgeber (8 MHz). Für den ersten Fall wählt man als Boars z.B.einem Arduino UNO, oder Pro Mini. Damit es mit einem Internen geht, muss dieses Modus der IDE bekannt zunächst gemacht werden (s. http://arduino.cc/en/Tutorial/ArduinoToBreadboard).
Verbindung zum Programmer:
Signal (ICSP) |
Arduino Mega | Arduino UNO | ATmega328 |
RST | 53 | 10 | Pin 1 |
MOSI | 51 | 11 | Pin 17 |
MISO | 50 | 12 | Pin 18 |
SCK | 52 | 13 | Pin 19 |
3.3/5V | 3.3/5V | 3.3/5V | Pin 7 + Pin 20 |
GND | GND | GND | Pin 8 + Pin 22 |
Tests mit dem internen Taktgeber und mit einem 'Quatz':
Kommentare (0)