Forum: Projekte & Code ATMega88 als "Rasp"-Mega Pi IO"


von Michael S. (Gast)


Angehängte Dateien:

Lesenswert?

Auch ich bin der Versuchung erlegen, mit einem Raspberry Pi zu 
experimentieren.
Was mir dabei gut gefallen hatte war die Möglichkeit, ohne Umweg über 
einen Microcontroller direkt vom PC aus Kontakt mit der Außenwelt 
aufzunehmen, IO-Pins zu schalten, via TWI-Bus Sensoren auszulesen und 
TWI-Slaves zu dirigieren.

Allerdings ist der mit 700MHz getaktete Raspberry bei diesen Übungen 
völlig unterfordert.

So entstand der Gedanke, die IO- und TWI-Funktionalität des Raspberry 
auf einem wesentlich einfacheren und preiswerteren ATMega88 
nachzubilden.

Der "Rasp"-Mega Pi IO stellt zur Verfügung:

- 16x IO-Pins als programmierbare Ein- oder Ausgangspins,
- 16x IO-Pins für externe PinChange Interrupts programmierbar,
- 2x IO-Pins für externe, einstellbare Interrupts programmierbar
  (INT0/INT1),
- 4x Eingänge als 10-Bit ADC verwendbar,
- 6x Eingänge zum Auslesen von DS18B20 Temperatursensoren vorbereitet,
- 1x TWI-Bus, der als TWI-Master / TWI-Slave arbeitet,
- 1x SPI-Bus (wegen fehlenden Bedarfes z.Z. nicht implementiert)
- Die Stromaufnahme des ATMega beträgt im Idle-Modus unter 1mA.

Vom PC aus kann man mit jeder Software, die via Serieller Schnittstelle 
senden und empfangen kann (z.B. mit Python - oder im einfachsten Fall 
mit Hilfe eines Terminalprogramms wie HTerm) auf den ATMega zugreifen, 
seine IO-Pins konfigurieren, setzen, auslesen, Temperaturen mit dem 
DS18B20 messen und über seinen TWI-Bus auf angeschlossene Aktoren, 
Sensoren etc. zugreifen.

Die Hardwarekosten für den "Rasp"-Mega betragen ca. 2-6 Euro, je nach 
Ausbaustufe.

Der Sourcecode in C und das Hexfile für den ATMega88 sind in der Datei 
"Raspmega_c.zip" beigefügt.

Das verwendete Protokoll für die binäre Kommunikation mit dem ATMega ist 
in der Datei "Doku.pdf" dokumentiert.

In der Readme.pdf habe ich einige Interna zur Software auf dem ATMega 
zusammenfasst und mein "Experimentierboard" schematisch dargestellt.

Im Archiv "Python.zip" gib es eine Reihe von Programmbeispielen für 
Python3.2/Tkinter, die während der Entwicklung begleitend entstanden.


Viel Spaß beim Experimentieren,

Michael S.

von kettenrad (Gast)


Lesenswert?

- auf den 1. Blick:
  _gute,solide Sache(8bit AVR + raspi = war zu erwarten);
  _aufgezeigte Kommunikationsprobleme( = ebenfalls);
- für Anwendungen crossover "Cookie Bord" oder "Embedded Pi" 
runterskalieren auf AVR;

http://www.coocox.org/Index.html

Der Gedanke dahinter, AVR-User an die Welt der 32-bitter heranzuführen,
   - lobenswert -
und durchaus "logisch";

von Michael S. (Gast)


Angehängte Dateien:

Lesenswert?

Hallo allerseits,

im schematischen Schaltplan gab es noch ein paar kleinere "Schnitzer", 
die sind nun korrigiert.
Und der Programmcode für den Betrieb eines Kompassmodules LSM303 in 
Python3.2/Tkinter ist noch beigefügt.

Michael S.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.