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
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.
Hast´n TTL-IC für die Programmer-Schaltung benutzt? Nimma ´nen HC / HCT, der braucht entschieden weniger Saft (1mA statt 95mA).
@ niels : was is denn das für ein Fehler bei a) ? Danke chris
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.
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
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 ;)
@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
> 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.
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
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.
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
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
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
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.
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.
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
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
vielleicht wird dieses Bit durch den entsprechenden Parallelport-Mode aktiviert, probier mal im Bios nen andere Modus aus.
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.
vielleicht läßt sich das auch über einen bestimmten Dienst deaktivieren
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?
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
>>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?!
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.
mein Vorschlag: Lass es dir von jemanden in Deutschland bestellen, der es dann nach Österreich weiterschickt.
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?
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
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.