Just a moment ;-)
Beiträge gettagt mit AVR
Weekend Special : AVR Christmas Sound
13. Dez
Hatte am Wochenende etwas Zeit und Langeweile und habe mir mal wieder meinen kleinen ATMega8 geschnappt. Zwar ist es eine absolut miese Bildqualität, aber es kommt ja auf den Ton an. Warum ich einen ATMega8 und nicht mein Arduino-Board?
Beim Arduino muss man sich nicht selbst um die Timer kümmern und lernt daher auch nicht wirklich etwas über die Architektur. Zumal es einfach zu viel im Netz gibt und man da schnell was zusammen klaut. Außerdem wollt ich ja Zeit rumkriegen.
Update:
Nachdem das Ganze irgendwie süchtig macht, habe ich noch ein paar Melodien hinzugefügt.
* Itchy & Scratchy Theme
* KnightRider Theme
* The Simpsons Theme
* Star Wars Theme
* Star Trek Next Generation Theme
* Star Trek Voyager Theme
* SuperMario Bros Theme
* Airwolf Theme
* SuperMan Theme
* Scatman* Poison
* TakeOnMe
* Biene Maja Theme
* The final countdown
* Pink Panther Theme
* Adams Family Theme
* Axel Foley Theme
* The Flintstone Theme
* Indiana Jones Theme
* Little Drummer Boy
Neue Version von progswitch (Linux)
08. Apr
Hab in den letzten Tagen wieder vermehr mit meinem myAVR-USBBoard gearbeitet und musste feststellen, dass eines an meinem Progswitch sehr nervig ist. Bei jedem WEchsel des Betriebsmodi muss das Device angegeben werden, was sehr nervt, wie ich finde. Also habe ich die Optionen angepasst und nun wird als Standard-Device “dev/ttyUSB0″ gesetzt ist. Will man ein anderes Device nutzen, dann müsste man wieder die Interfaceschalter (-i/dev/Xy) benutzen.Weiter hat sich nicht viel geändert, den aktuellen State des Prommers kann ich ledier nicht auslesen, da mein Prommer nicht wie im Datenblatt antwortet.
progswitch (Unix) -Da fällt mir ein, wer Probleme unter Linux haben sollte mit dem Prommer zu kommunizieren, der sollte den vierten DIP-Schalter, nach dem Anschalten, kurz von OFF auf On und wieder zurück schalten und somit einen Reset des Prommers erzeugen. Scheinbar initialisiert er sich nicht richtig, zumindestens ist es bei meinen beiden Geräten bei der Firmware 2.3 und 2.5 unter Linux (Fedora 10 x64 + gepatchten CP2101-Treiber) so.
Eventuell hilft es ja jemandem.
Sollte es dabei Probleme geben, so steht die Kommentarfunktion jedem offen.
“Für etwaigen Schäden übernehme ich keine Gewähr oder Haftung. Sollte etwas an eurem System oder eurer Hardware beschädigt werden, so geschieht das Nutzen des Programms und der hier dargestellten Informationen auf eigene Gefahr!”
Progswitch für mySmartUSB unter Linux
22. Jan
Vor gut 2 Jahren bekam ich, gemäß meines Wunschzettels, zu Weihnachten eine USB-AVR-Experimentierplatine der Firma myAVR mitsamt dem kleinen USB-Prommer mySmarUSB. Beides hat mich bisher tatkräftig im Programieren von ATMELs kleinen Mikrocontrollern unterstützt und bisher auch immer fehlerfrei gearbeitet.
Der Prommer wirkt dabei als RS232-zu-USB-Umsetzer und läuft daher auch problemlos unter Windows und Linux.
Nachdem Komplettumstieg auf Linux, war eine schnelle Umstellung von WinAVR zu KontrollerLab als Entwicklungsumgebung notwendig, was auch kein größeres Problem darstellte.
Da ich natürlich alle Funktionen, Daten-/Programmiermodus und Resetfunktionen, des Prommers nutzen wollte musste ich leider feststellen, dass das Programm myQuickprog leider nicht unter Linux lauffähig war. Sicherlich hätte man mit wine emulieren können, jedoch erscheint mir das eher halbherzig. Im myAVR-Forum fand ich dann ein kleines Python-Skript das einen schnellen Wechsel der Betriesmodi erlaubt.
# -*- coding: iso-8859-15 -*-
import serial
import sys
# Kotrollsequenz gemäß technischer Beschreibung von mySmartUSB
controlseq = '\xe6\xb5\xba\xb9\xb2\xb3\xa9'
if (len(sys.argv) == 1):
print 'Usage: progswitch.py mode '
print '\tp : Programming mode'
print '\td : Data mode'
else:
ser = serial.Serial('/dev/ttyUSB0', 19200, timeout=1)
ser.write(controlseq + sys.argv[1])
Kleines Manko am Rande, es funktioniert bei mir nur auf dem Laptop, beim Desktop regt sich nix.
Also blieb nur eines, das Skript auf eine Hochsprache zu portieren!
Gesagt getan, da ich mich so oder so in die Programmierung der seriellen Schnittstelle unter Linux einarbeiten wollte, habe ich das Skript nach C portiert. Das resultierende Programm “progswitch” verfügt über Argumentswitches für die jeweiligen Modis und erlaubt das angeben eines Interfaces.
In etwa sieht das Ganze dann so aus:
progswitch -d -i/ttyUSB0
Wobei d : Datenmode und :i Interfacedarstellen und i zwangsweise vorhanden sein muss. Sollte jemand auf die Idee kommen zwei Modis anzugeben, so wird immer der letzte ausgewertet und behandelt.
Unter Fedora habe ich zusätzlich eine udev-Policy erstellt, die die Schnittstelle automatisch mit den Rechten 666, also lesen und schreiben für alle erstellt und nur die Sillicon Labs RS232-Konverter behandelt.
Übersetzen kann man das Ganze dann mit dem gewohnten Dreisatz von :
./configure
make
make install (als root)
Sollte es dabei Probleme geben, so steht die Kommentarfunktion jedem offen.
“Für etwaigen Schäden übernehme ich keine Gewähr oder Haftung. Sollte etwas an eurem System oder eurer Hardware beschädigt werden, so geschieht das Nutzen des Programms und der hier dargestellten Informationen auf eigene Gefahr!”
Downloads:
