Meß­da­ten­ana­ly­se mit LibreOffice

In der Ent­wick­lungs­pha­se des noch zu beschrei­ben­den Fre­quenz­zäh­lers habe ich eini­ge Meß­rei­hen erstellt. Eine davon war der Fre­quenz­gang eines 8 MHz Quar­zes auf dem CPU-Board, die ande­re der Fre­quenz­gang eines 100 MHz Quarz­os­zil­la­tors auf dem Fre­quenz­zäh­ler selbst. Bei­de Fre­quenz­gän­ge wur­den über die Tem­pe­ra­tur gemes­sen, die mit Käl­te­spray (Butan­gas, nicht Rau­chen, kein offe­nes Feu­er aber offe­ne Fen­ster!) bzw. einem Föhn geän­dert wurde.

In bei­den Fäl­len wur­de die Tem­pe­ra­tur mit dem Tem­pe­ra­tur­sen­sor auf dem CPU-Board gemes­sen, einem TMP275. Zwi­schen ‑40 °C und +125 °C hat er eine Tole­ranz von +/- 1 °C. Die tat­säch­li­che Tem­pe­ra­tur des Quar­zes und beson­ders des Quarz­os­zil­la­tors dürf­ten um eini­ge °C von der gemes­se­nen Tem­pe­ra­tur abwei­chen, weil sie etwas ent­fernt davon mon­tiert sind. Es soll hier aber nicht um die Prä­zi­si­on der Mes­sung gehen, son­dern ein­zig und allein um die Aus­wer­tung mit Libre­of­fice Calc. Der Fre­quenz­zäh­ler spei­chert die Meß­da­ten in einem CSV-File ab, das mit Libre­Of­fice direkt ein­ge­le­sen wer­den kann. Die bei­den Open­Of­fice Calc Datei­en ste­hen als Refe­renz und für eige­ne Expe­ri­men­te zum Down­load bereit:

In der ersten Tabel­le der jewei­li­gen Datei ste­hen die ori­gi­nal Meß­da­ten. Die wei­te­ren Tabel­len sind nach­fol­gend beschrieben.

Aus­wer­tung

Zur Aus­wer­tung emp­fiehlt es sich, zunächst eine Pivot-Tabel­le („Daten->Pivot-Tabelle->Einfügen) zu erstel­len. Als Zei­len­fel­der wählt man die Tem­pe­ra­tur und als Daten­fel­der die gemes­se­ne Fre­quenz Fcheck. Für die Daten­fel­der inter­es­siert uns aber nicht die Sum­me, son­dern der Mit­tel­wert. Das muß vor dem Erzeu­gen der Pivot-Tabel­le ein­ge­stellt wer­den. Nun sucht Calc alle in der Tabel­le vor­kom­men­den Tem­pe­ra­tu­ren, sor­tiert sie auf­stei­gend und ord­net jeder Tem­pe­ra­tur den Mit­tel­wert aller für die­se Tem­pe­ra­tur gefun­de­nen Meß­wer­te zu. So erhal­ten wir eine Tabel­le der gemit­tel­ten Meß­wer­te von etwa ‑30 °C bis +70 °C (Tabel­le: „Pivot-Tabel­le“).

Da wir einen 8 MHz bzw. einen 100 MHz Quarz­os­zil­la­tor gemes­sen haben, lie­gen alle Meß­wer­te ziem­lich nahe bei 8.000.000 Hz oder 100.000.000 Hz. Ohne ver­nünf­ti­ge Ska­lie­rung sieht man da nur eine hori­zon­ta­le Linie über der Tem­pe­ra­tur. Damit die Meß­wer­te sinn­voll dar­ge­stellt wer­den kön­nen, erstellt man in die­sem Fall am besten eine Spal­te mit der Dif­fe­renz der Meß­wer­te zum Nomi­nal­wert, denn alle Wer­te wei­chen nur sehr wenig davon ab. Die­ses Del­ta läßt sich dann gra­fisch über der Tem­pe­ra­tur darstellen.

Die lin­ken Dia­gram­me zei­gen die unver­än­der­ten Ori­gi­nal­da­ten. Man erkennt deut­lich den Tem­pe­ra­tur­gang, aber die vie­len Aus­rei­ßer sind erschreckend. Die Ori­gi­nal­da­ten ent­hal­ten die sehr schnel­le Abkühl­pha­se mit Käl­te­spray und die fast genau­so schnel­le Auf­heiz­pha­se mit dem Föhn. Dar­an schließt sich jeweils eine Pha­se lang­sa­men Auf­hei­zens bzw. lang­sa­men Abküh­lens auf Zim­mer­tem­pe­ra­tur an.

Die rech­ten Dia­gram­me zei­gen nur die lang­sa­men Pha­sen und die Aus­rei­ßer sind hier kom­plett ver­schwun­den (Tabel­len: „Aus­wahl“ und „Pivot-Tabel­le_1“). Die Kur­ven­form bleibt unver­än­dert. Offen­sicht­lich tun in bei­den Fäl­len die schnel­len Tem­pe­ra­tur­än­de­run­gen nicht gut, die Schwin­gung reißt ver­mut­lich kurz­zei­tig ab.

Erzeu­gen einer Ausgleichskurve

Alle wei­te­ren Aus­wer­tun­gen erfol­gen nun mit den bei­den „lang­sa­men Kur­ven“, denn sie spie­geln offen­sicht­lich die wah­ren Ver­hält­nis­se. Das Ziel ist nun, die jewei­li­ge Kur­ve so zu glät­ten, daß die geglät­te­te Kur­ve mög­lichst genau der gemes­se­nen Kur­ve ent­spricht, ohne deren Meß­ab­wei­chun­gen abzu­bil­den. Die Stan­dard­me­tho­de zum Erzeu­gen einer soge­nann­ten Aus­gleichs­kur­ve ist die Aus­gleichs­rech­nung. Für ein mathe­ma­ti­schen Lösungs­ver­fah­ren muß die­ser Aus­gleichs­rech­nung ein Modell zugrun­de lie­gen. Im all­ge­mei­nen Fall ist das ein Poly­nom der Form

y = a0 + a1 * x + a2 * x2 + … + an * xn

In der Pra­xis muß man die­se Rei­he natür­lich früh­zei­tig irgend­wo abbre­chen, denn sonst wird der Rechen­auf­wand immer grö­ßer. Es sei vor­ab ver­ra­ten, daß bei den gezeig­ten Kur­ven min­de­stens ein Poly­nom drit­ten Gra­des nötig ist, also n = 3. Das liegt an den zwei loka­len Mini­ma bzw. Maxi­ma (jeweils grob bei 0 °C und bei 60 °C), bei denen die erste Ablei­tung des Poly­noms null sein muß. Um zwei Null­stel­len zu haben, muß die erste Ablei­tung aber min­de­stens einen qua­dra­ti­schen Term haben.

Pro­bie­ren wir den­noch zum Spaß und zu Übungs­zwecken ein­fach mal eine Gera­de aus, bre­chen also nach n = 1 ab (Tabel­le „Aus­gleichs­ge­ra­de“):

y = a0 + a1 * x

  • Wir tra­gen wenn mög­lich gut erra­te­ne Start­wer­te für die Para­me­ter a0 und a1 in jeweils eine Zel­le der Tabel­le ein (hier C2 und C3). In eine Spal­te (hier: Spal­te E) neben den Meß­wer­ten tra­gen wir dann die For­mel für die Gera­de ein, mit Bezug auf die Para­me­ter ($C$2 und $C$3) und fül­len die­se Spal­te nach unten auf (obe­re Zel­le und alle Zel­len bis zum Ende der Daten aus­wäh­len und Strg‑D drücken).
  • In einer wei­te­ren Spal­te berech­nen wir dann das Qua­drat des Feh­lers, den der so errech­ne­te Punkt zum tat­säch­lich gemes­se­nen Wert hat (hier: Spal­te F). Auch die­se Spal­te fül­len wir nach unten auf und errech­nen in einer wei­te­ren Zel­le (G2) die Sum­me all die­ser Feh­ler­qua­dra­te. Das Ziel ist nun, a0 und a1 (C2 und C3) so zu bestim­men, daß die Sum­me der Feh­ler­qua­dra­te mini­mal wird.

Von Hand ist das aus­ge­spro­chen müh­sam, aber zum Glück bie­tet Calc dafür eine auto­ma­ti­sche Lösung, den „Sol­ver“. Man star­tet Extras->Solver und gibt die Zel­le mit der Sum­me der Feh­ler­qua­dra­te (hier G2) als Ziel­zel­le an. Der Ziel­wert soll mini­mal wer­den und als ver­än­der­li­che Zel­len geben wir C2 und C3 in der Form $C$2:$C$3 an. Der Sol­ver rech­net nun eini­ge Sekun­den, denn er muss die Wer­te in C2 und C3 solan­ge anpas­sen, bis er einen Mini­mal­wert findet.

Wie die bei­den Dia­gram­me zei­gen, fin­det der Sol­ver nach eini­gen Sekun­den einen plau­si­blen Wert. Die oran­ge dar­ge­stell­ten Gera­den nähern die gemes­se­ne Kur­ve best­mög­lich an. Bei nur zwei Varia­blen und den linea­ren Eigen­schaf­ten einer Gera­den kann man auch sicher sein, ein ech­tes Mini­mum gefun­den zu haben.

Aus­gleichs­kur­ve mit Polynomen

Die Aus­gleichs­ge­ra­de aus dem vori­gen Kapi­tel ist bes­ser als nichts, aber sie befrie­digt nicht wirk­lich. Für bes­se­re rech­ne­ri­sche Annä­he­rung an die Meß­kur­ve kommt man nicht umhin, höher­gra­di­ge Poly­no­me zu ver­wen­den. Der Rechen­weg unter­schei­det sich dabei nicht grund­le­gend von dem der Aus­gleichs­ge­ra­den, nur die For­mel wird etwas kom­pli­zier­ter. Wir neh­men ein­fach wei­te­re Ter­me der Form anxn dazu.

Je grö­ßer n wird, je höher also die Ord­nung des Poly­noms wird, umso genau­er kön­nen wir die Meß­kur­ve annä­hern. Pro­bie­ren wir es der Rei­he nach durch, zunächst mit einem Poly­nom zwei­ten Grades:

Aus den oben schon genann­ten Grün­den ver­wun­dert es nicht, daß das die Meß­kur­ve noch nicht trifft. Wie erwar­tet gibt es nur einen loka­len Extrem­wert, ein Mini­mum bei etwa 20 °C. Ver­su­chen wir es nun mit einem Poly­nom drit­ten Grades:

Damit kom­men wir der Form der gemes­se­nen Kur­ve schon sehr nahe. Gleich­zei­tig wird die Sum­me der Feh­ler­qua­dra­te mit stei­gen­dem Grad des Poly­noms immer kleiner.

Um es auf die Spit­ze zu trei­ben, kann man für den 100 MHz Quarz­os­zil­la­tor auch ein Poly­nom vier­ten und fünf­ten Gra­des aus­pro­bie­ren, das wei­te­re klei­ne Ver­bes­se­run­gen bringt:

Tem­pe­ra­tur­kom­pen­sa­ti­on per Software

Das sind net­te Spie­le­rei­en mit einem Spreadsheet-Pro­gramm, aber was bringt das gan­ze nun? Ganz ein­fach, das so gefun­de­ne Poly­nom gestat­tet uns eine soft­ware­ge­steu­er­te Tem­pe­ra­tur­kom­pen­sa­ti­on. Wir kön­nen die mut­maß­li­che tat­säch­li­che Fre­quenz des Oszil­la­tors bei einer bestimm­ten Tem­pe­ra­tur aus sei­ner Nomi­nal­fre­quenz annähern.

Das zeigt die Tabel­le Poly_n5 für bei­de Quarz­os­zil­la­to­ren. In der Spal­te H wur­de die nach der Kom­pen­sa­ti­on ver­blei­ben­de Abwei­chung zur gemes­se­nen Fre­quenz errech­net und in Spal­te I in ppm (parts per mil­li­on) umge­rech­net. Die ver­blei­ben­de Abwei­chung liegt nun außer an den Tem­pe­ra­tur­gren­zen bei weni­ger als 1 ppm. Die unkom­pen­sier­te Abwei­chung ist zum Ver­gleich in Spal­te J dar­ge­stellt und deren Maxi­mum liegt bei knapp 40 ppm bzw. gut 16 ppm, was für einen mit +/- 25 ppm spe­zi­fi­zier­ten Quarz auch schon recht gut ist.

Man beach­te die unter­schied­li­che Ska­lie­rung der y‑Achsen. Von den extre­men Tem­pe­ra­tur­be­rei­chen abge­se­hen, hat die Tem­pe­ra­tur­kom­pen­sa­ti­on die Fre­quenz­sta­bi­li­tät also min­de­stens um den Fak­tor 10 ver­bes­sert. Die deut­li­chen Abwei­chun­gen bei etwa 25 °C lie­gen an der Meß­me­tho­de, denn die Zim­mer­tem­pe­ra­tur war jeweils der End­punkt der Mes­sun­gen. Hier gab es mut­maß­lich Meß­feh­ler durch den abge­setz­ten Tem­pe­ra­tur­sen­sor auf dem CPU Board, der durch die Eigen­erwär­mung eini­ge Grad mehr anzeigt, als beim Quarz wirk­lich herrschen.

Such­stra­te­gien

Bei der hier gezeig­ten Meß­da­ten­ana­ly­se kommt der Calc-Sol­ver schnell an sei­ne Gren­zen. Am Ende steht ein Poly­nom fünf­ter Ord­nung mit sechs unbe­kann­ten Para­me­tern a0 .. a5. Der Sol­ver muß im Prin­zip alle mög­li­chen Para­me­ter-Wer­te durch­pro­bie­ren, die Qua­drat­sum­me bil­den und ver­su­chen, die­se Sum­me zu mini­mie­ren. Ohne halb­wegs pas­send gewähl­te Start­wer­te ist das ein Unter­fan­gen, das auf heu­ti­gen Rech­nern nicht lös­bar ist. Der Such­raum ist unend­lich groß und der Sol­ver muß ihn auf irgend­ei­ne Wei­se ein­schrän­ken. Sei­ne Suche gilt als been­det, wenn die Qua­drat­sum­me bei jeder klei­nen Ände­rung eines Para­me­ters wie­der grö­ßer wird. Dabei besteht aber immer die Gefahr, ein loka­les Mini­mum zu fin­den, das weit weg vom tat­säch­li­chen Mini­mum liegt. Es kann immer sein, daß hin­ter den Ber­gen bei den sie­ben Zwer­gen ein Mini­mum liegt, das tau­send­mal schö­ner als das bis­her gefun­de­ne ist. Man soll­te dem Sol­ver also durch geeig­ne­te Anfangs­wer­te hel­fen. Wie macht man das?

Suk­zes­si­ve Erhö­hung des Polynom-Grades

Die ein­fach­ste Metho­de, die hier auch ange­wen­det wur­de, ist die suk­zes­si­ve Erhö­hung des Poly­nom Gra­des. Man star­tet mit nied­ri­ger Ord­nung und lässt den Sol­ver dazu pas­sen­de Para­me­ter suchen. Geht man schritt­wei­se zu höhe­ren Ord­nun­gen, dann sind die­se Para­me­ter zwar nicht mehr ganz rich­tig, aber auch nicht ganz falsch. Sie sind ein guter Start­wert. Man kann auch zunächst mal nur den besten neu­en Para­me­ter suchen und erst dann eine wei­te­re Suche über alle bis­he­ri­gen Para­me­ter star­ten. So ver­bes­sert sich das Ergeb­nis nach und nach.

Kur­ven­dis­kus­si­on

Eine Kur­ven­dis­kus­si­on kann beim Erra­ten gün­sti­ger Anfangs­wer­te für die Para­me­ter hel­fen. Zur Kur­ven­dis­kus­si­on benö­tigt man die Ablei­tun­gen der Funk­ti­on. Gehen wir zunächst von einem Poly­nom drit­ten Gra­des aus, so erge­ben sich fol­gen­de Ableitungen:

y = a0 + a1 * x + a2 * x2 + a3 * x3

y‘ = a1 + 2 * a2 * x + 3 * a3 * x2

y“ = 2 * a2 + 6 * a3 * x

Aus der ersten Glei­chung erkennt man sofort, daß a0 = y(0) ist, denn wenn x = 0 ist, dann fal­len alle ande­ren Ter­me weg. a0 ist beim 8 MHz Oszil­la­tor also etwa 212 und beim 100 MHz Oszil­la­tor etwa 355.

Die erste Ablei­tung einer Funk­ti­on ist an loka­len Extrem­wer­ten gleich null. Beim 100 MHz Oszil­la­tor fin­den wir ein loka­les Mini­mum etwa bei x=3 und ein loka­les Maxi­mum bei etwa x=60. Mit der ersten Ablei­tung erhal­ten wir dar­aus zwei Gleichungen:

y‘ = a1 + 2 * a2 * 3 + 3 * a3 * 32 = 0

y‘ = a1 + 2 * a2 * 60 + 3 * a3 * 602 = 0

Aus zwei Glei­chun­gen mit drei Unbe­kann­ten kann man durch Mul­ti­pli­ka­ti­on mit einem geeig­ne­ten Fak­tor und anschlie­ßen­der Addi­ti­on bei­der Glei­chun­gen eine Glei­chung mit zwei Unbe­kann­ten machen. Eli­mi­nie­ren wir zunächst a2 durch Mul­ti­pli­ka­ti­on der ersten Glei­chung mit ‑20 und anschlie­ßen­der Addition:

‑20 * (a1 + 2 * a2 * 3 + 3 * a3 * 32) + a1 + 2 * a2 * 60 + 3 * a3 * 602 = 0

ergibt nach Auflösung:

a1 = 540 * a3

Durch Mul­ti­pli­ka­ti­on mit ‑1 und anschlie­ßen­der Addi­ti­on lässt sich alter­na­tiv a1 eliminieren:

a1 + 2 * a2 * 60 + 3 * a3 * 602 – (a1 + 2 * a2 * 3 + 3 * a3 * 32) = 0

und nach Ausmultiplizieren

a2 = ‑94,5 * a3

Damit haben wir eine direk­te Abhän­gig­keit zwi­schen a1 und a3 bzw. a2 und a3 gefun­den. Die­se bei­den For­meln kann man direkt in die Zel­len für a1 und a2 ein­ge­ben und braucht sie dann nicht mehr in die Liste der Unbe­kann­ten für den Sol­ver auf­zu­neh­men. Der Such­raum ist also wei­ter deut­lich eingeschränkt.

Kön­nen wir noch mehr tun? Ja klar, wir ken­nen nun Nähe­rungs­wer­te für a0, a1 und a2 und kön­nen die in die Glei­chung des Poly­noms einsetzen:

y = 355 + 540 * a3 * x – 94,5 * a3 * x2 + a3 * x3

Ohne zu ver­ges­sen, daß alles sowie­so nur Nähe­rungs­wer­te sind, suchen wir aus der Meß­rei­he einen Wert x und den zuge­hö­ri­gen Wert y her­aus. Dabei ver­su­chen wir einen reprä­sen­ta­ti­ven Wert zu fin­den, also Son­der­fäl­le an den Tem­pe­ra­tur­gren­zen und auch die loka­len Extrem­wer­te zu ver­mei­den. Wie wär’s, mehr oder weni­ger will­kür­lich, mit x=40 und y=773? Mit die­sen Wer­ten kön­nen wir nun einen plau­si­blen Start­wert für a3 ausrechnen:

773 = 355 + 540 * a3 * 40 – 94,5 * a3 * 402 + a3 * 403

Aus die­ser Glei­chung ergibt sich a3 = ‑0,006372 und durch Ein­set­zen die­ses Wer­tes in die oben schon gefun­de­nen Glei­chun­gen a1 = ‑3,44088 und a2 = 0,602154.

Damit haben wir dem Sol­ver das Leben leicht­ge­macht. Wir haben plau­si­ble Start­wer­te für alle Para­me­ter des Poly­noms drit­ter Ord­nung. Ohne den Sol­ver auch nur zu bemü­hen, deckt sich die­se Kur­ve schon erstaun­lich gut mit der Meß­kur­ve (links):

Rechts ist noch­mal zum Ver­gleich das oben schon gezeig­te Dia­gramm des mit dem Sol­ver gefun­de­nen Poly­noms der­sel­ben Ord­nung gezeigt. Über gro­ße Tei­le des Dia­gramms ist die Deckung des von Hand gefun­de­nen Poly­noms sogar bes­ser. Aller­dings ist die Sum­me der Feh­ler­qua­dra­te den­noch höher, denn um den Dia­gramm­teil bei hohen Tem­pe­ra­tu­ren kor­rekt zu model­lie­ren feh­len die höher­gra­di­gen Terme.

Ganz am Schluß kann man dann a0 bis a3 noch­mal durch den Sol­ver ver­bes­sern las­sen. Der fin­det dabei tat­säch­lich eine bes­se­re Lösung, als bei der Suche aufs Gera­te­wohl im ersten Ansatz. Die gering­ste Sum­me der Feh­ler­qua­dra­te ergibt sich bei a0 = 339,27, a1 = ‑3,023, a2 = 0,703 und a3 = ‑0,00858.

Mit dem­sel­ben Vor­ge­hen kann man natür­lich auch den Fall des 8 MHz Oszil­la­tors noch­mal durch­spie­len, was aber hier kei­ne neu­en Erkennt­nis­se mehr bringt. Das sei daher dem geneig­ten Leser überlassen.

Gesagt getan…

Wie bereits im vori­gen Bei­trag über nütz­li­che Web­sites in Aus­sicht gestellt, habe ich nun doch ein klei­nes Pro­gramm zum Erstel­len von Timing Dia­gram­men im Text-For­mat geschrie­ben: Draw­Timing­Dia­gram.

Das Pro­gramm öff­net ein Ein­ga­be- und ein Aus­ga­be­fen­ster. In das Ein­ga­be­fen­ster kön­nen Kom­man­dos geschrie­ben wer­den, die beim Klick auf den Start-Knopf in ein Timing-Dia­gramm im Aus­ga­be­fen­ster umge­wan­delt wer­den. Ein klei­nes Bei­spiel zeigt der fol­gen­de Screenshot:

Das so erzeug­te Dia­gramm kann über das Clip­board aus dem Aus­ga­be­fen­ster in eine UTF8-Text­da­tei über­nom­men werden.

Eine kur­ze Beschrei­bung der unter­stütz­ten Ein­ga­be­kom­man­dos mit einem etwas kom­ple­xe­ren Timing Dia­gramm Bei­spiel fin­det sich in der Online-Hil­fe.

Was gibt’s neues?

Lei­der gab es seit ein paar Mona­ten kei­ne Updates mehr in die­sem Blog, das wer­de ich nun nach­ho­len. Im Som­mer war viel an unse­rem Haus zu tun, wir haben das Gar­ten­haus fer­tig­ge­stellt und auch im Haus gab und gibt es noch so eini­ge Bau­stel­len. Meist klei­ne Din­ge, die nicht drin­gend sind, aber doch bela­sten, weil man sie immer vor sich her­schiebt. Zwi­schen­durch hat­te ich immer wie­der etwas Zeit, um eine Lei­ter­plat­te zu desi­gnen oder Soft­ware zu schrei­ben, ohne mir aber die Zeit zu neh­men, die­se Din­ge in die­sem Blog zu beschrei­ben. Hier nun eine kur­ze Zusammenfassung.

ATMEGA644 V1.1

Nach­dem das mit der Fer­ti­gung und Bestückung des Relais­trei­bers in Chi­na so gut funk­tio­niert hat, habe ich auch das ATMEGA644 Board noch­mal auf­ge­legt und zehn Stück davon fer­ti­gen und teil­be­stücken las­sen. Es spart doch eine Men­ge Arbeit, wenn wenig­stens das Vogel­fut­ter schon­mal drauf ist und man nur noch die „makro­sko­pi­schen Bau­tei­le“ von Hand bestücken muß.

Ich habe die Schal­tung mini­mal geän­dert, es wur­den zwei optio­na­le Schott­ky-Dioden vor­ge­se­hen, damit man dem Board ein Bat­te­rie-Back­up spen­die­ren kann und es wur­den zwei zusätz­li­che Stütz­kon­den­sa­to­ren für den Pro­zes­sor hin­zu­ge­fügt. Der hat jetzt an jedem sei­ner drei VCC-Pins einen eige­nen Stütz­kon­den­sa­tor. Kann nichts scha­den, kostet kein Geld (eini­ge mil­li-Cent) und bei 0402-er Bau­form ist auch der Platz­be­darf zu ver­nach­läs­si­gen. Den Trimm­kon­den­sa­tor am Quarz habe ich weg­ge­las­sen, der war sowie­so nur expe­ri­men­tell auf einem ein­zi­gen Board auf­ge­lö­tet. Außer­dem habe ich eine Mög­lich­keit vor­ge­se­hen, den Span­nungs­reg­ler etwas zu küh­len. Es sind zwei Boh­run­gen vor­han­den, in die ein Flach­stecker als Kühl­fah­ne ein­ge­lö­tet wer­den kann. Not­wen­dig ist die­se Küh­lung nicht, aber es hat sich beim Anten­nen­um­schal­ter und beim Tuner gezeigt, daß die Tem­pe­ra­tur der Pla­ti­ne im Betrieb um ein paar Grad ange­ho­ben wird und damit die Tem­pe­ra­tur­mes­sung ver­fälscht wird. Hier nun der Voll­stän­dig­keit hal­ber die 3D-Ansich­ten der neu­en Pla­ti­ne und der Schaltplan.

Zuge­ge­ben, die Kühl­fah­ne sieht etwas gewöh­nungs­be­dürf­tig aus, aber man muß sie ja nicht bestücken. Zudem kann man sie vor dem Ein­lö­ten seit­lich weg­bie­gen oder auch auf der Unter­sei­te bestücken. Sie kann natür­lich auch durch irgend­ein ande­res pas­sen­des Blech ersetzt werden.

Fre­quenz­zäh­ler

Pas­send zum oben beschrie­be­nen CPU-Board habe ich einen Fre­quenz­zäh­ler gebaut. Hier zunächst mal die 3D-Ansichten:

Auf der Ober­sei­te sieht man links das auf­ge­steck­te CPU-Board und dane­ben das Intel (Alte­ra) CPLD, in dem der Zäh­ler und das CPU-Inter­face imple­men­tiert sind. Rechts sind zwei SMA-Buch­sen ange­bracht, über die das zu mes­sen­de Signal und die Refe­renz­fre­quenz ein­ge­speist wer­den. Ganz links sieht man die Buch­se für die Span­nungs­ver­sor­gung und dar­über die Klemm­lei­ste für das RS485-Inter­face. Um das CPLD her­um sind Stift­lei­sten ange­bracht, auf die die nicht ver­wen­de­ten CPLD-Pins geführt sind. Damit ist das Board auch für ande­re Zwecke ver­wend­bar. Die Schal­ter­stel­lun­gen des vier­po­li­gen DIP-Schal­ters kön­nen von der CPU ein­ge­le­sen wer­den und die acht LEDs am obe­ren Rand kön­nen per Soft­ware ein- und aus­ge­schal­tet wer­den. Die bei­den zehn­po­li­gen Stift­lei­sten am obe­ren Rand der Pla­ti­ne die­nen zum Pro­gram­mie­ren der CPU und des CPLDs. Hier ist nun der Schaltplan:

Der Fre­quenz­zäh­ler funk­tio­niert inzwi­schen sehr gut. Die Simu­la­ti­on ergibt eine Grenz­fre­quenz von 120 MHz für die Refe­renz- und die Meß­fre­quenz. Den Zäh­ler wer­de ich spä­ter in vor­aus­sicht­lich meh­re­ren Bei­trä­gen detail­lier­ter beschrei­ben. Dazu gehört dann der in Ver­i­log geschrie­be­ne CPLD-Code, die Soft­ware für das CPU-Board und die Host Soft­ware für einen Win­dows-PC. Außer­dem lohnt es, die Aus­wer­tung einer Meß­rei­he mit Libre­of­fice genau­er anzu­schau­en. Viel­leicht fan­ge ich sogar damit an, auch wenn es die chro­no­lo­gisch fal­sche Rei­hen­fol­ge ist.

Pro­gram­mier- und Debugboard

Wo ich gera­de so schön am Desi­gnen war und sowie­so eine Bestel­lung in Chi­na plan­te, habe ich auch noch ein klei­nes Pro­gram­mier- und Debug­board für das ATME­GA644-CPU-Board ent­wickelt. Es dient dazu, Pro­gram­me auf das CPU-Board zu pro­gram­mie­ren und auch zu testen. Der ATMEGA644 hat meh­re­re Schnitt­stel­len, unter ande­rem die SPI Schnitt­stel­le zum Pro­gram­mie­ren des Flash-Spei­chers und des EEPROMs und die JTAG-Schnitt­stel­le, die dar­über­hin­aus auch zum Debug­gen ver­wen­det wer­den kann.

Auf dem Board sind außer­dem ein paar Taster und LEDs ange­bracht, damit auf ein­fa­che Wei­se ohne Emu­la­tor ein paar Ein- und Aus­ga­be­mög­lich­kei­ten zu haben. Auf die SMA-Buch­se kann der System­takt aus­ge­ge­ben wer­den, um sei­ne Fre­quenz bei­spiels­wei­se mit dem oben gezeig­ten Fre­quenz­zäh­ler bei unter­schied­li­chen Tem­pe­ra­tu­ren zu messen.

Der Schalt­plan zeigt kei­ne Beson­der­hei­ten, die erklä­rungs­be­dürf­tig wären.

Relais­trei­ber, Ver­si­on 1.1

Das hier beschrie­be­ne Relais­trei­ber-Board wur­de im Anten­nen­tu­ner ein­ge­setzt und funk­tio­niert mit klei­nen Ein­schrän­kun­gen sehr gut. Die SMD-Mon­ta­ge der eigent­lich für Loch­mon­ta­ge vor­ge­se­he­nen 100-mil-Sockel ist aber feh­ler­an­fäl­lig. Beim Ein­satz hat sich her­aus­ge­stellt, daß das seit­li­che Abbie­gen der Pins des Sockels zu Kon­takt­feh­lern führt. Ein­rei­hi­ge Sockel für die SMD-Mon­ta­ge scheint es nicht zu geben, zumin­dest habe ich kei­ne gefun­den. Außer­dem wur­de durch einen Design­feh­ler das Sta­tus-Signal des BTS724G Bau­steins auf PB3 gelegt, der aber auf dem ATME­GA644-Board fest mit dem Tem­pe­ra­tur­sen­sor ver­bun­den ist.

Das allei­ne sind eigent­lich kei­ne Grün­de für ein Rede­sign, aber ich woll­te schon seit län­ge­rem den in Chi­na ange­bo­te­nen Ser­vice einer Teil­be­stückung der Lei­ter­plat­te aus­pro­bie­ren. Man kann zwar SMD-Pla­ti­nen sel­ber bestücken und ich habe das auch oft gemacht, aber es gibt Gren­zen. Mein per­sön­li­ches Limit beim Hand-Bestücken sind 0805er Bau­grö­ßen, auch mal das ein oder ande­re 0603er Bau­teil, aber nicht in Men­gen. Außer­dem habe ich für die­se Bau­tei­le immer das Foot­print zum sel­ber Löten, also mit dem Suf­fix „Hand­sold­e­ring“ gewählt, weil es etwas grö­ßer ist, als das regu­lä­re Foot­print. Lässt man die Pla­ti­ne jedoch (Teil-) bestücken, dann kann man das klei­ne­re regu­lä­re Foot­print aus­wäh­len und außer­dem die klein­ste ver­füg­ba­re Bau­form, näm­lich 0402 aus­wäh­len. Das gibt einer­seits einen beacht­li­chen Platz­ge­winn, ande­rer­seits sind die klei­nen Bau­tei­le für Anwen­dun­gen im Hoch­fre­quenz­be­reich weit­aus bes­ser geeig­net, weil ihre Selbst­re­so­nanz­fre­quen­zen deut­lich höher lie­gen, als bei den grö­ße­ren Bau­tei­len. Zu beach­ten ist aber, daß Kon­den­sa­to­ren in die­ser Bau­grö­ße meist nur gerin­ge Betriebs­span­nun­gen ver­tra­gen, man­che nur 6 V oder 10 V und die SMD Dros­seln in der zuläs­si­gen Strom­stär­ke begrenzt sind, weil ihr ohm’scher Wider­stand höher ist, als bei grö­ße­ren Bauformen.

Als Her­stel­ler habe ich mir die Fir­ma JLCPCB aus­ge­sucht, ein­fach weil mehr­fach über deren Ser­vice berich­tet wur­de, zuletzt in einer der jüng­sten Aus­ga­ben des „Funk­ama­teur“. Es gibt ande­re Her­stel­ler, die sicher­lich genau­so­gut sind. JLCPCB hat einen gro­ßen Lager­be­stand an benutz­ba­ren Bau­tei­len, laut Web­site über 40.000 Stück. Vie­le davon kön­nen ohne Auf­preis benutzt wer­den, weil sie stän­dig auf dem Bestückungs­au­to­ma­ten ein­ge­legt sind. Wählt man ande­re Bau­tei­le aus, die soge­nann­ten „exten­ded parts“, dann zahlt man ein­ma­lig pro Auf­trag und pro exten­ded part $ 3,00 oder € 2,40 als Auf­wands­ent­schä­di­gung für den­je­ni­gen, der dann die neue Rol­le aus dem Lager holen und ein­le­gen muß. Dar­über­hin­aus zahlt man natür­lich die Fer­ti­gung der Lei­ter­plat­te, einen gerin­gen Grund­preis für die Bestückung und jedes Bau­teil. Bei den pas­si­ven Bau­tei­len, Wider­stän­den, Kon­den­sa­to­ren und Spu­len sind die Bau­teil­ko­sten ver­nach­läs­sig­bar. Sie wer­den im Bau­tei­le­ka­ta­log ange­zeigt und kosten meist weni­ger als 1 ct, mit­un­ter nur 0,1 ct. Dabei ist 0402 oft die preis­gün­stig­ste Variante.

Unter die­sen Rand­be­din­gun­gen habe ich dann ein Rede­sign des Relais­trei­bers gemacht und bei JLCPCB fer­ti­gen las­sen. Die gerin­ge Bau­teil­grö­ße gestat­te­te viel mehr Dros­seln und ein paar mehr Kon­den­sa­to­ren auf der Lei­ter­plat­te unter­zu­brin­gen, als auf der ersten Ver­si­on. Die Abmes­sun­gen der neu­en Lei­ter­plat­te sind gleich­ge­blie­ben: 30,5 mm x 43,0 mm (1,2″ x 1,7″). Lei­der ist sie den­noch nicht kom­pa­ti­bel, weil ich die Buch­sen­lei­ste nicht mehr als SMD bestücken woll­te, son­dern als durch­kon­tak­tier­tes Bau­teil. Damit muss­te der Abstand der Lei­sten lei­der um 100 mil grö­ßer wer­den. Weil es ohne Auf­preis mög­lich war, habe ich dies­mal blau­en Löt­stopp­lack gewählt. Hier die Kicad 3D-Vorschau:

Und hier der zuge­hö­ri­ge Schalt­plan als PDF.

Das Vogel­fut­ter auf der Unter­sei­te habe ich bis auf die gro­ßen SMD-Bau­tei­le D1, F1 und L1 bestücken las­sen. Zum manu­el­len Bestücken blei­ben also die bei­den Trei­ber auf der Ober­sei­te und die Prüf­pins, die Pin- und Sockel­lei­sten oben und unten und die drei schon erwähn­ten SMD-Bau­tei­le auf der Unter­sei­te. An „guten Tagen“ ist sowas in 20 Minu­ten erledigt.

Was hat das gan­ze nun geko­stet? Genau €28.52 für zehn Lei­ter­plat­ten. Die Kosten beinhal­ten die Fer­ti­gung der dop­pel­sei­ti­gen Lei­ter­plat­ten, die Teil-Bestückung wie oben beschrie­ben, die Bau­tei­le­ko­sten und die Zusatz­ko­sten für ein „exten­ded Part“. Außer­dem beinhal­tet der Preis die Lie­fe­rung nach Deutsch­land in das Ver­teil­zen­trum von JLCPCB, die Ver­zol­lung und den Wei­ter­ver­sand vom Ver­teil­zen­trum zu mir nach Hau­se. Der Gesamt­preis teilt sich übri­gens fol­gen­der­ma­ßen auf: Mer­chan­di­se Total: €17.73, Ship­ping Char­ge: €10.78. Die Lie­fer­zeit war 12 Tage, Sonn­tag­abend bestellt und Frei­tags geliefert.

Auch der Ser­vice war her­vor­ra­gend. Ich hat­te am Sonn­tag­nach­mit­tag mehr­fach ver­sucht, die Bestel­lung online ein­zu­ge­ben und es kam immer wie­der eine unver­ständ­li­che Feh­ler­mel­dung beim Über­neh­men in den Waren­korb. Dar­auf konn­te ich mir kei­nen Reim machen, also mal im Online For­mu­lar um Hil­fe gebe­ten. Ich erhielt sofort eine auto­ma­ti­sche Email-Ant­wort, daß im Moment nie­mand ver­füg­bar sei und man sich sobald wie mög­lich mel­det. Ja klar, es muss­te in Chi­na auf Mit­ter­nacht zuge­hen, die Ant­wort wird dann wohl am Mon­tag­mor­gen kom­men. Zu mei­ner Ver­wun­de­rung dau­er­te es kei­ne Stun­de, bis mir jemand per Email freund­lich und in gutem Eng­lisch erklär­te, daß ich ver­mut­lich eine Kom­bi­na­ti­on gewählt hät­te, die sie nicht anbie­ten. Sie ken­nen das Pro­blem, der Dia­log auf der Web­site wür­de nicht alle Ein­ga­be­feh­ler abfan­gen. Ich hat­te 1,2 mm Lei­ter­plat­ten­stär­ke bei blau­em Löt­stopp­lack gewählt, blau geht aber nur bei 1,6 mm Stärke.

Unglaub­lich, da kann und will kein euro­päi­scher Her­stel­ler mit­hal­ten, ganz davon abge­se­hen, daß die hier noch nie an Bast­lern inter­es­siert waren. Die waren immer nur lästig. Wo führt das hin? Ganz klar zu immer wei­te­rer Abhän­gig­keit von Chi­na. Unse­re Fer­ti­gung macht dicht und irgend­wann wer­den wir jeden Preis zah­len müs­sen, weil wir es nicht mehr kön­nen. Viel­leicht wird ja Gen­der­ga­ga und Kli­ma­hy­ste­rie unser neu­er Exportschlager.

Relais­trei­ber für das ATMEGA644PA-AU Board

Das ATMEGA644PA-AU Board funk­tio­niert ja nun schon eine gan­ze Wei­le pro­blem­los in dem Anten­nen­um­schal­ter. Dort wird ein exter­nern Trei­ber für die Relais ver­wen­det und es wur­de ein wenig Auf­wand spen­diert, um die digi­ta­le Elek­tro­nik so stör­fest zu machen, daß zumin­dest die 100 Watt des IC-7300 ohne Scha­den durch­ge­lei­tet wer­den können.

Jetzt bin ich dabei, einen schalt­ba­ren Anten­nen­tu­ner zu bau­en, der mit dem­sel­ben Modul gesteu­ert wer­den soll. Die­ser Tuner soll 12 bista­bi­le Relais ver­wen­den, die jeweils zwei Elek­tro­ma­gne­te ein­ge­baut haben, eines zum Ein­schal­ten und das ande­re zum Aus­schal­ten. Es müs­sen also 24 Spu­len ange­steu­ert wer­den, wobei man durch geschick­tes Mul­ti­plex­ing mit vier high-side und sechs low-side Trei­bern hin­kommt. Anders als im Anten­nen­um­schal­ter muß man im Tuner wegen der ver­bau­ten Luft­spu­len mit nicht ver­nach­läs­sig­ba­ren Magnet­fel­dern rech­nen und bei hoch­oh­mi­gen end­ge­spei­sten Anten­nen kann auch die Span­nung schnell mal an 1 kV her­an­rei­chen. Daher kommt der HF-Fil­te­rung beson­de­re Bedeu­tung zu.

Erste Ver­su­che beim Lay­out des Tun­ers führ­ten zu einer zu kom­ple­xen Pla­ti­ne, die wegen der vie­len SMD Bau­tei­le auch nicht mehr ohne wei­te­res im Eigen­bau zu frä­sen wäre. Als ein­fach­ste Lösung erwies sich eine sepa­ra­te Trei­ber­pla­ti­ne, die auf der Ziel­hard­ware, also z.B. dem Tun­er­board, auf­ge­steckt wird und auf die wie­der­um das ATME­GA-Board gesteckt wird. Das ist also ein klas­si­sches Pig­gy-Board. Hier das Ergeb­nis mit KiCad:

Hier ist der zuge­hö­ri­ge Schalt­plan.

Als high-side Trei­ber wird ein BTS724G ver­wen­det, als low-side Trei­ber der Klas­si­ker, ein ULN2803A, bei­de als SMD-Vari­an­ten. Damit kön­nen bis zu vier (induk­ti­ve) Lasten auf die Ver­sor­gungs­span­nung geschal­tet wer­den und bis zu acht (induk­ti­ve) Lasten gegen Ground. Die high-side Trei­ber schaf­fen pro Kanal bis zu 3.3A, die low-side Trei­ber bis zu 500 mA. Alle Lei­stungs-Ports, ein­schließ­lich der Ver­sor­gungs­span­nung und der RS-485-Lei­tun­gen sind über LC-Glie­der gegen HF-Ein­strah­lun­gen gefil­tert. Mit ein paar Kom­pro­mis­sen hier und da konn­te die Pla­ti­ne als zwei­sei­ti­ge Lei­ter­plat­te rea­li­siert wer­den. Sie ist inzwi­schen in Chi­na in der Fer­ti­gung.

Phy­si­ka­li­sche Eigen­schaf­ten, überarbeitet

Die hier beschrie­be­ne Libre­Of­fice Tabel­le habe ich nun etwas über­ar­bei­tet. Ich habe die Struk­tur grund­le­gend geän­dert und die Berech­nung um den Skin-Effekt erwei­tert. Man kann also jetzt auch den Wider­stand eines Lei­ters bei Anle­gen einer Wech­sel­span­nung bestim­men. Das funk­tio­niert nur ange­nä­hert und auch nur bei den Mate­ria­li­en, für die die magne­ti­sche Per­mea­bi­li­tät ver­füg­bar war. Die neue Tabel­le kann hier her­un­ter­ge­la­den werden:

Ich den­ke daß die Tabel­le selbst­er­klä­rend ist. Nur die grün hin­ter­leg­ten Fel­der müs­sen aus­ge­füllt wer­den. Man wählt das Lei­ter­ma­te­ri­al in B3 und den Quer­schnitt in B4. Wie in der alten Ver­si­on kann man Draht (rund), Rohr (rund und hohl) oder Lei­ter­band (recht­eckig) aus­wäh­len. Dann gibt man die Fre­quenz, die Tem­pe­ra­tur, die Strom­stär­ke (optio­nal) und die Dimen­sio­nen an. Dar­un­ter wer­den eini­ge Zwi­schen­er­geb­nis­se ange­zeigt, die man nor­ma­ler­wei­se nicht braucht, die aber zu Kon­troll­zwecken nütz­lich sein kön­nen. Die Ergeb­nis­se ste­hen dann in den Zel­len E3 bis I3.

Alles wie immer ohne Gewähr. Wer Feh­ler fin­det, möge sie mir bit­te mit­tei­len und ich wer­de mich um Kor­rek­tur bemühen.

ATMEGA644PA-AU Board

Nach­dem das vor einem hal­ben Jahr ent­wor­fe­ne I/O Board mit einem ATTINY1634 sehr gut funk­tio­niert, kam aber recht bald der Wunsch nach ein paar mehr I/O Ports auf. Das ATTI­NY-Board hat nur maxi­mal 15 ver­wend­ba­re Ports, die z.T. auch noch ander­wei­tig ver­wen­det wer­den. Wird die RS485 Schnitt­stel­le ver­wen­det, gehen dafür drei Ports ver­lo­ren, so daß dann nur noch 12 Ports ver­füg­bar sind. Für vie­le Anwen­dungs­fäl­le ist das mehr als genug, aber z.B. für den ange­dach­ten Bau eines fern­ge­steu­er­ten Anten­nen­tu­n­ers bräuch­te man schon an die 20 Ports, um je eine Kas­ka­de Kon­den­sa­to­ren und Spu­len umzuschalten.

Auf der Suche nach einem preis­wer­ten, gut ver­füg­ba­ren und nicht abge­kün­dig­ten Bau­stein fand ich den ATMEGA644PA-AU, der bei den bekann­ten chi­ne­si­schen Anbie­tern für etwa 1 € zu haben ist. Zudem hat­te ich frü­her schon­mal mit deren Vor­gän­gern etwas auf­ge­baut und Ein­zel­stücke des ATMEGA644V-10AU und des ATMEGA644-20AU lagen noch in der Kiste. Außer­dem hat der ATMEGA644 sehr viel mehr Spei­cher an Bord (64k Flash, 2k EEPROM und 4k RAM) und er kann bis 20 MHz getak­tet wer­den. Gleich­wohl sei gesagt, daß ich bis­her auch mit den hal­ben Res­sour­cen des ATTINY1634 aus­ge­kom­men bin. Aber scha­den kann’s nicht (nun­ja, etwas Strom kostet’s schon). Der 644-er hat ein 44-Pin QFP Gehäu­se und passt in den vom ATTI­NY-Board vor­ge­ge­be­nen Form­fak­tor. Damit kön­nen die Boards weit­ge­hend pin­kom­pa­ti­bel gestal­tet werden.

Also gleich mal ein neu­es Board ent­wor­fen und beim Lei­ter­plat­ten­her­stel­ler mei­nes Ver­trau­ens in Auf­trag gege­ben. So sieht es in der KiCad-Vor­schau aus:

ATMEGA644PA-Board
ATME­GA644­PA-Board mit RS485 Schnitt­stel­le (Ansicht von oben)

ATMEGA644PA-Board
ATME­GA644­PA-Board mit RS485 Schnitt­stel­le (Ansicht von unten)

Das Board ist nun etwas brei­ter gewor­den und hat zusätz­li­che Pins bekom­men. Es kann aber auf der vor­han­de­nen Test- und Pro­gram­mier­plat­form für den ATTINY1643 und auf den Anwen­dungs­boards ver­wen­det wer­den, sofern es wegen des Über­hangs mecha­nisch passt. Damit ich mir beim Rou­ten nicht die Fin­ger bre­che, habe ich die 4‑Lagen Mul­ti­lay­er Tech­nik gewählt. Beim ATTINY1634 kam ich mit zwei Lagen aus. Nach­fol­gend ein Foto meh­re­rer fer­tig bestück­ter ATTINY und ATMEGA Boards:

RS485 Boards
Meh­re­re bestück­te RS485 Boards, teils mit ATTINY1643 und teils mit ATMEGA644.

Hier ist der zuge­hö­ri­ge Schalt­plan. Im wesent­li­chen ist er vom ATTI­NY-Board über­nom­men, aber weil noch Platz auf der Pla­ti­ne ver­füg­bar war, habe ich ihr einen TMP275 Tem­pe­ra­tur­sen­sor spen­diert, der eine Genau­ig­keit von 0,5 K haben soll. Das wird frei­lich durch die Eigen­erwär­mung des Boards etwas kon­ter­ka­riert. Gege­be­nen­falls muß die­se Eigen­erwär­mung per Soft­ware kom­pen­siert wer­den oder das Board soll­te in einem der vie­len Strom­spar­mo­di betrie­ben wer­den. Die Idee ist, beim Außen­ein­satz z.B. als Anten­nen­um­schal­ter, auch gleich die Außen­tem­pe­ra­tur zu mes­sen. Außer­dem ist eine REF5025-Span­nungs­re­fe­renz ein­bau­bar, falls mal halb­wegs prä­zi­se Ana­log­span­nun­gen gemes­sen wer­den sollen.

Ver­suchs­wei­se habe ich auch mal einen Trim­mer für den Quarz vor­ge­se­hen. Die hier und auch auf ande­ren Boards ver­wen­de­ten Quar­ze sind für eine nomi­na­le Last­ka­pa­zi­tät von 12 pF spe­zi­fi­ziert. Das ist die Kapa­zi­tät, die dem Quarz par­al­lel­ge­schal­tet wer­den muß, damit er auf der Nomi­nal­fre­quenz schwingt. Da die bei­den obli­ga­to­ri­schen Kon­den­sa­to­ren (hier C1 und C4) in Serie geschal­tet sind, müss­te jeder von ihnen also 24 pF haben. Da ja auch wei­te­re Schalt­ka­pa­zi­tä­ten hin­zu­kom­men, habe ich in der Ver­gan­gen­heit meist 2 x 18 pF vor­ge­se­hen, was also 9 pF Last plus geschätz­ten 3 pF Schalt­ka­pa­zi­tät in der Sum­me zu etwa 12 pF füh­ren sollte.

Im Rah­men der ver­füg­ba­ren Meß­mög­lich­kei­ten war das bis­her prä­zi­se genug. Jetzt habe ich aber auf dem ATTI­NY-Board auch eine Uhr imple­men­tiert, die mit 2 x 18 pF Last­ka­pa­zi­tät am Tag bis zu einer Sekun­de nach­ging. Bei einem 12 MHz Quarz ent­spricht das einer um etwa 150 Hz zu nied­ri­gen Fre­quenz. Durch Aus­pro­bie­ren ver­schie­de­ner Wer­te habe ich her­aus­ge­fun­den, daß bei Kon­den­sa­to­ren von der Stan­ge 2 x 15 pF die gering­sten Abwei­chun­gen ver­ur­sa­chen. Bei Ver­su­chen mit einem 8 MHz, einem 11,059 MHz und einem 12 MHz Quarz erga­ben sich Abwei­chun­gen von etwa 50 Hz nach unten. 2 x 13 pF war wie­der deut­lich schlech­ter in die ande­re Rich­tung. Die ver­blei­ben­de Abwei­chung wird per Soft­ware kom­pen­siert, indem alle sound­so­vie­le Takt­zy­klen ein 10 ms Inter­vall ein­ge­scho­ben oder weg­ge­las­sen wird. Auf dem ATMEGA Board habe ich nun 2 x 12 pF vor­ge­se­hen und mit dem zusätz­li­chen Trim­mer soll dann die nomi­na­le Fre­quenz ein­ge­stellt werden.

Hin­rei­chend genaue Fre­quenz­mes­sun­gen mache ich übri­gens inzwi­schen mit dem IC-7300 Trans­cei­ver und der WSJT‑X Soft­ware. Die Fre­quenz­ba­sis des IC-7300 ist mit unter 0,5 PPM spe­zi­fi­ziert und damit etwa 10-mal so genau, wie der Quarz. Im CW-Modus wird die nomi­na­le Fre­quenz des Quar­zes ein­ge­stellt und dann soll­te der Mit­tel­punkt der Fre­quenz bei der ein­ge­stell­ten CW-Audio­fre­quenz sein. Abwei­chun­gen von weni­gen Hz sind deut­lich erkenn­bar. Hier ein Screen­shot des IC-7300 und das zuge­hö­ri­ge Spek­trum von WSJT‑X.

Screenshot des IC-7300
Screen­shot des IC-7300 bei 11,0592 MHz.

Screenshot WSJT-X
Screen­shot WSJT‑X bei einem ein­ge­stell­ten CW-Pitch von 700 Hz.

Mit dem Trim­mer wur­de hier die Fre­quenz auf den nomi­na­len Wert von 11,0592 MHz gezo­gen. An der WSJT‑X Dar­stel­lung sieht man, daß die tat­säch­li­che Fre­quenz eini­ge weni­ge Hertz höher liegt.

Phy­si­ka­li­sche Eigen­schaf­ten (Mas­se, Wider­stand, Aus­deh­nung) ver­schie­de­ner Werkstoffe

Bei so unter­schied­li­chen Din­gen wie dem Bau einer Kurz­wel­len­an­ten­ne und beim Auf­bau eines Trep­pen- bzw. Ter­ras­sen­ge­län­ders kam bei mir immer wie­der die Fra­ge auf, was denn nun ein 1,10 m lan­ger Edel­stahl­pfo­sten oder ein 18,55 m lan­ger Anten­nen­draht aus 2 mm dickem Alu­mi­ni­um­draht wiegt und auch wel­chen ohm­schen Wider­stand das Teil hat. Auch die Fra­ge, ob man ein 5 m lan­ges Edel­stahl­rohr mit 42,2 mm Außen­durch­mes­ser und 2 mm dicker Wand eher tra­gen kann, als ein gleich­lan­ges Alu­mi­ni­um­rohr mit 5 mm dicker Wand, ist für die Instal­la­ti­on als Anten­nen­mast nicht ganz uner­heb­lich. Wenn man an die Erdung des Roh­res denkt, ist auch sein elek­tri­scher Wider­stand nicht ver­nach­läs­sig­bar, denn gera­de Edel­stahl ist ja als rela­tiv schlech­ter Lei­ter bekannt. Auch die Fra­ge, ob ein im Som­mer bei 38°C abge­stimm­ter Anten­nen­draht auch bei ‑10°C im Win­ter noch hin­rei­chend reso­nant ist, soll­te zumin­dest mal unter­sucht werden.

Nach­dem ich dann mehr­fach die jewei­li­gen Mate­ri­al­pa­ra­me­ter (spe­zi­fi­sche Mas­se, spe­zi­fi­scher Wider­stand, Tem­pe­ra­tur­ko­ef­fi­zi­ent des­sel­ben, Aus­deh­nungs­ko­ef­fi­zi­ent) im Inter­net zusam­men­ge­sucht und die Wer­te mit dem Taschen­rech­ner aus­ge­rech­net habe, war es an der Zeit, ein pas­sen­des Libre­Of­fice Spreadsheet dafür zu erstel­len. Hier ist es:

Die Tabel­le „Eigen­schaf­ten“ ent­hält die aus dem Inter­net gesam­mel­ten Mate­ri­al­pa­ra­me­ter. Bei den jewei­li­gen Wer­ten ist eine gewis­se Vor­sicht von­nö­ten. Die Wer­te für che­misch rei­ne Mate­ria­li­en dürf­ten ziem­lich gut bekannt sein und nur gering­fü­gig vom tat­säch­li­chen Wert abwei­chen. Legie­run­gen wie z.B. Edel­stahl oder Kon­stantan, aber auch Kup­fer­ka­bel oder Alu­mi­ni­um kön­nen grö­ße­re Abwei­chun­gen haben, weil ihre genaue Zusam­men­set­zung schwankt. Die Ergeb­nis­se soll­ten für Aller­welts­an­wen­dun­gen hin­rei­chend genau sein, wer es genau­er haben muß, soll­te sich jedoch das Daten­blatt des jewei­li­gen Her­stel­lers besorgen.

Das Spreadsheet ent­hält auch noch eini­ge Nicht­lei­ter wie Kunst­stof­fe und Glas. Dabei ging es natür­lich nicht um deren elek­tri­schen Wider­stand, son­dern um die Mas­se und ggf. den Aus­deh­nungs­ko­ef­fi­zi­en­ten. Wegen der unter­schied­li­chen Zusam­men­set­zung schwan­ken auch hier die Anga­ben ziem­lich stark. Oft sind Mini­mum- und Maxi­mum­wer­te ange­ge­ben. Auch die elek­tri­schen Wider­stän­de habe ich (spa­ßes­hal­ber) erfasst, wenn Wer­te dafür zu fin­den waren. Sie schwan­ken oft um meh­re­re Zeh­ner­po­ten­zen und haben daher kei­ne prak­ti­sche Rele­vanz. Dafür habe ich „min“ und „max“ Spal­ten ein­ge­führt und dar­aus den Mit­tel­wert errech­net, der dann für die Berech­nun­gen benutzt wird.

Die eigent­li­chen Berech­nun­gen fin­den in der gleich­na­mi­gen Tabel­le statt. Dort wählt man zunächst in Zel­le A2 das Mate­ri­al aus, in Spal­te C soll­ten dann die dazu­ge­hö­ri­gen phy­si­ka­li­schen Para­me­ter erschei­nen. Abhän­gig von der Kon­tur des Quer­schnitts wird dann in Zei­le 2, 5 oder 8 wei­ter­ge­ar­bei­tet und in der dazu­ge­hö­ri­gen Spal­te E wird jeweils die Län­ge des Werk­stücks in Mil­li­me­ter ange­ge­ben. Zei­le 2 gilt für recht­ecki­ge Quer­schnitt und die Brei­te und Dicke wird in Spal­ten F und G ange­ge­ben. Für run­des Voll­ma­te­ri­al (Draht, Kabel oder Stab) wird Zei­le 5 benutzt. Die Quer­schnitts­flä­che (nicht der Durch­mes­ser!) wird in die­sem Fall direkt in Spal­te H ange­ge­ben. Für Roh­re wird Zei­le 8 benutzt, wobei der Außen­durch­mes­ser und die Wand­stär­ke in den Spal­ten F und G ange­ge­ben wer­den. Falls nicht in Zei­le 5 direkt ange­ge­ben, wird in Spal­te H der jewei­li­ge Quer­schnitt errech­net. Spal­te J zeigt nun den elek­tri­schen Wider­stand in mΩ an, ggf. abhän­gig von der in Spal­te I gewähl­ten Tem­pe­ra­tur. Wählt man in Spal­te K eine Strom­stär­ke, so wird in Spal­te L der Span­nungs­ab­fall und in Spal­te M die dabei ver­heiz­te Lei­stung angezeigt.

Spal­te M zeigt die gesam­te Mas­se des Werk­stücks an und Spal­te N die Län­gen­än­de­rung bei der gewähl­ten Tem­pe­ra­tur gegen­über 20°C.

Bei­spiel­an­wen­dun­gen:

1.) ein 18,55 m lan­ger Alu­mi­ni­um­draht mit 2 mm Durch­mes­ser wiegt 158 g und hat einen Wider­stand von 156 mΩ. Ein alter­na­ti­ver Draht aus Stahl­lit­ze von 1,6 mm Durch­mes­ser wiegt 354 g und hat einen ohm­schen Wider­stand von 1,384 Ω. Ein sol­cher Draht wur­de zum Bau einer Kurz­wel­len­an­ten­ne ver­wen­det. Ich habe mich für den Aludraht ent­schie­den, weil er leich­ter ist und nur ein zehn­tel des elek­tri­schen Wider­stan­des der Lit­ze hat.

2.) ein 1 m lan­ges Edel­stahl­rohr mit 42,4 mm Durch­mes­ser und einer Wand­stär­ke von 2 mm wiegt ziem­lich genau 2 kg. Sol­che Roh­re wer­den zuhauf für den Bau von Edel­stahl­ge­län­dern verwendet.

Noch ein Hin­weis: die Tabel­le ist geschützt (ohne Pass­wort), so daß man nicht ver­se­hent­lich die Fel­der ändert, die nor­ma­ler­wei­se nicht geän­dert wer­den sol­len. Die unge­schütz­ten Ein­ga­be­fel­der sind gelb hin­ter­legt. Sol­len ande­re Fel­der geän­dert wer­den, muß die Tabel­le zunächst frei­ge­ge­ben wer­den (bei Libre­Of­fice: Extras, Tabel­le schützen).

2020_12_30: Hier gibt es eine neue Ver­si­on.

I/O Board mit RS485 Schnittstelle

Es hat mich mal wie­der in den Fin­gern gekrib­belt. Nach­dem wir die ver­gan­ge­nen zwei Jah­re nur mit unse­rem neu­en Haus beschäf­tigt waren, muss­te ich mal wie­der ein klei­nes Board entwickeln.

Ich habe ja wie­der mit dem Ama­teur­funk ange­fan­gen und zwei Trans­cei­ver von Icom gekauft. Die Anten­nen­an­la­ge lässt aller­dings sehr zu wün­schen übrig. Ich will ver­schie­de­ne Anten­nen auf­bau­en, für Kurz­wel­le vor­läu­fig nur Mono- und Dipo­le. Da nicht jede Anten­ne ein eige­nes Kabel bekom­men kann, wer­de ich also einen Anten­nen­um­schal­ter instal­lie­ren müs­sen, der von der Sta­ti­on aus elek­trisch schalt­bar sein soll. Sowas kann man fer­tig kau­fen oder auch sel­ber­bau­en, aber auch die gekauf­ten brau­chen eine Steuerung.

Zur Kom­mu­ni­ka­ti­on zwi­schen Anten­nen­um­schal­ter und Shack bie­tet sich die RS485 Schnitt­stel­le an. Sie setzt auf einer asyn­chro­nen seri­el­len Schnitt­stel­le auf und unter­stützt Lei­tungs­län­gen von vie­len hun­dert Metern (bis 1,2 km nach der Norm) bei Baud­ra­ten bis 12 MBd. Durch die Ver­wen­dung eines Lei­tungs­paars im Gegen­takt wird eine hohe Stör­si­cher­heit erreicht. Ein Lei­tungs­paar gestat­tet die Kom­mu­ni­ka­ti­on im Halb­du­plex-Mode, für Voll­du­plex sind zwei Lei­tungs­paa­re nötig. RS485 ermög­licht auch den Auf­bau eines Bus­systems, bei dem bis zu 32 Teil­neh­mer ange­schlos­sen wer­den kön­nen. Bei der hier geplan­ten Anten­nen­um­schal­tung könn­ten also meh­re­re Anten­nen­um­schal­ter über ein ein­zi­ges Lei­tungs­paar ange­schlos­sen werden.

Weil ich gera­de noch eini­ge Exem­pla­re des Mikro­con­trol­lers in der Kiste lie­gen hat­te, habe ich ein klei­nes Board mit dem ATtiny1634 und einem RS485-Trans­cei­ver gebaut. Hier die KiCad 3D-Vorschau:

ATTINY1634
Unter­sei­te des RS485 Moduls mit einem ATtiny1634.
Oberseite
Ober­sei­te des RS485 Moduls.

Da die Umschalt­re­lais des Anten­nen­schal­ters typi­scher­wei­se mit 12V arbei­ten, ist auf der Ober­sei­te ein ein­fa­cher Line­ar­reg­ler imple­men­tiert. Es pas­sen 3V- und 5V-Typen. Da der 1634 bei 3V nur bis 8 MHz getak­tet wer­den kann, habe ich auf dem Pro­to­ty­pen 5V-Reg­ler ein­ge­lö­tet. Damit läuft der Con­trol­ler mit bis zu 12 MHz. Hier ist der Schalt­plan, es gibt kei­ner­lei erwäh­nens­wer­te Besonderheiten.

In der Wahl des Kom­mu­ni­ka­ti­ons­pro­to­kolls ist man ziem­lich frei, aber war­um etwas eige­nes erfin­den, wenn es schon weit­ver­brei­te­te Stan­dards gibt. Ich habe mich für den Mod­bus ent­schie­den, der auch bei­spiels­wei­se bei der Kom­mu­ni­ka­ti­on mit PV-Wech­sel­rich­tern ver­wen­det wird. Es gibt ein schö­nes Uti­li­ty für Win­dows, QMod­Ma­ster, das Mod­bus-Nach­rich­ten sen­den und emp­fan­gen kann. Das war sehr hilf­reich bei der Imple­men­tie­rung des Mod­bus Pro­to­kolls in den ATtiny1634. Ich bin noch nicht kom­plett mit der Imple­men­tie­rung fer­tig, daher will ich die Soft­ware im Moment noch nicht hier ver­öf­fent­li­chen. Das hole ich nach, wenn’s fer­tig ist. Da die wesent­li­chen Din­ge aber bereits funk­tio­nie­ren, hier mal nur kurz der Ressourcenverbrauch: 

Pro­gram Memo­ry Usa­ge : 2892 bytes 17,7 % Full
Data Memo­ry Usa­ge : 85 bytes 8,3 % Full
EEPROM Memo­ry Usa­ge : 2 bytes 0,8 % Full

Dar­an wird sich im End­aus­bau nicht mehr viel ändern. Viel­leicht braucht er mit wei­te­ren Funk­tio­nen 25 – 30% Flash Spei­cher, aber die vor­han­de­nen 16 kB wer­den auf jeden Fall aus­rei­chen. Wenn genü­gend Platz bleibt, wer­de ich die Sen­de- und Emp­fangs­puf­fer etwas ver­grö­ßern, was dann den Daten­spei­cher Ver­brauch um ein paar Pro­zent anstei­gen las­sen wird. Auch hier wird das 1 kB SRAM alle­mal ausreichen.

Über ein 25m Kabel lief die Kom­mu­ni­ka­ti­on bei 38 kBd wie erwar­tet meh­re­re Stun­den feh­ler­frei, aller­dings kann QMod­Ma­ster auch lei­der nur eine Nach­richt pro Sekun­de abset­zen. Das ist also nicht wirk­lich ein hoher Durch­satz. Auf der PC-Sei­te ver­wen­de ich übri­gens einen „WaveSha­re USB TO RS232 RS485 TTL Indu­stri­al Iso­la­ted Con­ver­ter“, der bis­her zuver­läs­sig funktioniert.

Elek­tro­ni­sche Last, Teil 2

Inzwi­schen habe ich eini­ge Erfah­run­gen gesam­melt, mei­ne Samm­lung an recy­cle­ten Li-Ion Akkus durch­ge­mes­sen und auch mit der mit­ge­lie­fer­ten Soft­ware gearbeitet.

Mes­sun­gen an Akkus

Bei den Akkus han­delt es sich um 18650er Typen, die mei­stens noch das Logo von Sam­sung tra­gen und nomi­nal im Neu­zu­stand 2,8 bis 3,0 Ah Kapa­zi­tät haben soll­ten. Sie stam­men fast alle aus alten Note­book-Akku­packs, die oft nicht wegen kaput­ter Akkus son­dern wegen defek­ter Lade­elek­tro­nik ent­sorgt wer­den. Laut Daten­blatt sol­len die­se Akkus auf 4,35 V gela­den wer­den und sie haben dann bei einem Ent­la­de­strom von 0,2 C die genann­te nomi­na­le Kapa­zi­tät. Für die Tests habe ich die Akkus auf 4,2 V gela­den, weil das ver­wen­de­te Lade­ge­rät dann abschal­tet. Das geschieht aus Sicher­heits­grün­den, denn man­che Akkus dür­fen nur bis 4,25 V gela­den wer­den, dar­über wird’s gefährlich.

Die Akkus habe ich zum Teil ein­zeln, zum Teil als Pär­chen und zum Teil im 6er‑Pack ent­la­den. Der Ent­la­de­strom wur­de dabei auf etwa ein Fünf­tel der nomi­na­len Kapa­zi­tät ein­ge­stellt, auf 0,5 A, 1,0 A bzw. 3,0 A. Als Abbruch­be­din­gung wur­de laut Daten­blatt eine Ent­la­de­schluß­span­nung von 2,75 V gewählt. Nach­fol­gend exem­pla­risch die Ent­la­de­kur­ve eines Akku­packs aus zwei Zellen:

Entladekurve eines Akkupacks aus zwei Zellen
Ent­la­de­kur­ve eines Akku­packs aus zwei Zellen

Bei einem Ent­la­de­strom von 1 A ist der Akku­pack also nach etwa zwei Stun­den auf die Ent­la­de­schluß­span­nung ent­la­den. Damit haben die bei­den Akkus zusam­men also eine Kapa­zi­tät von etwa 2 Ah. Obwohl der Akku­pack beim Start eine Leer­lauf­span­nung von 4,2 V hat­te, sinkt die­se Span­nung unter Last sofort auf etwa 4,0 V. Daher star­tet die Kur­ve nicht bei 4,2 V. Es wur­de zwar der Sen­se-Ein­gang zum Mes­sen der Bat­te­rie­span­nung benutzt, aber die Span­nung wur­de nicht unmit­tel­bar an den Akku-Kon­tak­ten abge­grif­fen, son­dern über die kur­zen Ver­bin­dungs­dräh­te und die Feder des Akkuh­al­tes, über die auch der Ent­la­de­strom fließt. Zumin­dest ein Teil des Span­nungs­ab­falls von 200 mV dürf­te also dem Lei­tungs- und Kon­takt­wi­der­stand geschul­det sein. Hier ist das zuge­hö­ri­ge Libre­Of­fice Spreadsheet zum Rumspielen.

Sol­che Akkus, deren Kapa­zi­tät sich als zu gering erwies (< 0,5 Ah), habe ich vor der Abga­be beim Recy­cling­hof mit gerin­ger Lei­stung auf 0 V ent­la­den. Vor die­ser Pro­ze­dur waren sie bereits mit dem Nomi­nal­strom auf 2,75 V ent­la­den, haben sich aber nach eini­ger Zeit wie­der erholt, so daß die Ent­la­dung mit höhe­rer Span­nung als 2,75 V star­tet. Nach­fol­gend die Ent­la­de­kur­ve bei einer kon­stan­ten Ent­la­de­lei­stung von 1 W.

Zwei 'leere' LiIon-Akkus bei 1W auf 0V entladen
Zwei ‚lee­re‘ LiI­on-Akkus bei 1W auf 0V entladen

Die rote Kur­ve zeigt die Span­nung des Akku­packs wäh­rend des Ent­la­dens mit einer Lei­stung von 1 W. Nach sechs­ein­halb Stun­den fällt die Span­nung rapi­de ab und die elek­tro­ni­sche Last ver­sucht die Lei­stung durch eine Stei­ge­rung der Strom­stär­ke auf­recht zu erhal­ten. Dabei steigt die Strom­stär­ke kurz­zei­tig auf über 3 A an, bis der Akku­pack die gefor­der­te Lei­stung nicht mehr erbrin­gen kann. Danach sin­ken Strom­stär­ke und Span­nung schnell ab, die Lei­stung sinkt inner­halb weni­ger Minu­ten auf unter hun­dert Mil­li­watt. Hier wie­der das zuge­hö­ri­ge Libre­Of­fice Spreadsheet.

Die Soft­ware

Zum Gerät wird eine Betriebs­soft­ware auf DVD für Win­dows Betriebs­sy­ste­me mit­ge­lie­fert. Die­se Soft­ware ist namen­los und basiert offen­sicht­lich auf Lab­View 2014. Das aus­führ­ba­re Pro­gramm heißt „RND 320-KEL102.exe“ Eine Beschrei­bung ist nicht dabei und man muß sich sei­ner Funk­ti­ons­wei­se durch Aus­pro­bie­ren nähern. Beim Start erscheint fol­gen­des Fenster:

Startbildschirm RND 320-KEL102
Start­bild­schirm RND 320-KEL102

Zunächst muß die Soft­ware mit der elek­tro­ni­schen Last ver­bun­den wer­den. Dazu ste­hen drei ver­schie­de­ne Schnitt­stel­len zur Ver­fü­gung: RS232, USB oder Ether­net. Nach der Instal­la­ti­on des USB Trei­bers steht die USB Schnitt­stel­le als COM-Schnitt­stel­le zur Ver­fü­gung, in mei­nem Fall als COM15. Man selek­tiert die COM-Schnitt­stel­le im Drop-Down Menü und klickt auf „Con­nect“ zum Ver­bin­den mit dem Gerät. Anders als die Ver­bin­dung über Ether­net hat das auf Anhieb funk­tio­niert. Bei Ether­net kann das Pro­blem an vie­len Din­gen lie­gen, vom Switch über die Fire­wall bis hin zum Gerät selbst. Die For­schung nach den Ursa­chen habe ich erst­mal auf Eis gelegt, weil die USB Schnitt­stel­le funktioniert.

Die Benut­zer­ober­flä­che gestat­tet die direk­te Bedie­nung des Geräts, die Beob­ach­tung von Span­nung und Strom sowie das Log­gen die­ser bei­den Meß­wer­te in einem Textfile.

Zum Log­gen gibt man im Feld „Sto­rage Time“ die zu spei­chern­de Anzahl von Meß­wer­ten pro Sekun­de ein. Die hier gezeig­te 10 bedeu­tet also Meß­wer­te im Inter­vall von 100 ms zu spei­chern. Damit kann man leben, wenn­gleich es bei lan­gen Inter­val­len von z.B. einer Minu­te etwas unhand­lich wird. Dann muß man näm­lich 160 ein­ge­ben, also 0.0166666, was unwei­ger­lich irgend­wann zu Feh­lern führt. Bei mei­nen Akku­mes­sun­gen habe ich daher 50 Sekun­den Inter­val­le gewählt und 0.02 als Anzahl Meß­wer­te pro Sekun­de ein­ge­ge­ben. Dann wählt man den Pfad für die Log­da­tei, klickt bei Data Safe auf „On“ und schon wer­den die Meß­wer­te gespeichert.

Die Log­da­tei ist lei­der eine rei­ne Text­da­tei, kein CSV-File. Die Ein­trä­ge sehen fol­gen­der­ma­ßen aus:

22.02.2020 15:21:19 5,0262V 0,0000A
22.02.2020 15:21:19 5,0262V 1,5903A
22.02.2020 15:21:19 3,0683V 1,5903A
22.02.2020 15:21:19 2,9088V 1,5903A
22.02.2020 15:21:19 2,9181V 1,4959A
22.02.2020 15:21:19 2,9181V 1,4975A
22.02.2020 15:21:19 2,9181V 1,4911A
22.02.2020 15:21:19 2,9243V 1,4911A
22.02.2020 15:21:19 2,9295V 1,4911A
22.02.2020 15:21:20 2,9295V 1,4900A
22.02.2020 15:21:20 2,9316V 1,4943A
22.02.2020 15:21:20 2,9316V 1,4943A
22.02.2020 15:21:20 2,9316V 1,4962A
22.02.2020 15:21:20 2,9409V 1,4962A
22.02.2020 15:21:20 2,9357V 1,5066A
22.02.2020 15:21:20 2,9357V 1,5066A
22.02.2020 15:21:20 2,9357V 1,5066A
22.02.2020 15:21:20 2,9357V 0,0000A
22.02.2020 15:21:20 4,9834V 0,0000A
22.02.2020 15:21:21 4,9834V 0,0000A
22.02.2020 15:21:21 5,0152V 0,0894A
22.02.2020 15:21:21 5,0152V 0,0894A

Um die­se Datei mit einem Spreadsheet-Pro­gramm wie z.B. Libre­Of­fice zu öff­nen, muß sie manu­ell mit einem Text­edi­tor in ein ech­tes .CSV-For­mat umge­wan­delt wer­den. Dabei ist es aus­ge­spro­chen hilf­reich, wenn der Edi­tor spal­ten­wei­ses edi­tie­ren erlaubt, um z.B. die not­wen­di­gen Trenn­zei­chen ein­zu­fü­gen und die Dimen­sio­nen „V“ und „A“ weg­zu­lö­schen. Nach dem edi­tie­ren soll­te die Datei dann fol­gen­der­ma­ßen aussehen:

Datum;Uhrzeit;Spannung;Strom;
22.02.2020;15:21:19;5,0262;0,0000;
22.02.2020;15:21:19;5,0262;1,5903;
22.02.2020;15:21:19;3,0683;1,5903;
22.02.2020;15:21:19;2,9088;1,5903;
22.02.2020;15:21:19;2,9181;1,4959;

Die­se Datei kann mit Libre­Of­fice direkt geöff­net und wei­ter­ver­ar­bei­tet wer­den. So wur­den die oben gezeig­ten Gra­fi­ken erstellt.

Damit Span­nung und Strom­stär­ke direkt im pas­sen­den Maß­stab beob­ach­tet wer­den kön­nen, muß die y‑Achse ent­spre­chend ska­liert wer­den. Das geschieht durch Anklicken des jewei­li­gen obe­ren und ggf. unte­ren Wer­tes und Ein­ga­be des gewünsch­ten neu­en Werts. Will man bei­spiels­wei­se einen Span­nungs­be­reich zwi­schen zwei und fünf Volt anzei­gen, klickt man unten auf der y‑Skala auf die „0“, löscht die­se und gibt eine 2 ein. Oben klickt man auf die 120 und gibt eine 5 ein.

Das Feld Pro­gramma­ble Test erlaubt die Ein­ga­be einer Prüf­se­quenz. Will man bei­spiels­wei­se ein Netz­teil auf sein Ver­hal­ten bei Last­schwan­kun­gen testen, kann man eine Sequenz defi­nier­ter Last­strö­me ein­ge­ben. Das pro­bie­ren wir mal aus:

Testsequenz für ein Netzteil
Test­se­quenz für ein Netzteil

Hier wur­de eine Test­se­quenz mit sechs zwei Sekun­den lan­gen Inter­val­len vor­ge­ge­ben. Es gel­ten die Test­punk­te 1 bis 6 und die Sequenz soll ins­ge­samt fünf­mal durch­lau­fen wer­den. Gestar­tet wird im ersten Test­punkt mit einem Kon­stant­strom (Mode: CC) von 0,1 A. Es fol­gen Kon­stant­strö­me von 3,0 A, 1,0 A und 0,0 A. Dann wird das Netz­teil mit einer kon­stan­ten Lei­stung (Mode: CW) von 5 W gete­stet und anschlie­ßend mit einem Wider­stand von 1 Ω bela­stet (Mode: CR). Die gra­fi­schen Anzei­gen für Strom und Span­nung wur­den auf sinn­vol­le Wer­te ska­liert und der Sen­se Ein­gang wur­de benutzt, damit Lei­tungs­wi­der­stän­de kei­ne Rol­le spielen.

Am Netz­teil wur­de eine Aus­gangs­span­nung von 5 V ein­ge­stellt und die Strom­be­gren­zung wur­de auf einen Wert über 5 A ein­ge­stellt, damit sie nicht anspricht. Man sieht in der Anzei­ge schon, daß die Span­nung bei einer Last von 5 A um etwa 200 mV ein­bricht. Deut­li­che Über­schwin­ger beim Ein- und Aus­schal­ten gro­ßer Lasten scheint es nicht zu geben.

Hier noch­mal die Meß­kur­ve aus der Log­da­tei mit Libre­Of­fice erstellt:

Netzteil bei Last, Spannung und Strom
Netz­teil bei Last, Span­nung und Strom

Und wegen der bes­se­ren Ska­lie­rung noch­mal nur die Spannung:

Netzteil bei Last, Spannung
Netz­teil bei Last, Spannung

Auch hier wie­der das Libre­Of­fice Spreadsheet zum sel­ber Rumspielen.

Bei dem Netz­teil han­delt es sich übri­gens um ein chi­ne­si­sches Modell Man­son HCS-3302, das ich vor ein paar Jah­ren über die Fir­ma Rei­chelt bezo­gen habe. Es ist von 1 ‑ 32 V ein­stell­bar und kann bis zu 15 A lie­fern. Bei Strö­men über 5 A soll­ten die rück­sei­ti­gen Buch­sen benutzt wer­den, was ich bei den obi­gen Tests nicht gemacht habe. Da die Span­nungs­schwan­kun­gen unter Last laut Spe­zi­fi­ka­ti­on auf 50 mV aus­ge­re­gelt wer­den soll­ten, die obi­gen Mes­sun­gen aber über 150 mV zei­gen, habe ich die Mes­sung mit dem hin­te­ren Aus­gang des Netz­teils wie­der­holt. Dabei zeigt sich, daß die Span­nungs­schwan­kung bei 5 A etwas unter 25 mV beträgt.

Netzteil bei Last am rückseitigen Ausgang, Spannung
Netz­teil bei Last am rück­sei­ti­gen Aus­gang, Spannung

Bei 15 A mes­se ich dann aller­dings einen Span­nungs­ein­bruch von 80 mV bei ein­ge­schal­te­tem Sen­se Ein­gang. Die spe­zi­fi­zier­ten Wer­te des Netz­teils sind also tat­säch­lich leicht geschönt.