You are on page 1of 36

10 WWW.EMBEDDED-PROJECTS.

NET ISSUE 10 I SEP 2011 I OPEN SOURCE


embedded-projects.net
JOURNAL
OPEN SOURCE SOFT-AND HARDWARE PROJECTS
www.embedded-proj ects.net
your own projects
[PROJECTS]
Eine Open-Source Zeitschrift
zum Mitmachen!
Vom Stromlaufplan zur Leiterplatte: Teil 2
Touchbox - Lautsprecher zum Anfassen
Hinter den Kulissen: USB Netzwerkkarte
Coffee Maker - Umbau
EDDY Linux Board
CMake fr Embedded Projekte
USBprog 4.0
TOUCH IT!
2
3/2011 JOURNAL - EMBEDDED-PROJECTS.NET
A
n
z
e
i
g
e
[ Editorial ] Benedikt Sauter
Mehr ber Augsburg
Rmer, Fugger ...
Embedded Projects Journal - Ausgabe No. 10
In der letzten Einleitung habe ic ange-
kndigt mehr ber das scne Stdtcen
Augsburg zu screiben.
Augsburg wurde von Kaiser Augustus 15
v. Chr. als Castra gegrndet. Eine Castra
ist ein rmisces Militrlager. Nac und
nac wurde es immer bedeutender,
bis es 95 n. Chr. zur Haupstadt der
rmiscen Provinz Raetien wurde.
Die ncsten greren Ereignisse
waren erst wieder im Mitelal-
ter. Im Jahre 955 n.Chr. besiegte
Kaiser Oto I mit Hilfe des Bi-
scofs Ulric von Augsburg
die Ungarn auf dem Lec-
feld. Im Jahre 1158 - jetzt erst
- wurde Mncen gegrndet.
Die ncste prominente Epoce
war die der Fugger. Die Fugger
waren Kaufmnner und handelten
seit dem Ende des 14. Jahrhunderts
eigentlic mit allem, was damals
bentigt wurde.
1555 gab es in Augsburg einen
Tag ber den sic heute noc je-
der Augsburger ganz besonders freut. Das
war der Religionsfrieden am 8. August. An
diesem Tag sclossen die Katholiken ge-
meinsam mit den Protestanten einen Ver-
trag fr das friedlice Zusammenleben.
Als Erinnerung an diesen Tag, hat die
Stadt Ausgburg hier einen eigenen Feier-
tag. Da Augsburg wie bekannt in Bayern
liegt, ist es also die Stadt mit den meisten
Feiertagen in Deutscland.
Natrlic darf man das Wahrzeicen von
Augsburg nict vergessen - das Rathaus -
eine der bedeutensten Renaissancebauten
nrdlic der Alpen.
So - ein Historiker werde ic wohl nict,
aber ic hofe so dem einen oder anderen
etwas unsere Gescicte nher gebract
zu haben.
Eine Sace, die zwar berhaupt nict zu
dieser Einleitung passt habe ic trotzdem
noc:
Seit kurzem verfentlicen wir unse-
re Neugigkeiten Rund um den Online-
Shop und das embedded projects Journal
bei Facebook [1] und Twiter [2]. Wenn
jemand auf diesem Weg ebenfalls
informiert werden will, kann man
sic jetzt entsprecend verlinken.
[1] Facebook htp://www.facebook.com/
embeddedpro
[2] Twiter htp://twiter.com/#!/embedded-
pro
4
3/2011 JOURNAL - EMBEDDED-PROJECTS.NET
Das im ersten Teil (Ausgabe 7) bespro-
cene Ethernetmodul wurde so gestal-
tet, dass sowohl bedrahtete als auc
SMD-Bauteile eingesetzt werden. Alle
SMD-Bauteile wurden auf der Unterseite
platziert, whrend die bedrahteten Bau-
teile auf der Oberseite Platz fnden. Aber
es gibt einen Haken, wie man vielleict
scon erkannt hat: Da das Modul zur Ver-
wendung in einem Stecbret eingesetzt
werden soll, mssen die beiden Stifleis-
ten (X1, X2) von der Unterseite eingesetzt
und von oben angeltet werden.
Fr den Herstellungsprozess hat das ei-
nen weiteren Arbeitsscrit zur Folge:
Handbestcung (von unten) und An-
lten (von oben) per Hand (Abbildung 1
und Abbildung 2 verdeutlicen dies).
Man kann daraus sclussfolgern: Die
Auswahl der Bauteiltecnologie (SMD,
bedrahtet oder beides) und das Platzieren
der Bauteile im Layout (oben und unten)
haben entsceidende Auswirkungen auf
die Bestc- und Ltvorgnge der Ferti-
gung und damit auc direkt auf die Kos-
ten der Herstellung. Je weniger Arbeits-
scrite bei der Herstellung eines Boards
notwendig werden, um so besser, da kos-
tengnstiger.
Dies zeigt einmal mehr, welce Probleme
beim Design einer Leiterplate aufreten
knnen und wie der Layouter diesen An-
forderungen gerect werden muss.
[ PROJECT ] Vom Stromlaufplan zum Leiterplattenlayout
Vom Stromlaufplan zum Leiterplattenlayout
Fortsetzung: Teil 2
Bernhard Redemann <b-redemann@gmx.de>
Das Ethernetmodul
Weitere Empfehlungen fr das Platzieren von Bauteilen
Abb. 3: Man achte auf die Lage der
Schraubklemmen!
Abb. 2: Modul ohne Stiftleis-
ten
Abb. 1: Stiftleisten von unten
montiert
Abb. 4: Reale Klemme und
Symbol
Doc nun zurc zum Leiterplaten-
layout. Generell gibt es natrlic keine
Einscrnkungen bei der Bauteileplat-
zierung, solange die Designrules, die
mecaniscen, thermiscen, EMV- und
generellen Vorgaben der Fertigung ein-
gehalten werden. Ofmals ist es aber
nict ratsam, dass z.B. zentrale Bauteile
(ICs) an der Leiterplatenkante liegen,
vor allem dann, wenn viel Platz auf der
Leiterplate ist und es sic um eine ein-
face Scaltung handelt. Damit verbaut
man sic die Mglickeit, von allen Sei-
ten Leiterbahnen zu verlegen.
Auf der anderen Seite gibt es natrlic
Bauteile, die durcaus am Rand der Lei-
terplate liegen knnen und sollten, so
z.B. Stecverbinder, Scraubklemmen,
Scalter oder Bauteile mit Khlkrpern.
Damit scliet sic der Kreis zum The-
ma Servicefreundlickeit (siehe Teil 1,
Zum Leiterplatenlayout), denn durc
z.B. auen-liegende Stecverbinder kann
auf einfacste Weise die Scaltung
an eine Peripherie angesclossen
werden. Dabei ist vom Layout her
zu beacten, in welcer Rictung
die Ansclsse liegen. Gerade bei
Scraubklemmen kann das dazu
fhren, dass man keine Leitung
daran ansclieen kann, wenn die
Kabeleinfhrung auf der falscen
Seite liegt.
In der Abbildung 3 ist dem Lay-
outer (war ic das etwa?) solc ein
Fehler unterlaufen. Vergleict man
die Scraubklemmen mit dem rea-
len Bauteil (Abbildung 4), so stellt
man fest, dass die Kabeleinfh-
rung auf der Seite der glaten Fl-
ce liegt. Somit mssen nict nur
X1, X2 und X4 gedreht, sondern
auc die Verbindungen im Stromlauf-
plan gendert werden, was Nacarbeit
bedeutet.
Bei Bauteilen, die sehr warm und/oder
mit Khlkrpern versehen werden, ist es
ebenfalls meist notwendig und ratsam,
diese eher am Rand als in der Mite der
Leiterplate zu platzieren. Da alle Bau-
teile mehr oder weniger empfndlic auf
Wrme reagieren und damit die Funk-
tionalitt einer Scaltung beeinfussen
knnen, muss die Wrme dort abgefhrt
werden, wo die Bauteiledicte gering ist.
Am Rand wre das also besser als in der
Mite. Besonders wrmeempfndlice
Bauteile wie z.B. Elkos sollten mit einem
gewissen Abstand zu einem Khlkrper
platziert werden.
5
3/2011 JOURNAL - EMBEDDED-PROJECTS.NET
[ PROJECT ] Vom Stromlaufplan zum Leiterplattenlayout
Eine weitere sehr ntzlice Funktion
beim Layouten ist das Gate- und Pins-
wapping, welces im obigen Beispiel
erlutert wird. Das Board stellt sic nac
nderung des Stromlaufplans und nac
einem Ratsnet, wie in Abbildung 6 zu
sehen ist, dar. Vergleict man nun beide
Sictweisen, so knnte man durc Ver-
tauscen von Gatern einfacere, krzere
Verbindungen scafen. Es lsst sic auc
hier nict generell sagen, wie vorzuge-
hen ist. Nur durc aufmerksames oder
gebtes Vergleicen beider Sictweisen
(Stromlaufplan Board) wird man er-
kennen, welce Gater miteinander ge-
tausct werden sollten.
Sehr aufllig ist auf der Seite von X3 (X3-
2) die Verbindung zu Pin 6 des HC132.
Man knnte nun entweder das IC drehen
oder einfac das Gater (4,5,6) mit dem
Gater (11,12,13) vertauscen, da dies n-
her zu X3 ist:
Ansclieend wird man auc sehen, dass
auc das Gater (8,9,10) auf der anderen
Seite von X1-1 liegt, so dass dieses z.B.
mit dem Gater (4,5,6) getausct werden
kann. Auc was den Operationsverstr-
ker betrif , so kann hier durc Tausc
die Verbindung zu X1 verkrzt werden.
Nun gibt es nac wie vor eine lange Ver-
bindung zwiscen X1-1 und Pin 5 dex
HC132, so dass auc hier noc einmal
getausct wird: (4,5,6) gegen (1,2,3). Wur-
den diese Vernderungen durcgefhrt,
so gibt es scon ein etwas klareres Bild
(Abbildung 8). Aber auc hier kann viel-
leict noc verbessert werden, wenn man
sic die Eingangspins der jeweiligen
NAND-Gater anscaut. Ein Pinswap
(1-2) und (4-5) des HC132 wird zuncst
ausprobiert.
Erstellt man nun, wie im ersten Teil er-
lutert, eine Massefce um das Board
und verbindet diese mit GND, so wird
die Ansict noc einfacer. Auc werden
die beiden Blockondensatoren direkt an
die jeweiligen Versorgungspins gelegt
und die ICs noc etwas verrct, wie in
Abbildung 9 zu sehen ist:
Alle Pins, die mit GND verbunden sind,
werden hier nict angezeigt, sind aber
verbunden. Actung! Ein Pinswap kann
natrlic nur zwiscen zwei gleicwerti-
gen Pins erfolgen. Ein Pinswap bei den
Operationsverstrkereingngen oder bei
(ansceinend gleicwertigen) Eingngen
von Mikrocontrollern ist also nict mg-
lic. Die restlicen ofenen Verbindun-
gen knnen nun sehr einfac geroutet
werden, das Layout sieht dann wie on
Abbildung 10 aus.
Die folgende Scaltung mit den NAND-
Gatern und dem Operationsverstrker
sieht an sic harmlos aus. Dennoc gibt
es hier Punkte, die zu beacten sind.
Das betrif zum Einen die unbenutzten
Eingnge des HC132 und des LM393.
In aller Regel sollten alle Eingnge von
unbenutzten Gatern oder Operations-
verstrkern auf ein festes Potential ge-
legt werden, z.B. auf GND oder VCC.
Die Ausgnge dieser unbenutzten Gater
bleiben natrlic ofen! Die Scaltung ist
denmac noc anzupassen.
Ein weiterer, derzeit noc nict bespro-
cener Punkt sind die sogenannten
Blockondensatoren, die direkt an jedem
IC platziert werden sollten und zwiscen
GND und der Versorgungsspannung lie-
gen. Diese stabilisieren die Versorgung,
und zwar speziell dann, wenn es durc
Scaltvorgnge an den ICs zu Strungen
in der Versorgungsspannung kommen
kann.
Das Nictbeacten der eben beiden ge-
nannten Punkte kann im Einzelfall zu ei-
nem seltsamen Verhalten der Scaltung
fhren, wenn nict sogar zu einer nict
funktionierenden Scaltung. Gerade
beim Einsatz von Mikrocontrollern sind
die Blockondensatoren Pfict (Abbil-
dung 5 und Abbildung 7).
Ungenutzte Eingnge, Blockkondensatoren und Gate- Pinswap
Abb. 6: Gate-Pinswap - Bei-
spiel
Abb. 8: Nach dem Gateswap
Abb. 5: Logikschaltung Abb. 7: Gatter angeschlossen, Blockkondensatoren
Abb. 9: Pinswap und GND-
Flche
Abb. 10: Fertiges Layout
6
3/2011 JOURNAL - EMBEDDED-PROJECTS.NET
Ofmals sind fr bestimmte Funktiona-
litten einer Scaltung auc spezielle
Bauteile mit besonderen Eigenscafen
und daraus folgernd besonderer Leiter-
bahnfhrung notwendig. Fr das hier
genannte Beispiel wird ein Operations-
verstrker vom Typ LMC6042 in Verbin-
dung mit einer PH-Elektrode vorgestellt.
Die PH-Elektrode, die in Abhndigkeit
des PH-Werts eine Spannung ( 400mV)
erzeugt, hat einen sehr hohen Innen-
widerstand, ca. 1 G. Wrde man die
Spannung an der Elektrode mit einem
Multimeter (RI = 10M) messen, so wr-
de diese sofort zusammenbrecen. Im
Dauerbetrieb wrde die Elektrode au-
erdem auc Scaden nehmen. Daher
wird ein einfacer Spannungsfolger mit
dem o.g. OP realisiert (Abbildung 11).
Der typisce Eingangsstrom, der in den
nictinvertierenden Eingang dieses OP
fiet, liegt bei 2 fA (femto Ampere). So-
mit wird gewhrleistet, dass die Elektro-
de nict belastet wird.
Dies birgt, was das Layout betrif , jedoc
ein Problem, und das sind eventuelle
Querstrme, die z.B. durc Feuctigkeit,
Staub oder einfac das Leiterplatenma-
terial entstehen und somit den typiscen
Wert stark negativ beeinfussen knnen.
Um das Problem zu lsen, sind im Da-
tenblat des Herstellers (National Semi-
conductors) einige Hinweise zum Layout
gegeben. Zum einen kann ein Leiter-
bahnring (auf dem Top- und Botomlay-
er) um alle Eingangspins inkl. der dort
angesclossenen Bauteile gelegt werden,
wie in Abbildung 12 auc realisiert.
Eine andere, aber etwas aufwndigere
Variante lt. Datenblat ist das Umbie-
gen der Beine des OP und das Anlten
der Bauteile mitels Draht. Da Luf ein
sehr guter Isolator ist, umgeht man das
Problem, was die Leitfhigkeit des
Basismaterial betrif . Vom Layout
her muss dann sicergestellt wer-
den, dass die Fertigung die not-
wendigen Bauteile nict einfac
bestct. Dies kann mitels mo-
difziertem Bestcungsplan und
einer angepassten Dokumentati-
on zum Projekt gescehen.
Solce Herstellerempfehlungen sollten
immer beactet werden, um nict mit
unerwarteten Problemen und Nacarbeit
konfrontiert zu werden.
Man sieht hiermit auc, dass der Layou-
ter nict nur mit dem Layouten bescf-
tigt ist, sondern auc mit generellen,
physikaliscen Fragen in Zusammenar-
beit mit der Entwiclung zu tun hat (Ab-
bildung 13).
[ PROJECT ] Vom Stromlaufplan zum Leiterplattenlayout
Anzeige
Autorouten kann jeder ....
...vernnfig layouten kaum ei-
ner. Auc wenn dies sehr provo-
kant ersceint, so entsprict es
doc noc am ehesten der Praxis.
Aus den genannten Themen und Pro-
blemen dieses Artikels wird man sehr
scnell feststellen, dass ein Autorouter
praktisc nie das gewnscte Ergebnis
liefern kann. In einer professionellen
Umgebung ist dieses Tool trotz Marke-
tingversprecen nac wie vor kaum ein
Thema.
Abb. 11: Spannungsfolger
Abb. 12: Leiterbahnring
Abb. 13: Drahtverbindung (aus Da-
tenblatt entnommen)
Spezielle Layouts fr spezielle Bauteile
7
3/2011 JOURNAL - EMBEDDED-PROJECTS.NET
Folgende Punkte zum Thema Autorouter
seien angemerkt:
1) Ohne eine sinnvolle Platzierung der
Bauteile und ohne zu wissen, was man
am Autorouter einstellen kann (oder soll-
te), drfe das Ergebnis eine Katastrophe
werden, und zwar in jeder Hinsict.
2) Nur durc gute Vorarbeit eines Layou-
ters kann der Autorouter eine Hilfe sein.
3) Da ein Autorouter sic generell nur um
die Leiterbahnen kmmert, kann er nict
sehen, ob z.B. durc Verdrehen eines
Bauteils eine einfacere Leiterbahnfh-
rung mglic wre.
4) Auc einen Pin- oder Gateswap kann
der Autorouter i.d.R. nict erkennen.
5) Ein Autorouter kann nict wie ein
Mensc von oben sein Layout be-
tracten, darber einmal sclafen und
Verbesserungen in der Platzierung vor,
whrend und nac dem Layouten durc-
fhren.
6) Bedingt durc die Punkte 3) bis 5) wird
der Autorouter i.d.R. mehr Durckontak-
tierungen bentigen, als wenn das Board
durc einen Layouter kreiert wird.
7) Ein Autorouter ist zwar scneller als
ein Layouter, aber das Design wird nict
den Erwartungen entsprecen.
8) Fr sehr einface Layouts oder
Testaufauten kann der Autorouter eine
Hilfe sein. Er kann auc eine Hilfe sein,
wenn man einen kleinen, unkritiscen
Bereic einer Leiterplate automatisc
routen lassen mcte.
9) Nac Beendigung des Designvorgangs
durc den Autorouter sind praktisc im-
mer (zeitaufwndige) Nacarbeiten not-
wendig.
Zu Punkt 8) sei allerdings anzumerken,
dass einface Layouts von einer gebten
Fackraf auc scnell und besser erstellt
werden knnen und dass solc ein Fac-
kraf dann auf automatisce Tools ver-
zicten kann.
Fazit: Ein selbst erstelltes Layout, auc
im Hobbybereic, und die positive Re-
sonanz von anderen Facleuten (Oh,
das sieht wirklic gut aus) steigern das
Selbstbewusstsein. Ic kann daher nur
empfehlen, beim Leiterplatendesign
kreativ und fexibel ein eigenes Layout
zu erstellen, auc wenn dies etwas Zeit
brauct.
Die beiden Teile dieses Artikels zu die-
sem Thema sollten dazu anregen, sic
auc im Hobbybereic ber die Fragen
und Probleme zum Leiterplatenlayout
nict nur Gedanken zu macen, sondern
auc bestimmte Rictlinien umzusetzen.
Es konnte allerdings aufgrund der Kom-
plexitt dieses Themas nict alles gesagt
werden, es sollte aber ausreicen, um ein
Gefhl fr dieses Thema zu bekommen.
Neben den genannten Links im ersten
Teil mcte ic auf das Buc Leiterplat-
tendesign von Jrgen Hndscke ver-
weisen, welces sic mit weiteren The-
men, u.a. mit EMV, Bestcung und Test
rund um das Design bescfigt. Es ist zu
fnden im Eugen G. Leuze Verlag und hat
die ISBN 3-87480-219-1.
In diesem Sinne: Frohes Layouten!
Am Ende kann ic es mir nict verknei-
fen, eine verkorkste Leiterplate zu zei-
gen, die von einem Unerfahrenen ohne
Vorkenntnisse layoutet wurde. Leider
wurde auc nict nacgefragt, ob man
bestimmte Dinge doc hte anders
macen knnen, und leider trif man
mancmal auc auf beratungsresistente
Menscen... (siehe Abbildung 14)
Folgende Dinge sind zu bemngeln:
Es gibt keine Besfestigungbohrun-
gen, um die Leiterplate zu montie-
ren (war notwendig)
Die Leiterbahen fr die Signalfh-
rung und im Leistungsteil sind zu
scmal
Im Leistungsteil wurden die Leiter-
bahnen mit blankem Kupferdraht
verstrkt (Kurzsclussgefahr)
Sehr of 90 Winkel im Layout
Die Scraubklemmen sind teilweise
nict zu erreicen
Die Elkos liegen direkt neben einem
Khlkorper, der auc warm wird
Das Rasterma fr die Widerstnde
passt nict zum realen Bauteil
Beim Spannungsregler und der Dros-
selspule unten links wurde ein fal-
sces Bauteil ausgesuct
[ PROJECT ] Vom Stromlaufplan zum Leiterplattenlayout
Negativbeispiel eines Layouts
Abb. 14: Verkorkste Leiterplatte - Ein Produkt fr den Elektroschrott
Links / Datenbltter
htp://www.national.com/ds/LM/LMC6042.pdf
Links: Siehe Teil 1, Ausgabe 7
Es gbe noch mehr zu sagen
8
2/2011 JOURNAL - EMBEDDED-PROJECTS.NET
Mit Instrumenten verndert sic die Musik. Tecnisce Erkennt-
nisse fhrten zum Theremin, benannt nac dem russiscen Wis-
senscafler Lev Termen [1] . Es ist eines der ersten elektriscen
Klangerzeuger, entwicelt im 20. Jahrhundert. Im Laufe der da-
rauf folgenden 90 Jahre bis heute entstanden viele elektrisce
und elektronisce Klangerzeuger [2]. Vllig unbekannte Kln-
ge entwicelten sic daraus. Andererseits wurden Instrumente
wie das Klavier, die Orgel, Trommeln oder Streicinstrumente
kopiert. Die Kopie wird kreativ genutzt und gnstiger verkauf
als viele Originale. Laptops und Smartphones (siehe z.B. [3]) ha-
ben Konzertpotential, nict nur ber mp3-Aufnahmen. Es exis-
tiert eine Unzahl von Instrumenten als Plugins. Die virtuellen
Klnge sind heute ebenso vielscictig wie die Meca-
nik, mit der sie erzeugt werden. Tastaturen, Joystics
oder Handys mit Bescleunigungssensoren trig-
gern Klnge. ber die MIDI-Scnitstelle [4] oder
Erweiterungen wie das Open Sound Control
(OSC) [5] kann der Klang unabhngig von
der Mecanik gewhlt werden.
Mit der Taste Play lassen sic
Musikstce starten, ber das
MIDI-Protokoll sogar ganze
Melodien, Rhythmen, einzelne Noten oder Akkorde. Durc das
OSC, welces UDP/IP zum Datenversand nutzt, knnen tec-
nisc zunehmend komplexere Instrumente auc ber das Inter-
net gesteuert werden.
[ PROJECT ] TouchBox
TouchBox
Lautsprecher zum Anfassen
Tobias Gpel <mail@tobiasgoepel.de>
Elektronische Musik
Dieser Artikel bescreibt den Aufau
eines Lautsprecers, der durc Berh-
rung Musik erzeugen kann. Er gibt Kln-
ge wieder und mact sie fr die Hand spr-
bar. Diese ToucBox (Abbildung 1) hnelt dem
Toucscreen, mit dem man Bilder anscauen und per
Hand verndern kann; sie dreht sic im Kreis, klingt im Ohr
und vibriert in der Hand, gibt also akustisce und haptisce Rei-
ze wieder. Bei Haptik handelt es sic um Reize, die man mit Fin-
gern spren kann [7]. Mit der ToucBox knnen Klnge getrig-
gert werden, die diese Reize erzeugen: Je nac dem Winkel, in
den der Motor ber einen Grif vom Musiker gedreht wird, kn-
nen Klnge erzeugt werden. Auc Tonhhe oder Lautstrke kn-
nen ber den Winkel verndert werden. Der Motor kombiniert
z we i
Eigenschaften:
Er simuliert eine Taste
auf einer Tastatur, da er Klnge triggert, wenn er
auf einen bestimmten, festgelegten Winkel gedreht wird. Diese
Position soll Tawie (Tastenwinkel) genannt werden. Wird der
Grif auf den Tawie gedreht, wird der Klang getriggert, und auf
dem Grif gesprt.
TouchBox
Auf der Motorwelle des Prototyps ist ein Scifspropeller ange-
bract. Er wird als Grif in die Hand genommen. Seine Flgel
geben Klnge ber ihre Grofcigkeit an die Luf ab, sobald
der Motor beginnt, zu vibrieren. Es gibt am Grif also einen Teil,
der den Klang hocfrequent an die Luf abgibt, und einen an-
deren, der fest in die Hand genommen werden kann. Wie bei
vielen Musikinstrumenten existieren beide getrennt vonein-
ander, damit die Berhrung hohe Frequenzen aus dem Klang
nict fltert.
Elektromotoren und Lautsprecer sind in ihrer physikaliscen
Modellierung hnlic: Sie wandeln elektrisce in mecanisce
Energie um. Elektromotoren bertragen Krfe an ihre Umge-
bung, wenn sie fest verankert sind. Auc Lautsprecer sind fest
verankert: Sie bringen Luf in Scwingung, ohne sie vollstndig
von sic zu stoen. Die ToucBox vereint beide Eigenscafen in
einem einzigen Motor.
Aufbau
Abb. 1:
Touchbox
9
2/2011 JOURNAL - EMBEDDED-PROJECTS.NET
[ PROJECT ] TouchBox
A
n
z
e
i
g
e
Mit einem Klinkenkabel kann man den Motor von einem Mp3- Player, einem
Smartphone oder einem Laptop aus ansteuern. Das Kabel wird mit einem Ver-
strker verbunden, der den Klang mit weitaus mehr Energie an den Motor
weiterleitet. Da es sic um einen einzelnen Motor handelt, reict ein Mono-
klinkenkabel.
Der Motor ist mit einem Encoder ausgestatet, der dessen Position misst. Die
Positionsdaten werden durc eine Scaltung von Doepfer (CTM64) elektro-
nisc ber MIDI an einen Laptop bermitelt. Die MIDI-Scnitstelle ist im
musikaliscen Bereic Standard fr den Datenaustausc. Jeder moderne, nac
1980 gebaute Klangerzeuger kann ber MIDI dazu angeregt werden, Kln-
ge zu erzeugen. MIDI wird nict genutzt, um Aufnahmen zu macen, da die
Bandbreite des MIDI-Protokolls rect gering ist.
Auf vielen modernen Klaviaturen gibt es ein Rad, mit dem die Tonhhe eines
Klanges verndert werden kann. Dreht man an dem Rad, werden MIDI-Daten
erzeugt. Sie ndern die Tonhhe, Lautstrke und diverse andere Eigenscafen
des Klanges.
Im Falle der ToucBox kann nict nur der Musiker den Klang steuern, indem
er an dem Grif dreht. Auc der Klang selbst bewegt den Motor. Diese Bewe-
gung ndert die Position des Motors und erzeugt Resonanz, einen gesclosse-
nen Kreislauf des Klangs. Resonanz ist eine Scwingung, die sic selbst erhlt.
Die ToucBox ist so programmiert, dass der Motor viebriert, wenn man den
Grif in den Tawie dreht. Bewegt die Scwingung danac den Motor wieder
in den Tawie zurc, erzeugt sie weitere Klnge. Die Resonanz kann bewusst
musikalisc genutzt werden.
Der Anschluss
Fr Musikinstrumente gibt es eine Landscaf von Programmierspracen.
Ihre Mglickeiten sind auf die Erzeugung und Verarbeitung von auditiven
und visuellen Reizen spezialisiert.
Die Open-Source Lsung Pd [8] oder dessen kommerzieller Vater Max/MSP
[9] sind grafsce Programmieroberfcen. Die folgenden Kapitel
bescreiben, wie Max/MSP funktioniert, und wie die grafsce Be-
nutzeroberfce fr die ToucBox aufgebaut ist. Fr Interessierte
der Open-Source Landscaf lsst die Sofware sic relativ scnell
in Pd umsetzen.
Der Code soll folgende Aufgaben erfllen:
1. Die Positionsdaten werden durc den Encoder erzeugt und triggern Klnge
am Tawie.
2. Lautstrke, Tonhhe und viele andere Eigenscafen des Klanges werden
durc die Position des Grifes gesteuert.
3. Das Instrument, das den Klang erzeugt, soll frei whlbar sein
Wie diese Aufgaben umgesetzt werden, wird in den folgenden Abstzen be-
scrieben.
Code
Abbildung 2 ist ein typiscer Auszug aus Max/MSP. Die Daten, die am Motor
abgelesen werden, kommen ber ein MIDI-Eingangsgert, hier den IAC-Dri-
ver, in Max/MSP an. Der Bloc [r midiinfo] erhlt die Namen aller mglicen
MIDI-Engangsgerte und versorgt das Men, das darunter liegt. Man kann
mit dem Men whlen, aus welcem Gert die Daten des Potentiometers kom-
men werden. Dann werden die MIDI-Daten verarbeitet (siehe Abbildung 5):
1. Der Bloc [p motorPosition] liest aus den MIDI-Daten die Position des Mo-
tors aus. Die Positionsdaten werden dort in eine Aufsung von 6 Bit bereitge-
stellt, das heisst, sie knnen Werte von 0 bis 127 annehmen.
2. ber den Bloc [s position] werden die Positionsdaten innerhalb von Max/
MSP berall hingesendet, wo sie gebrauct werden. In Max/MSP bedeutet
MIDI In
10
2/2011 JOURNAL - EMBEDDED-PROJECTS.NET
Abbildung 4 zeigt, wie die Daten an einen Klangerzeuger wei-
tergesendet werden. Wie beim MIDI-In kann auc beim MIDI-
Out der Klangerzeuger, der genutzt werden soll, ber ein Men
ausgewhlt werden. Hier handelt es sic um ein einfaces Inst-
rument, den AU DLS Synth, einem Teil von Max/MSP. Mit ihm
knnen beispielsweise Klavierklnge wiedergegeben werden.
Alle Boxen auf der Programmieroberfce, die mit r beginnen,
also zum Beispiel [r zyx], sind Daten, die von anderswo mit ei-
ner [s zyx] Box hergesendet werden:
1. [r NoteOn] liefert immer dann ein Signal, wenn die Position
des Motors genau in der Mite liegt, also auf dem oben bescrie-
benen Tawie.
2. [r PosCC] gibt die Positionsdaten auf einem typiscen MIDI
Datenkanal, nmlic MIDI ControlChange 1, aus. Dieser Kanal
wird am hufgsten benutzt, um Klnge in elektroniscen Mu-
sikinstrumenten zu beeinfussen. Dadurc kann Vibrato ein-
geleitet werden. Im Falle des Motors wird das Vibrato erzeugt,
wenn der Grif weit nac rects gedreht wird.
3. Mit [r Program] kann das Instrument ausgewhlt werden, das
von dem AU DLS Synth genutzt werden soll.
4. [makenote 100 3000] erzeugt jedesmal eine Note, wenn es
von [r NoteOn] ein Signal gesendet bekommt. Darberhinaus
scict es 3000ms spter ein NoteOf, damit der Ton auc wieder
beendet wird. Beides sendet er weiter an...
5....[noteout], das die Noten im Synthesizer triggert.
6. [midiout] gibt die ControlChange-Daten an den Synthesizer
weiter, um dort beispielsweise Vibrato zu erzeugen.
Auf Abbildung 3 ist eine grafsce Benutzeroberfce zu sehen,
die fr die ToucBox zur Verfgung steht. Auf ihr ist zu sehen,
1. wo der Grif sic gerade befndet,
2. welce Tonhhe fr den Klang eingestellt wurde (Pitc),
3. welcer Klang, zum Beispiel Klavier oder Geige, gespielt wer-
den soll (Program),
4. und welcer MIDI- Eingang und welcer Ausgang benutzt
werden.
Die Benutzeroberfce (siehe Abbildung 3) kann all die Daten
live darstellen, die im Programm vorkommen. Der lilane Dreh-
regler stellt die Position der ToucBox dar. Wenn der Regler nac
oben scaut, triggert er den Klang und die Benutzeroberfce
blitzt auf. Der Klang ist gleiczeitig am Grif hr- und fhlbar.
MIDI Out
Die ToucBox ist eine Chimre [10], also ein Miscwesen, das
untersciedlice Reize in sic vereint.
Akustisce und haptisce Reize fieen ineinander ber. Taube
Menscen spren Klnge, wenn sie sie anfassen knnen- was
mit der ToucBox mglic ist.
Jede Wascmascine soll mglicst unhrbar sein, whrend sie
...ihr Klang
[s xyz] stets, dass die Variable xyz versendet wird. Mit diesem
Bloc lassen sic unbersictlice Verkabelungen auf dem Bild-
scirm vermeiden.
3. Der Bloc [print input] gibt, wenn man das will, auc in einem
Terminal auerhalb von Max/MSP an, welces MIDI-Eingangs-
gert gewhlt wurde.
Abb. 2:
bersicht
der Software
in Max/MSP
[ PROJECT ] TouchBox
11
2/2011 JOURNAL - EMBEDDED-PROJECTS.NET
[1] htp://de.wikipedia.org/wiki/Theremin
[2] htp://www.synthzone.com/
[3] htp://hexler.net/sofware/toucosc
[4] htp://de.wikipedia.org/wiki/Musical_Instrument_
Digital_Interface
[5] htp://de.wikipedia.org/wiki/Open_Sound_Control
[7] htp://de.wikipedia.org/wiki/Haptik
[8] htp://puredata.info/
[9] htp://cycling74.com/
[10] htp://de.wikipedia.org/wiki/
Chimre_(Mythologie)
[ PROJECT ] TouchBox
sic mit groen Gescwindigkeiten bewegt. Im Gegensatz dazu will jeder Rocer, dass
sein Motorrad berall zu hren ist. Motoren sind berall zu hren und Lautsprecer
knnen viel bewegen. Diese Eigenscaf, zwei Reize zu vereinen, sind ein Grundstein
vieler Musikinstrumente bis hin zur mensclicen Stimme, die Menscen ber Atem-
muskulatur spren und steuern knnen. Werden beide Reize genutzt, verdoppeln sic
die Mglickeiten, den Klang wahrzunehmen. Der Bogen, den Streicer in der klassi-
scen Musik nutzen, um den Klang zu beeinfussen, mact ihr Instrument vielseitiger.
In jedem Klavier stect eine komplexe Mecanik, um das Gefhl der Finger fr den
Ansclag der Tasten zu verfeinern.
Die ToucBox realisiert diese Idee elektromecanisc fr virtuelle Instrumente. Da sie
keinen festen Krper hat, ist Ihr Klang nict festgelegt. Nict nur seine Akustik ist frei
programmierbar, auc das Gefhl, das er abgibt, ist es.
Jeder, den die Erweiterung des Instruments, seiner klanglicen oder physikaliscen
Programmierung reizt, ist herzlic dazu eingeladen, es weiter zu eintwiceln oder vor
dem Team ein Konzert zu halten.
Abb. 3: Benut-
zeroberche
der Touchbox
Links / Literatur
Anzeige
Abb. 5: Die MIDI-Daten werden ber
Max/MSP aufgenommen und so
verarbeitet, dass die Position des
Motors ausgelesen werden kann.
Abb. 4: Die Positionsdaten des Motors
werden genutzt, um ber das MIDI-Out
Noten zu triggern und den Klang zu
beeinussen.
12
3/2011 JOURNAL - EMBEDDED-PROJECTS.NET
Status Quo
[ PROJECT ] GNUBLIN Peer-Revier
GNUBLIN Peer-Revier
Fehlersucher und Verbesserungsvorschlge
http://elk.informatik.fh-augsburg.de/hhwiki/Gnublin
Links
[1] htp://elk.informatik.f-augsburg.de/
gnublin-cdrom/eda/Gnublin_2011-06-25/
(PS Dateien)
[2] Installer htp://kicad.sourceforge.net/
wiki/Downloads
[3] htp://elk.informatik.f-augsburg.de/
gnublin-cdrom/eda/
[4] htps://www.rz.f-augsburg.de/sympa/
info/elinuxboard
Abb. 1: KiCAD Projektbersict
Abb. 1: KiCad
In den letzten Ausgaben haben
wir bzw. Hubert Hoegl regelmig
von unserem Open Source Projekt
GNUBLIN berictet. Fr die Ausbildung
soll ein kleines gnstiges Open-Source
Board fr embedded GNU/Linux enste-
hen.
Mitlerweile sind wir soweit, dass
der Scaltplan und das Layout
fr die erste Version steht.
An dieser Stelle wollen
wir den Scaltplan und das Layout gerne
zur Verfgung stellen, um es von ande-
ren Leuten prfen lassen:
Wir freuen uns ber jeden, der Lust hat
den Scaltplan bzw. das Layout zu prfen
und Fehler zu sucen bzw. ein-
face Verbesserungsvorscl-
ge zu bringen, so dass wir
vielleict im ersten aufgebauten
Musterso wenig wie mglic an
nderungen bentigen. Geprf
werden kann entweder in den PDF Da-
teien [1], die es als Download gibt. Besser
ist es natrlic wenn man direkt mit
KiCAD den Scaltplan und das Layout
prf.
Installation Ubuntu:
sudo apt-get install kicad
Installation Windows:
Es gibt einen Installer fr Windows un-
ter [2].
Ist KiCad installiert ldt man sic
das Downloadpaket [3] herun-
ter, entpact es auf dem lokalem
Computer und fnet mit KiCAD
die Projektdatei Gnublin.pro. Es
fnent sic die Projektbersict
von KiCAD (siehe Abbildung 1).
Die Datei Gnublin.brd ist die Pla-
tine. Mit Doppelklic auf Gnublin.
sc fnet man den Scaltplan.
Bei mir kam eine Fehlermeldung,
welce ic aber erstmal weggeklict hate.
Der Scaltplan besteht aus meh-
rern Seiten. Leider ist die Naviga-
tion etwas komplizierter. Rects
oben gibt es in der recten Leiste
das zweite Icon Navigation in der
Scaltplanhieracie: Das muss ak-
tiviert werden. Jetzt kann man
auf der ersten Scaltplanseite
rects unten die Sheets (blauer Rah-
men) auf einen Unterplan klicen. Will
man aus einem Unterplan wieder zu-
rc auf die Hauptseite zurc, einfac
nocmals sicerstellen, dass rects das
Icon noc aktiv ist und dann auerhalb des
Scaltplans auf die Arbeitsfce klicen.
Im Layout bzw. Board (Gnublin.brd)
kann man rects die einzelnen Lay-
er ein- und ausblenden. Mit der Maus
kann in die Scaltung gezoomt werden
bzw. wieder die Standardansict erzeugt
werden.
Gerne prfe ic die Layouts noc mit
einem Gerberviewer. Hier sieht man
komisce Muster, falsce Leitun-
gen, etc. die of auf Fehler hindeuten.
In KiCAD kann man die Gerber Da-
ten ber Datei Ploten erzeugen. ber
die Oberfce kann man sic die ge-
wnscten Layer auswhlen und als
Ausgabeformat Gerber einstellen.
Anscliessend fnet man diese Dateien
mit dem Programm gerbv. Unter Ubun-
tu kann man dies wieder einfac mit
sudo apt-get install gerbv installieren.
Hat man die Daten in einen eigenen
Ordner exporiert, kann man direkt
von der Kommandozeile aus
alle Dateien wie folgt fnen:
gerbv *
Wir freuen uns ber Eure Rcmel-
dungen. Am besten scict Ihr die
Daten an die Mailingliste [4]. Sollte
dem einen oder anderen dies zu aufwn-
dig sein, reict auc eine einface E-Mail
an sauter@embedded-projects.net bzw.
hubert.hoegl@f-augsburg.de.
Vielen Dank fr eure Mithilfe.
13
3/2011 JOURNAL - EMBEDDED-PROJECTS.NET
[ PROJECT ] Touchpad - do it yourself
[ PROJECT ] Hinter den Kulissen
Hinter den Kulissen
USB Netzwerkkarte von Innen
Benedikt Sauter <sauter@embedded-projects.net>
Hinter den Kulissen soll einen Einblic Produkte aus dem Laden geben. Wie sind
die Scaltungen aufgebaut, welce Bausteine sind integriert, wie sind mecanisce
Einbauten bzw. Gehusekonstruktionen gelst? Diese Artikel entstehen immer paral-
lel whrend dem systematiscen Zerlegen. Erstes
Opfer fr diese Artikelreihe ist ein etwas ins
Alter gekommene USB zu Netzwerkadapter von
der Telekom.
Erster Funktionstest
Meine erste Vermutung, dass sic unter
den kleinen Gummifsscen Scrauben
befnden, hat sic leider nict bewahrhei-
tet. Dann Hilf wohl nur die Scrauben-
zieher-Methode (Abbildung 2). Nac dem
Drcen auf die entsprecenden Plastik-
nasen fel das Gehuse auseinander und
die Platine war relativ scnell befreit.
Knackt das Gehuse
Als erstes fllt auf, dass der Adapter im Wesentlicen aus ei-
nem groen TQFP Chip besteht, welcer mit dem USB- und
Netzwerkstecer verbunden ist. Was mir auerdem gleic auf-
fel, auf der Rcseite der Platine ist ein Platzhalter fr einen
weiteren TQFP Chip, welcer gar nict bestct ist. Es knnte
fr die sogenannte Second-Source vorgesehen sein. In kom-
merziellen Scaltungen wird of fr wictige Bauteile eine
zweite Alternative defniert und mit in die Scaltung integ-
riert. Kann ein Chiphersteller einmal nict liefern kommt es
beim Produkthersteller nict zu Lieferengpssen, er kann ein-
fac auf die Alternative umscwenken. Was sic aber dahinter
bei dem USB-Netzwerkadapter verbirgt lictet sic eventuell
noc spter.
Im Wesentlicen sieht die Scaltung wir in Abbildung 4 dar-
gestellt aus.
Der ADM8511 von ADMtek ist die Basis der Scaltung. Mitels
Internet fndet man das Datenblat sehr scnell. Im Datenblat
steht: Pegasus IIP USB/Fast Ethernet with MII Inter-
face (siehe Abbildung 6).
Exkurs: Hier ein Auszug aus Wikipedia + Abbildung
(auc zu fnden im Bereic Links):
Der Ausdruc Media Independent Interface (MII) wurde bei Fas-
tEthernet fr Netzwerkkomponenten eingefhrt. Er teilt Fast-Ether-
net-Chipstze in zwei Komponenten auf: Das Media Dependent Inter-
face (MDI) und das MII. Die Scnitstelle zwiscen MII zu MDI ist
eine Teilkomponente des Ethernet-Chipsatzes und bei allen Herstellern
und allen Medien (Kabel, Fiber) identisc. Das MDI hingegen ist der
Teil des Chipsatzes der spezifsc fr das jeweilige Medium (Kabel, Fi-
ber) (Transceiver) ausgelegt werden muss. Er beinhaltet auc die physi-
kalisce (elektrisce, optisce) und mecanisce Scnitstelle zwiscen
dem Physical Medium Atacment (PMA) und dem Medium (Kabel).
Bei klassiscem 10-Mbit-Ethernet nannte man die Scnitstelle zwi-
scen MII und MDI auc AUI-Scnitstelle, der Transceiver ent-
sprict dem MDI, der Rest der Karte beginnt mit dem MII und endet
am jeweiligen Systembus (PCI, EISA usw.).
Der Controller ist also dafr gemact, genau solce Adapter
zu bauen. Primrer Fokus der Hersteller ist bei solcen Chips
immer, dass die BOM (Bill of Material oder zu deutsc Stc-
liste) sehr gering ausfllt. Jeder zustzlice Baustein kostet bei
Aufagen > 1.000.000 Stc rictig Geld. Kurz mal ins Datenblat
gescaut ob ic etwas spannendes entdece:
Die Schaltung
Abb. 1: USB Netzwerkadapter
Abb. 2: Gehuse ffnen
Abb. 3: Teledata von Unten
Mit einem USB-Kabel an einen GNU/Li-
nux PC verrt sic der Chip mitels dem
Aufruf des Befehls lsusb als D-Link Gert.
Auf dem Gehuse steht genau: Teledata
Fast Ethernet USB (siehe Abbildung 3).
sauter@meinpc:~$ lsusb
Bus 006 Device 002: ID 2001:400b D-Link
Corp. 10/100 Ethernet
14
3/2011 JOURNAL - EMBEDDED-PROJECTS.NET
breite nictfctige Register fr die eige-
nen Daten an.
Eine Sace fllt mir noc ein. Wie ist es
gelst, dass die Netzwerkkarte eine ein-
deutige MAC-Adresse besitzt? Ein Blic
ins Datenblat:
Diese wird wohl auc im EEPROM ab-
gelegt. Beim Lesen des Datenblats habe
ic gesehen, dass das EEPROM ber ein
vom Hersteller mitgeliefertes Programm
programmiert werden kann. Die Pro-
grammierroutinen sind im ADM8511
integriert. Es gibt eine sogenannte Sys-
tem Register Table in der mit Ofsets an-
gegeben Register bescrieben sind, auf
die man lesend und screibend zugrei-
fen kann. Im Anhang 4 des Datenblats
ist bescrieben, wie man mit Vendor-
Requests ber die USB-Scnitstelle auf
diese Register zugreifen kann. Dem ei-
nen oder anderen werden bestimmt auc
einige Ideen soeben kommen, was man
da alles scnes macen knnte :-). Aber
jetzt sei das mal genug zu den Baustei-
nen.
[ PROJECT ] Hinter den Kulissen
Platinenlayout
Ingesamt kamen beim Layout (siehe Abbildung 5) wohl
drei Netzklassen zum Einsatz. Eine Netzklasse be-
screibt in einem Platinenlayout-Programm primr die
Leiterbahnstrke. Fr Stromfhrende Leitungen werden
in der Regel bereitere Bahnen als fr einface Steuerlei-
tungen bentigt. Fr die Berecnung der Breite der Lei-
terbahn gibt es viele kostenfreie Recner im Internet (ab-
hngig von Strom und Kupferdice auf der Platine).
Scn sind die bergnge an den Ltdurckontakierun-
gen beim Netzwerkstecer. Hier sieht man wie es mit ei-
nem Tropfen vom Pad zur Leitung geht. Dadurc hat
man eine maximale bergangsfce und die Chance,
dass die Leiterbahn vom Pad durc das Lten getrennt
wird, wird so minimal. Die Massefce verbindet sic zu
Durckontaktierungen mit Thermal-Pads. Das sieht man
am typiscen Muster.
Dazu gibt es wieder einen kurzen Auszug aus Wikipedia
(siehe Abbildung 7):
Abb. 4: Blockdiagram
Abb. 5: Die Platine
48 MHz
Quarz
ATMEL 93C46
3V3 Regler
USB Buchse I2 25 MHz Quarz
Netzwerk-
Buchse I2
ADM tek
Pegasus II
ADM 8511
U2
Der integrierte USB-Controller bietet 4
Endpunkte fr die Kommunikation und
untersttzt die Standby-Funktion von
USB vollstndig. Warum dies explizit
erwhnt ist? Eventuell war das damals
nict Standard. Wenn das USB-Gert
von keinem Treiber aktiv verwendet
wird, kann es der USB-Host sclafen le-
gen und so den Stromverbrauc extrem
reduzieren. ber eine Signalierung per
USB kann das Gert wieder gewect wer-
den. Intern befnden sic an den Kom-
munikationsscnitstellen - egal ob USB
oder Netzwerk - FIFOs fr eine efekti-
ve Abarbeitung der Transfers. Fr USB
sind diese 24K, 64 Byte oder 2K gro. Fr
das Netzwerk wird mit 24K ein Pufer
fr den fssigen Datenstrom bereitge-
stellt. Jetzt knnte man kurz berlegen:
wie scnell muss die Logik im Kern des
Chips sein, um 100 MBbit/Sekunde ohne
Stau abzuwiceln? 100 MBit/s sind 12.5
MByte/s d.h. pro Byte: 12.5 MByte/s sind
131072 Byte pro Sekunde. Das sind dann
76.29 nS pro Byte. Bei 24K knnen so 1,875
mS gepufert werden. So scnell muss
die interne Logik gar nict mal sein. Ein
AVR 8 Bit Prozessor kann z.B. bei 16 MHz
Befehle mit 62.5 nS ausfhren. Es gibt
natrlic auc Befehle, die mehr als ein
Takt braucen. Aber mit einem Prozessor
der etwas ber dieser Liga liegt (Ric-
tung ARM7 oder UC3 von Atmel) knnte
man bereits den Datenstrom verkrafen.
Soviel aber genug zu dem Controller.
Auf der Scaltung gibt es noc ein EE-
PROM von ATMEL 93C64. Dies ist ein
serielles EEPROM. Hier kann man eine
eigene USB-Hersteller- und -Produkt-ID
hinterlegen, so dass sic das Gert beim
Anstecen an den Computer als das von
der Firma, die als Hersteller auf der
Verpacung steht ausgeben kann. Der
Baustein in der Scaltung bietet 64 16 Bit
15
3/2011 JOURNAL - EMBEDDED-PROJECTS.NET
[ PROJECT ] Hinter den Kulissen
Zusammenfassung
Im Wesentlicen bin ic mit dem Ergeb-
nis dieser Recerce zufrieden. Es konn-
te einiges an Wissen aufgefrisct werden.
Was noc ofen geblieben ist, ist der Be-
stcungsplatz fr das IC auf der Rc-
seite. Das soll wohl das Geheimnis des
Herstellers der Platine bleiben?
Als Thermal Pad oder Wrmefalle bezeic-
net man auf Leiterplaten solce Ltcen
von elektroniscen Bauteilen, die nict voll-
cig, sondern nur mit dnnen Stegen an
grere Kupfercen angesclossen werden.
Die Verkleinerung des Querscnits verhin-
dert, dass bei punktuellen Erwrmung wie
bei Handltungen, die Wrme ber die an die
Ltcen elektrisc angesclossene Kupfer-
ce, z. B. eine Masselage, abiet und der
Ltprozess dadurc beeintrctigt wird. Bei
grociger Erwrmung der Leiterplate,
beispielsweise bei mascinellen Ltungen wie
dem Reow-Lten wo die komplete Leiter-
plate einheitlic aufgewrmt wird, sind keine
Thermal Pads notwendig, stren aber im Re-
gelfall nict. Bei gesteigerten Anforderungen
an geringe Wrmebergangswiderstnde im
Bereic der Leistungselektronik, wo unter
anderem auc ber die Ltstellen in
die metalliscen Flcen Verlust-
wrme abgefhrt wird, sind Thermal
Pads hinderlic. Weitere Beispiele
wo Wrmefallen strend wirken sind
thermisc optimierte Leiterplaten
mit einem Kern aus Aluminium, wie
sie beispielsweise als Trger bei LED-
Sceinwerfern eingesetzt werden.
Die Platine ist mindestens eine
vier Lagen Platine. Das sieht man
daran, dass mance Durckon-
taktierungen auf den Auenlagen
keine weiterfhrende Leiterbah-
nen haben. Diese sind dann wohl
in Innenlagen verlegt. Wenn man
mit dem Mikroskop von der Seite auf die
Platine sieht, kann man die Lagenzahl
genau naczhlen. Unter Hocdruc
und viel Hitze werden die Platinen in
der Herstellung zusammengepresst. Die
einzelnen Lagen kann man noc erken-
nen. Was noc ein unsceinbares Detail
ist: die kleinen goldenen Punkte in den
Ecen der Platine (zwei auf der obersten
Lage und einer auf der untersten Lage).
Das sind Fiducial bzw. auf deutsc Pas-
sermaken. Diese helfen dem automati-
scen SMD-Bestcungsautomaten die
Postion der Platine genau auszumessen.
Dadurc knnen sehr genau die Bautei-
le platziert werden. Wesentlic genauer,
als wenn die Platinenkante als Basis ver-
wendet werden wrde.
Noc zu sehen ist auf der Platine, dass
sic unter der einen Hlfe der Netzwerk-
bucse und ebenfalls der einen Hlfe des
bertragers in Rictung Netzwerkbuc-
se keine Massefce oben unten bzw. in
Zwiscenlagen befndet. Dies sieht man,
wenn die Platinen gegen eine Lictquelle
gehalten wird. So fngt sic die Scal-
tung an den kritiscen Leitungen keine
Strungen durc Nacbarleitungen ein.
Der Adapter kann ja eigentlic 100MBit/s
bertragungsraten erreicen. Bei diesen
Gescwindigkeiten beginnen so langsam
die ganzen Trics der HF-Tecnik.
Literatur / Links
Abb. 6: Struktur des ADM8511
[1] htp://de.wikipedia.org/wiki/Media_Independent_Interface
[2] Datenblat ADM8511 (Abbildung 6)
Abb. 7: Auszug aus Wikipedia
16
3/2011 JOURNAL - EMBEDDED-PROJECTS.NET
Die Tecnik ist erstaunlic einfac, es
gibt einen Reed-Scalter [2] fr den
Wasserstand, zwei in Reihe gescaltete
Scliesserkontakte fr Brheinheit und
Verscluss, als Letztes ist noc ein Tem-
peratursensor im Boiler, den ic leider
nict ausbauen konnte (Werte siehe Ab-
bildung 4).
Der Leistungsteil besteht aus einer Pum-
pe [4], die ber einen Triac auf der Steu-
erung gescaltet wird, der Boiler wird
ebenfalls per Triac gescaltet und besitzt
eine Litle-Fuse (10A/216) vor den Heiz-
elementen und einen bertempe-
ratur-Sicerheitsscalter; leider ist
dieser so verbaut, dass ic nict
scauen konnte, wann dieser aus-
lst. Beim Testen hat dieser bei 120
noc nict ausgelst (Abbildung 2).
Das Bedienpanel besteht aus drei
Tastern und zwei LEDs fr die Be-
triebsanzeige (Abbildung 3).
Die Bauteile sind bis auf Boiler und
Steuerung die gleicen wie in dem
ersten Senseo Modell.
[ PROJECT ] Espressomaker
Espressomaker
Leckerer Kaffee
Knut Jacobs
Einleitung
Bedienpanel, Sensoren und Leistungsteil
Als ncstes habe ic eine der Mascinen
zerlegt um einen Prototypen zum Testen
und Programmieren zu haben (siehe Ab-
bildung 8). Beim Aufauen des Prototy-
pen stellte ic fest, dass die Scluce nur
per Kabelbinder gesicert waren, was ei-
gentlic ausreict, allerdings bei 2,6 Bar
Wasserdruc nict wirklic Optimal ist;
als Lsung habe ic mir Lebensmitel-
tauglicen Universalkleber besorgt [1].
Die Ansteuerung luf wie im Original
ber Triacs, am Leistungsteil sowie den
Sensoren und Bedienelementen habe ic
nicts verndert, dieses bleibt wie im
Original. Die alten Funktionen wie das
Reinigungsprogramm, eine/zwei Tas-
sen Funktion bleiben soweit nur selbst
einstellbar ber eine externe Scnitelle,
geplant sind Extramodule fr RS232, BT
und RS485 als Anscluss fr diese ist der
UART vom PIC nac auen gefhrt.
Die Konfguration wird spter ber ein
Interface gemact - hnlic wie bei Rou-
ten - so dass man entweder per Terminal
Programm oder Extrasofware die Ma-
scine einstellen kann; zudem soll damit
die sptere Einbindung in ein Bus-Sys-
tem mglic gemact werden.
Die Platine ist extra so aufgebaut, dass sie
leict naczubauen ist; die meisten 230V
Leitungen sind auf der nac innen zei-
Prototyp und Entwicklung
Abb. 1: Originalsteuerung
Abb. 3: Sensoren / Bedienung
Sensoren Bedienpannel
Abb. 2: Leis-
tungsteil
Durc Zufall hate ic vor einiger Zeit
einige MEDION Padmascinen bekom-
men. Bei ersten Tests stellte ic fest, dass
der Espresso nict so toll ist wie im Ver-
gleic zur Philips Senseo, also bescloss
ic dieses zu ndern, da ic gerade eh
kein Projekt
hate. Bei der
Suce im Netz
fand ic nur eine umgebaute Senseo [1]
also musste doc etwas Eigenes gemact
werden (siehe Abbildung 1).
17
3/2011 JOURNAL - EMBEDDED-PROJECTS.NET
genden Seite (Abbildung 8); der Nieder-
spannungsteil ist auf der TOP Seite der
Platine. Als Spannungsregler kommt ein
XC62FP502PR [5] 5V LDO (kompatibel
zum GV/LV-1117-5) zum Einsatz; bei den
Triacs habe ic extra ein greres Format
mit mehr Pinabstand gewhlt (TO-232/
BTA-26 [6]); zur Ansteuerung kommen
MOC3063M [7] mit Nulldurcgangser-
kennung zum Einsatz.
Um immer einen gleicmigen Espres-
so zu bekommen ist auf der Steuerung
ein Uhrenquartz verbaut. Dieser wird als
Referenz fr das Brhprogramm benutzt
und auerdem fr den Sleepmode des
Controllers.
Das Auswerten des Temperatursensors
erfolgt ber einen Spannungsteiler mit
2x 7,5KOhm.
Zustzlic habe ic darauf geactet, dass
die Platine so dimensioniert ist wie die
alte Steuerung, so dass die Halterungen
und der Khlkrper weiter verwendet
werden knnen. Im eingebauten Zu-
stand soll man nict sehen knnen, dass
die Mascine umgebaut wurde.
Die LEDs auf der Platine dienen zum De-
buggen und werden fr den eigentlicen
Betrieb nict bentigt.
Als C wird ein PIC16F876A [8] verwen-
det, allerdings ist dieser abgekndigt.
Als Ersatz kann ein PIC16F886 verwen-
det werden, der auc Sofwarekompati-
bel ist. Die Programmierung erfolgt ber
ICSP oder Bootlader (siehe Abbildung 5).
[ PROJECT ] Espressomaker
Abb. 5: Layout
Abb. 4: Temperatursensor
Anzeige
18
3/2011 JOURNAL - EMBEDDED-PROJECTS.NET
[ PROJECT ] Touchpad - do it yourself
Damit die Steuerung ber die Erweiterungen
programmierbar ist kommt der Tiny Bootlader
[9] zum Einsatz. Durc seine kleine Gre (100
Programmwrter) ist er dafr am besten geeig-
net. Er befndet sic nac dem Programmieren
am Ende des Flash-Speicers. Am Anfang des
Programms stehen drei Programmwrter fr
die Einsprung-Service-Routine des Bootladers,
das Protokoll ist RS232, somit ist das Flashen
ber RS485, Bluetooth, Datenfunk und andere
UART-fhigen Gerte problemlos mglic; der
Bootlader ist nict Timing-kritisc.
Auf der Platine ist auc der ICD (ICD2 kompati-
bel) vorhanden um den Bootlader oder ein Pro-
gramm einzuspielen, oder um dieses debuggen
zu knnen (Abbildung 7).
Bootlader / ICSP
Software
Abb. 6: Prototyp Abb. 8: Schaltung
Die Sofware ist in ASM mit dem Linux Programm Piklab [10]
gescrieben. Um den Quellcode bersictlic zu halten habe ic
die Routinen in .inc Dateien je nac Funktionen gepact.
Interrupt Service Routine (ISP)
Die ISP Routine wertet die Tasten aus (Interrupt on Change
(PORTB) und bernimmt die Zeitmessung ber den Uhren-
quartz (Timer2/TMR1), um eine genaue Referenz fr das Brh-
programm zu erhalten.
A/D-Wandler und Sensoren
ber den A/D-Wandler (RA0) wird der Temperatursensor aus-
gewertet.
Timer
Der Timer2 (TMR1) wird ber den Uhrenquarz angesteuert, um
eine przise Referenz fr den Wasserdurcfuss zu erhalten.
Abb. 7: Expressomaker V1.0
19
3/2011 JOURNAL - EMBEDDED-PROJECTS.NET
[ PROJECT ] Espressomaker
Der momentane Projektstatus ist Folgender: Die eigent-
lice Mascine ist fertig, die Sofware luf momentan
ohne Timer/Interrupts aber sie mact scon mal Kafee :)
Das externe Interface funktioniert noc nict und ist auc noc
nict aufgebaut. Auf der Projektseite [11] fndet Ihr nac der
Verfentlicung diese Artikels den Quellcode und die Eagle
Dateien.
ToDos
[1] Senseo Steuerung: htp://mosfetkiller.de/?s=kafeecontroller
[2] Meder REED-Sensor: htp://www.meder.com/sensoen_mk04000.html
[3] Lebensmitel Kleber: htp://www.otozeus.de/produkte/data/produktinformation-1541.pdf
[4] Ulka Vibrations Pumpe: htp://www.ulka-ceme.co.uk/Ulka_HF_Models.html
[5] XC62FP330-PR: htp://www.torex-europe.com/products/range/115
[6] BTA-26: htp://www.st.com/stonline/books/pdf/docs/7470.pdf
[7] MOC3063M: htp://www.faircildsemi.com/pf/MO/MOC3063-M.html
[8] PIC16F876A / PIC16F886A: htp://www.microcip.com/wwwproducts/devices.aspx?ddocname=en010239
[9] Tiny Bootloader: htp://www.etc.ugal.ro/cciculita/sofware/picbootloader.htm
[10] Piklab IDE: htp://piklab.sourceforge.net/download.php
[11] Projektseite: htp://www.grautier.com/grautier/

Literatur
Abb. 6: Prototyp Abb. 8: Schaltung
Sleepmode
Beim Ausscalten werden alle Ausgnge auf Ruhezustand ge-
scaltet und der PIC in den Sleepmode gesetzt. ber den
Uhrenquartz wird der Timer2 (TMR1) getaktet, der bei berlauf
scaut, ob der Einscalter bettigt wurde.
20
3/2011 JOURNAL - EMBEDDED-PROJECTS.NET
Eddy DK V2.1 (M4)
Die SystemBase Eddy v2.5 Module sind kleine programmierba-
re Embedded Device Server basierend auf dem Eddy CPU v2.5
Embedded CPU Modul mit einem leistungsfhigen ARM9 Pro-
zessor, dem 32-Bit Atmel AT91SAM9G20 (400MHz). Als Speicer
dient ein 32Mb SDRAM und ein 4MB-8MB Flash Memory. Auf
dem Modul luf ein GNU/Linux Kernel 2.6.21. Zudem verfgen
diese Boards ber zahlreice serielle Hocgescwindigkeits-
scintstellen (RS232, RS422 und RS485 bis 921.6Kb/s), Ethernet
und auc drahtlose Scnitstellen wie
Bluetooth und WIFI knnen nacge-
rstet werden.
[ PROJECT ] Eddy
Evaluation Eddy
embedded GNU/Linux
Rother Christian
Abb. 1:
eNet-sam7X
Eddy CPU
Mit dem Eddy Development Kit v2.1, knnen Entwicler einfac
die versciedenen Eddy v2.1 Module testen und evaluieren. Das
Baseboard ist unter anderem mit Leuctdioden fr die verscie-
denen Betriebszustnde (Power, Ready, GPIO, serielle Tx/Rx
Leitungen) des Boards ausgestatet. Auc ein auf Eclipse auf-
bauendes Sofware Developement Kit, steht zur Verfgung, um
die Eddy v2.1 Boards kundenspezifsc anpassen zu knnen.
Etwas verwirrend war jedoc die Erkenntnis ein Eddy-CPU
v2.5 Modul auf einem Eddy DK V2.1 Developement Kit erhalten
zu haben. Und nict, wie erwartet, ein Eddy CPU-Modul v2.5
auf einem Eddy DK V2.5 oder eben ein Eddy-CPU v2.1 auf ei-
nem Eddy DK v2.1. Dies erklrt sic jedoc damit, dass das Eddy
v2.5 Modul voll kompatibel mit dem v2.1 Developement Kit ist.
Softwarequelle
Erste Anlaufstelle ist die Seite htp://embeddedmodule.com,
dort fndet man Anleitungen, Dokumentationen, Sofware De-
velopement Kits, allerlei Sources und die aktuelle Firmware.
Um sic alle Dateien herunterladen zu knnen, muss man sic
jedoc anmelden. Danac aber steht einem nicts mehr im Wege.
Als kleine Anmerkung sei erwhnt, dass ic vergebens auf eine
Besttigungsmail gewartet habe. Nac ein paar Wocen habe
ic dann einfac versuct mic einzuloggen, was prompt funk-
tionierte.
Beim ansclieen des DK s fel beim ersten Zugrif ber picocom
auf, dass die Baudrate nict wie angegeben auf 9600 sondern auf
115200 eingestellt ist. Der rictige Befehl lautet also:
#picocom /dev/tyUSB0 -b 115200
Danac knnen allerlei Eddy-Mdoul-Informationen abgelesen
werden, wie z.B die derzeitig eingestellte IP. Diese bentigen
wir auc fr unser ncstes Ziel, dem Zugrif ber die Ethernet-
Scnitstelle. Natrlic ist die Default IP auc in dem Eddy DK
Programers Guide notiert, oder man liest sie einfac von dem
LCD Display ab. Wie man es auc mact, als ncsten Scrit
verbinden wir das DK-Board per Ehternet-Kabel mit dem PC.
Dank Auto MDI/MDIX kann dies sowohl per Direkt-Link als
auc ber ein Cross Link LAN-Kabel gescehen.
Bei mir wurde die Verbindung ber einen Router geleitet.
Wie im Eddy User Guide Bescrieben wird die IP-Adresse des
PC auf 192.168.0.222 die Subnet mask auf 255.255.255.0 und der
Default Gateway auf 192.168.0.1 gesetzt. Dies gescieht ber das
grafsce Menue oder ber die Konsole:
#sudo ifconfg eth0 192.168.0.222
#sudo ifconfg eth0 broadcast 255.255.255.0
#sudo route add default gw 192.168.0.1
Nacdem die Verbindung aufgebaut war, konnte ic mic per
telnet auf dem CPU-Module anmelden:
#telnet 192.168.0.223
Die Standard Kennung ist wie im Eddy DK Programmers Guide
notiert; Username: Eddy und Passwort:99999999.
Bald stellte ic jedoc fest, dass der Zugrif auf das Web Inter-
face nict mglic war. Die Eingabe der Adresse 192.168.0.223
in der Browserleiste fhrte leider nict zum erwnscten Inter-
face, sondern nac umleitung auf die Datei /cgi-bin/getagent.
cgi?type=s zur Ausgabe von Programmcode.
Bein Test auf einem Windows Betriebssystem besttigte sic der
Verdact, dass dies am Zusammenspiel mit dem verwendeten
Firefox Browser lag. Das Web Interface funktioniert tadellos auf
dem Internet Explorer.
Eine Konfguration ist aber auc ber telnet ohne Weiteres mg-
lic.
21
3/2011 JOURNAL - EMBEDDED-PROJECTS.NET
[ PROJECT ] Eddy
Dank dem Eddy Programmers Guide ist eine Hallo Welt An-
wendung zu screiben kein Problem. Dazu muss erst einmal die
Entwiclungsumgebung aufgebaut werden:
Schreiben einer Anwendung
Als erstes laden wir uns die aktuelle Entwiclungsumgebung
von htp://embeddedmodule.com herunter. Unter Downloads-
>Eddy V2.5 fndet sic der Eintrag 12 mit Bezeicnung Source
(Bootloader, Linux, Filesystem) Feb. 15.2011 und unter dem
Eintrag 4 fndet sic ToolChain for Linux (ver 2.x) die dahinter
stehenden Dateien knnen nac Registrierung Heruntergeladen
werden. Danac sollte das Arciv flesystem_2.5.1.2_11215.tgz
und lemonide_linux_10a.tar.gz auf unserer Festplate ruhen.
Wir entpacen diese Arcive mit folgender Befehlsfolge:
Developement Enivironment
#sudo tar zxvf ~/Downloads/lemonide_linux_10a.tar.gz -C /
Die ToolChain
#mkdir ~/Developement/Eddy/
#tar zxvf ~/Downloads/flesystem_2.5.1.2_11215.tgz -C ~/Develo-
pement/Eddy/
Das Filesystem
Hallo Welt
Das ging scnell, oder? Auc die Hallo Welt Anwendung ist gleic gescrieben. Wir betreten das Eddy_APPs Verzeicneis mit fol-
gender Befehlskete:
#cd ~/Developement/Eddy/flesystem_2.5.1.2/src/Eddy_APPs/
Hier soll unsere Hallo Welt C Datei entstehen, wir Tippen also folgendes in die Kommandozeile:
#gedit hello_world.c
Die Wahl des Editors ist natrlic Ihnen berlassen ic habe mic wie so of fr den gedit entsceiden. Folgendes wird also in unse-
ren favorisierten Editor getippt:
#include <stdio.h>
int main( void )
{
while (1){
printf(hello world!!!\n);
sleep(1);
}
return 0;
}

Das Makefle im selben Ordner muss auc Angepasst werden. Wir ergnzen unser hello_world bei den Targets und fgen den Ab-
scnit hello_world dem Makefle hinzu.
#gedit Makefle
..
test_udp_client \
testdk hello_world #added
22
3/2011 JOURNAL - EMBEDDED-PROJECTS.NET
Trenz_Ad_69x297.indd 1 8/22/11 10:16:36 AM
A
n
z
e
i
g
e
Abb. 2: Abmessung
CPU-Modul
LIBS = -lrt SB_APIs/SB_APIs.a
all : $(TARGET)
#added
hello_world: hello_world.o
rm -f $@
$(CC) $(CFLAGS) $(LDFLAGS) $(IFLAGS) -o $@ $@.o $(LIBS)
$(STRIP) $@
#/added
Ansclieend knnen wir mit einem make hello_world den Kompiliervorgang an-
werfen.
#make hello_world
Um die crosscompilierte Datei ausfhren zu knnen mssen wir sie zuncst auf das
Modul scieben. Dies erledigt fp nac Eingabe folgender Befehle:
#fp 192.168.0.223
Die Standardkennung ist wieder; Username: Eddy, Passwort: 99999999.
fp> bin
fp>put hello_world
fp>bye
Um unsere Hallo Welt Anwendung nun ausfhren zu lassen, rufen wir wieder telnet
mit der Standardkennung auf:
#telnet 192.168.0.223
Da wir uns nac dem Einloggen bereits im /tmp Verzeicnis befnden, knnen wir
nac Rectevergabe, die Datei ausfhren.
#cmod +x hello_world
# ./hello_world
23
3/2011 JOURNAL - EMBEDDED-PROJECTS.NET
[ PROJECT ] Eddy
Stellenausschreibungen
Auf Jobsuche?
Dann besuchen Sie unseren Online-Stellenmarkt
journal.embedded-projects.net/stellenmarkt
?
Abb. 3: Abmessung
Basisboard
24
3/2011 JOURNAL - EMBEDDED-PROJECTS.NET
Zum bersetzen von C- und C++-Pro-
grammen wird blicerweise auf ein
Buildsystem zurcgegrifen, sei es auf
der Kommandozeile oder im Rahmen ei-
ner integrierten Entwiclungsumgebung
(IDE). Traditionell kommt in der Unix-
Welt make zum Einsatz. Das Entwiceln
portabler Programme erfordert ofmals
eine ganze Reihe von Tests im Vorfeld,
um die Buildumgebung zu erkunden.
Dies kann beispielsweise das Finden von
Bibliothekspfaden sein oder das Feststel-
len der Endianess des Zielsystems. Hier-
fr hat sic in der Unix-Welt das autoconf
-System durcgesetzt, bekannt durc die
allgegenwrtigen confgure-Skripten.
Auc im Embedded-Bereic nimmt die
Komplexitt und Modularisierung der
Sofware immer mehr zu. Die Unterscie-
de zwiscen klassiscer PC-Sofware und
Embedded-Entwiclung verscwimmen:
Zum einen haben viele eingebetete Sys-
teme bereits die Leistungsfhigkeit von
lteren PCs, zum anderen erobert mit Li-
nux ein aus der PC-Welt stammendes Be-
triebssystem den Embedded-Markt und
bringt seine Eigenscafen mit. Nict zu-
letzt soll es mglic sein, ein Programm,
das eigentlic fr ein Gert entwicelt
wird, mglicst umfassend vorher auf
dem PC testen zu knnen.
Wnscenswert ist somit ein Buildsys-
tem, das fr mglicst viele Systeme vor-
handen ist, was ofmals auc Windows
mit einscliet. Die oben erwhnte Kom-
bination aus autoconf, automake und
libtoolzusammenfassend als Autotools
bezeicnet erfllt zwar diese Kriteri-
en, gilt aber als scwer zu erlernen und
sceitert beim Windows-Support, sofern
nict auf Unix-Umgebungen wie Cygwin
oder Mingw zurcgegrifen wird.
CMake kann hier punkten: Durc seine
konsistente Syntax in Form einer pro-
zeduralen Programmiersprace ist es
scnell erlernbar. Nict zuletzt kommt
es den Nutzern von versciedenen IDEs
entgegen indem es deren Projektformate
erstellen kann. Gerade in heterogenen
Projekteams entfllt somit das aufwen-
dige und fehlertrctige Warten von
mehreren Buildbescreibungen in einem
Projektrepository. Untersttzung fr
Crosscompilierung ist beim Embedded-
Einsatz obligatorisc.
Einleitung
CMakeListst.txt
Makefile Visual Studio Dateien
make MS VS
Programm oder Bibliothek
cmake
cmake -G "Unix Makefiles" .. cmake -G "Visual Studio 9 2008" ..
[ PROJECT ] Web-basiertes Messen, Steuern, Regeln mit dem eNet-sam7X
Gebaut
[ PROJECT ] CMake
CMake
Vorstellung des Buildsystems
Bernhard Walle
Beschrieben
Abb. 1: Funkti-
onsweise von
CMake
Die Datei CMakeLists.txt enthlt die
Regeln, aus welcen Quellcodedateien
welce Programme und Bibliotheken
gebaut werden sollen und mit welcen
Flags der Compiler dafr aufgerufen
werden muss. blicerweise gibt es in
einem Projekt mehrere davon, jeweils
in einem Unterverzeicnis. Listing 1
zeigt ein Minimalbeispiel, das aus einem
Hello-World-Programm hello.c ein hello-
Binary erstellt.
Listing 1: Hello, CMake
cmake_minimum_required (VERSION
2.6)
project(hello_cmake C)
add_executable(hello hello.c)
Die Syntax der Sprace ist eigentlic
selbsterklrend. Anders als C und die
meisten anderen Programmierspracen,
die im Unix-Umfeld entstanden sind, un-
tersceidet CMake nict zwiscen Gro-
und Kleinscreibung.
Wie bereits angedeutet ruf CMake den
Compiler nict selbst auf sondern gene-
riert aus einer Sammlung von Regeln
die fr ein natives Buildsystem bentig-
ten Bescreibungsdateien. Dies knnen
Makefles fr Unix sein oder Solution-
Dateien fr Microsof Visual Studio. Das
native Buildsystem bernimmt dann die
Kompilation.
Abbildung 1 zeigt die grundlegende
Funktionsweise scematisc. Eine Lis-
te der untersttzten Systeme kann un-
ter [cmakedoc] im Abscnit Generators
nacgesclagen werden.
Um ein Projekt nun zu bauen, reicen fol-
gende Befehle in einer Shell:
% mkdir build
% cd build
% cmake ..
% make
Neben dem Ge-
nerator (hier
standardmig
Un i x- Ma ke -
fles) kann das
Resultat durc
eine Vielzahl von
Variablen beeinfusst
werden. Welce Va-
riablen zur Verfgung
stehen, hngt vom jeweili-
gen Projekt und den einge-
25
3/2011 JOURNAL - EMBEDDED-PROJECTS.NET
bundenen Modulen ab. Um das Setzen
und ndern zu vereinfacen, gibt es
neben dem Kommandozeilentool cmake
auc eine interaktive Variante ccmake
und die Qt-Oberfce cmake-gui.
Whrend CMake sowohl sog. In-Tree-
Builds als auc Out-of-tree-Builds
untersttzt (die Begrife bescrei-
ben, wo die Objektdateien nac dem
Bauen liegen, entweder im gleicen
oder ein einem anderen Verzeic-
nis), empfehlt sic aufgrund der
Anzahl der generierten Dateien
und der einfaceren Handhabung
der im Beispiel gezeigte Out-of-tree-
Build. Das Buildverzeicnis kann
dabei in einem Unterverzeicnis
liegen oder an einer anderen Stelle.
Das Argument im CMake-Aufruf
gibt dabei den absoluten oder rela-
tiven Pfad zum Projektverzeicnis
an.Abbildung 2 zeigt ccmake bei
einem etwas komplexeren Projekt.
Nac dem Start von ccmake startet
man mit c die Konfguration.
Die im Bildscirmfoto dargestell-
ten Variablen werden automatisc
ermitelt, knnen aber nactrglic
angepasst werden.
Mit einem weiteren c besttigt
man die Konfguration und generiert mit
g die Makefles.
Whrend BUILD_GUI und BUILD_
ONLY_CORE projektspezifsc sind,
existiert der CMAKE_BUILD_TYPE
immer wenn Unix-Makefles generiert
werden. Dieser Wert kann auf Debug,
Release, RelWithDebInfo oder Min-
SizeRel gesetzt werden. Abhngig da-
von werden die Kompilate mit oder ohne
Debugginginformationen bzw. Optimie-
rungen erzeugt.
[ PROJECT ] CMake
Konguriert
Abb. 2: Das CMake-Frontend ccmake
Modularisiert
Grere Projekte verwenden selten nur
die Standardbibliothek. Da sic die ge-
nauen Compilerfags, die ntig sind, um
externe Bibliotheken zu linken, ofmals
im Detail untersceiden, bietet CMake
(wie Autoconf) Mecanismen an, diese
dynamisc auf dem Zielsystem zu ermit-
teln. Fr eine groe Zahl von Bibliothe-
ken werden bereits fertige Rezepte mit-
geliefert. Dies gilt auc fr Qt, wo neben
den obligatoriscen Include- und Linker-
pfaden auc der Meta-Object-Compiler
rictig aufgerufen werden will oder
bersetzungsdateien generiert werden
mssen. Ein Blic ins Handbuc gibt hier
Auskunf. Heutzutage verwenden viele
Bibliotheken das Programm pkg-confg,
das es besonders einfac mact, die Flags
zu ermiteln. Im System existiert fr jede
Bibliothek eine kurze Bescreibungsda-
tei, welce pkg-confg dann parst und in
einem standardisierten Format ausgibt.
Listing 2 illustriert dies am Beispiel von
SQlite3.
Listing 2: SQLite zu einem Programm
dazulinken
include(FindPkgConfg)
pkg_cec_modules(SQLITE3 REQUI-
RED sqlite3)
if (NOT SQLITE3_FOUND)
message(FATAL_ERROR sqlite3 C/C++
library could not be found)
endif (NOT SQLITE3_FOUND)
include_directories(${SQLITE3_INCLU-
DE_DIRS})
set(EXTRA_LIBS ${EXTRA_LIBS} ${SQ-
LITE3_LIBRARIES})
link_directories(${SQLITE3_LIBRARY_
DIRS})
Die Direktive include bindet ein CMake-
Modul ein, die Funktion pkg_cec_mo-
dules suct nac dem slite3-Modul.
Sclielic fgt include_directories den
gefundenen Includepfad von SQlite3
dem Compiler-Includepfad (-I) hinzu,
analog link_directories fr den Linker-
pfad (-L). Um zu hello_cmake nun SQLi-
te3 dazuzulinken, msste man sclie-
lic die folgende Zeile ergnzen:
target_link_libraries(hello_cmake ${EX-
TRA_LIBS})
Bei greren Projekten wrde das Build-
system mit einer einzigen CMakeLists.txt
scnell unbersictlic. Auerdem ist es
wnscenswert, ein groes Programm
in mehrere kleinere Module in Form von
statiscen Bibliotheken aufzuteilen. Dies
ist besonders vorteilhaf beim berset-
zen von Unitests, da dann die Quellda-
teien nur einmal bersetzt werden.
Ein Beispiel soll dies verdeutlicen:
|-- CMakeLists.txt
|-- md5
| | md5.c
| -- CMakeLists.txt
|-- src
| | main.c
| -- CMakeLists.txt
-- tests
-- CMakeLists.txt
26
3/2011 JOURNAL - EMBEDDED-PROJECTS.NET
[ PROJECT ] CMake
Generiert
Kreuz-Kompiliert
Leider konnte der Artikel die Verwendung und die Vorzge
von CMake nur kurz anreien. Selbstverstndlic kann man
mit wenigen Zeilen Code ein install-Target generieren. Die Er-
weiterung CPac ermglict es, Installationspakete fr Linux
(Tarballs, RPMs, DEBs), Windows (NSIS-Installer) oder Mac OS
(Disk-Images) zu erstellen. Besonders ntzlic ist CTest: Hier-
mit lassen sic (Unit-)Tests einbinden und mit make test ausfh-
ren. Auf Wunsc kann man die Ergebnisse an ein Dashboard
(CDash) senden sic grafsc die damit abgetesteten Codezeilen
anzeigen lassen.
Leider hakt es an einigen Stellen an der Dokumentation. Aller-
dings verbreitet sic CMake in der OpenSource-Welt zuneh-
mend und so gibt es gengend Beispielcode. Wer es ganz genau
wissen mcte, sollte das von den Autoren gescriebene Buc
[MasteringCMake] lesen.
Und weiter?
[1] [cmakedoc] CMake 2.8 Documentation
[2] [cmakecrosscompiling] CMake Cross Compiling
[3] [MasteringCMake] Ken Martin, Bill Hofman: Mastering
CMake
Literatur
Um nun die imaginre Bibliothek
libmd5.a zu bauen, reict das in Listing
3 gezeigte Rezept, welce aus md5.c die
Bibliothek libmd5.a baut. Da der genaue
Name platformspezifsc ist, kmmert
sic CMake automatisc um das Prfx
lib und um die Endung .a.
Listing 3: Hello, CMake.
set(libmd5_SRC md5.c)
add_library(md5 STATIC ${libmd5_SRC})
Im obersten CMakeLists.txt bindet man
das Unterverzeicnis nun mit add_
subdirectory(md5) ein. Und sclielic
teilt man CMake noc mit target_link_li-
braries (analog zum SQLite3-Beispiel)
mit, dass es die md5-Bibliothek dazu-
linken muss. Mcte man nun eigene
Shared-Libraries bauen, so reict es im
Prinzip, das STATIC durc SHARED zu
ersetzen.
Ofmals mcte man die aus dem Ver-
sionsverwaltungssystem Version extra-
hierte Version direkt ins Programm ein-
kompilieren um sie in der Hilfe anzeigen
zu knnen. Am scnsten geht dies ber
eine confg.h-Datei, die aus confg.h.in
erzeugt wird. Letztere ist in Listing 4
dargestellt, Listing 5 zeigt das dafr
notwendige CMake-Rezept, welces im
Wesentlicen das Programm svnversion
aufruf und seine Ausgabe in der Varia-
blen SVNVERSION speicert. Die Vari-
able SVNVERSION_RESULT hingegen
enthlt den (numeriscen) Rcgabewert
des Prozesses.
Listing 4: Die confg.h.in-Datei, die Vorla-
ge fr confg.h
#ifndef CONFIG_H
#defne CONFIG_H
#defne PACKAGE_VERSION @SVN-
VERSION@
#endif /* CONFIG_H */
CMake
5 / 6
Listing 5: CMake-Befehle um aus
confg.h.in die confg.h zu erzeugen exe-
cute_process(COMMAND svnversion
WORKING_DIRECTORY ${PROJECT_
SOURCE_DIR}
RESULT_VARIABLE SVNVERSION_RE-
SULT
OUTPUT_VARIABLE SVNVERSION
OUTPUT_STRIP_TRAILING_WHITE-
SPACE)
confgure_fle(
${PROJECT_SOURCE_DIR}/confg.h.in
${PROJECT_BINARY_DIR}/confg.h)
Um CMake nun in einer Cross-Buildum-
gebung fr Embedded-Linux-Projekte
zu nutzen, sind (bei einfacen CMake-
Projekten) nur wenige Handgrife erfor-
derlic. Kurz gesagt konfguriert man
CMake, einen anderen Compiler zu nut-
zen und nac Bibliotheken in einem an-
deren Sysroot zu sucen. Auc Projekte,
die ber pkg-confg gefunden werden
wollen, kommen problemlos damit klar.
Diese Einstellungen legt man in einer
Toolcain-Datei ab, wie in Listing 6 ge-
zeigt.
Listing 6: Toolcain-File
SET(CMAKE_SYSTEM_NAME Linux)
SET(CMAKE_SYSTEM_VERSION 1)
# specify the cross compiler
SET(CMAKE_C_COMPILER arm-v5te-
linux-gnueabi-gcc)
SET(CMAKE_CXX_COMPILER arm-
v5te-linux-gnueabi-g++)
SET(CMAKE_FIND_ROOT_PATH /
home/bwalle/projects/docstar-staging)
SET(CMAKE_FI ND_ROOT_PATH_
MODE_PROGRAM NEVER)
SET(CMAKE_FI ND_ROOT_PATH_
MODE_LIBRARY ONLY)
SET(CMAKE_FI ND_ROOT_PATH_
MODE_INCLUDE ONLY)
Nun weist man CMake beim Generieren
der Makefles an, diese Toolcain-Datei
zu nutzen:
% cmake -DCMAKE_TOOLCHAIN_
FILE=path/to/toolcainfle.cmake ..
Einige Embedded-Linux-Buildsysteme
wie ptxdist (htp://www.ptxdist.org) un-
tersttzen den Prozess, indem die not-
wendige Toolcain-Datei automatisc
aus den Projekteinstellungen erstellt
wird. [cmakecrosscompiling] bietet wei-
tergehende Informationen zum Thema
Crosscompiler und CMake.
27
3/2011 JOURNAL - EMBEDDED-PROJECTS.NET
Integrierte 3V3 Pegelwandler (per Scalter whlbar 3,3V oder 5,0V Target)
Extra integrierter USB-RS232 Scnitstelle (vollstndige PC-Belegung)
Passendes Gehuse
Ansclussbelegung
AVR-Programmierung (6 polig, 10 polig),
ARM-Debugging (20 polige)
RS232 (inkl. RTS, DTC, )
8 optionale IO- oder AD-Kanle (PORT A des integrierten ATMega32)
Features siehe auc Abbildung 2
[ PROJECT ] USBprog 4.0
[ PROJECT ] USBprog 4.0
USBprog 4.0
Der Open Source Programmer
Benedikt Sauter
Die Vorgeschichte
Das Projekt USBprog startete zum ersten Mal 2007. Ein kleiner
universeller Programmer, welcer es mit Hilfe eines PC-Pro-
gramms und einem Online Arciv einfac ermglict AVR-,
ARM-, CPLD-, etc. -Programmer zu erstellen. Dank des Open-
Source Konzepts von der Hardware bis hin zur Sofware wur-
den in der Zwiscenzeit viele ermutigt mitzumacen und es
sind einige Anwendungen fr den USBprog entstanden. Nac
knapp vier Jahren wurde jetzt eine neue Version USBprog 4.0
(Abbildung 1) mit den Erfahrungen der letzten Jahre entwicelt.
Die neuen Features
Abb. 1: USBprog
Bootloader- und
Pegelwandler-
schalter
Der neue USBprog 4.0 mit integriertem USB RS232 und Pegelwandler fr 3,3V
Abb. 2: bersicht
USBprog 4.0
USBprog 4.0*
Mini-USB
USB-RS232**
Mini-USB
RS232 per SUB-D9***
RS232 als TTL-Pegel
AVR ISP 6-polig
AVR ISP 10-polig
ARM JTAG
ARM JTAG
UART
8x IO/AD
Bootloader per Schalterstellung
starten
Schalter zum Wechsel zwischen
3,3V- und 5V-Betrieb
* USB-Schnittstelle des USBprog 4.0
** USB-Schnittstelle des USB-RS232-Wandlers (erscheint als extra COM bzw. /dev/ttyUSBx Schnittstelle
im Betriebssystem)
*** Vollstndige UART inkl. HW-Handshake etc.
28
3/2011 JOURNAL - EMBEDDED-PROJECTS.NET
Mit dem neuen USBprog ergibt sic eine einfacere Handhabung fr die aktuel-
len Programmerfrmwares. Fr die Programmierung oder das Debugging von
ARM-Prozssoren kann mit der neuen scnellen Firmware: htp://code.google.
com/p/usbprog-jtag/ bequem ohne Kabelwirrwarr (siehe Abbildung 3) ent-
wicelt werden. Der Integrierte Pegelwandler funktioniert hier nattlic
auc.
Die klassisce Anwendung ist der AVR ISP mk2 Klon. Hierfr fnden sic
ein 10-poliger und 6-poliger ISP Stecer auf dem USBprog (siehe Abbildung
4 und 5). In Abbildung 1 sieht man die Scalter. Der recte Scalter ist fr
die Auswahl des Pegels von 5,0 V (nac auen) oder 3,3 V (nac innen). Der
linke Scalter startet auf der inneren Seite den Bootloader (Actung erst
nac dem neu Ab- und Anstecen des USBprogs am Computer). In der
ueren Stellung startet die eigentlice Firmware nac dem Anstecen
automatisc. Der Scalter bescreibt so das Verhalten beim Anstecen
des USBprogs (innen = Bootloader, auen = Firmware).
In Abbildung 7 sieht man ebenfalls eine Neuerung des USBprogs. Mit
dem RS232-Kabeladapter verhlt sic der USB-RS232 Wandler, welcer ber die zwei-
te USB-Bucse mit dem Computer verbunden wird, wie eine alte klassisce COM-Scnitstelle am PC.
Es werden alle Signale der RS232 Scnitstelle untersttzt (Handshake, etc.). Bentigt man keinen Pegel-
wandler sondern mcte direkt eine UART-Scnitstelle von einem Mikrocontroller ab-
greifen, kann man sic direkt auf den 4-poligen UART-Stecer verbinden (siehe
Abbildung 10). Der linke 4-polige Stecer ist der UART-Anscluss vom extra
integrierten USB-RS232 Wandler. Der recte kann als UART ber den USB-
prog verwendet werden, wenn die entsprecende Firmware geladen ist.
Abbildung 11 zeigt noc zu guter Letzt den neuen USBprog 4.0 inkl.
vollstndigen Kabelset.
Kurzbeschreibung
Der USBprog bietet mit einer einfacen fexiblen Hardware
eine Platform fr ein Universalprogrammiergert an. ber ein
Computerprogramm (Windows oder Linux) kann man bequem
aus einem Online-Pool auswhlen fr welcen Mikroprozes-
sor man das Programmiergert bentigt und entsprecend
mit einem Klic die interne Firmware austauscen. Aufgrund
der modernen USB-Hardware und der freien Scaltung sind in
der Zwiscenzeit sehr stabile Lsungen fr die z.B. AVR, ARM,
AVR32, CPLD, etc. Entwiclung entstanden. Weitere Lsungen
sind immer noc am entstehen.
Vorhanden:
AVR ISP Programmer (kompatibel mit AVR-Studio, BAS-
COM, avrdude, etc.)
ARM JTAG Debugger + Programmer (OpenOCD)
AVR32 Retungsbootloder fr NGW100
CPLD Programmer (XSVF Player fr Xilinx)
USB zu UART Scnitstelle (aktuell fest auf 38400 Baud)
Aktuell entsteht:
Logikanalysator (berarbeitung der ersten Version)
JTAG Scnitstelle fr Xilinx ISE Studio (Helfer gesuct)
JTAG ICE 2 fr AVR Studio 4 und 5 anpassen (Helfer gesuct)
USBprog 4.0 im Einsatz
Abb. 4:
USBprog
AVR 10
poliger ISP-
Anschluss
Abb. 5: USBprog
AVR 6 poliger ISP-
Anschluss
Abb.
3: USBprog ARM
JTAG-Anschluss-
sam7X
[ PROJECT ] USBprog 4.0
29
3/2011 JOURNAL - EMBEDDED-PROJECTS.NET
Abb. 6: USBprog Statusleuchtdioden
Die Schaltung
Der Kern der Scaltung ist natrlic gleic geblieben, um vollstndig kompatibel
zu den bestehenden Firmware-Versionen zu sein. Neu hinzu kam der integrier-
te USB-RS232 Wandler. Hier wurde ein CP2102 von Silabs verwendet. Wie man im
Scaltplan sieht, bentigt er kaum extra Bauteile. Zudem ist in dem Baustein ein integ-
rierter 3,3 V Regler verbaut, welcer fr die Pegelwandler-Funktion verwendet wird.
Stat einer Pegelwandlung - wie bisher - wird jetzt die Scaltung entweder mit 5,0V oder
3,3 V betrieben. Ausgewhlt wird dies mit dem o.g. Scalter (Abbildung 1).
Der USBN9604 und ATMega32-A knnen problemlos mit 3,3 V betrieben wer-
den. Fr die ecte COM-Scnitstelle, welce per USBprog angeboten wird, wird
noc ein Treiberbaustein fr die Erzeugung der rictigen Pegel bentigt. Ein
MAX3243 wurde auf Grund seiner geringen Baugre ausgewhlt.
Auf der Platinen benden si jetzt au:
20 poliger JTAG Anscluss fr ARM
10 poliger AVR-ISP Stecer
6 poliger AVR ISP Stecer
4 poliger UART Stecer
10 poliger IBM ATX Standard fr COM-Scnitstelle
und 3 Leuctdioden, die den Zustand des USBprog anzeigen (Abbildung 6)
Live-CD fr USBprog Tools
Installation unter GNU/Linux
Die USBprog-GUI kann man unter Windows direkt mit dem
USBprog Installer installieren:
htp://prdownload.berlios.de/usbprog/USBprog-0.2.0.exe
Es gibt mit dem AVR Studio unter Windows 7 bei 64 Bit leider
ab und an Probleme. Ein neter USBprog Nutzer scicte mir
diese Info zu:
Das Tool dafr nennt sic Zadig: htp://sourceforge.net/apps/media-
wiki/libwdi/index.php?title=Main_Page htp://sourceforge.net/pro-
jects/libwdi/fles/zadig/
Nacdem man den USBProg angesclossen hat startet man das Tool
(bentigt Administrator Recte) und kann auswhlen, welcer Treiber
fr den USBprog (der jetzt in der Liste aufaucen sollte, in meinem
Fall als AVRISP MK2 Clone) installiert werden soll (ic persnlic
habe libusb0 (v.1.2.4.0) verwendet, ic wei nict, ob die anderen bei-
den auc funktionieren). Das geht rect fx und scon luf der USB-
Prog (alles ohne reboot).
Installation unter Windows 7 64 Bit
Abb. 7: Echter USB-
RS232 Wandler
[ PROJECT ] USBprog 4.0
Bernhard Walle hate eine sehr gute Idee. Eine Live-CD fr Windowsbe-
nutzer. Auf der CD ist alles installiert. Um die Firmware auf dem USB-
prog zu tauscen also einfac CD ins Laufwerk, davon booten. In dem
Live-Betriebssystem fndet Ihr dann die USBprog-GUI:
Link: htp://prdownload.berlios.de/usbprog/USBprog.i686-0.3.0.iso (Image-Datei
fr Brennprogramm)
Bernhard hat auerdem ein sehr gutes Handbuc zum USBprog zusammengestellt:
Link: htp://bwalle.de/programme/usbprog/USBprog.pdf
Mitlerweile sind die USBprog Tools seit ein paar Jahren fester Bestandteil von Debian und daher kann man in den meisten Distri-
butionen - die auf Debian basieren - ganz einfac die Tools installieren. Natrlic sind diese ebenfalls fr USBprog 4.0 einsetzbar.
sudo apt-get install usbprog-gui avdrude
30
3/2011 JOURNAL - EMBEDDED-PROJECTS.NET
A
V
R
-
I
S
P

6
P
o
l
i
g
-
U
S
B
P
R
O
G
A
V
R
-
I
S
P

1
0
P
o
l
i
g
-
U
S
B
P
R
O
G
M
I
N
I
U
S
B
-
U
S
B
P
R
O
G
M
I
N
I
U
S
B
-
C
P
2
1
0
2
U
A
R
T
-
2
U
A
R
T
-
2
-
R
S
2
3
2
U
A
R
T
-
1
G
N
D
10K
U
S
B
N
9
6
0
4
G
N
D
15pF 15pF
1M
G
N
D
1
K
5
VCC
1
u
F
G
N
D
10K
VCC
G
N
D
VCC G
N
D
M
E
G
A
3
2
-
A
G
N
D
VCC
G
N
D
VCC
D
N
P
G
N
D
VCC G
N
D
M
I
N
I
-
U
S
B
-
B
D
N
P
M
I
N
I
-
U
S
B
-
B
GREEN
GREEN
RED
G
N
D
1
u
F
G
N
D
1
u
F
2
7
0
G
N
D
G
N
D
G
N
D
G
N
D
G
N
D
24MHz
M
A
X
I
M
_
M
A
X
3
2
4
3
U
I
G
N
D
1
u
F
G
N
D
G
N
D
100nF
10K
10K
1
0
0
1
0
0
1
0
0
1
0
0
1
0
0
1
0
0
1
0
0
1
0
0
270
270
100nF 100nF
100nF
1
0
0
n
F
1
0
0
n
F
1
0
0
n
F
1
0
0
n
F
1
u
F
G
N
D
G
N
D
3
.
3
V
3
.
3
V
VCC
VCC
G
N
D
VCC
G
N
D
G
N
D
C
P
2
1
0
2
1
1
K
R2
/
C
S
1
/
D
A
C
K
6
/
R
D
2
/
R
E
S
E
T
1
6
/
W
R
/
S
K
3
A
0
/
A
L
E
/
S
I
7
A
G
N
D
1
7
C
L
K
O
U
T
2
8
D
+
1
9
D
-
2
0
D
0
/
S
0
8
D
1
9
D
2
1
0
D
3
1
1
D
4
1
2
D
5
1
3
D
6
1
4
D
7
1
5
D
R
Q
5
G
N
D
2
3
G
N
D
2
2
1
I
N
T
R
4
M
O
D
E
0
2
5
M
O
D
E
1
2
4
V
3
.
3
1
8
V
C
C
2
2
X
I
N
2
6
X
O
U
T
2
7
I
C
2
C2 C1
R3
R
4
C
4
R1
(
A
D
C
7
)
P
A
7
3
0
(
A
D
C
6
)
P
A
6
3
1
(
A
D
C
5
)
P
A
5
3
2
(
A
D
C
4
)
P
A
4
3
3
(
A
D
C
3
)
P
A
3
3
4
(
A
D
C
2
)
P
A
2
3
5
(
A
D
C
1
)
P
A
1
3
6
(
A
D
C
0
)
P
A
0
3
7
(
S
C
K
)
P
B
7
3
(
M
I
S
O
)
P
B
6
2
(
M
O
S
I
)
P
B
5
1
(
S
S
)
P
B
4
4
4
(
A
I
N
1
/
O
C
0
)
P
B
3
4
3
(
A
I
N
0
/
I
N
T
2
)
P
B
2
4
2
(
T
1
)
P
B
1
4
1
(
T
0
/
X
C
K
)
P
B
0
4
0
(
T
O
S
C
2
)
P
C
7
2
6
(
T
O
S
C
1
)
P
C
6
2
5
(
T
D
I
)
P
C
5
2
4
(
T
D
O
)
P
C
4
2
3
(
T
M
S
)
P
C
3
2
2
(
T
C
K
)
P
C
2
2
1
P
C
1
(
S
D
A
)
2
0
P
C
0
(
S
C
L
)
1
9
A
G
N
D
2
8
A
V
C
C
2
7
A
R
E
F
2
9
X
T
A
L
1
8
X
T
A
L
2
7
1
8
3
9
R
E
S
E
T
4
(
R
X
D
)
P
D
0
9
(
T
X
D
)
P
D
1
1
0
(
I
N
T
0
)
P
D
2
1
1
(
I
N
T
1
)
P
D
3
1
2
(
O
C
1
B
)
P
D
4
1
3
(
O
C
1
A
)
P
D
5
1
4
(
I
C
P
)
P
D
6
1
5
(
O
C
2
)
P
D
7
1
6
I
C
1
1
7
V
C
C
5
3
8
G
N
D
6
1 2 3 4
J
P
3
V
B
U
S
V
B
U
S
D
+
D
-
D
-
D
+
I
D
I
D
G
N
D
G
N
D
J
1
1 2 3 4 J
P
6
V
B
U
S
V
B
U
S
D
+
D
-
D
-
D
+
I
D
I
D
G
N
D
G
N
D
J
2
LED11
LED1
LED5
C
1
4
C
1
5
R
1
6
Q1
F
O
R
C
E
O
F
F
2
2
I
N
V
A
L
I
D
2
1
C
1
+
2
8
C
1
-
2
4
C
2
+
1
C
2
-
2
F
O
R
C
E
O
N
2
3
R
1
I
N
4
R
1
O
U
T
1
9
R
2
I
N
5
R
2
O
U
T
1
8
R
2
O
U
T
B
2
0
R
3
I
N
6
R
3
O
U
T
1
7
R
4
I
N
7
R
4
O
U
T
1
6
R
5
I
N
8
R
5
O
U
T
1
5
T
1
I
N
1
4
T
1
O
U
T
9
T
2
I
N
1
3
T
2
O
U
T
1
0
T
3
I
N
1
2
T
3
O
U
T
1
1
V
+
2
7
V
-
3
I
C
5
25 26
GND VCC
I
C
5
P
1
1
2
2
3
3
4
4
5
5
6
6
7
7
8
8
9
9
1
0
1
0
1
1
3
3
5
5
7
7
9
9
1
1
1
1
1
3
1
3
1
5
1
5
1
7
1
7
1
9
1
9
2
2
4
4
6
6
8
8
1
0
1
0
1
2
1
2
1
4
1
4
1
6
1
6
1
8
1
8
2
0
2
0
1
1
2
2
3
3
4
4
5
5
6
6
7
7
8
8
9
9
1
0
1
0
1
1
2
2
3
3
4
4
5
5
6
6
7
7
8
8
9
9
1
0
1
0
1
1
3
3
5
5
2
2
4
4
6
6
C
5
C19
R7
R8
R
1
0
R
1
1
R
1
2
R
1
3
R
1
4
R
1
5
R
1
7
R
1
8
R5
R6
C7 C11
C12
C
1
3
C
3
C
9
C
6
C
8
D
1
D2
1
1
2
2
3
3
1
1
2
2
3
3
EXT
VCC
R
E
G
I
N
7
V
D
D
6
G
N
D
3
V
B
U
S
8
D
+
4
D
-
5
R
S
T
9
S
U
S
P
E
N
D
1
2
S
U
S
P
E
N
D
1
1
R
I
2
D
C
D
1
D
T
R
2
8
D
S
R
2
7
T
X
D
2
6
R
X
D
2
5
R
T
S
2
4
C
T
S
2
3
I
C
4 G
N
D
E
X
P
1
JP1
2
RST
P
D
0
T
P
_
V
C
C
R
9
P
D
2
P
D
2
P
D
3
P
D
3
P
D
4
P
D
4
P
D
5
P
D
5
P
D
6
P
D
6
P
C
0
P
C
0
P
C
1
P
C
1
P
C
2
P
C
2
P
C
3
P
C
3
P
C
4
P
C
4
P
C
5
P
C
5
P
C
6
P
C
6
P
C
7
P
C
7
A
V
R
_
P
B
5
A
V
R
_
P
B
5
A
V
R
_
P
B
6
A
V
R
_
P
B
6
A
V
R
_
P
B
7
A
V
R
_
P
B
7
R
E
S
E
T
R
E
S
E
T
P
A
7
P
A
7
P
A
6
P
A
6
P
A
5
P
A
5
P
A
4
P
A
4
P
A
4
P
A
3
P
A
3
P
A
2
P
A
2
P
A
1
P
A
1
P
A
0
P
A
0
A
V
R
_
P
B
4
A
V
R
_
P
B
4
A
V
R
_
P
B
3
A
V
R
_
P
B
3
A
V
R
_
P
B
2
A
V
R
_
P
B
2
A
V
R
_
P
B
1
A
V
R
_
P
B
1
A
V
R
_
P
B
0
A
V
R
_
P
B
0
A
V
R
_
P
B
0
P
D
7
P
D
1
P
D
1
P
D
1
P
D
0
P
D
0
P
D
0
V
B
U
S
_
U
S
B
P
R
O
G
V
B
U
S
_
U
S
B
P
R
O
G
V
B
U
S
_
U
S
B
P
R
O
G
V
B
U
S
_
U
S
B
P
R
O
G
V
B
U
S
_
U
S
B
P
R
O
G
D
-
_
U
S
B
P
R
O
G
D
-
_
U
S
B
P
R
O
G
D
+
_
U
S
B
P
R
O
G
D
+
_
U
S
B
P
R
O
G
D
+
_
U
A
R
T
D
+
_
U
A
R
T
D
-
_
U
A
R
T
D
-
_
U
A
R
T
U
A
R
T
_
D
T
R
U
A
R
T
_
D
T
R
N
$
1
4
U
A
R
T
_
D
C
D
U
A
R
T
_
D
C
D
U
A
R
T
_
R
X
D
U
A
R
T
_
R
X
D
U
A
R
T
_
R
X
D
U
A
R
T
_
D
S
R
U
A
R
T
_
D
S
R
U
A
R
T
_
C
T
S
U
A
R
T
_
C
T
S
U
A
R
T
_
R
I
U
A
R
T
_
R
I
U
A
R
T
_
R
T
S
U
A
R
T
_
R
T
S
U
A
R
T
_
T
X
D
U
A
R
T
_
T
X
D
U
A
R
T
_
T
X
D
F
O
R
C
E
O
F
F
F
O
R
C
E
O
N
T
X
D
_
R
S
2
3
2
T
X
D
_
R
S
2
3
2
R
T
S
_
R
S
2
3
2
R
T
S
_
R
S
2
3
2
D
T
R
_
R
S
2
3
2
D
T
R
_
R
S
2
3
2
D
C
D
_
R
S
2
3
2
D
C
D
_
R
S
2
3
2
R
X
D
_
R
S
2
3
2
R
X
D
_
R
S
2
3
2
D
S
R
_
R
S
2
3
2
D
S
R
_
R
S
2
3
2
C
T
S
_
R
S
2
3
2
C
T
S
_
R
S
2
3
2
R
I
_
R
S
2
3
2
R
I
_
R
S
2
3
2
E
X
T
_
V
C
C
E
X
T
_
V
C
C
E
X
T
_
V
C
C
V
B
U
S
_
C
P
2
1
0
2
V
B
U
S
_
C
P
2
1
0
2
V
B
U
S
_
C
P
2
1
0
2
V
B
U
S
_
U
S
B
P
R
O
G
_
C
P
2
1
0
2
V
B
U
S
_
U
S
B
P
R
O
G
_
C
P
2
1
0
2
V
B
U
S
_
U
S
B
P
R
O
G
_
C
P
2
1
0
2
V
B
U
S
_
U
S
B
P
R
O
G
_
C
P
2
1
0
2
N
C
P
B
5
P
B
5
P
B
4
P
B
4
P
B
0
P
B
0
P
B
0
P
B
7
P
B
6
P
B
1
P
B
1
P
B
2
P
B
2
P
B
3
P
B
3
e
m
b
e
d
d
e
d

p
r
o
j
e
c
t
s

G
m
b
H
G
N
U
/
G
P
L

2
4
.
0
Abb. 8: Schaltplan
31
3/2011 JOURNAL - EMBEDDED-PROJECTS.NET
[ PROJECT ] USBprog 4.0
Die alte Firmware des USBprog fr die AVR
Programmierung verweigert die Zusam-
menarbeit mit dem AVR Studio 5. Mitler-
weile liegt ein Patc vor. Es muss einfac
mit dem USBprog-GUI Tool einmal die
Firmware AVR ISP mk2 Klon neu einge-
spielt werden. Danac klappt der Zugrif
von Windows mit dem AVR Studio 5 ohne
Probleme.
Der Link zu aktuellen Version lautet:
http://svn.berlios.de/svnroot/repos/usb-
prog/trunk/avrispmk2klon/main.bin
Update fr AVR Studio 5
Alle neusten Infos, Download, An-
leitungen, FAQs, etc. ndet man ab
sofort unter:
http://wiki.embedded-projects.net
Alle alten Seiten werden nach und
nach in das Wiki integriert.
Die neue Homepage
Abb. 9: Platinenlayout
Abb. 11: Erweiter-
tes Kabelset fr
USBprog 4.0
Abb. 10: USBprog
4 poliger UART-
Anschluss
32
3/2011 JOURNAL - EMBEDDED-PROJECTS.NET
Die USBprog Familie
Abb. 13: Der klassiche
USBprog 3.0. Alle SMD-Bau-
teile sind vormontiert. Nur die
Durchsteckbauteile mssen
selbst geltet werden.
Abb. 14: USBprog 4.0
Endlich im stabilen Gehuse
Abb. 15: USBprog AVR STK
AVR Evaluationsboard fr
bekannte AVR im DIP Gehuse.
Erscheinung: November 2011
Links
{1} Alle Dokumente zum USBprog: htp://wiki.embedded-projects.net
{2} Online-Shop fr USBprog: htp://shop.embedded-projects.net
[ PROJECT ] USBprog 4.0
Ansprechpartner:
embedded projects GmbH
Holzbachstrae 4
D-86152 Augsburg
Tel. +49(0)821 / 279599-0
Fax: +49(0)821 / 279599-20
Mail: journal@embedded-projects.net
Ausgabe Anzeigenschluss Erscheinungsmonat
04 / 2011 15.11.2011 Dezember
01 / 2012 15.02.2012 Mrz
02 / 2012 15.05.2012 Juni
03 / 2012 15.08.2012 September
04 / 2012 15.11.2012 Dezember
Bestellfax an +49(0)821 / 279599-20
Anzeige verffentlichen in / ab Ausgabe ___ / ____
Anzeige in nchster Ausgabe verffentlichen
Vor- / Nachname:
Anschrift:
Firma:
Tel. / E-Mail:
Anzeigenformate und Preisliste:
Bezeich-
nung
Bezeichnung
Format in mm
Breite x Hhe
Preis*
Erschei-
nung in
A01 1/3 Seite 69 x 297 mm 150 1 Ausgabe
A02
Bundle 69 x 299 mm +
210 x 297 mm
400 1 Ausgabe
A03
Jahressponsor ** 90 x 35 mm 100 4 Ausgaben
A04
Wrfel 90 x 85 mm 100 1 Ausgabe
* Alle Preise zzgl. Ust.
** Im Angebot inbegriffen: 1. Frei Haus Lieferung jeder Ausgabe.
2. Ihre Anzeigen wir zustzlich auf unserer Homepage unter:
http://www.ep-journal.de im Firmenverzeichnis verffentlicht.
embedded projects Journal:
Das embedded projects Journal ist eine Zeit-
schrift, die unter einer Open-Source Lizenz
steht. Alle Artikel und die Zeitschrift knnen so
unter Einhaltung dieser Lizenz weiter verarbeitet
werden. Das besondere an dem Open-Source
Projekt Journal ist, dass die Zeitschrift nicht nur
frei als PDF-Version verfgbar ist, sondern von
den Lesern kostenlos abonniert werden kann.
Druck und Porto werden durch Anzeigen von
Sponsoren nanziert.
Aktuell wird jede Ausgabe ca. 8000 mal online
und ca. 2000 mal als Papierversion gelesen.
69 mm
210 mm
A01: 1/3 Seite
2
9
7
m
m
210 mm
A02: Bundle
69 mm
210 mm
2
9
7
m
m
+
DIN-A4
A03: Jahressponsor
210 mm
2
9
7
m
m
A04: Wrfel
210 mm
2
9
7
m
m
90 mm
90 mm
8
5

m
m
3
5

m
m
A01 A02 A03 A04 A02
A01 A02 A03 A04
Ihre Anzeige im
embedded projects Journal
[ STELLENMAKRT / ANZEIGEN ]

Interesse an einer
Anzeige?
info@embedded-projects.net
ElektronIk / SoftwareentwIcklung
Layout
E|70IenstleIster
8estucker / E|S0IenstleIster
|echatronIk
FIndYourEngIneer
Ist eIn personlIches
Empfehlungsnetzwerk.
FIrmen dIe ElektronIk
Experten suchen,
wenden sIch bItte
dIrekt an:

|arkus Kessler
kontakt@ndyourengIneer.de
#
J
0
4
6

Impressum
embedded - projects.net
JOURNAL
OPEN SOURCE SOFT- AND HARDWARE PROJECTS
embedded projects GmbH
Holzbachstrae 4
D-86152 Augsburg
Telefon: +49(0)821 / 279599-0
Telefax: +49(0)821 / 279599-20
Verffentlichung: 4x / Jahr
Ausgabenformat: PDF / Print
Auagen Print: 2500 Stk.
Einzelverkaufspreis: 1
Layout / Satz: EP
Titelfoto: Claudia Sauter
Alle Artikel in diesem Journal stehen
unter der freien Creativ Commons Li-
zenz. Die Texte drfen, wie bekannt
von Open Source, modiziert und in
die eigene Arbeit mit aufgenommen
werden. Die einzige Bedingung ist,
dass der neue Text ebenfalls wieder
unter der gleichen Lizenz, unter der
dieses Heft steht verffentlicht wer-
den muss und zustzlich auf den
originalen Autor verwiesen werden
muss. Ausgenommen Firmen- und
Eigenwerbung.
Dies ist ein Open Source
Projekt.
Except where otherwise no-
ted, this work is licensed un-
der http://creativecommons.
org/licenses/by/3.0
Werdet aktiv!
Das Moto: Von der Community fr die Community !
Das Magazin ist ein Open Source Projekt.
Falls du Lust hast, Dic an der Zeitscrif durc einen Beitrag
zu beteiligen, wrden wir uns darber sehr freuen. Screibe
deine Idee an:
sauter@embedded-projects.net
Regelmig
Die Zeitscrif wird ber mehrere Kanle verteilt. Der erste
Kanal ist der Download als PDF - Datei. Alle Ausgaben sind
auf der Internetseite [1] verfgbar. Diejenigen, die lieber eine
Papierversion erhalten mcten, knnen den zweiten Kanal
whlen. Man kann sic dort auf einer Internetseite [2] in eine
Liste fr die gesponserten Abos eintragen. Beim Ersceinen ei-
ner neuen Ausgabe wird dank Sponsorengeldern an jeden auf
der Liste eine Ausgabe des aktuellen Journal versendet. Falls
man den Versandtermin verpasst hat, kann man das Hef auc
zum Preis von einem Euro ber einen Online - Shop [2] bezie-
hen.
[1] Internetseite (Anmeldeformular gesponserte Abos): htp://
journal.embedded-projects.net
[2] Online - Shop fr Journal:
htp://www.embedded-projects.net
Sponsoren gesucht!
Damit wir weiterhin diese Zeitscrif fr jeden frei bereitstel-
len knnen, sucen wir dringend Sponsoren fr Werbe- und
Stellenanzeigen. Bei Interesse meldet Euc bite unter folgen-
der Telefonnummer: 0821 / 2795990 oder sendet eine E-Mail an
die oben genannte Adresse.
N
a
m
e

/

F
i
r
m
a
S
t
r
a

e

/

H
a
u
s
n
u
m
m
e
r
P
L
Z

/

O
r
t
E
m
a
i
l

/

T
e
l
e
f
o
n

/

F
a
x
W
i
r

m

c
h
t
e
n

a
l
s

H
o
c
h
s
c
h
u
l
e

/

A
u
s
b
i
l
d
u
n
g
s
-
b
e
t
r
i
e
b

j
e
d
e

w
e
i
t
e
r
e

A
u
s
g
a
b
e

b
e
k
o
m
m
e
n
.
B
i
t
t
e

g
e
w

n
s
c
h
t
e

A
n
z
a
h
l

d
e
r

H
e
f
t
e

p
r
o

A
u
s
g
a
b
e

a
n
k
r
e
u
z
e
n
.
I
c
h

m

c
h
t
e
n

i
m

e
m
b
e
d
d
e
d

p
r
o
j
e
c
t
s

J
o
u
r
n
a
l

w
e
r
b
e
n

o
d
e
r

e
i
n
e

S
t
e
l
l
e
n
a
n
z
e
i
g
e

a
u
f
g
e
b
e
n
.

B
i
t
-
t
e

s
c
h
i
c
k
e
n

S
i
e

m
i
r

I
n
f
o
m
a
t
e
r
i
a
l
,

P
r
e
i
s
l
i
s
t
e

e
t
c
.

z
u
.
I
c
h

m

c
h
t
e

j
e
d
e

z
u
k

n
f
t
i
g
e

A
u
s
g
a
b
e

e
r
h
a
l
t
e
n
B
i
t
t
e

f
r
e
i

m
a
c
h
e
n
e
m
b
e
d
d
e
d

p
r
o
j
e
c
t
s

G
m
b
H
H
o
l
z
b
a
c
h
s
t
r
a

e

4
D

-

8
6
1
5
2

A
u
g
s
b
u
r
g
5
1
0

You might also like