Forum: Mikrocontroller und Digitale Elektronik Ist es Normal dass ein Programieradapter 150mA braucht?


von Alexander _. (bastlwastl)


Lesenswert?

Tag Leute

Mir ist aufgefallen dass mein Programieradapter (Hab ihn nach dem
Schaltplan der im AVR-Tutorial verlinkten Seite nachgebaut.) bis zu
150mA zieht?

Dies geschieht vor allem wenn ich den Programieradapter und die
Versorgung angeschlossen habe und das Programierprogramm (yaap) noch
nicht gestartet wurde.

Ist dass normal oder muß ich mir sorgen machen?

Noch eine kleine Frage zu den Fuses.

Ich hab das Datenblatt durchgearbeitet aber ich hab noch Fragen.


Ich werwende einen 4Mhz Keramik Resonator mit integrierten
Kondesatoren.

Hab ich dass so richtig verstanden dass aufgrund der Tabelle 4
CKSEL1..3 unverändert aktiviert bleiben und nur CKOPT aktiviert wird?

Die Tabelle 5 verstehe ich nicht ganz.

Welche der Einstellungen muß ich da verwenden?
Ich vermute mal dass es eine der Einstellungen mit dem Zusatz (2) ist.
Aber welchen muß ich verwenden?

Die BODEN Fuse die im Tutorial gesetzt wurde ist nur dazu da um die
Spannungsüberwachung von 2,7V auf 4V anzuheben.
Oder sehe ich dass falsch?

Wozu wurde eigentlich im Tutorial die BODENLEVEL(0) Fuse gesetzt?

mfg Alex

von Niels H. (monarch)


Lesenswert?

a.) Nein, nicht gut. 150mA erscheint mir wahrhaft viel. Aber das die
Schaltung einen bächtig mösen Fehler hat, erwähnte ich ja bereits.

b.)bem Mega8 liegt CKSEL für externen Resonator in einem ganz anderen
Bereich wie der interne Oczillator. Um externen 4MHz Resonator zu
selektieren, sollte cksel 1-3 gesetzt sein, genau wie ckopt. cksel0 und
sut01 bestimmen die startup-zeit.

c.) "BODEN" steht für Brown-Out-Detection-ENable. Das ist der
Schalter. BODENLEVEL legt fest, bei welcher Spannung diese detection
zuschlagen soll.

von TravelRec. (Gast)


Lesenswert?

Hast´n TTL-IC für die Programmer-Schaltung benutzt? Nimma ´nen HC / HCT,
der braucht entschieden weniger Saft (1mA statt 95mA).

von chris (Gast)


Lesenswert?

@ niels :
was is denn das für ein Fehler bei a) ?
  Danke
    chris

von Niels H. (monarch)


Lesenswert?

Am 74 244 sind Ausgänge paralell geschaltet. Das ist soziemlich der
heftigste Fehler, den man in der digitaltechnik machen kann.

Durch Fehler auf der Platine, die die Eingänge untschiedlich ansteuern
und unterschiedlichen Durchlaufzeiten der Gatter können hier
kurzschlüsse entstehen, die den Baustein längerfristig schaden.
Zwischen den Ausgängen wird ständig ein Ausgleichstrom fliessen, da die
Ausgänge nie das selbe Potential haben. Auch das wirkt sich
längerfristig zerstörend auf die Bausteine aus.

von chris (Gast)


Lesenswert?

hmm, ich wollte mir jetzt auch das Atmel AVR ISP für STK200 und STK300
von der Seite http://rumil.de/hardware/avrisp.html bauen?
Aber wenn du sagst das es falsch ist ?
   chris

von Niels H. (monarch)


Lesenswert?

Wenn jemand mal ne Erklärung dafür hat, warum hier versucht worden ist,
mit meheren Ausgängen auf die SCK und RESET einzupreschen....

Ich würde einfach nur ein Gatter pro Steuerleitung verwenden. Also Pins
2,4,7,5,13,15,16,18 abscheiden ;)

von Rick Dangerus (Gast)


Lesenswert?

@Niels:

Abschneiden. Hmm. Dann oszilliert die Schaltung möglicherweise rum. Die
Eingänge würde ich schon beschalten. Entweder fest auf ein bestimmtes
Potential oder eben parallel. Da mit den Ausgängen könntest Du recht
haben.

Rick

von Winfried (Gast)


Lesenswert?

> Am 74 244 sind Ausgänge paralell geschaltet. Das ist soziemlich der
> heftigste Fehler, den man in der digitaltechnik machen kann.

Das kann man schon tun, wenn die Eingänge ebenso verbunden sind und es
sich um den gleichen Chip handelt. Man sollte es aber nicht tun, wenn
nicht unbedingt nötig, weil die Umschaltströme kurzzeitig sehr hoch
sein können.

Warum das hier gemacht wurde, ist mir auch schleierhaft. Ich würde auch
die Ausgänge auftrennen, nur einen verwenden.

von Alexander _. (bastlwastl)


Lesenswert?

Zur Erklährung.

Ich verwende den Adapter wie er auf
http://rumil.de/hardware/avrisp.html gezeigt wird.

Ich verwende den 74HCT244.

Der Adapter funktioniert auch.
(Bis jetzt.)

Der Adapter hat diesen Verbrauch wenn ich die Versorgung einschalte
bevor das Programm Yaap gestartet wurde.
(Die Geräte am Paralellport sollten ja schon eingesteckt werden bevor
man den Rechner hochfährt.)

Ist in der oben genannten Schaltung noch ein Fehler oder reicht es wenn
ich die parallelgeschaltenen Eingänge(4,6,15,17) auf Masse lege und die
Ausgänge(3,5,14,6) abtrenne?


Ich habe noch eine Frage zu den Fuses.

Welche startup-Zeit ist beim ATmega8 mit einem 4MHz Resonator am
Vernünftigsten?

Vielen Dank für eure bisherige Hilfe.

mfg Alex

von Niels H. (monarch)


Lesenswert?

a.) Wo genau misst du die 150mA?

b.) Die StartUp-Time ist eigentlich völlig egal, solange du nicht
darauf angewiesen bist, das der Systemstakt bei Programmstart schon
super stabil sein muss. Das ist eigentlich nur sehr selten nötig. Wenn
es dennoch so sein sollte, fährst du natürlich mit der grösstmöglichen
Einstellung am besten, was laut Tabelle auf Seite 26 der Mega8-Doku,
65ms (SUT01=11) ist.

Wenns denn nicht unbedingt von Nöten sein sollte, würde ich SUT aber
auf den defaultwerten lassen.

von Alexander _. (bastlwastl)


Lesenswert?

Die Messe ich genau nach dem Spannungsregler.
(Den ich als Modul auf meinem Steckbrett angeschlssen habe.)

Der ATmega8+LED's+Schalter mit Pullwiderstände braucht ca. 3mA, da
braucht warscheinlich der Programieradapter den Saft.

Und dass der Strom nur fließt bis das Programm yaap gestartet wurde,
bin ich mir fast sicher dass es am Programieradapter liegt.

Genauer messen kann ich zur Zeit nicht, da ich gerade dabei bin das
Vergussmaterial abzutragen um den Fehler in der Schaltung zu beheben
auf den ich hingewiesen wurde.

Ich werd mal schaun ob der Verbrauch immer noch so hoch ist wenn ich
den Fehler am Programieradapter behoben habe.

Danke für deinen Hinweis bezüglich der start up time.

mfg Alex

von chris (Gast)


Lesenswert?

hallo,
ich hab das gleich Problem.
Allerdings habe ich schon die obigen Tips befolgt also die restlichen
Eingänge auf Masse und die Ausgänge unbeschaltet.
Was noch bedenklich ist:
Bei mir liegts irgendwie an dam Widertand zwischen VCC und RESET.
Lasse ich den 10k widerstand weg und mach eine brücke zwischen RESET
und VCC, ist s bei 60mA.
Wenn ich ein 7,5k Widerstand zwischen VCC und RESEt machen sind es
150mA.
Außerdem:
wenn der Programmer an den Pc angeschlossen läuft mein Programm
trotzdem obwohl meine eigentliche Vcc abgeschaltet ist.(mit 7,5kQohm
zwischen RESET und Vcc)
Es sollen nur 3 LED's (mit je 1k VorWiderstand) am PORTB blinken.
Sie blinken nur mit parallelPort weniger hell.
  Chris

von Erwin (Gast)


Lesenswert?

Hallo,

bei mir ist das auch so.
Ich dachte immer das kommt davon dass der noch nicht von der
Programmiersoftware übernommene LPT manche Pins
so treibt dass der 244 evtl gegen den schon laufenden
AVR (bei dem die Pins als Ausgang definiert wurden)
arbeitet. Die Programmiersoftware setzt dann bei
ihrem Start den 244 auf hochohmig -> Strom geht runter.

Ist aber nur ne wilde Vermutung, garnichts überprüft ;-)


Erwin

von Niels H. (monarch)


Lesenswert?

Ich habe die Schaltung leider hier nicht real vorliegen aber meine
erfahrung sagt mir, das 150mA für die 3 Bauteile defivinitiv zu viel
ist, gerade weil die HCT-TTLs eigentlich super sparsam sein sollen und
der paralellport eigentlich für solche Ströme nicht ausgelegt ist.

Irgendwas stimmt mit der Schalung nicht, davon bin ich mitlerweile
ziemlich überzeugt.

von TravelRec. (Gast)


Lesenswert?

Da müssen doch irgendwo Pegel aufeinanderlaufen, sonst könnte es nie zu
diesen Stromflüssen kommen. Ich würde mal den LPT (sämtliche Leitungen
außer Masse) über 220 Ohm-Widerstände mit dem Adapter verbinden, nur
mal testweise. Dann mal die Stromaufnahme messen.

von Alexander _. (bastlwastl)


Lesenswert?

Jetzt binn ich endlich dazugekommen am Programieradapter
weiterzumachen.

Das Ergebnis:

Wie zu erwarten wahr ist der Strom geringer wenn man die Widerstände
anschließt.

Weiters habe ich herrausgemessen dass dieser Strom nur fließt wenn
3(dec) an den Datenpins des LPT ausgegeben wird.
Wenn aber von yaap 66(dec) bzw. 01000010(bin) an den Datenpins des LPT
ausgegeben wird fließt ein kaum nennenswerter Strom.

Kann mir eventuell sagen wo der Fehler zu suchen ist?
Soll ich den Programieradapter etwa erst einstecken/einschalten nachdem
das Programm yaap eingeschalten wurde obwohl man die Geräte vor dem
Hochfahren an den LPT anschließen soll?


Wie schaut es es eigentlich aus wenn man den Programieradapter zwar am
LPT angeschlossen hat, aber die Versorgung noch nicht angeschlossen
oder den Programieradapter nich in die Schaltung gesteckt hat?

Da liegen doch diverse Pegel am Treiber IC ohne dass dieser versorgt
wird.

Hält dass der Treiber IC überhaupt auf Dauer aus?

mfg Alex

von Alexander _. (bastlwastl)


Lesenswert?

Ich hab mich verschrieben.

Ich meinte dass der Datenpin 3 ->dec>4 beim Starten auf high gesetzt
wird.

Dass bedeutet dass nur Enable2 (Pin 19 des Treiberbausteins) auf high
gesetzt wird und Enable1 (Pin 1 des Treiberbausteins) auf low.
Damit sind SCK, MOSI und Reset aktiviert.

Dass kann doch nicht der Grund sein dass 150mA fließen oder?

mfg Alex

von Thomas O. (Gast)


Lesenswert?

vielleicht wird dieses Bit durch den entsprechenden Parallelport-Mode
aktiviert, probier mal im Bios nen andere Modus aus.

von thkais (Gast)


Lesenswert?

Ich habe festgestellt, dass das Betriebssystem beim Hochfahren auf dem
Parallelport rumklappert, wahrscheinlich um einen angeschlossenen
Drucker zu finden. Erst nach einmaligem Starten von Ponyprog ist z.B.
der Reset auf high.

von Thomas O. (Gast)


Lesenswert?

vielleicht läßt sich das auch über einen bestimmten Dienst deaktivieren

von Alexander _. (bastlwastl)


Lesenswert?

Die Werte die am LPT ausgegeben werden kann man leider nicht verändern.
(Außer man steigt auf ein Betriebssystem um, dass nicht von Mikrosoft
ist.)

Zur Funktionskontroller werden kurz nach dem Einschalten alle
Ausgangsregister auf High gesetzt.

Danach wird der 3. Datenpin (Pin 4 des LPT) auf high gesetzt um
eventuell angeschlossene Drucker, Scanner,... zu initialisieren.

Diesen Wert während des Bootvorgangs mit eigenen Programmen
zurückzusetzen bringt nichts, da dieser Pin während des Bootens immer
wieder gesetzt wird.

Man kann den LPT erst "ausschalten" wenn das Betriebssystem fertig
hochgefahren ist.

Das funktioniert aber nur bis Win98, weil man bei allen auf NT
basierenden Betriebssystemen eigene Treiber für den direkten
Portzugriff benötigt werden.

Diese Treiber stellen normalerweise nachdem sie beendet werden wieder
den Schaltzustand am LPT her, den er vor dem Initialisieren des
Treibers hatte.

Und solange der Treiber aktiv ist, kann kein anderer Treiber/ kein
anderes Programm auf die Schnittstelle zugreifen.

Soviel mal zum low-level herumgeschalte des LPT's.


Ihr meint also auch dass die Schaltung auf
http://rumil.de/hardware/avrisp.html bis auf die parallel geschaltenen
Ausgänge in Ordnung ist?

Weis jemand von euch ob es den Treiber IC beschädigt wenn an den
Eingängen Stannung anliegt wenn er nicht versorgt wird?

Hat zufällig jemand von euch gemessen ob während des Programiervorgangs
auch so viel Strom fließt?
Ich hab nämlich kein Oszi und ein Multimeter ist zu träge um etwas
gescheites anzuzeigen.

Kann mir wer weiterhelfen oder muß ich mir ein fertiges Programiergerät
kaufen?

von Alexander _. (bastlwastl)


Lesenswert?

Ich bin schon langsam an Verzweifeln.

Kann mir keiner einen Tipp geben wo der Fehler liegen könnte?

Oder kennt eventuell einer eine Seite wo ein ISP Progger ohne Fehler
gezeigt wird?

Er sollte nicht durch die parallele Schnittstelle versorgt werden da
ich auch mit meinem Laptop arbeiten will.

Ein Progger mit Treiber würde mir gefallen.

Nur wenn er 150mA braucht gefällt mir dass weniger.

mfg Alex

von TravelRec. (Gast)


Lesenswert?

>>Ein Progger mit Treiber würde mir gefallen.


Gehst Du auf www.reichelt.de, kaufst einen original ATMEL AVR-ISP, dann
bekommste das aktuelle AVR-Studio und sämtliche Datenblätter gratis dazu
und kostenloses Update gibt´s per Internet. Noch Fragen?!

von Alexander _. (bastlwastl)


Lesenswert?

Wo bekomme ich als Österreicher so ein Teil zu einem vernünftigen
Preis?

Wenn man sich die AGB's von Reichelt durchliest bekomme ich den
Verdacht dass sie nicht gerne nach Österreich verkaufen.

Bei ELV haben sie sowas nicht, RS-Components ist um fast 20Euro teurer
als Reichelt und Conrad verlangt sowiso immer mindestens das Doppelte
wie alle anderen.

von Thomas O. (Gast)


Lesenswert?

mein Vorschlag: Lass es dir von jemanden in Deutschland bestellen, der
es dann nach Österreich weiterschickt.

von thkais (Gast)


Lesenswert?

Moin, ich habe meinen Adapter auch mal nachgemessen. Ich benutze
Ponyprog mit der entsprechenden Schaltung, die aber (zumindest auf den
ersten Blick) identisch mit der von euch ist, nur dass ich nach den
schon verschiedentlich geäußerten Bedenken die parallelgeschalteten
Outputs weggelassen habe (die Inputs sind nach wie vor angeschlossen).
Mein uralt-Adapter ist noch mit einem 74LS244 bestückt, braucht um die
25mA. Auch wenn ich 0x03 oder 0x04 auf dem Parallelport ausgebe.
Bei Einsatz eines 74HCT244 (HC habe ich leider momentan nicht da) geht
der Strom auf weniger als 1mA zurück und ändert sich auch nur
unwesentlich, wenn ich auf dem Port verschiedene Werte ausprobiere.
Aus welchem Grund auch immer, ich kann dieses Verhalten nicht
nachvollziehen, also muss die Schaltung an sich in Ordnung sein.
Bei meinen Tests hatte ich keinen AVR angeschlossen, sondern nur den
reinen Adapter getestet.
Mal eine andere Frage: Wo mißt Du den Strom? In der 5V-Leitung oder in
der GND-Leitung?

von Alexander _. (bastlwastl)


Lesenswert?

Ich habe jetzt endlich den Fehler gefunden.

Ich war schuld dass dieser Fehler aufgetreten ist.

Ich hatte ein paar mal den Rechner mit angeschlossenem Adapter
verwendet ohne dass ich diesen an die Versorgung gehängt habe.

Dass vedeutet dass an den Eingängen des Treiberbausteins Spannung
angelegen ist ohne dass er an der Versorgung angeschlossen wahr.

Dass hat mir der Treiberbaustein wies aussieht krumm genommen.

(Inzwischen braucht dieser Programieradapter keinen Strom mehr weil der
Treiberbaustein tot ist.)

Ich überleg mir wie ich die Schaltung verändern muß das dass nicht mehr
passiert.

mfg Alex

von Phlibi (Gast)


Lesenswert?

Hi,

ich kann den Fehler nicht nachvollziehen. Ich hab' meinen Adapter
genau nach dem Layout auf dieser Seite geätzt und einen 74HCT244
genommen. Die Stromversorgung zieht mein Test-Board vom USB, da hätte
ich es also sofort gemerkt, wenn der 150mA brauchen würde. Und den
Adapter lasse ich meistens einfach am PC angeschlossen, ob ich da jetzt
einen Controller dran hab' oder net. Und es tut alles noch. Entweder
hab' ich da einfach Glück gehabt, oder ihr macht etwas falsch :D

von Alexander _. (bastlwastl)


Lesenswert?

Dem USB kann man unangemeldet zwischen 100mA und 200mA entnehmen.
Angemeldet liefert der USB sogar 500mA.

Dass würde also nicht unbedingt etwas ausmachen wenn dein Adapter 150mA
zieht.

Wenn dein Programieradapter über den USB mit Strom versorgt wird sobald
der Rechner eingeschaltet wird kann eigentlich nicht viel schiefgehen.

Soviel ich gelernt habe sollte man an TTL-Bausteine keine Signale
anlegen solange sie nicht versorgt werden.

Es kann aber sein dass dein Treiberbaustein gegen solche Fälle
abgesichert ist.

Ich habe meinen Treiberbaustein nicht durchgetestet bevor ich ihn
eingebaut habe, desswegen könnte ich auch einen defekten Baustein
erwischt haben.

Ich hab mir jetzt einen eigenen Programieradapter ausgeknobelt.
Ich werde in einem neuen Beitrag nachfragen ob ich Fehler gemacht
habe.

mfg Alex

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.