Atmel ATmega1284P Board für die Hutschiene

Dieses kompakte Mikrocontroller Board mit dem modernen Atmel ATmega 1284p ist die Grundlage für den Aufbau eines kleinen modularen Systems. Durch die einheitliche Größe und Lage der Anschlüsse können die verschiedensten Erweiterungen ohne Probleme angeschlossen werden. Es ist für den Einstieg in die Welt der Microcontroller konzipiert, aber natürlich auch für die Anforderungen fortgeschrittener Anwender geeignet.
Da keine SMD Bauteile verwendet werden, ist es besonders einfach im Aufbau.
Natürlich steht  auch hier wieder ein Platinen-Layout zum Download bereit, diesmal im Sprint-Layout und im Gerber Format.


Das Mikrocontroller Board und der Aufbau

Das Board 1 ist mit dem leistungsfähigen Prozessor ATmega 1284p bestückt. Dieser IC verfügt z.B. über 32 I/O Anschlüsse, mehrere 8 und 16 Bit Timer und einem ISP Anschluss zur Programmierung.
Für mein Board 1 verwende ich die Bauart in einem 40 poligen DIP Gehäuse und habe ihn steckbar auf einen Sockel montiert. Dadurch ist ein schneller Austausch im Fehlerfall möglich.

Die Ports A, B, D wurden auf Wannenstecker 2×5 geführt. Der I2C Bus wurde ebenfalls auf 2 Wannenstecker 2×5 geführt. Dadurch ist ein Anschluss von weiteren Modulen und eine Weiterführung des I2C Busses möglich .
Der Port C wurde innerhalb des Modules auf LED, Taster und einem Lautsprecher geführt. Als Taktquelle verwende ich einen 16 MHz Quarz.

Atmel ATmega1284P Board für die Hutschiene

Der verwendete Mikrocontroller  Atmel ATmega 1284p

Die Skizze stellt die genaue Belegung der Pins des Prozessors AT1284p dar.

Atmel ATmega1284P Board für die Hutschiene

Die Belegung der einzelnen Steckbuchsen habe ich in den nächsten Zeichnungen dargestellt. Sie entspricht den RN-Definitionen vom Roboternetz und ist auf jedem Modul gleich.

Über den ISP Anschluss kann ich den Controller auf dem Board mit einem Standard ISP-Programmer durch einen PC programmiert werden. Ich verwende dabei einen 6-poligen Anschluss.

 

Der Schaltplan des Atmel ATmega1284P Boards

Im nächsten Bild habe ich die komplette Schaltung des Boards dargestellt. Im oberen Bereich befindet sich die 2 Wannenstecker zum Anschluss an den I2C Bus. Dazwischen habe ich die Abblockung und die Anzeige der Vcc +5V eingezeichnet. In der Mitte der der Schaltung befindet sich der Prozessor ATmega 1284p. Auf der linken Seite befinden sich die Ports B, D, der 16MHz Quarz und der Resettaster. Auf der rechten Seite befindet sich der Port A und darunter die LED, die Taster und der Lautsprecher.
Auf der linken Seite befindet sich zwischen dem Anschluss für den Bus und dem Wannenstecker für den Port B der Wannenstecker für den ISP Anschluss. Die Anschlüsse für den ISP liegen teilweise Parallel zu den Portanschlüssen.
Die Stromversorgung von +5V erfolgt über den Wannenstecker des I2C Busses aus einem extra Netzteil. Sie kann auch über die Wannenstecker der Ports erfolgen. Ich nutze zum Betrieb ein Netzteil mit +5V, +12V mit jeweils 3,5A aus dem Modulsystem.

Atmel ATmega1284P Board für die Hutschiene

Halterungen für die Hutschiene

Für meine Module verwende ich einheitliche Halterungen mit einer Einbauhöhe von 72mm. Die Breite kann ich je nach der Verwendung durch unterschiedliche Halterungsmodule zusammenstellen. Dadurch sind unterschiedliche Aufbauten möglich. Ein weiterer Unterschied sind die erhältlichen Endstücke und Mittelstücke. Die Endstücke verfügen über „Füsse“ mit denen sie auf Hutschienen befestigt werden können. Eine Bezugsquelle für diese nützlichen Halterungen findet ihr unten in der Bauteileliste.

Modulsystem

Das Modulsystem ist sehr flexibel (Bezugsquelle siehe Bauteileliste)

 

Die Platine für das Atmel ATmega1284P Board

Ich verwende innerhalb des Modulsystems eine einheitliche Höhe von 72 mm. Die Breite der einzelnen Platinen passen ich der Nutzung an. Dadurch können sich unterschiedliche Breiten ergeben.
Da sich die Wannenstecker immer am Rand der Platine befinden und eine einheitliche Belegung haben ist eine Verbindung unterschiedlicher Platinen ohne Probleme möglich. Auf der Bestückungsseite sind alle verwendeten Bauteile beschriftet und eine Polung eingetragen.

Durch die Verwendung einseitiger Platinen und weniger SMD Bauteile ist der Aufbau auch für ungeübte Löter möglich. Damit Sie eine fertige Platine bei einem Leiterplattenhersteller bestellen können, können Sie wieder unser  fertige Platinen-Layoutdatei  herunterladen.

Atmel ATmega1284P Board für die Hutschiene

Atmel ATmega1284P Board für die Hutschiene

Bauteile Bestückungsliste / Bestellliste

Platinenbezeichnung  Beschreibung           Bestellnummer/Bezugsquelle

C1, C2               Keramik Kondensator 22pF    Bezugsquelle Reichelt*
C3, C4, C5           Keramik Kondensator 100nF   Bezugsquelle Reichelt*
C6, C9               Elko 100µF 16V              Bezugsquelle Reichelt*
C7, C8, C10          Kondensator 100nF           Bezugsquelle Reichelt*
L1, L2, L3           LED 3mm 20mA                Bezugsquelle Reichelt*
R1                   Widerstand 10 kOhm 0,5W     Bezugsquelle Reichelt*
R2, R3, R4           Widerstand 150 Ohm 0,5W     Bezugsquelle Reichelt*
R5, R6, R7           Widerstand 4,7 kOhm 0,5W    Bezugsquelle Reichelt*
R8, R9, R10          Widerstand 220 Ohm 0,5W     Bezugsquelle Reichelt*
IC1                  AVR Controller ATMega 1284p Bezugsquelle Farnell*

1 x                  DIL 40 40 pol IC-Fassung    Bezugsquelle Reichelt*
1 x                  Quarz 16 MHz                Bezugsquelle Reichelt*
1 x                  Lautsprecher RMP 14         Bezugsquelle Reichelt*
4 x                  Taster Printmontage         Bezugsquelle Reichelt*
5 x                  Wannenstecker 2x5 RM 2,54   Bezugsquelle Reichelt*
1 x                  Wannenstecker 2x3 RM 2,54   Bezugsquelle Reichelt*
1 x                  Platine P30 (72mm x 64mm)   über empfohlene Leiterplatenhersteller 
                                                 oder unverändert über platinencenter.de
1 x                  Halterung Trägersystem:     
                     Hutschiene Zwischenteil 72mm Bezugsquelle Reichelt*
                     Hutschiene Endstück mit Fuß  Bezugsquelle Reichelt*

 

Downloads für die Schaltung

Die Platine wurde mit dem Programm Sprint-Layout entworfen. Die Platinen-Dateien können hier im Sprint als auch im Gerber Format geladen werden, das unterstützen die empfohlenen Leiterplatten-Hersteller in jedem Fall.

   Datenblatt Controller (PDF)
  Sprint und Gerber Platinenlayout (ZIP)

 

Leiterplatte zum Projekt bestellen

Neu! Die Leiterplatte für dieses Projekt ist direkt über den Shop PlatinenCenter erhältlich. Da die Platinen dort vorgefertigt werden, sind diese sehr preiswert lieferbar.

Zum Platinen Shop

Individuelle Leiterplatten

Möchtest du keine vorgefertigte Leiterplatte, weil Du vielleicht vorher Änderungen an dem Layout vornehmen möchtest, dann empfehlen ich die Anbieter auf unserer Leiterplatten-Service Seite.

Leiterplatten Hersteller

Das Leiterplattenangebot  ist ein Service Angebot der jeweiligen Anbieter. Bei Fragen bezüglich Lieferung und Preis bitte dort nachfragen!

Die Programmierung des das Atmel ATmega1284P Boards

Als nächste wollen wir das erste Programm auf unser Board übertragen und in Betrieb nehmen.  Es soll eine LED mit einer Frequenz von 1 Herz blinken.

Dazu verwende ich die folgende Soft- und Hardware

  • Atmel ATmega1284P Board
  • Netzteil 2 (5V/12V 3,5A)
  • Prommer AVRISP mk2 (wird vom AVR Studio erkannt)
  • AVR Studio 6.2
Atmel ATmega1284P Board für die Hutschiene

So könnte es auf dem Bildschirm aussehen

// Test Port C LED 1

#define F_CPU 16000000UL // Angabe der Quarzfrequenz
#include <util/delay.h> // Einbindung „Pause“
#include <avr/io.h> // Einbindung „Ausgänge“

int main (void)
{
  DDRC=0b00100000; // Port auf Ausgang
  while(1)
  {
    PORTC&=~(1<<PC5);
    _delay_ms(500); // Pause
    PORTC |=(1<<PC5);
    _delay_ms(500); // Pause
  }
}

 

Die einzelnen Schritte der Programmierung

Bis es soweit ist, müssen wir unserem Programm sagen, was es machen soll.
Als erstes starte ich das AVR Studio 6.2 und es erscheint unten abgebildetes Menue. Ich wähle den Punkt New Projekt … durch anklicken aus.

Atmel ATmega1284P Board für die Hutschiene
Als nächstes muss ich einen Namen (Name) für mein Programm eingeben und einen Speicherort (Location) bestimmen und wieder mit OK bestätigen.

Atmel ATmega1284P Board für die Hutschiene

Danach erscheint die Auswahl aller Prozessoren. Ich muss mir den richtigen Typ aussuchen und angeben. Dazu kann ich die Suchfunktion des Programmes nutzen.
In dem Feld oben rechts gebe ich ein Teil (1284) der gesuchten Bezeichnung an und es werden mir 2 möglichen Typen angezeigt. Davon wähle ich den ATmega1284p durch anklicken aus und bestätige wieder mit OK

Als nächste bekomme ich auf der linke Seite mein Eingabefeld und auf der rechten Seite einen Verzeichnisbaum angezeigt. In der linken Seite kann ich mein Programm eintragen.

Atmel ATmega1284P Board für die Hutschiene

Zur Arbeit mit dem Programm stehen mir verschieden Icons zur Verfügung. Ich möchte nur auf die wichtigsten Sachen eingehen. Nach dem ich mein Programm eingetragen habe muss ich es mit einem Klick auf die Diskette abspeichern.
Auf der rechten Seite wird jetzt dieses Bild eingeblendet. Man kann damit die Arbeit des Compilers verfolgen.

Zur Fehlersuche gibt es die Error List. Mit einem Klick darauf werden mir die Fehler angezeigt mit Angabe der Zeile (Linie) und die Art des Fehlers. In diesem Beispiel habe ich _dela_ms falsch geschrieben. Es hilft ungemein bei der Fehlersuche, meistens. Manchmal ist es recht verwirrend.

Atmel ATmega1284P Board für die Hutschiene
Unser Programm ist fertig und Fehlerfrei. Nun müssen wir es noch zum Prozessor übertragen.

 

Programm in den Controller übertragen

Dazu müssen wir Tools anklicken und weiter mit Device Programming. Bis zum Start des nächsten Programmes kann es etwas dauern.

Atmel ATmega1284P Board für die Hutschiene

Zur Kontrolle sind noch mal einige Angaben eingefügt. Zusätzlich muss ich einige Angaben bestätigen

  • Tool – AVRISP mkII => Angabe unseres Prommers
  • Device – ATmega1284p => Angabe unseres Prozessors
  • Interface – ISP => Angabe unserer Programmierung

Atmel ATmega1284P Board für die Hutschiene

Angabe kann ich durch Anklicken des Kästchens ändern. Bei ISP muss ich mit Apply bestätigen.

Bei der ersten Inbetriebnahme des ATmega 1284p wird man relativ grosse Probleme haben. Vom Hersteller aus sind bestimmte Einstellungen vorgegeben, die wir leider so nicht nutzen können.
Das lesen (Read) eines neuen Prozessors wird nicht funktionieren bzw. er wird nicht erkannt.
Wahrscheinlich wird in dem Kästchen Devise Signatur nichts angezeigt oder es erfolgt eine Fehlermeldung.

Bitte Interface settings anklicken

Das liegt an der eingestellten ISP Frequenz von z.B. 1 MHz). Vom Hersteller aus ist der Prozessor auf intern 1 MHz eingestellt. Eine Programmierung kann nur mit ¼ dieser Frequenz erfolgen. Die ISP Frequenz muss verändert werden und neu abgespeichert werden.

Bitte den Pfeil nach links ziehen, auf ca. 100 bis 200 kHz und mit „Set“ abspeichern .

Atmel ATmega1284P Board für die Hutschiene

 

Atmel ATmega1284P Board für die Hutschiene

Wenn ich jetzt wieder Read betätige werden die Daten aus dem eingesetzten Prozessor ausgelesen und mir die Device signature angezeigt

Atmel ATmega1284P Board für die Hutschiene

Die ISP Frequenz bitte wieder auf ca. 1MHz stellen und mit Set bestätigen.

Bitte als nächste Fuse anklicken

Atmel ATmega1284P Board für die Hutschiene

Es werden als nächstes die Einstellungen des Prozessor ausgelesen. Diese Eistellungen können vom Hersteller anders angegeben werden und müssen unbedingt korrekt eingestellt werden.

Atmel ATmega1284P Board für die Hutschiene

Im oberen Teil werden die verschiedenen Einstellungen und Erklärungen dazu dargestellt. Eine Zusammenfassung steht im Fuse Register.

In dem Feld Fuse Register „EXTENDET, HIGH und LOW“ erscheinen die Werte des Herstellers. Diese müssen wir ändern in die folgende Werte bzw. kontrollieren und mit Program bestätigen

EXTENDED – 0xFC
HIGH – 0xD9
LOW – 0xC7

Wieder Read anklicken. Im Read Fenster erscheint mein korrekter Prozessor Device signature – 0xE9705

Atmel ATmega1284P Board für die Hutschiene

Danach bitte Memories anklicken. Es wird langsam Zeit unser Programm auf den Prozessor zu bekommen. Wenn ich Memories anklicke, erscheint das obere  Bild. Unterhalb der Zeile „Flash (128KB)“ wird automatisch das letzte Projekt angezeigt. Mit dem Button (Pfeil) kann ich ein anderes Programm aus meinem angegebenen Verzeichnis auswählen. Mit anklicken von Program wird es auf meinen Prozessor übertragen.

Damit habe ich mein selbstgeschriebenes Programm auf meinen Prozessor übertragen und ich kann es testen oder nutzen. Als nächste könnt ihr mit dem Programm 2 die Taster und LED testen.

Beispiel 2 – Test von LED und Taster (Programmiersprache C)

# define F_CPU 16000000UL // Angabe der Quarzfrequenz, wichtig für die Zeit
# include <avr/io.h> // Ausgänge
# include <util/delay.h> // Zusätzlich Datei für Pause


/* Belegung:
P6 5 = LED 1
PC 6 = LED 2
PC 2 = Taster 1
PC 3 = Taster 2
PC 4 = Taster 3
*/

int main (void) // Hauptprogramm
{
DDRC=0b01100000; 

// Programm läuft in Endlosschleife
while ( 1 )
 {
 // Prüfen, ob der Taster 1 betätigt wurde
 if ( !(PINC & (1<<PINC2)) )
 {
   PORTC ^= (1<<PC5); // toggelt PC5 Enprellung!
 }

 // Prüfen, ob der Taster 2 betätigt wurde
 if (PINC & (1<<PINC3))
 {
   // LED an PA 6 aus
   PORTC &= ~(1<<PC6);
 }
 else
 {
   //LED an PA 6 an
   PORTC |= (1<<PC6);
 }
 }
}

Viel Spaß mit dem Projekt, euer Achim!

Beitrag und Fotos:  Autor Achim - Homepage

Weitere Hinweise

Vor dem Aufbau bitte nachfolgende Hinweise lesen:

Das Projekt unterliegt einer CC-Lizenz - Lizenzhinweis (zum Aufklappen anklicken)

Um ihnen weitgehende Möglichkeiten zum Nutzen der Schaltung einzuräumen, wurde dieses Projekt jetzt unter die CC-Lizenz gestellt. Sie haben So die Möglichkeit die Schaltung beliebig zu verändern oder weiterzugeben. Lediglich die kommerzielle Weitergaben ist nur mit Genehmigung möglich! Genauere Hinweise finden Sie im Lizenztext.

Bei einer Veröffentlichung oder Weitergabe ist nachfolgender Text sichtbar zu übernehmen:


cc_logo310

Projekt (Schaltung & Projektdateien) von Autor Achim, ist lizenziert unter einer Creative Commons Namensnennung - Nicht-kommerziell - Weitergabe unter gleichen Bedingungen 4.0 International Lizenz.
Über diese Lizenz hinausgehende Erlaubnisse können Sie beim Autor  erhalten.
Die Homepage des Autors lautet: mikrocontroller-elektronik.de

Lizenziert wurde das Projekt von:  Autor/User Achim,
Veröffentlicht wurde es unter www.Roboternetz.de & www.Mikrocontroller-Elektronik.de   

Dieser Name und diese Webseiten sind bei der Weitergabe stets deutlich sichtbar zu nennen!


Achtung: Es kann keinerlei Garantie für die Fehlerfreiheit der Schaltung oder anderer Projektdateien übernommen werden! Der Nachbau und Betrieb geschieht auf eigene Gefahr! Jegliche Haftung für Schäden oder Verletzungen wird ausgeschlossen! Schadensersatzansprüche, gleich aus welchem Rechtsgrund, sind ausgeschlossen.

Sicherheitshinweise und Haftungsausschluss (zum Aufklappen anklicken)

Dieses Projekt dient vornehmlich für Lehrzwecke und zum Experimentieren. Für den Aufbau sollten ausreichend Elektronik Grundkenntnisse und Kenntnisse bezüglich der Sicherheit (Experimentieren mit Strom und Handhabung gängiger Werkzeuge wie Lötkolben etc.) vorhanden sein. Unter dem Menüpunkt Buchvorstellungen als auch auf der Seite RN-Wissen.de empfehle ich diesbezüglich noch interessante Literatur mit der man sich dies erarbeiten kann. Für Fragen bezüglich Elektronik und Mikrocontroller empfehle ich das Forum: Roboternetz.de

Sicherheitshinweise und Haftungsausschluss

 

Links zum Thema

 

 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

scroll to top