Archive for the ‘AVR’ Category

Anjuta als IDE für avr-gcc nutzen

Montag, Juli 25th, 2011

Unter Windows gibt es das AVR Studio, Bascom oder teure C Compiler mit IDE. Unter Linux fehlt sowas vollständig. Man muss sich seine Umgebung mit dem avr-gcc selbst einrichten.

Die einen verwenden normale Editoren wie Gedit oder Geany, andere vim oder Emacs oder man greift gleich zu Eclipse. Aber keines davon konnte mich bisher überzeugen. Eclipse ist mir einfach zu aufgeblasen und fett, vim und Emacs nicht mein Ding. Am besten eignet sich für mich immer noch Geany, wobei mich dabei immer stört, dass man eine Source Datei im Root Verzeichnis des Projekts auswählen muss, bevor man make aus Geany heraus aufrufen kann. Das Build System passt sich immer automatisch an die aktuelle Datei an. Es fehlt eine richtige Projektverwaltung.

Deshalb habe ich es mir jetzt mal zur Aufgabe gemacht, eine einfache aber trotzdem halbwegs komfortable IDE für die AVR Entwicklung zu basteln. Am geeignetsten erschien mir Anjuta. Bisher basiert das Projekt auf einem einfachen Makefile Projekt. Das heißt, dass man später neue Source Files immer noch von Hand in das Makefile eintragen muss. Später will ich versuchen, das Ganze mit Automake umzusetzen.

Es ist bereits möglich, einfache Projekte zu erstellen, ohne das Makefile manuell bearbeiten zu müssen. Alle Grundeinstellungen können in einem Wizard vorgenommen werden und das Makefile nutzt die Möglichkeiten von Anjuta. So lässt sich avrdude zum Programmieren des AVR über “Projekt installieren” aufrufen.

Hier noch eine kleine Vorschau des Wizards (Video nur im Blog zu sehen)

 

avr-gcc räumt in Header Dateien auf

Montag, Juli 11th, 2011

Atmel aktualisiert seit geraumer Zeit die Fertigungstechnik, wodurch zum Beispiel aus einem ATmega8 ein ATmega8A wird. Einzige Unterschiede sind geringere Kosten, geringerer Stromverbrauch und, besonders wichtig, der Wegfall von getrennten Versionen für Low Voltage und Standardausführung. Die neuen Typen sind 100% Pin- und Code kompatibel. Sie verwenden auch die selbe Signatur.

Natürlich gibt es für die neuen Typen auch neue Header Dateien (unter Ubuntu zu finden unter /usr/lib/avr/include/avr). Die Dateien für die neuen A Typen wurden aber deutlich aufgeräumt und auch um einige Informationen ergänzt.

In der Datei iom16.h hieß es beispielsweise bei den Interrupts noch

/* External Interrupt Request 0 */
#define INT0_vect			_VECTOR(1)
#define SIG_INTERRUPT0			_VECTOR(1)

In der Datei iom16a.h entfallen die alten Interrupt Bezeichnungen. Dafür wurde eine Definition für die Vektornummer hinzugefügt

#define INT0_vect_num  1
#define INT0_vect      _VECTOR(1)  /* External Interrupt Request 0 */

Damit entfällt schonmal das Rätselraten, welche der Vektoren denn jetzt die richtigen sind. Es gibt aber auch neue Definitionen, beispielsweise für die Sonderfunktionen der IO Ports.

#define RXD_DDR   DDRD
#define RXD_PORT  PORTD
#define RXD_PIN   PIND
#define RXD_BIT   0

#define TXD_DDR   DDRD
#define TXD_PORT  PORTD
#define TXD_PIN   PIND
#define TXD_BIT   1

Das vereinfacht die Konfiguration der Ports.

Wer also ein neues Projekt mit einem ATmega8, ATmega16 oder ATmega32 startet sollte darüber nachdenken, eventuell die Header Files für die jeweiligen A Typen zu verwenden

Kostenlose VID/PID für USB dank GPL

Dienstag, Februar 15th, 2011

Wer USB Geräte entwickeln will, egal ob privat oder kommerziell, braucht eine Vendor ID und eine Product ID. Wenn man fertige ICs wie den FT232R verwendet kann die IDs des Herstellers verwenden, wenn man damit zufrieden ist. Auch Microchip bietet eine kostenlose Möglichkeit zur Nutzung von deren VID und PID. Allerdings nur mit deren Mikrocontrollern und begrenzt auf 10000 Exemplare.

Wer jedoch eigene IDs möchte muss tief in die Tasche greifen, denn der Handel mit kleinen PID Gruppen wurde vom USB Implementers Forum (USB IF) unterbunden. Will man eine eigene VID und die Lizenz für die Nutzung des USB Logos darf 4000 US-Dollar berappen… pro Jahr. Dafür erhält man dann 65000 PIDs. Wer’s braucht…

Atmel bietet noch eine dritte Alternative. Wer den V-USB Treiber nutzt, erhält kostenlos eine VID/PID Kombination, sofern das Gerät die Richtlinien der GPL erfüllt. Dafür muss man neben den Sourcen auch alle Schaltpläne und weitere notwendige Informationen auf einer Webseite veröffentlichen und die Firma darüber informieren. Soll die Software nicht unter der GPL veröffentlicht werden kann man für den privaten Gebrauch eine VID-PID Kombination für 9,90€ erwerben.

Der V-USB Treiber ist jedoch kein Hardware USB Chip sondern eine Softwarelösung, die auf Atmels AVR Controllern läuft und bietet daher nur USB 1.1 und maximal FullSpeed. Sofern man nicht gerade einen Massenspeicher basteln will oder einen Livestream von einer Kamera übertragen will sollte das allerdings ausreichen.

Für den privaten Gebrauch kann man sich natürlich jederzeit eine eigene, zufällige VID/PID erstellen. Man muss jedoch bedenken, dass diese Nummer für ein anderes Gerät verwendet werden könnte und das Betriebssystem die falschen Treiber läd.

JuffEd – Qt Text Editor

Sonntag, Dezember 26th, 2010

Ich suche schon lange einen Text Editor für Linux, der einige bestimmte Eigenschaften hat. Nur irgendwie ist das schwierig. Es gibt unter Linux zwar viele unterschiedliche Editoren, angefangen von kleinen Konsolen Editoren wie Joe oder Nano über die entweder innig geliebten oder gehassten vi und Emacs, einfachen GUI Editoren wie Gedit bis hin zu dicken Schiffen wie Eclipse. Aber alle haben irgendwie einen Haken.

Für mein Vorhaben suche ich einen schlanken und erweiterbaren Editor, mit dem auch normale Anwender zurechtkommen. Damit scheiden sowohl Eclips & co aus sowie alle Konsolen basierten einschließlich der Varianten mit Fensterrahmen (vim-gtk usw) ;) . Bleiben noch Editoren wie Kate, Gedit und Geany. Kate scheidet aus, weil mir als Gnome bzw Xfce User zu viele KDE Abhängigkeiten installiert werden. Bei Geany und Gedit scheitert es bei mir an GTK. Ich komme damit einfach nicht zurecht. Außerdem sind mir die GUIs der beiden Editoren zu unflexibel. Bei Gedit fehlen mir auch Funktionen wie Code Folding.

JuffEd

JuffEd

Ich bin schon vor einer Weile auf JuffEd gestoßen, habe die Entwicklung allerdings aus den Augen verloren. Heute bin ich mal wieder auf die Seite gestoßen und habe mir gleich mal die aktuelle Version aus dem PPA installiert.

sudo add-apt-repository ppa:mezomish/juffed
sudo apt-get update
sudo apt-get install juffed juffed-plugins

JuffEd ist ein Texteditor, der in C++ geschrieben ist und Qt4 als grafische Oberfläche benutzt. Er lässt sich über Plugins erweitern, bietet bereits viele Features und lässt sich konfigurieren.

Die Verwendung von Qt4 und den Docking Panels beseitigt eine Schwäche der üblichen GTK Editoren wie Gedit oder Geany: der starre Aufbau der GUI. Beide bieten nur jeweils links und unten ein Panel für Erweiterungen. Diese nehmen immer die volle Breite/Höhe ein, selbst wenn sie nur wenig Inhalt haben. Außerdem ist immer nur jeweils ein Tab sichtbar. Das stört die Usability und die Übersichtlichkeit IMHO erheblich. Selbst Kate hat diesen starren Aufbau, trotz Qt4.

Docking Panels bei JuffEd

Docking Panels bei JuffEd

JuffEd macht hier von den Docking Panels von Qt4 gebraucht, wodurch sich die Erweiterungen rund um den eigentlichen Editor nahezu beliebig anordnen lassen. Das gleiche gilt für die Werkzeugleisten. Diese lassen sich ebenfalls nahezu beliebig anordnen oder sogar frei schweben. Das erhöht die Übersichtlichkeit, da man mehrere Panels gleichzeitig darstellen kann.

Ansonsten bietet JuffEd viele Features, die man von einem Editor erwartet wie Syntax Highlightning, wenn auch nicht für ganz so viele Sprachen wie bei anderen Editoren. Es gibt auch erst ein halbes Dutzend Plugins, da das Projekt bisher nur wenige Entwickler hat. Allerdings könnte sich JuffEd zu einer interessanten Alternative entwickeln. Ich für meinen Teil werde mein Glück mal damit probieren. Vielleicht finden sich durch diesen Artikel ja ein paar Interessierte.

Preview auf Gedit 3

Donnerstag, November 4th, 2010

Für ein Projekt war ich lange Zeit auf der Suche nach einem passenden Editor. Er sollte schlank und einfach erweiterbar sein, idealerweise mit Python. Meine Wahl fiel schon früh auf Gedit. Leider hat mich die Umstellung auf Libpeas davon abgehalten, da man dadurch alte Plugins umschreiben müsste. Da Gnome 3 jedoch langsam auf der Ziellinie ist habe ich versucht, schonmal einen Blick auf den kommenden Gedit 3 zu werfen.

Gedit 3 Preview

Gedit 3 Preview

Die Installation war dank JHBuild zwar recht zeitaufwändig, aber erfreulich einfach. Mühsam war lediglich das Zusammensuchen und Nachinstallieren der nötigen Development Pakete.

Auf den ersten Blick sieht man keinen Unterschied. Tatsächlich findet man die meisten Änderungen unter der Haube, angefangen bei der Portierung auf GTK+ 3 über das neue Plugin System Libpeas bis hin zu weiten Optimierungen. Tatsächlich war das erste, was mir aufgefallen ist, die schnellere Startzeit. Der neue Gedit startet etwa 2-3 mal schneller als der alte. Durch die grundlegenden Änderungen müssen jedoch alle Plugins umgeschrieben werden, was der Grund für mein Zögern bei besagtem Projekt war.

Gedit 3 Suche

Gedit 3 Suche

Die erste optische Änderung ist die Suche. Statt eines Dialogs wird lediglich, ähnlich wie bei Googles Chromium, ein Suchfeld eingeblendet. Alle gefundenen Stellen werden hervorgehoben

Gedit 3 Tab Group

Gedit 3 Tab Group

Ein interessantes neues Feature sind die Tab Groups. Damit lassen sich mehrere Dokumente nebeneinander darstellen bzw zusammengehörende Dokumente in verschiedenen Gruppen zusammenfassen. Per Drag&Drop lassen sich die Dokumente einfach verschieben.

Gedit 3 Tab Groups in Aktion (OGV Format)

Auffälligste Neuerung ist aber die neue Plugin Schnittstelle Libpeas. Dadurch wird es nach der Umstellung wohl leider einige lange Gesichter geben, wenn die alten Plugins von den Entwicklern nicht rechtzeitig portiert wurden. Libpeas unterstützt weiterhin Plugins in C und Python, könnte aber auch Javascript Plugins ausführen. Ob Gedit 3 von dieser Möglichkeit Gebrauch machen wird weiß ich nicht.

Ich arbeite mich derzeit in die Materie ein und werde bei Gelegenheit auch ein kleines Tutorial schreiben.

AVR Studio und WinAVR unter Linux: es läuft

Sonntag, April 25th, 2010

Ich habe mir jetzt einmal die Mühe gemacht und die Version 1.1.43 von wine aus diesem PPA zu installieren. Anschließend habe ich das AVR Studio 4.18 einschließlich SP1 und die aktuelle Version von WinAVR heruntergeladen.

Ich habe alles installieren können und siehe da, es läuft. Was allerdings (noch) nicht funktioniert ist die Programmierung über den AVRISP mkII. Ob man das noch einrichten kann weiß ich zur Zeit nicht. Hier muss man zur Not auf avrdude zurückgreifen.

Weiterhin habe ich festgestellt, dass das AVR Studio schon im Leerlauf etwa 12% CPU Leistung benötigt (auf einem C2D E4300 mit 1,8GHz). Also nicht unbedingt geeignet für den mobilen Betrieb mit einem Laptop.

Ich habe jetzt nicht alle Funktionen getestet. Ich habe lediglich die Installation und das Compilieren mit WinAVR ausprobiert.

Da die Programmierung mittels AVRISP mkII nicht funktioniert bleibt der einzig plausible Grund für die Installation vom AVR Studio unter Linux der Simulator.

Wenn man im Project Wizzard ein neues Projekt anlegt und einen AVR Controller auswählt gibt es jedoch einen kleinen Bug. In den Project Options wird der Controller Typ falsch eingetragen. Hinter dem Namen werden zusätzliche Zeichen eingefügt, die man entfernen muss. Ich weiß jetzt nicht, ob dies an wine liegt oder ein genereller Bug im AVR Studio ist.

PS: Der Simulator scheint nicht zu funktionieren. Beim Versuch, ein Programm zu debuggen, hängt sich das AVR Studio komplett auf

AVR Studio soll unter Linux mit wine 1.1.43 laufen

Montag, April 19th, 2010

Wie Heise heute berichtet soll die Version 1.1.43 neben vielen Verbesserungen auch Unterstützung für das AVR Studio mitbringen. In Ubuntu Lucid Lynx ist noch Version 1.1.42 enthalten. Ich denke nicht, dass die neueste Version noch den Weg in die offiziellen Repositories schafft. Möglicherweise kann man es später über die Backports installieren

Bugfix Update avrdude 5.10

Dienstag, Januar 19th, 2010

In die Version 5.9 hat sich ein Bug eingeschlichen. Offensichtlich werden Intel HEX Dateien mit mehr als 128kB nicht korrekt verarbeitet.

Daher wird empfohlen, ein Update durchzuführen. Weitere Informationen hier

avrdude 5.9 ist fertig

Samstag, Januar 16th, 2010

Nach vielen Wochen intensiven Diskutierens auf der Mailingliste wurde nun avrdude 5.9 freigegeben. Neben vielen Bugfixes werden auch wieder einige neue Mikrocontroller und Programmer unterstützt. Ganz neu ist die Unterstützung für AVR32.

Neue Controller

  • AVR32A0512 (JTAGMKII only)
  • ATmega32U4
  • ATtiny4
  • ATtiny5
  • ATtiny9
  • ATtiny10

Neue Programmer

  • BusPirate
  • Arduino
  • JTAGICEmkII and AVR Dragon in PDI mode (ATxmega devices)
  • STK600 and AVRISP mkII in TPI mode (ATtiny4/5/9/10)

Download und compilieren für Debian Systeme wird im avrdude Tutorial beschrieben

Update

Nachdem ich mit den bisherigen Versionen kein Glück mit den Xmega hatte scheint die aktuelle Version endlich zu funktionieren. Getestet habe ich mit dem ATxmega128A1 und dem ATxmega32A4. Beide Tests verliefen bisher erfolgreich.

Angekündigt: ATtiny2313A und ATtiny4313

Freitag, Dezember 18th, 2009

Endlich tut sich etwas bei den ATtiny2313. Gestern hat Atmel ein neues Datenblatt veröffentlicht.

Der ATtiny2313 ist ein kleiner, universeller Controller ohne AD Wandler. Leider gab es diesen bisher nur mit 2kB Flash. Mit dem Datenblatt kündigt Atmel zum einen den Wechsel auf die neuen A-Typen an. Gleichzeitig gibt es eine Version mit 4kByte Flash und je 256 Byte Eeprom und SRAM.

Die neuen Controller arbeiten mit einer Spannung von 1,8-5,5V und von 0-20MHz.

  • 0-4MHz @ 1,8-5,5V
  • 0-10MHz @ 2,7-5,5V
  • 0-20MHz @ 4,5-5,5V

Die Migration Note listet die Unterschiede zwischen dem ATtiny2313 und dem ATtiny2313A auf. Neben leichten Unterschieden in den Spannungsleveln der Resetleitung haben sich auch einige Register geändert oder sind neu hinzugekommen. Die Signatur der ATtiny2313 ist jedoch unverändert.

Wann die neuen Mikrocontroller verfügbar sein werden steht noch nicht fest. Wie immer wird es aber wohl einige Monate dauern, bis die Mikrocontroller in Stückzahlen erhältlich sein werden.


Switch to our mobile site