PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [ERLEDIGT] AVR Brenner ab 2V ?



PICture
16.07.2011, 02:23
Hallo!

Ich, als Anfänger, möchte mir einen Brenner für AVR's basteln, der ab 2V Versorgungsspannung (VCC) einwanfrei funnktioniert und darf auf der Entwicklungsplatine permanent hängen (z.B. für ATtiny 84V-10PU). Wegen eigenen Kapazitäten der Kabeladern gegen GND um 300 pF sind jeweils 5 Treiber (Ein- und Ausgang) paralell geschaltet.

Anstatt Treiber aus 74HCT... Serie möchte ich aus 74HC... verwenden. Ich habe in Datenblätter nix über min. Spannung beim flaschen gefunden, deshalb meine Bitte um Bestätigung, damit ich nicht um sonst bastle (geplannter und vereinfachter Schaltplan im Code). Bei Entwicklungsplatine (ohne Akkus) kann ich natürlich VCC1 mit VCC2 per zusätzliche Leitung verbinden.

Ich freue mich auf Eure praktische Erfahrungen. :)


VCC1(Netzteil) VCC2(AVR)
+ +----+ +
| | | |
+-----------+ .-. +--+
| __ | _ | | |
+-|__|-+ .----. / \ - .----.
_____ | | | |\ | | | | | |\ | _____
LPT RESET <--------S<--+---|X>-------------+--+| >----> AVR RESET
| | |o | | | |||o |
| __ | | | | | || | |
+-|__|-+ |+-+ | | | |+-+ |
| | |||\ | | | |||\ |
LPT MOSI <--------S<--+---|X>-----------------| >----> AVR MOSI
| |||o | | | |||o |
| __ || | | | | || | |
+-|__|-+ |+-+ | | | |+-+ |
| | |||\ | | | |||\ |
LPT SCK <--------S<--+---|X>-----------------| >----> AVR SCK
| |||o | | | |||o |
| || | | | | || | |
| |+-+ | | | |+-+ |
| || /|| | | || /||
LPT MISO <-------->S------< |-----------------<X|----> AVR MISO
| || o|| | | || o||
______ | || | | \_/ || |||
LPT ENABLE <--------S<--+--+-+ | | |+-+ |
| __ | '----' | '----'
+-|__|-+ | | |
LPT GND <-----------------+---------+---------+-----> AVR GND

VCC1 = VCC2 (VCC1 einstellbar) -S<- = Schottky

Alle Treiber aus 3x74HC244, wobei X=5 paralelle


(created by AACircuit v1.28.6 beta 04/19/05 www.tech-chat.de)

Besserwessi
16.07.2011, 10:27
Im Prinzip ist vorgesehen das die Spannung für den normalen Betrieb auch zum programmieren ausreicht. Es gibt aber ein paar Chips wo die Spannung doch nicht ganz so niedrig sein darf. Da müßte man ggf. in den Errata Files nachschauen, oder gleich 2,7 V als Versorgung nehmen - wenigstens zum programmieren.

Bei der vorgeschlagenen Schaltung sehe ich noch ein paar Probleme: Die Pegelwandlung vom hohen zum niedrigen Pegel klappt so wohl eher nicht (MISO Leitung). Es ist auch nicht wirklich sinnvoll gleich 5 Treiber parallel zu schalten, nur weil die Leitung etwas mehr Kapazität hat. Die Kapazität ist bei einer Leitung eher das kleinere Problem, das Problem ist dann eher die Laufzeit und die damit verbundenen Überschwinger, wenn die Flanken zu steil werden.

Es ist sogar schon fast sinnvoll an die Treiber-ausgänge noch zusätzliche Kapazitäten zu hängen um die Flanken langsamer zu machen - die Kabelkapazität hilft einem hier nicht !

PICture
16.07.2011, 15:20
Hallo Besserwessi !

Vielen Dank für deine Analise, mit der ich aber nicht ganz einverstanden bin. Ich möchte bloss ATtiny's aus der Familie V für meine Spielzuege bei zwei 1,2 V Akkus programmieren und die andere AVR's interessieren mich noch nicht.

Ich habe versucht keine Pegelwandlung in meine Schaltung zu haben, deshalb verstehe ich deine Aussage darüber nicht (warum gerade MISO ? ). Was meinst du genau damit ? Ein Zeitdiagram der Signale wäre mir am verständlichsten.

Mir ist noch unbekannt mit welcher Frequenz die AVR's programmiert werden. Bei paralellem schalten von mehreren Treiber verringert sich die Ausgangsimpedanz, was bei bestimmter fester Lastkapazität die eventuelle Überschwinger eher reduziert. Ausserdem haben die Treiber Eingänge mit Hysterese, was das Problem zusätzlich reduziert und angeblich sogar beseitigt. Bei ca. 1,5 m langen Kabel ist die Laufzeit zu vernachlässigen. Für mich hat bisher keine zu steile Flanken gegeben, im Ggegenteil, vor allem bei sehr schnellen digitalen Schaltungen.

Vielleicht schreibt noch jemand was aus der Praxis, sonst fange ich bald zu basteln an. :D

Besserwessi
16.07.2011, 18:36
Von ISP Interface gehen die Leitungen reset, ClK und MOSI vom Programmer mit der eher höheren Versorgung zum µC mit der kleineren Versorgung. Da ist die Pegelwandlung mit der Shottkydiode und dem Widerstand kein Problem. Die Leitung MISO geht aber von der eher kleineren Spannung (µC) zum PC. Da braucht man irgendeine Form der Pegelwandlung, denn ein 2V Signal wird von einem 74HC244 mit 5 V als Versorgung nicht als High erkannt. Ein Möglichkeit wäre ggf. den einen 74HC244 mit etwa 3 V zu betreiben - ist aber immer noch knapp. Eine andere Möglichkeit ist halt ein 74HCT244, und dann die Pegelwandlung mit Dioden auf dem Weg zum µC.

Bei einem langen nicht Abgeschlossenen Kabel kann es zu Reflexionen kommen 1,5 m sind da ggf. schon ein Problem, wenn die Flanken steil sind. Bei 1,5 m sind die typischen 5ns Anstiegszeit bei 74HC... schon reichlich steil. Entsprechend sollte die Leitung vom Programmer zum µC lieber unter 30 cm bleiben.
Die AVRs haben eine,wenn auch kleine, Hysterese am Eingang und sind relativ unempfindlich auf langsame Flanken. Kritisch ist ohnehin nur die CLK Leitung - das Timing entspricht dem SPI Interface. Die Frequenz für das Programmieren liegt üblicherweise unter 250 kHz (z.B. 200 kHz), denn sie muss unter 1/4 des Taktes des µC liegen. Schneller geht es nicht mehr mit dem Takt von rund 1 MHz eines neuen AVRs.

Für das Kabel am LPT ist ein längers Kabel ggf. weniger Problematisch, wenn der PC keine so steilen Flanken erzeugt. Der Puffer für das CLK Signal sollte ggf. auch etwas Hysterese haben.

PICture
16.07.2011, 19:16
Hallo!

Die Spannungen VCC1 und VCC2 werden immer gleich eingestellt und bei dem rechten Treiber IC am AVR sollte doch der Ausgang mit /RESET zwischen "aktiv" bzw. "hochohmig" umgeschaltet werden, oder habe ich da ein Fehler ?. Ich werde zuerst die geplannte Schaltung aufbauen und praktisch ausprobieren. Erst danach kann ich über Fakten diskutieren.

Ich freue mich, dass du bisher keine erhebliche Fehler in der Schaltung siehst und bedanke mich sehr fürs Anschauen. :D

Besserwessi
16.07.2011, 19:59
Wenn man auch den 2. Treiber mit nur 2 V betreibt, wird es ggf. für den PC knapp die 2 V noch als high zu erkennen. Wenn man die gleiche Versorgung nimmt, ehe ich keinen Sinn darin 2 mal durch die 74HC244 zu gehen, einmal reicht eigentlich auch.

Bei der Leitung MISO ist die Diode in der Verbindung zum PC wohl eher falsch.
Jetzt noch einen neuen LPT ISP Programmer zu entwerfen ist irgendwie etwas fehl am Platz - da ist es mehr die Frage einen guten Plan zu finden, der auch bis z.B. 2 V geht. So etwas müsste es eigentlich schon geben.

PICture
16.07.2011, 20:34
Fragen im unserem Forum lohnt sich immer. :)

Der Treiber IC am AVR ist nur zur Isolierung vom sonst lastenden Kabelkapazitäten vorgesehen. Wenn das Kabel nach jedem Flaschen abgezogen wäre, ist er überflüssig.

Tatsächlich ist die Diode am MISO falsch herum, vielen Dank, werde ich gleich umdrehen und mit Dioden an MISO und VCC1 "spielen" müssen. Ich habe aber bisher leider nix fertiges gefunden, was meinen Erwartungen entspricht, deswegen finde ich etwas neues zu basteln für mich schneller.

Wenn jemand etwas ausprobiertes für mich hätte, bin ich immer sehr dankbar ! :)

Du hast sicher Recht Besserwessi, ich werde im schlimmsten Fall, wenn Ergebnis meiner "Bastlerei" negativ endet, eine Umschaltung der Versorgung für AVR (wie bei PIC's) anwenden müssen, was viel einfacher ist.

Besserwessi
16.07.2011, 21:53
Ich kann jetzt auch gerade keine passende Schaltung finden. www.avrfreaks.net (http://www.avrfreaks.net) ist auch gerade außer Gefecht.

Wenn man schon 2-State Treiber hat, kann man die Funktion auch nutzen. Wenn nicht vom Programm unterstützt, dann per Schalter von Hand. Dann braucht man das Kabel nicht abzuziehen. Ein häufiges Umstecken ist nur ein unnötiges ESD-Risiko - gerade am ISP Port hat man oft keinen extra ESD Schutz.

Zwischen µC und dem PC braucht man in der Regel nur 1 etwas längeres Kabel, wenn überhaupt. Das wäre in der Regel das LPT kabel bis zum Porgrammer. Für die Verbindung Programmer zur Zielschaltung kann man bei unter 40 cm bleiben und kommt dann ohne extra Treiber aus.

Meine Wahl wäre folgendes: Einen 74HC244 mit der Spannung vom µC zu betreiben. Zum LPT Port kommt dann die Pegelwandlung: Vom LPT zum HC244 entweder mit Shottkydiode und Pullup (ggf. auch nur mit einem Widerstand von z.B. 1-2 K). Für das CLK Signal wäre ein RC Filter und etwas Hysterese angebracht. Die Hysterese kann man durch Rückkopplung vom Ausgang zum Eingang des HC244 erhalten, so wie bei einer Bus-hold Schaltung. Am Ausgang des HC244 wäre für die CLK Leitung noch eine extra Last (ca. 50-100pF) und ein Widerstand von vielleicht 50 Ohm vor dem Kabel sinnvoll. Das sollte für eine passende Anstiegszeit von etwa 10-20 ns sorgen und Reflexionen am Kabel nicht zu groß werden lassen.

Das MISO Signal geht auch erstmal durch den HC244 und dann kommt eine Pegelwandlung per Transistor in Basisschaltung mit Pullup von 5 V. Die 5 V kann man eventuell direkt vom LPT holen, einfach von einem sonst nicht genutztem PIN. Das ist nicht ideal, spart einem aber die extra Versorgung. Wie man das mit den Enable Leitungen macht müsste man noch mal sehen, ggf. wäre ein HC367 oder HC125 die bessere Wahl. So wie ich es sehe braucht man für CLK, MOSI, Reset und CLK je 1 Treiber mit Enable, und für CLK und MISO einen der immer aktiv ist. Da sollte der HC244 oder der etwas kleinere HC367 gerade reichen. Wenn man ein 2. IC dazu nimmt, dann eher ein HC14 als Schmidtrigger für CLK und ggf. MISO.

Noch brauchbarer Link für LPT Programmer:
http://elm-chan.org/works/avrx/report_e.html

p.s. Bisher hatte ich mit dem dort gezeigten Programmer (STK200 bufferd mit dem 74HC125) keine Problem, geht aber nicht für 2 V. (http://elm-chan.org/works/avrx/report_e.html)

PICture
16.07.2011, 22:19
Vielen Dank für deine Mühe und Vorschläge, ich möchte aber zuerst etwas neues, egal mit welchem Ergebnis, versuchen. Bei nomaler Diode (ca. 0,7 V) und VCC2 = 2,4 V könnte es mit "H" Pegel ca. 3,1 V am LPT klappen. Ich weiss leider nicht was bei meinem Lapi im LPT steckt, möchte es aber ausprobieren.

Wenn die geplannte Schaltung nicht zufriedenstellend funktionieren würde, werde ich sicher nicht mehr darüber denken, sondern baue ich etwas ausprobiertes nach. Ich leide aber wahrscheinlich an bisher unbekante und unheilbare Berufskrankheit.

Weil der einziger zweifelhafter Anschluss MISO am LPT ist, möchte es ganz einfach mit kurzem Kabel (um 100 pF) und nur einem IC 74HC244 probieren (sehe Code). Wenn es nicht klappt, brauche ich damit nicht weitermachen. Zuerst muss ich aber gewünschtes Entwicklungboard basteln. ;)



VCC1(Netzteil) VCC2=2,4V(AVR)
+
|
+-----------+
| __ | _
+-|__|-+ .----. / \
_____ | | | |\ | | | _____
LPT RESET <--------S<--+---|X>------------------------> AVR RESET
| | |o | | |
| __ | | | | |
+-|__|-+ |+-+ | | |
| | |||\ | | |
LPT MOSI <--------S<--+---|X>------------------------> AVR MOSI
| |||o | | |
| __ || | | | |
+-|__|-+ |+-+ | | |
| | |||\ | | |
LPT SCK <--------S<--+---|X>------------------------> AVR SCK
| |||o | | |
| || | | | |
| |+-+ | | |
| || /|| | |
LPT MISO <-------->|------< |------------------------> AVR MISO
| || o|| | |
______ | || | | \_/
LPT ENABLE <--------S<--+--+-+ | |
| __ | '----' |
+-|__|-+ | |
LPT GND <-----------------+---------+---------------> AVR GND

VCC1 = VCC2 (VCC1 einstellbar) -S<- = Schottky

Alle Treiber aus 74HC244, wobei X = 2 paralelle

(created by AACircuit v1.28.6 beta 04/19/05 www.tech-chat.de)

Searcher
17.07.2011, 11:44
Vielleicht schreibt noch jemand was aus der Praxis, sonst fange ich bald zu basteln an.

Hallo PICture,

als ich meinen LPT-Programmer zusammenglötet habe, dachte ich nur am Rande daran, was passieren könnte, wenn der Treiber IC mit niedrigerer Spannung als 5V versorgt wird. Es gibt da keine Pegelwandlung oder sonstigen Schutz des 74HCT wenn am Eingang eine höhere Spannung als VCC auftritt. Aufgrund Deines Entwurfs, habe ich angefangen zu verstehen zu versuchen, warum meiner auch mit zB 2,6Volt Versorgung vom Board noch gut programmiert. Ich habe nicht wirklich aufgrund meines beschränkten Elektronik Wissens eine Erklärung gefunden.

Infos, die ich fand war: Input Clamp Dioden eine 74HC vertragen 20mA. Druckerport mit TTL Pegel von 5V schafft nicht mehr als 10mA zu sourcen, eher viel weniger.

Bisher ist nichts kaputt gegangen - weder Druckerport noch 74HCT.

Gruß
Searcher

PICture
17.07.2011, 16:08
Hallo Searcher!

Vielen Dank für deinen praktischen Bericht, aber das Problem mit AVR's hat sich für mich wegen Software schon erledigt. Ich werde auch hardwaremässig nicht mehr weitermachen. Ich bin eben gewöhnt nach meiner Feststellung von nicht leicht überwindbaren Problemen schnell aufzuhören um Zeitverlust zu minimieren.

Deswegen möchte ich mich bei allen Helfer, vor allem dem Besserwessi, herzlich bedanken ! :)