Schaltung

Die Schal­tung wur­de mit ei­nem AT­me­ga­88PA re­ali­siert. Dies­mal voll­stän­dig in THT so dass sie auch mit ein­fa­chen Mit­teln auf ei­ner Loch­ras­ter-Pla­tine auf­ge­baut wer­den kann.

Im Lauf der Ent­wick­lung wur­de er bis auf den letz­ten Pin aus­ge­reizt. (Tat­säch­lich könn­te man die Pins der Pro­gram­mier-Schnitt­stel­le noch ein­ge­schränkt dop­pelt be­le­gen.)

Wenn man auf ein paar Gim­miks in der Soft­ware ver­zich­ten wür­de, könn­te sie auch in ei­nen AT­mega­48 pas­sen, der ja nur 4 k Flash be­sitzt. Mei­ne ak­tu­el­le Soft­ware passt knapp nicht...

Tat­säch­lich kann in den Sourcen per #define auch ein ATmega8a aus­ge­wählt wer­den, den ich zu­nächst ver­sehent­lich be­stellt ha­be. Er ist pin­kom­pa­ti­bel aber es wird dann ein an­de­rer Ti­mer be­nutzt, die Funk­tion ist je­doch die glei­che. Nur hat der AT­mega­8a kei­nen Tem­pe­ra­tur­sen­sor, der im Mo­ment aber so­wie­so nicht ge­nutzt wird.

Die kom­pi­lier­te Firm­ware muss mit dem ge­nutz­ten Con­trol­ler über­ein­stim­men! Eine Bi­när­kom­pa­ti­bi­li­tät zwi­schen den bei­den Ty­pen exis­tiert nicht!

Tat­säch­lich ha­be ich bis­her nur den ATmega8a ein­ge­setzt. Die Funk­tion mit dem AT­mega88 habe ich bis­her nicht ge­tes­tet!

Sieben­segment-Display

Es wurde ein neu­er­es Dis­play mit ge­mein­sa­mer Ka­thode ge­wählt, das auch mit re­lativ ge­rin­gen Strö­men eine ho­he Hel­lig­keit er­zielt. Der AT­mega treibt die Seg­men­te di­rekt mit je ei­nem Port­pin von sei­ner VCC ge­gen GND. Für die ge­mein­same Ka­thode wur­de ein Re­lais­trei­ber ULN2803 ge­wählt da der Strom hier für ei­nen Port­pin ein­deu­tig zu hoch ist. Die­ser ist deut­lich kom­pak­ter und mit gut 30 Euro-Cent wahr­schein­lich auch bil­liger als ei­ne dis­krete Lö­sung be­ste­hend aus sechs (Dar­ling­ton)-Tran­sis­to­ren plus Ba­sis-Wi­der­stän­den plus der zu­sätz­li­chen Lei­ter­plat­ten­flä­che. Man könn­te na­tür­lich auch den ULN2003 wäh­len der nur sie­ben Tran­sis­to­ren be­sitzt (wir brau­chen ja nur sechs) und ent­spre­chend sogar ein biß­chen klei­ner und viel­leicht auch noch bil­li­ger ist aber den 2803 ha­ben wir halt im La­ger...

Tat­säch­lich könn­ten sie die­sen auch ver­wen­den, wenn ich vor­her da­rü­ber nach ge­dacht hät­te. Es geht auch jetzt noch, al­ler­dings sind dann zwei Brücken nach­zu­löten, Pin1-Pin7 und Pin18-Pin12. Der ULN2003 muss dann rechts­bün­dig ein­ge­lö­tet wer­den, d.h. die Pins 1 und 18 blei­ben frei.

Auch bei den Seg­ment­trei­bern (also den ent­spre­chen­den Port­pins, da hier kei­ne wei­teren Trei­ber da­zwi­schen lie­gen) müs­sen wir auf­pas­sen. Der Strom pro Seg­ment liegt zwar mit 20 mA im er­laub­ten Rah­men doch spe­zi­fi­ziert das Da­ten­blatt einen ma­xi­ma­len Strom von 100 mA pro Port so dass wir nicht al­le 8 Seg­men­te an den glei­chen Port le­gen dür­fen! Dies ver­kom­pli­ziert die Soft­ware ein we­nig, ist aber auch nicht wirk­lich schlimm.

Der po­si­ti­ve Ef­fekt hier­bei ist, dass das Pro­gram­mier-Inter­face frei von zu­sätz­li­chen Las­ten ge­hal­ten wer­den konn­te.

Spe­ziell bei bil­lig-Pro­gram­mern aus dem E-Bay-Sor­ti­ment kann man nie si­cher sein, ob sie auch bei 20 mA noch die er­for­der­li­chen Pe­gel und An­stiegs­zei­ten auf­brin­gen die für ei­ne si­che­re Pro­gram­mie­rung er­for­der­lich sind.

Be­ach­ten Sie hier­bei: die Seg­ment-Trei­ber-Pins sind nicht als Aus­gang kon­fi­gu­riert! Der Pin ist stän­dig High und die An­steu­er­ung er­folgt über das DDR! Hier se­hen sie, wa­rum.

Main Switch

Ein­ge­schal­tet wird über den Tas­ter SW1, der den MOS­FET Q2 di­rekt an­steu­ert. Nach Los­las­sen des Tas­ters über­nimmt dies der Con­trol­ler über Q1, der den Ar­beits­kon­takt des Tas­ters über­brückt. So­mit kann er ihn auch bei län­ge­rer In­ak­ti­vi­tät wie­der ab­schal­ten. Die­se Schal­tung hat prak­tisch kei­nen Stand­by-Ver­brauch und ent­spricht da­mit ei­nem ras­ten­den Schal­ter, den wir sonst ex­tra hät­ten hin­zu­fü­gen müs­sen.

Damit der Tas­ter auch bei ein­ge­schal­tetem Ge­rät für Ein­gaben zur Ver­fü­gung steht nut­zen wir sei­nen Ru­he­kon­takt (die Lei­tung SW). Der ein­ge­setz­te Tas­ter (Digi­tast) ist ein sehr hoch­wer­ti­ger Tas­ter mit an­ge­neh­mem Tast­ge­fühl und lan­ger Le­bens­dau­er. Bil­li­ge­re Tas­ter kön­nen eben­so funk­tio­nie­ren, nur nicht so lan­ge und nicht so pro­fes­sio­nell.

Hät­ten wir hier nur ei­nen Tas­ter mit Ar­beits­kon­takt könn­ten wir das durch hin­zu­fü­gen von zwei Di­oden und ei­nem Tran­sistor eben­falls er­rei­chen. Ich über­lasse es Ih­nen als Denk­sport­auf­gabe, wo die­se sit­zen müss­ten :-).

Für die Un­sport­li­chen und die Neu­gie­ri­gen hier eine ent­spre­chen­de Si­mu­la­tion1 für LT­Spice.

Es hat sich ge­zeigt, dass man den Tas­ter un­er­war­tet lan­ge drücken muss um die Waage ein­zu­schal­ten. Zwar gibt es An­fangs einen De­lay von 50 ms der ver­hin­dern soll, dass sie sich selbst er­neut an­schal­tet nach­dem der Con­trol­ler sie ge­rade ab­ge­schal­tet hat aber es hat sich ge­zeigt, das wei­te­re 450 ms nötig sind um bis da­hin zu kom­men. Das scheint am Start­up des RC-Os­zil­la­tors zu lie­gen, des­sen Zeit im Da­ten­blatt nicht spe­zi­fi­ziert ist. Der ATMega8a braucht al­so (mit RC-Os­zil­lator) fast eine hal­be Se­kun­de nach An­le­gen der Ver­sor­gung be­vor er sei­nen ers­ten Be­fehl aus­führt...

Verpolungsschutz

So­wohl ein Netz­ge­rät als auch die Bat­terie kön­nen ver­polt an­ge­schloss­en wer­den. Um ei­ne Be­schä­di­gung der Schal­tung zu ver­mei­den könn­ten wir ei­ne Di­ode in Rei­he schal­ten. Die­se wür­de je­doch durch ih­ren Span­nungs­ab­fall die Ver­lust­leis­tung er­hö­hen und da­mit die Bat­terie-Le­bens­dau­er ver­rin­gern. (Bei 9 V um etwa 8%, al­so noch kein Pro­blem für ein China-De­vice)

Wir könn­ten auch ei­ne Di­ode pa­rallel schal­ten die bei Ver­po­lung kurz­schließt. Im Fal­le ei­nes kräf­ti­gen Netz­teils wür­de die­se al­ler­dings ka­putt ge­hen. Des­halb habe ich hier 40 Cent in­ves­tiert um den Ver­po­lungs­schutz mit ei­nem P-MOS FET NTD2955 (Q3) zu re­ali­sie­ren.

Er leitet nur, wenn die Span­nung rich­tig an­ge­schlos­sen wur­de und sperrt bei ver­pol­ter Ver­sor­gung. D2 be­grenzt da­bei die Gate-Span­nung und so funk­tion­iert die­se Schal­tung bis zur Durch­bruchs­span­nung des FETs von 60 V, al­so bis weit über die zu­läs­sige Ver­sor­gungs­span­nung.

Tat­säch­lich sind die 2×40 Cent (Ver­po­lungs­schutz und Main Switch) pure Geld­ver­schwen­dung da die­ser MOS­FET viel mehr kann (12 A!) als nö­tig, aber er war nun mal bei uns im La­ger... Auf je­den Fall muss er nicht ge­kühlt wer­den... Viel­leicht kön­nen Sie das auch mit 20 Cent re­ali­sie­ren wenn es da­rauf an­kommt. Ein simp­ler BSS84 mit -130 mA ID reicht je­doch knapp nicht (aus­ser für ein China-De­vice :-)).

Außer­dem wür­de der BSS84 mit ty­pisch 6 Ω Ka­nal­wi­der­stand selbst bei 65 mA 0,4 V Span­nungs­abfall be­wir­ken (also fast so viel wie eine bil­lige Di­ode) und da­mit zu er­höh­ter Ver­lust­leis­tung und nie­dri­ge­rer Bat­terie-Le­bens­dauer füh­ren. Der NTD2955 liegt da mit sei­nen ty­pi­schen 0,155 Ω doch we­sent­lich bes­ser, so dass sich die Geld­ver­schwen­dung doch ir­gend­wie (oder ir­gend­wann) ren­tiert.

Der MOS­FET hat kaum Span­nungs­abfall im Durch­lass-Be­trieb (bei 200 mA etwa 36 mV ent­spre­chend et­wa 7 mW) und zieht prak­tisch kei­nen Strom bei Ver­po­lung und ist da­mit bis zu sei­ner Durch­bruch­span­nung von 60 V si­cher und da­mit si­che­rer als der Span­nungs­reg­ler, der nur 40 V aus­hält. Ka­putt machen kann man na­tür­lich al­les... Mit die­sen Da­ten ist er ei­ner simp­len Di­ode je­den­falls haus­hoch über­le­gen, spart er doch rund 8% Bat­terie bei re­lativ ge­rin­gen Mehr­kos­ten.

Um das noch­mal in der Praxis zu er­läu­tern, aus­ge­hend von ei­ner re­alis­ti­schen Bat­terie-Le­bens­dauer von ei­nem Jahr hält sie mit die­ser Schal­tung im­mer­hin ein Mo­nat län­ger!

Fi­nan­ziell ist das zwar (zu­min­dest zur Zeit) kein Ge­winn, öko­lo­gisch aber wahr­schein­lich schon!

Die Ze­ner­dioden D1 und D2 be­gren­zen da­bei die Gate-Span­nun­gen auf zu­läs­sige Wer­te. Wenn si­cher­ge­stellt ist, dass nicht mehr als 20 V (die ma­xi­ma­le Gate-Source-Span­nung) an­ge­schlos­sen wer­den könn­ten Sie die­se auch weg­las­sen. Aber sie sind auch nicht wirk­lich teu­er. Viel­leicht nimmt doch je­mand ein 24 V-Netz­teil das mit 26 V am obe­ren En­de liegt und aus­reicht um das Gate durch­zu­bal­lern... Bet­ter sa­fe than sor­ry!

Debug-Schnitt­stel­le

Lei­der sind die Pins der be­vor­zug­ten De­bug-Schnitt­stel­le, RS232, be­reits an­der­wei­tig be­legt. Ein­zig das SPI-In­ter­face ist zu­gäng­lich. So­gar kom­fort­abel über ei­nen 6-Pin-Jum­per! Das reicht aber für De­bug-Aus­ga­ben völ­lig aus. Wir schicken al­le Bytes ein­fach über SPI und ihr Logic-Ana­lyzer (im ein­fachs­ten Fall ein Saleae Logic 8, der nicht nur gut aus­sieht son­dern wirk­lich je­den Eu­ro des An­schaf­fungs­prei­ses wert ist) kann die Bytes de­co­die­ren und de­zi­mal oder als HEX an­zei­gen.

Ein­ga­ben sind al­ler­dings pro­ble­ma­tisch, zu­ge­ge­ben... wa­ren aber bis­her auch nicht wirk­lich nö­tig.


1 Dies ist nur eine Si­mu­la­tion und wur­de von mir nie wirk­lich auf­ge­baut. Er­fah­rungs­ge­mäß trifft die Si­mu­la­tion die Re­ali­tät aber im Nor­mal­fall recht ge­nau.