MME Berlin Logo
Entwicklung und Vertrieb von Embedded Controller Anwendungen
Registrierter Consultant für ATMEL AVR RISC Controller

      Home
      Kontakt
 
Entwicklungen mit AVR RISC Controllern

Seit 1998 realisieren wir kompakte Embedded Systeme auch auf Basis der AVR RISC Controller von ATMEL. Die AVR Controller werden von uns bevorzugt bei weniger komplexen Problemstellungen, meist im Kundenauftrag, eingesetzt. Die Auswahl der Programmiersprache liegt oftmals beim Auftraggeber; Assembler, C und Pascal werden von uns favorisiert.

Nachfolgend stellen wir einige Projekte vor, die wir mit AVR RISC Controllern realisiert haben:

Echtzeitanalyse serieller Daten

Realtime Pattern Inspection and Correction mit ATMega1281
Ein ATMega1281 analysiert einen seriellen Datenstrom und führt gegebenenfalls Korrekturen in Echtzeit durch: "Realtime Pattern Inspection and Correction/Injection"

 

 

 

 

Boot Loader für AVR ATMega Controller

Ein Leistungsmerkmal der AVR ATmega Controller ist das sogenannte "self programming". Ein ATmega Controller ist in der Lage, seinen eigenen Programmcode zu überschreiben. Hiermit können sehr komfortabel Firmware-Updates (im System), ohne spezielle Programmier-Hardware (ISP, JTAG), vorgenommen werden.

Mit Hilfe des MME Boot Loaders ist es möglich, ROM- oder HEX-Intel-Dateien über die serielle Schnittstelle (RS232 sowie RS485) in den AVR Controller zu laden. Der Boot Loader ist in der Lage, Anwender-Programme über den UART seriell zu empfangen und diese in den internen FLASH-Speicher zu programmieren. Auf der PC-Seite wird das Download-Programm CMDLoad32 zur Verfügung gestellt.

Download-Programm
CMDLoad32 - PC Download-Programm
Boot Loader Konfiguration
BLM - PC-Programm zur Konfiguration
des Boot Loaders

Boot Loader Leistungsmerkmale:

  • Zwei Boot Loader Varianten: Für RS232 sowie RS485 Schnittstellen-Standard.
  • Hohe Downloadgeschwindigkeit: Bis zu 7,3 KB/Sekunde bei 115200 Baud und 11,0592 MHz.
  • Boot Loader belegt lediglich 2 KB im AVR. Die RS485-Variante belegt 4 KB.
  • Kurzer Execution-Overhead (Einsprung Boot Loader bis zur Programmausführung): Ca. 10 µs bei 11,0592 MHz.
  • Keine Compilierung des Boot Loaders erforderlich. Der Boot Loader ist völlig unabhängig vom Anwenderprogramm.
  • Programm- und hardwaregesteuerte Aktivierung.
  • Konfigurierbares Status-Signal.
  • Konfigurierbare Steuersignale für Sende- und Empfangstreiber bei der RS485-Varinte.
  • Einfache Konfigurierbarkeit über Windows-Software Boot Loader Manager.
  • Linux- und Windows-Software CMDLoad32/64 zum Download des Anwenderprogrammes.
  • Firmware-Update über Internet.
  • Windows-DLL DLLLoad zur Entwicklung von eigenen Download-Programmen.
  • Zur Zeit unterstützte Controller: ATMega128, ATMega32, ATMega16, ATMega8, ATMega88, ATMega168, ATMega328P, ATMega8535, ATMega644, ATMega644P, ATMega1280 und ATMega1284P.

Revisionshistorie:

Version V1.9 vom 08.12.2015

  • Neuer Boot Loader M1280CMDLoad_RS485_0U dazugekommen. Mit diesem Boot Loader erfolgt der Download über eine RS485 Verbindung zwischen PC und UART0 des ATMega1280.

Version V1.8 vom 11.06.2014

  • Neuer Boot Loader M328PCMDLoad_RS485_U dazugekommen. Mit diesem Boot Loader erfolgt der Download über eine RS485 Verbindung zwischen PC und ATMega328P.

Version V1.7 vom 26.06.2013

  • Neuer Boot Loader M1284PCMDLoad_1U dazugekommen. Mit diesem Boot Loader erfolgt der Download über den UART 1 des ATMega1284P.

Version V1.6 vom 15.03.2013

  • Anzeige der Boot Loader Version im Bearbeitungsdialog des BLM.
  • Verfügbare Boot Loader werden im Hauptfenster des BLM markiert.

Version V1.5 vom 22.08.2011

  • Neuer Boot Loader M1284PCMDLoad_0U dazugekommen. Mit diesem Boot Loader erfolgt der Download über den UART 0 des ATMega1284P.

Version V1.4 vom 24.02.2009

  • Neuer Boot Loader M644PCMDLoad_0U dazugekommen. Mit diesem Boot Loader erfolgt der Download über den UART 0 des ATMega644P.

Version V1.3 vom 07.07.2008

  • Neuer Boot Loader M644PCMDLoad_1U dazugekommen. Mit diesem Boot Loader erfolgt der Download über den UART 1 des ATMega644P.

Version V1.11 vom 16.09.2007:

  • Bugfix: Bei der Überprüfung des prozentualen Fehlers (bei den UART-Vorgaben) konnte es zu einem Laufzeitfehler kommen, wodurch der Boot Loader Manager abgebrochen wurde. Der eigentlichen Boot Loader war von diesem Fehler nicht betroffen.

I/O-Baugruppe, ansteuerbar über RS232 oder USB

I/O-BaugruppeDiese Baugruppe wurde im Kundenauftrag entwickelt. Sie verfügt über 4 analoge bzw. 4 digitale Eingänge und 16 kurzschlußfeste, thermisch abgesicherte Ausgänge. Weiterhin sind eine RS232- und eine USB Schnittstelle vorhanden. Die Steuerung der Baugruppe übernimmt ein ATMEGA8 Controller, welcher mit internem, kalibriertem Oszillator betrieben wird.

Eine eigenentwickelte Windows-DLL ermöglicht die Einbindung der Baugruppe in Windows-Anwendungen, wie z. B. Macromedia Authorware.

 

Nachbildung eines abgekündigten XICOR-Bausteins mit AT90S2343

X76F041-ErsatzZiel dieses Projektes war es, einen abgekündigten XICOR-Baustein (X76F041, 4 x 128 x 8 Bit PASS SecureFlash) so nachzubilden, daß die Software einer vorhandenen Microcontrollerbaugruppe nicht verändert werden mußte. Geringfügige Änderungen bei der Hardware konnten dabei in Kauf genommen werden.

Zum Einsatz kam ein AT90S2343, der mit internem 1 MHz RC Oszillator betrieben wird. Die niedrige Taktfrequenz, sowie die geringen SRAM-Resourcen des AVRs, erforderten die Programmierung in Assembler. Die 128 Byte EEPROM des AVRs reichen aus, um zumindest eine Page des X76F041 nachbilden zu können.

 

Intelligentes, schnelles I/O-Subsystem

Baugruppe V25RISCDiese Baugruppe dient als intelligentes I/O-Subsystem für ein komplexes Meßgerät, welches auf Basis unseres V25-Moduls aufgebaut ist. Mit den 8 analogen Eingängen werden u. a. hochpräzise Verfahrwege induktiv aufgenommen. Durch den Einsatz des AT90S8515 auf der Baugruppe ist es nun möglich, analoge und digitale Signale eigenständig zu erfassen, vorzuverarbeiten und somit den V25 als Hauptprozessor zu entlasten.

Die Besonderheit dieser Baugruppe liegt in der direkten Ankopplung (nahezu "glueless") des AVRs an den Steuer- und Datenbus des V25. Somit werden wertvolle Ressourcen (Port-Leitungen) des V25 eingespart und maximale Zugriffsgeschwindigkeiten durch die direkte I/O Adressierung ermöglicht.

Um die Buszugriffsgeschwindigkeiten des V25 einhalten zu können, mußte der AVR bei diesem Projekt größtenteils in Assembler programmiert werden.

 

Universelle Baugruppe zur Steuerung von Schrittmotoren, Relais, Lampen LEDs usw.

Baugruppe MBOXDie beiden AT90S8515 AVR Controller übernehmen bei dieser Baugruppe die Aufgabe von Eingabe-Controllern, sowie die Ansteuerung von Sieben-Segment-Anzeigen. Jeder Eingang verfügt über einen individuell einstellbaren "Software-Filter" um Störungen zu unterdrücken.

Die Baugruppe verfügt über 32 Ein- und 32 Ausgänge, wobei die Ausgänge als "offene Kollektor"-Ausgänge realisiert worden sind. Jeder Ausgang ist kurzschlußfest, thermisch abgesichert und kann bis zu 300 mA treiben. Für den Anschluß von Relais sind Freilaufdioden vorgesehen.

Als Hauptprozessor wurde hier unser V25-Modul eingesetzt. Dieses kommuniziert über einen 4 Bit parallen Datenbus mit den beiden AVRs, sowie mit der seriellen Schnittstelle. Über die serielle Schnittstelle können neue Steuerprogramme, programmiert in Delphi, in das FLASH des V25-Moduls geladen werden. Hierfür wurde eine Windows-Software erstellt.

Baugruppe MBox2Eine weiterentwickelte Variante dieser Baugruppe (MBox2) verfügt über 64 Ausgänge und (neben der RS232) eine RS485 Schnittstelle. Hiermit ist es möglich, ein Netzwerk aus bis zu 128 Baugruppen aufzubauen.

Um die Softwareentwicklung für "MBox"-Anwendungen zu erleichtern, wurde ein I/O-Simulator geschrieben. Steuerprogramme können somit auf dem PC simuliert werden, bevor sie in die Baugruppe geladen werden.

 

PC Tastatur-Emulator

Tastatur EmulatorMit dem Tastatur-Emulator wird eine handelsübliche PC/AT Tastatur an der Tastatur-Schnittstelle eines PCs nachgebildet. Für den Anschluß des Emulators ist eine PS2-Schnittstelle am PC erforderlich.

Die Einheit verfügt über 24 Eingänge, die über Reihenanschlußklemmen von der Baugruppe geführt sind. Jedem Eingang kann eine separate Zeichenkette zugeordnet werden. Der verwendete AT90S8535 "scannt" die in einer Matrix angeordneten Eingänge ab und sendet die jeweiligen Zeichenketten zum PC.

Der Emulator unterstützt dabei das bidirektionale PS2-Tastatur-Protokoll, so daß der Keyboard-Eintrag im PC-BIOS nicht deaktiviert werden muß. Selbstverständlich kann ein PC auch über den Emulator "gebootet" werden.

Zusätzlich verfügt die Einheit noch über eine serielle Schnittstelle, über welche die Konfiguration der Zeichenketten und Zuordnungen zu den Eingängen vorgenommen wird. Hierfür wurde eine komfortable Windows-Software erstellt. Die Speicherung der Zeichenketten erfolgt im EEPROM des Emulators. Der EEPROM-Speicher kann mehr als 100.000 mal überschrieben werden.
Mit der seriellen Schnittstelle besteht auch die Möglichkeit, den Emulator als Konverter zu verwenden. Denkbar wäre z. B. eine Anwendung, bei der eine Microcontroller-Baugruppe über die serielle Schnittstelle des Emulators Eingaben am PC vornimmt.
Optional ist eine batteriegepufferte Echtzeituhr bestückbar, so daß auch zeitgesteuerte Ereignisse ausgelöst werden können.

 

MP3 Audio-Wiedergabesystem

Baugruppe MP3 Basis-BoardDiese Baugruppe ist Bestandteil eines MP3-Audio Wiedergabesystems. Der im System verwendete ATMEGA103/128 ist für den koordinierten Zugriff auf MultiMediaCard (MMC) bzw. Secure Digital Memory Card (SD Card) und MP3-Decoder zuständig, während parallel dazu I/O-Signale überwacht und die serielle Schnittstelle bedient werden muß. Die Parallelverarbeitung der verschiedenen Prozesse machte ein interruptgesteuertes Software-Konzept erforderlich.

Die Audio- und Steuerdaten werden auf handelsüblichen MMCs/SD Cards gespeichert. Bei der großen Datenmenge von bis zu 1 GB kam eine Datenübertragung über die serielle Schnittstelle nicht mehr in Frage. Da die Speicherkarten am PC vom Betriebssystem wie Wechselplatten angesprochen werden können, wurde in der AVR Firmware ein DOS FAT Filesystem (FAT12 und FAT16) implementiert, so daß hiermit ein problemloser Datenaustausch zwischen unserem Audiosystem und einem PC gewährleistet ist.

Die Kommunikation über die serielle Schnittstelle wurde so realisiert, daß zur Steuerung des Systems lediglich ein gewöhnliches Terminal-Programm (z. B. Hyperterminal) erforderlich ist. Die Einheit läßt sich daher ähnlich simpel wie ein Modem ansprechen.

Baugruppe iMP3PL OEM2Diese Version des iMP3PL Systems wurde im Kundenauftrag entwickelt. Auf der Baugruppe befindet sich neben dem Kopfhörerausgang ein 3 Watt NF-Verstärker zur direkten Ansteuerung eines Lautsprechers. Weiterhin sind 4 kurzschlußfeste Ausgänge sowie 3 Eingänge vorhanden.

Da der ATMEGA103 abgekündigt wurde, wird nun ausschließlich der ATMEGA128 verwendet. Die Playerfirmware mußte geringfügig an den neuen Controller angepaßt werden. Erweiterungen der Firmware können beim Kunden vorgenommen werden. Unsere eigenentwickelten Bootloader sind in der Lage, verschlüsselte Images von der seriellen Schnittstelle oder der MMC/SD Card zu laden.

Weitere AVR-Projekte

Werma Prototyp
Prototyp zur Ansteuerung von Signal-
ampeln der Firma Werma

MP3-Modul
MP3-Modul für Embedded Systeme
(Low Power, erw. Temperaturbereich)

386EX-Modul
AVR als Slave-Controller
für 386EX-Modul

Universal I/O-Baugruppe (ATMEGA8535
mit MME Bootloader)

Zum Einsatz kamen weiterhin folgende AVR-Controller: AT90S2343, AT90S2313, AT90S4433, ATMEGA8, ATMEGA8535, ATMEGA163, ATMEGA32 sowie der ATMEGA128.

Die damit realisierten Projekte unterliegen teilweise der Geheimhaltung und können hier leider nicht vorgestellt werden.


[ Home ] [ Kontakt ]