Software

AVR-Programmieren mit BASCOM und AVR Studio

Zum Programmieren ("Brennen", "Flashen") von AVR-Controllern über die ISP-Schnittstelle braucht man - egal wie - eine geeignete Verbindung zum PC, auf dem die Software erstellt wird. Früher ging das über eine serielle RS232- oder eine parallele Druckerschnittstelle am PC. Heutige PC kennen nur noch USB-Schnittstellen. Entsprechende Programmer USB zu ISP schaffen den Anschluss an moderne Zeiten und das mit mit einem Affentempo.

Werkbank für Software: AVR-Testboards "light"

ATmega16-Testboard

Klarer Fall, Testboards für Atmel AVR-Prozessoren kann man fertig kaufen. Sie lassen sich aber auch leicht selber herstellen, zumal, weil sie immer nur vorübergehend gebraucht werden, eben zum Testen neuer Schaltungen und Programme. Danach liegen sie nur noch rum.

ADC mal ohne BASCOM-"GetADC"

Wer es sich leisten kann, in seinem Microcontroller-Programm unnötig Zeit mit dem Auslesen des ADC zu vertrödeln, bleibt bei dem BASCOM-Befehl GetADC. Ist ja auch schnell hingeschrieben. GETADC wird wohl mit jedem Aufruf den Multiplexer auf den jeweiligen ADC-Port einstellen, den Vorteiler einstellen, den ADC starten, warten, bis die Messung ausführt ist und schließlich den ADC auslesen. Das braucht Zeit. Überhaupt – was versteckt sich hinter solchen Hochsprachenbefehlen? Führen sie tatsächlich das aus, was beabsichtigt ist? Ohne Assemblerkenntnisse steht man da im Dunkeln.

Externer ADC MCP3421 mit BASCOM

MCP3421 and AVR

In einem Projekt wurde erstmalig ein externer 18bit-ADC MCP3421 eingesetzt. Dieser wird per I2C vom AVR gesteuert. Von der Hardware aus betrachtet ist es ein Kinderspiel, einen Chip mit zwei Drähten an den AVR zu hängen.

RS485 - Long distance call

Immer dann, wenn Datenübertragungen über größere Entfernungen herzustellen sind, liefert die RS485-Schnittstelle sehr einfache Realisierungsmöglichkeiten. Die Kopplung zweier oder mehrerer Microcontroller ist mit geringem Hard- und Softwareaufwand möglich.

RS485 Master - Slave

Im Zuge der Weiterentwicklung des Antennentuners stand auch ein Aufräumen in der Software auf dem Programm. Ein Schwerpunkt lag hier zunächst auf der Master-Slave-Kopplung über den RS485-Bus, zumal ein zweiter Slave hinzukommen sollte. Ergänzend zu RS485-Long Distance Call hier also die Ergebnisse.

Electronic Assembly DIP204-LCD mit BASCOM

Testausgaben EA DIP204-LCD

Richtig handlich sind sie ja, die vierzeiligen LC-Displays von Electronic Assembly, z.B. bei reichelt.de zu haben. Sie kommen ohne ausladende Platinen aus und lassen sich so gut in Frontplatten flacher Gehäuse unterbringen. Soweit die Vorteile. Dafür nimmt man den höheren Preis schon mal in Kauf. Enger wird es aber beim Betrieb unter BASCOM. Voll kompatibel mit dem von BASCOM standardmäßig unterstützten HD44780-Controller sind diese LCD nicht.

Grafikdisplay mit I2C-Ansteuerung

Simuliertes TRX-Display

Die Einbindung einer BASCOM-GLCD-Library und diverser Fonts zur Ansteuerung eines Grafikdisplays (GLCD) ist recht speicherhungrig, so dass ein für eine bestimmte Anwendung ausgelegter Prozessor schnell an seine Grenzen stößt. Darüber hinaus verlangt ein solches monochromes GLCD einen kompletten Daten-Port (8 bit) und weitere 6 bit eines zweiten AVR-Ports für die Steuersignale, insgesamt also 14 Pins an zwei Ports. Eine Möglichkeit, dieses Problem mit I2C-Portexpandern in BASCOM-AVR zu lösen, war erst einmal nicht zu finden.

AVR-Kopplung über I2C

Um zwei AVR-Controller über I2C/TWI zu koppeln, kann man innerhalb einer Do...Loop empfangene Zeichen pollen, wie bei der GLCD-Kopplung beschrieben, oder den TWI-Interrupt verwenden. Der Empfang mit dem TWI-Interrupt soll hier beschrieben werden. Da ein Interrupt unmittelbar mit dem Eintreten des auslösenden Ereignisses und nur dann bearbeitet wird, hier mit dem Empfang eines jeden Zeichens, ist dies die zweckmäßigere Methode.

AVR Frequenzzähler

7 segment display

Lassen sich Präzisionsfrequenzzähler mit einem AVR bauen? Nicht wirklich, will man die Frequenz innerhalb eines bestimmten Zeitfensters (Gate) messen. Die Counter/Timer eines AVR brauchen aufgrund des Zählverfahrens mindestens zwei Takte, um eine Halbwelle zählen zu können. Anders herum, die maximale Zählfrequenz ist etwa die Hälfte der Taktfrequenz, und die geht bei den meisten AVR nur bis 16, fallweise auch bis 20 MHz. Also ist bei ca. 10 MHz spätestens Schluss.

Seiten

Subscribe to RSS - Software