Forum: Mikrocontroller und Digitale Elektronik Atmega 5V - SD 3,3V mit invertiertem Puffersignal


von Martin Zippel (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Freund des gepflegten Kopfzerbrechens!

Ich möchte einen Atmega32 eine SD-Karte beschreiben lassen.
Die ISP-Schnittstelle vom PC soll erhalten bleiben, so dass ich direkt 
auf das Board programmieren kann, ohne den Atmega32 zu entfernen. Da 
ergibt sich wieder das leidige Problem, dass der Atmega 5V nutzt, die 
SD-Karte aber nur 3,3V.
Wichtig ist in diesem Falle, dass der Aufbau mit drei oder vier 
Batterien betrieben werden soll (und das möglichst lang, also auch bei 
sinkender Spannung). Die Spannungsversorgung per Spannungsteiler fällt 
also aus, da die Spannung dann an der SD-Karte nicht mehr konstant wäre.

Meine Idee lautet deshalb, einen Puffer mit einem 3,3V-Low-Drop-Regler 
zu betreiben, um tatsächlich nur 3,3V an der SD-Karte zu haben.
Eine Skizze hänge ich an.

Dazu habe ich folgende Fragen:
- Fällt euch eventuell eine Alternative ein, um die Spannung an der 
SD-Karte über einen Bereich von 5V (USB) bis runter zu 2,7V (3 schwache 
Batterien) konstant zu halten?
- Ist es sinnvoll, den Enable-Pin des Puffers an die SCK-Leitung zu 
hängen, damit der Puffer deaktiviert wird, sobald SCK auf 5V liegt (also 
während der µC beschrieben wird)? Der Puffer benötigt als Information 
das Gegenteil dessen, was passieren soll (5V auf enable-Pin bedeutet 
disable, 0V auf enable-Pin bedeutet disable)?

Ich freue mich auf eure Ideen,
Martin

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Martin Zippel schrieb:
> Da ergibt sich wieder das leidige Problem, dass der Atmega 5V nutzt

Ein AVR läuft auch mit 3,3 V.  Wäre das nicht die einfachste Lösung?

von Martin Zippel (Gast)


Lesenswert?

Eigentlich schon, ich möchte aber den ganzen Aufbau (es gehört neben dem 
Mega32 und der SD-Karte noch weit mehr dazu) auch per USB-Spannung 
versorgen können. Da ich mit Menschen zusammenarbeite, die noch nie 
derartiges benutzt haben, muss die Schaltung "idiotensicher" sein. Das 
heißt, wenn jemand per USB programmiert oder auch nur den 
USB-ISP-Stecker einsteckt, muss ausgeschlossen sein, dass die SD-Karte 
dadurch Schaden nimmt, ohne dass vorher zum Beispiel ein Schalter 
umgelegt wird.
Außerdem soll der Aufbau mit frischen Batterien ebenso funktionieren, da 
der ganze Kram wohl eine Weile im Freien wird überdauern müssen. Das 
wären dann 3x1,5V = 4,5V, also schon wieder zuviel für die SD-Karte.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Martin Zippel schrieb:
> Außerdem soll der Aufbau mit frischen Batterien ebenso funktionieren, da
> der ganze Kram wohl eine Weile im Freien wird überdauern müssen. Das
> wären dann 3x1,5V = 4,5V, also schon wieder zuviel für die SD-Karte.

Dann kannst du doch trotzdem (auch beim USB) alles über einen
3,3-V-Lowdrop-Regler versorgen, statt dir den Stress mit der
Pegelwandlung zu machen.  (Denk dran, dass die Entladeschlussspannung
für 3 Zellen bei 2,7 V liegt.)

von Falk B. (falk)


Lesenswert?

@ Martin Zippel (Gast)

>Ich möchte einen Atmega32 eine SD-Karte beschreiben lassen.
>Die ISP-Schnittstelle vom PC soll erhalten bleiben,

Kein Problem.

>sinkender Spannung). Die Spannungsversorgung per Spannungsteiler fällt
>also aus,

So einen Unsinn macht auch kein vernünftiger Mensch.

>Meine Idee lautet deshalb, einen Puffer mit einem 3,3V-Low-Drop-Regler
>zu betreiben, um tatsächlich nur 3,3V an der SD-Karte zu haben.

Sicher, wie sonst soll man konstante 3,3V erzeugen?

>- Fällt euch eventuell eine Alternative ein, um die Spannung an der
>SD-Karte über einen Bereich von 5V (USB) bis runter zu 2,7V (3 schwache
>Batterien) konstant zu halten?

Schaltregler.

>- Ist es sinnvoll, den Enable-Pin des Puffers an die SCK-Leitung zu
>hängen, damit der Puffer deaktiviert wird, sobald SCK auf 5V liegt

Nö. Der gehört an CS von der SD-Karte.

>Ich freue mich auf eure Ideen,

Mach es richtig. Mit ZWEI ICs. 74AHC244 für die Richtung 45V -> 3,3V für 
SCK, MOSI und CS. 74HCT125 für die Richtung 3,3V -> 5V für MISO.

Siehe Pegelwandler.

OK, der 244er ist für 3 Signale etwas groß, muss man halt einen anderen, 
nichtinvertierenden IC der AHC Familie suchen. 74AHC125 wäre einer.

Das Enable vom 74HCT125 kommt mit an CS vom AVR, welches gleichzeitig 
per externem Pull-Up (10k) während der Programmierung inaktiv gehalten 
wird.
Am Data out Ausgang der SD-Karte müssen 10K Pull-Up nach 3,3V dran, denn 
der Ausgang ist während der Initialisierung ein Open Drain Ausgang.

Dann wird das was. Been there, done that.

Finger weg von bidirektionalen, neumodischen Pegelwandlern ohne 
Richtungsumschaltung, die machen hier regelmäßig Probleme!

von Frank K. (fchk)


Lesenswert?

Wie wäre es denn, wenn Du mal zur Abwechslung aktuelle Technik verwenden 
würdest? Der pinkompatible Mega324PA funktioniert bis 1.8V und ist 
energieeffizienter. In die USB-Versorgung einen LDO zu setzen sollte 
wohl kein großes Problem sein.

Und ein 3.3V oder 2.5V Design über USB zu programmieren ist überhaupt 
kein Problem. Zumindest nicht mit einem Qualitätsprogrammer wie dem 
Original von Atmel.

Außerdem funktioniert Deine Schaltung so nicht. Ein 74HC verträgt an 
seinen Pins nur Spannungen bis zur Höhe seiner Versorgungsspannung. Du 
bräuchtest einen 74LVC126 für die 5->3V Wandlung und einen 74HCT1G126 
für die 3->5V Richtung. Die Gate-Eingänge der Gatter hängst Du an !RESET 
vom Prozessor, dann sperren die Gatter, wenn der ISP Programmer !RESET 
auf Low zieht.

fchk

von Martin Zippel (Gast)


Lesenswert?

Nun, ich danke euch für eure Antworten. Ich habe meine Skizze noch 
einmal nach euren Vorschlägen überarbeitet und hänge sie diesem Post an.

Zum wiederholten Auftauchen des 3,3V-Vorschlages: Die Schaltung muss mit 
Batterien betrieben werden. Ich möchte gern den großen VCC-Bereich der 
µC nutzen, um sie ebenso über USB während der Aufbau- und Bastelphase, 
als auch später über drei volle bis leere Batterien nutzen zu können.
Bei der Verwendung von 3,3V-Reglern für alle Bauteile gefällt mir die 
Vorstellung nicht, Energie zu verheizen. Außerdem kann ich dann keine 
Spannungen von unter 3,7V mehr nutzen, was schade wär.

Ich möchte euch bitten, noch einmal einen Blick auf die Schaltskizze zu 
werfen und eure werte Meinung abzugeben.

Einen schönen Abend wünsche ich,
Martin

PS: Als ich das letzte Mal was lötete, was mit weniger als 230V 
betrieben wird, WAR der ATmega32 tatsächlich aktuell.

von Martin Zippel (Gast)


Angehängte Dateien:

Lesenswert?

Natürlich, Bild vergessen...

von Frank K. (fchk)


Lesenswert?

Martin Zippel schrieb:

> Zum wiederholten Auftauchen des 3,3V-Vorschlages: Die Schaltung muss mit
> Batterien betrieben werden.

Ja eben deswegen. Bedenke: Die Leistungsaufnahme geht quadratisch mit 
der Spannung. Bei 66% der Nennspannung (3.3/5.0) brauchst Du nur 43% der 
Leistung. Weniger Leistung -> längere Batterielaufzeit. Denk mal darüber 
nach, warum moderne Prozessoren heute mit 1.2V und weniger (teilweise 
bis 0.9V herunter) betrieben werden.

Und um den ganzen Spannungsbereich von Batterien auszunutzen, gibts 
Buck-Boost-Konverter. Schau mal hier:

http://www.analog.com/library/analogdialogue/archives/45-12/buck_boost.html
http://www.analog.com/en/power-management/switching-regulators-integrated-fet-switches/adp2503/products/product.html
http://www.linear.com/product/LTC3534

> PS: Als ich das letzte Mal was lötete, was mit weniger als 230V
> betrieben wird, WAR der ATmega32 tatsächlich aktuell.

Genau richtig: WAR. Vergangenheitsform.

fchk

von Falk B. (falk)


Lesenswert?

@ Martin Zippel (Gast)

>Zum wiederholten Auftauchen des 3,3V-Vorschlages: Die Schaltung muss mit
>Batterien betrieben werden. Ich möchte gern den großen VCC-Bereich der
>µC nutzen, um sie ebenso über USB während der Aufbau- und Bastelphase,
>als auch später über drei volle bis leere Batterien nutzen zu können.

Aber soooo einfach geht das nicht. Du musst aus deiner recht variablen 
batteriespannung KONSTANTE 3,3V erzeugen und dann dennoch variable 
5-2,7V für den Rest? Nee, vor allem die einfachen Pegelwandler mögen das 
gar nicht.

>Bei der Verwendung von 3,3V-Reglern für alle Bauteile gefällt mir die
>Vorstellung nicht, Energie zu verheizen. Außerdem kann ich dann keine
>Spannungen von unter 3,7V mehr nutzen, was schade wär.

SCHALTREGLER! Wenn man den richtigen nutzt, kann der aus 2,7-6V 
konstante 3,3 für ALLES machen.

>Ich möchte euch bitten, noch einmal einen Blick auf die Schaltskizze zu
>werfen und eure werte Meinung abzugeben.

Funktioniert nicht. Denn der Pegelwandler für MISO müsste bei 5V wie bei 
2,7V funktionieren, das tut DER IC nicht.

>PS: Als ich das letzte Mal was lötete, was mit weniger als 230V
>betrieben wird, WAR der ATmega32 tatsächlich aktuell.

Sooo schlimm ist der nicht, der läuft auch mit 3,3V und 8 MHz, für viele 
Sachen ausreichend. Ein gutes Design kommt in erster Line aus dem 
Konzept, nicht aus den Bauteilen (wobei man ehrlich sagen muss, dass es 
heute geradezu unglaublich viele unglaublich leistungsfähige Bauteile 
gibt!)

Wenn dir das mit der Batterienutzung sooo wichtig ist, nimm einen 
passenden Schaltregler und betreibe alles mit 3,3V.

von holger (Gast)


Lesenswert?

>> PS: Als ich das letzte Mal was lötete, was mit weniger als 230V
>> betrieben wird, WAR der ATmega32 tatsächlich aktuell.
>
>Genau richtig: WAR. Vergangenheitsform.

Der gemeine Atmega32 arbeitet bei 2.7V sowieso nicht mehr.
Wenn schon dann Atmega32L. Da kann man aber gleich was moderneres 
kaufen.

von Martin Zippel (Gast)


Lesenswert?

Na nun hängt euch doch mal nicht so an dem ATmega32 auf. Wollte damit 
doch nur andeuten, dass ich tatsächlich nicht auf dem neuesten Stand 
bin. Eure Hinweise werde ich beachten und einen Mega324PA verwenden.

Mittlerweile bin ich vom Niedergang der abendländischen Spannung auf 
3,3V überzeugt. Wenn ich also einen "Ultra Low Drop Voltage Regulator" 
in die Spannungsversorgung einbaue und für den USB-Programmer einen 
Pegelwandler nach 3,3V einbaue, arbeitet alles mit 3,3V. Die SD-Karte 
wird sich nicht beschweren und bei dann 4 zu verwendenden Batterien 
würden die von 1,5V bis 1V funktionieren, viel tiefer sollten sie ja 
sowieso nicht kommen.

Ich verstehe allerdings noch nicht, wie der 74HC4050 als Pegelwandler 
USB - 3,3V funktioniert, wenn er doch nur ein Puffer ist?

Eine geruhsame Nacht wünsche ich.

von Martin Zippel (Gast)


Lesenswert?

Aaaaaaaaaaaaaha:

Hier steht, dass das Datenblatt bei Reichelt falsch ist:
Beitrag "74HC4050 Datenblatt-verwirrung"
Dieses kleine Gerät kann also, wenn ich das richtig verstehe, so 
betrieben werden: 3,3V VCC für den 74HC4050, so dass nur noch 3,3V 
durchkommen. Tatsächlich verträgt er aber bis zu 15V Eingangsspannung 
(und nicht, wie viele andere Puffer nur VCC + 0,5V), so dass er bei den 
5V-USB-Signalen nicht gleich zusammenbricht.

Na, dass das Reichelt-Datenblatt falsch ist, hätt ich mir ja auch denken 
können...

Fällt euch noch ein anderer Baustein ein, mit dem das ebenfalls klappt? 
Den 74HC4050 gibt es zur Zeit nicht in der Dresdner Conrad-Filiale. Oh 
weh, ich hab das böse Wort ausgesprochen. so früh am Morgen!

Einen schönen Tage allenthalben,
Martin

von Martin Zippel (Gast)


Angehängte Dateien:

Lesenswert?

Na dann führ ich doch mal meinen Monolog weiter:
Dieses Gerät verträgt
http://www.produktinfo.conrad.com/datenblaetter/150000-174999/172642-da-01-en-C_MOS_IC_HCF_4050_BEY_DIP16__STM.pdf

Absolut max ratings:
VDD = 22V
Vinput = 18V
I input = 10mA (ganz schön wenig, aber für die Signale wird es reichen)

recommended:
VDD 3 - 20V
Vinput  15V

Da der enable-Eingang nicht invertiert ist, kann ich den gleich an 3,3V+ 
legen, so dass ein Beschreiben über die ISP immer möglich ist.

Damit das Programmieren nicht auch immer die SD-Karte verwurstet, würde 
ich so ein Ding nochmal zwischen ATmega und SD-Karte kleben und die 
enable-Leitung über einen beliebigen freien Pin hochziehen, wenn die 
SD-Karte beschrieben werden soll.
Eine neue Skizze hänge ich an.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Martin Zippel schrieb:
> Zum wiederholten Auftauchen des 3,3V-Vorschlages: Die Schaltung muss mit
> Batterien betrieben werden. Ich möchte gern den großen VCC-Bereich der
> µC nutzen, um sie ebenso über USB während der Aufbau- und Bastelphase,
> als auch später über drei volle bis leere Batterien nutzen zu können.

Soweit, so gut.  Das geht auch prima mit einem Regler.  Je nach
SD-Karte könnte es höchstens sein, dass die Karte nicht bis zur
minimalen Betriebsspannung (2,7 V) arbeitet.  Der AVR macht das
allemal.

> Bei der Verwendung von 3,3V-Reglern für alle Bauteile gefällt mir die
> Vorstellung nicht, Energie zu verheizen.

Dein Gefühl mal in allen Ehren, hast du dir denn mal die Tatsachen
angesehen?

Ein ATmega32L (um bei deinem Beispiel zu bleiben, ist aber bei anderen
ähnlich) braucht bei Vcc = 5 V doppelt so viel Strom wie bei 3,3 V,
mithin dreimal so viel Energie.

Wenn du jetzt einen Linearregler für 3,3 V einfügst, braucht folglich
die gesamte Schaltung bei 5 V nur noch 1,5 mal so viel Energie wie
bei 3,3 V!

(Was glaubst du eigentlich, was mit dem Betriebsstrom passiert, der
in den AVR bei 5 V reinfließt?  Er leuchtet nicht, bewegt nichts,
strahlt auch keine anderen EM-Wellen ab.  Ja, es wird verheizt.)

> Außerdem kann ich dann keine
> Spannungen von unter 3,7V mehr nutzen, was schade wär.

Es sagt ja niemand, dass du einen Regler benutzen solltest, der
genauso altertümlich ist wie der ATmega32.  Nimm einen ordentlichen
modernen Lowdrop-Regler mit p-Kanal-FET als Stellglied.  Die Dinger
haben keinen nennenswerten Ruhestrom, und bei einer Eingangsspannung
unter 3,3 V bleibt der FET einfach vollständig geöffnet, mit ein paar
Ohm Kanalwiderstand zwischen Batterie und deiner Schaltung.

von Frank K. (fchk)


Lesenswert?

Martin Zippel schrieb:

> 5V-USB-Signalen nicht gleich zusammenbricht.

Was für 5V USB Signale überhaupt?

Die D+/D- Signale haben bei Low und Full Speed maximal 3.6V.
USB VBus ist 5V, aber da kommt ja ein Spannungsregler dahinter.

Oder hast Du so einen grottigen ISP Programmer, der nur 5V Systeme 
programmiert? Kauf Dir zur Abwechslung was vernünftiges wie das Original 
von Atmel, dann geht das auch. Der hat Pegelwandler eingebaut, die vom 
zu programmierenden Device gespeist werden, und damit stimmen die Pegel 
immer, bis herunter zu mindestens 2.5V, möglicherweise bis 1.8V (müsste 
ich nachschauen). Billigschrott spart sich diese Beschaltung 
möglicherweise.

fchk

von Martin Zippel (Gast)


Lesenswert?

>Die D+/D- Signale haben bei Low und Full Speed maximal 3.6V.
>USB VBus ist 5V, aber da kommt ja ein Spannungsregler dahinter.

Ich bin davon ausgegangen, dass die Signale des USB-Programmers 
ebenfalls über 5V laufen. Da ich kein Oszilloskop mehr habe, konnte ich 
es nicht prüfen.

Denkt ihr denn, dass die Schaltung, wie ich sie zuletzt skizziert habe, 
laufen würde? Der HCF4050B zwischen USB und Mega wäre bei USB-Signalen 
von 3,6V zwar überflüssig, schaden würe er aber auch nicht. Eventuelle 
sollte ich die enable-Leitung aber noch einmal überdenken, da er sonst 
immer (auch wenn's wenig ist) Strom verbraucht.

von Frank K. (fchk)


Lesenswert?

Martin Zippel schrieb:
>>Die D+/D- Signale haben bei Low und Full Speed maximal 3.6V.
>>USB VBus ist 5V, aber da kommt ja ein Spannungsregler dahinter.
>
> Ich bin davon ausgegangen, dass die Signale des USB-Programmers
> ebenfalls über 5V laufen. Da ich kein Oszilloskop mehr habe, konnte ich
> es nicht prüfen.

Das sagt mir, dass Du nicht das Original von Atmel hast, sondern irgend 
einen Billigscheiß. Wenn der nur 5V-Systeme programmieren kann, dann 
gehört der Pegelwandler in das ISP-Kabel und nicht vor die SD-Karte. 
Grund: Ein mit 3.3V betriebener AVR verträgt keine 5V-Signale ohne 
weitere Schutzmaßnahmen.

fchk

von Martin Zippel (Gast)


Angehängte Dateien:

Lesenswert?

>dann gehört der Pegelwandler in das ISP-Kabel und nicht vor die SD-Karte.

Welcher, "der Pegelwandler"? Ich hab doch zwei vorgesehen. Außerdem geht 
die USB-Spannung über den Regler auf 3,3V runter. Hast du dir das Bild 
angesehen? Ich hänge es noch einmal an.

Gedeihliches Treiben wünsch ich,
Martin

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Martin Zippel schrieb:
> Welcher, "der Pegelwandler"?

Der, der in deinem Bild rosa ist.  Der funktioniert so nämlich auch
nicht, denn je nachdem, welche der Leitungen er treibt, muss er den
Pegel entweder auf 3,3 V herabsetzen (/RESET, MOSI, SCK) oder von
3,3 V auf den vom Programmer benötigten Wert anheben (MISO).  Das
lässt sich mit einem einzelnen 4050 nicht bewerkstelligen.

Der zweite 4050 ist ja nun kein Pegelwandler mehr, sondern trennt
nur noch die SD-Karte vom ISP-Interface ab.  Kann man so machen.
Wenn du aber einen moderneren AVR benutzt, dann kannst du dir den
auch sparen: die neueren USART-Blöcke kann man als SPI-Master
benutzen, dan kannst du die SD-Karte dann an so einen SPI-Master
hängen, während das „klassische“ SPI-Interface für ISP reserviert
bleibt.

von Martin Zippel (Gast)


Angehängte Dateien:

Lesenswert?

Das rosafarbene Bauteil ist kein IC, es ist lediglich ein Symbol für den 
Stecker vom USB-Programmer. Ich hab's jetzt deutlicher gekennzeichnet. 
Im Prinzip dient IC1 jetzt nur noch dazu, vom Billigscheiß ankommenden 
5V bzw. vom Atmelqualitätsprogrammer ankommenden 3,6V auf 
sozialverträgliche 3,3V abzudämpfen. Enable (nicht invertiert) hängt 
jetzt mit an CS zur SD-Karte. Das heißt, wenn der Mega mit der SD-Karte 
sprechen will, schaltet er den HCF4050B aus.

Für den Rückweg (MISO) habe ich jetzt den 74HCT125 vorgesehen.

Den zweiten HCF4050B hatte ich tatsächlich nur dazwischengeschaltet, um 
die SD-Karte während ihrer Nichtbenutzung mehr oder weniger physisch von 
der ISP zu trennen, um zu vermeiden, dass bei ISP-Benutzung (USB-Atmega) 
ständig auch die SD-Karte zuhört. Dabei hatte ich wohl vergessen, dass 
die ohne Aktivierung der CS-Leitung gar kein Interesse hat, zu 
gehorchen. IC2 ist jetzt rausgeflogen.

Erneut hänge ich dieser Nachricht eine aktuelle Skizze an.

von Falk B. (falk)


Lesenswert?

Eieieiei, ein einfacher, NORMALER Programmieradapter ala AVR ISP MK II 
und die ganze Diskussion ist hinfällig. Der kann von 1,8-5V alles direkt 
programmieren, weil die Pegelwandler im Programmieradapter drinstecken.

von Martin Zippel (Gast)


Lesenswert?

Naja, ich weiß aber nicht, womit in Zukunft programmiert werden wird, 
wer da aus versehen welches Gerät dranhängt. Mittlerweile habe ich mich 
ja mit dem Gedanken der 3,3V als Spannung "für alles" angefreundet, 
womit ich nur noch die Schaltung vor den 5V des USB-Programmers (und 
später auch vor den 6V der 4 neuen Batterien) "schützen" muss. Würde 
denn die Schaltung, die ich in meinem letzten Post angehängt habe, so 
funktionieren, wie ich es beschrieben habe?

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Martin Zippel schrieb:
> Naja, ich weiß aber nicht, womit in Zukunft programmiert werden wird,
> wer da aus versehen welches Gerät dranhängt.

Naja, wenn du das nicht weißt, woher weißt du dann, dass niemand
die Schaltung am Ende unter einem Autoreifen platziert oder in einem
Teich versenkt?

Ein ISP-Stecker gehört doch nun nicht gerade zum standardmäßigen
user interface, d. h., wer ihn benutzt, sollte auch wissen, was
er da tut.

> und später auch vor den 6V der 4 neuen Batterien

Bislang waren es immer 3, die haben zusammen, wenn sie neu sind, um
die 4,9 V.

> Würde
> denn die Schaltung, die ich in meinem letzten Post angehängt habe, so
> funktionieren, wie ich es beschrieben habe?

Ja, sieht so aus.  (Allerdings hast du die SD-Karte nun wieder direkt
am ISP-Port dranhängen.  Ich dachte, die wolltest du sicherheitshalber
entkoppeln?  Dann müsste sie an RXD0, TXD0, XCK0 sowie für /SS an
einen x-beliebigen GPIO-Pin.)

Martin Zippel schrieb:
> Das rosafarbene Bauteil ist kein IC, es ist lediglich ein Symbol für den
> Stecker vom USB-Programmer.

'tschuldigung, ich meinte auch den 4050 oberhalb deines Steckers.

von Martin Zippel (Gast)


Lesenswert?

>>Naja, wenn du das nicht weißt, woher weißt du dann, dass niemand
>>die Schaltung am Ende unter einem Autoreifen platziert oder in einem
>>Teich versenkt?

>Ich versteh' den Aufwand, ehrlich gesagt, nicht.

Ich ziehe zwischen "Ups, falschen Programmer verwendet" und "Mist, die 
Schaltung ins Wasser geworfen" eine gedankliche Grenze. Nein, ich kann 
sie nicht genau definieren.

Eventuell benutze ich (oder wer auch immer sonst mit dem Aufbau zu tun 
hat) in Zukunft nicht mehr denselben Programmer wie heute. Ist ja 
durchaus denkbar, dass man mal rausfährt und einen anderen Programmer 
mitnimmt. Und letztendlich, nachdem ihr mich von den 3,3V überzeugt 
habt, sieht mir die Variante mit den zwei Puffern, welche die Schaltung 
unabhängig von der Programmerspannung machen, wie eine sehr elegante 
Lösung aus.


>Bislang waren es immer 3, die haben zusammen, wenn sie neu sind, um
die 4,9 V.

Das stimmt, aber wenn ich es recht sehe, benötigt auch ein Ultra Low 
Drop
Regler noch eine Spannung von mindestens 0,4V über der zu regelnden
Spannung, also 3,3V + 0,4V = 3,7V. Bei 4 verwendeten Batterien
funktionieren diese im Bereich von 4x1,5V = 6V bis etwa 4x1,0V = 4,0V,
das klingt doch sehr sympathisch?!

>Ja, sieht so aus.  (Allerdings hast du die SD-Karte nun wieder direkt
>am ISP-Port dranhängen.  Ich dachte, die wolltest du sicherheitshalber
>entkoppeln?  Dann müsste sie an RXD0, TXD0, XCK0 sowie für /SS an
>einen x-beliebigen GPIO-Pin.)

Wie ich im letzten Post schrieb, sollte ja für die SD-Karte keine Gefahr 
mehr bestehen, wenn alles nur noch über den 3,3V-Regler bzw. bei der ISP 
über den Puffer geht. So würde ich mir die Energie, die der Puffer 
zwischen Atmega und SD-Karte verbraucht, sparen. Ja, das ist sehr wenig 
Energie, eventuell baue ich ihn doch ein.

>> Das rosafarbene Bauteil ist kein IC, es ist lediglich ein Symbol für den
>> Stecker vom USB-Programmer.

>'tschuldigung, ich meinte auch den 4050 oberhalb deines Steckers.

Es ist ja auch mehr hingeschmiert, als gezeichnet.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Martin Zippel schrieb:

> Eventuell benutze ich (oder wer auch immer sonst mit dem Aufbau zu tun
> hat) in Zukunft nicht mehr denselben Programmer wie heute. Ist ja
> durchaus denkbar, dass man mal rausfährt und einen anderen Programmer
> mitnimmt.

Dann verkauf einfach alle die, die du noch hast, und die keine
eingebauten Levelshifter haben, bei ibäh.  Danach kannst du keinen
„falschen“ mehr erwischen. ;-)

Übrigens dürfte der Fall viel weniger drastisch werden, als du so
erwartest.  Die 5 V am USB sind eher nominell, meist kommen beim
Device schon mal bloß 4,5 V an (und das lässt die USB-Spec ja auch
zu).  Wenn du diese dann über den treibenden Controller deines
Programmers auf die ISP-Leitungen einspeist, gehen nochmal
vielleicht 0,5 V in den Ausgangsstufen des Controllers drauf.
Die verbliebenen 4 V öffnen dann die Schutzdioden deines AVRs,
an denen wiederum 0,7 V abfallen.  Damit wird Vcc also nicht auf
(wesentlich) mehr als 3,3 V angehoben.  In der Praxis wird also
auch in diesem Falle nichts kaputt gehen.

>>Bislang waren es immer 3, die haben zusammen, wenn sie neu sind, um
>> die 4,9 V.

> Das stimmt, aber wenn ich es recht sehe, benötigt auch ein Ultra Low
> Drop
> Regler noch eine Spannung von mindestens 0,4V über der zu regelnden
> Spannung,

Wenn du ihn mit 10 A belastest.

Martin, hier fließen ein paar Milliampere.  Wenn ein Regler da
schon 0,4 V Spannungsabfall hat, dann sollte man ihn dem Hersteller
um die Ohren werfen, der das Ding als “low dropout” bewirbt.

Es gibt inzwischen wirklich genügend Regler, bei denen das in allen
praktischen Belangen 100 mV oder weniger werden.

>>Ja, sieht so aus.  (Allerdings hast du die SD-Karte nun wieder direkt
>>am ISP-Port dranhängen.  Ich dachte, die wolltest du sicherheitshalber
>>entkoppeln?  Dann müsste sie an RXD0, TXD0, XCK0 sowie für /SS an
>>einen x-beliebigen GPIO-Pin.)
>
> Wie ich im letzten Post schrieb, sollte ja für die SD-Karte keine Gefahr
> mehr bestehen, wenn alles nur noch über den 3,3V-Regler bzw. bei der ISP
> über den Puffer geht.

Mir ging es mehr darum, dass die SD-Karte dann den
Programmier-Datenstrom „mitliest“.

> So würde ich mir die Energie, die der Puffer
> zwischen Atmega und SD-Karte verbraucht, sparen.k

Daher ja auch mein Vorschlag, stattdessen die SD-Karte an die
USART (im SPI-Modus) zu hängen.

von Martin Zippel (Gast)


Lesenswert?

> Mir ging es mehr darum, dass die SD-Karte dann den
> Programmier-Datenstrom „mitliest“.

Ja, das war ja auch meine Intention. Aber ich hatte dabei den CS-Pin 
vergessen. Solange der vom Pullup auf 3,3V gehalten wird, interessiert 
es die Karte doch gar nicht?!

> Wenn du ihn mit 10 A belastest.

Ich hab im Datenblatt groß auf de ersten Seite "Low Drop Out Voltage 
0.4V" gelesen und dachte, das wäre wohl das, womit der Hersteller 
"angibt". Wenn es nach wie vor mit 3 Batterien läuft, umso besser. Die 
Vierte wäre dann praktisch nur dazu da, die Laufzeit zu verlängern.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Martin Zippel schrieb:

> Ja, das war ja auch meine Intention. Aber ich hatte dabei den CS-Pin
> vergessen. Solange der vom Pullup auf 3,3V gehalten wird, interessiert
> es die Karte doch gar nicht?!

Das stimmt schon.

Andererseits würde das Unterbringen der SD-Karte an einem separaten
Controllerport halt die Karte noch weniger gefährden, selbst für
das oben skizzierte Szenario, dass jemand da direkt mit einem
Programmer herangeht, der vom USB gespeist ist.  Zwischen dem
Programmer und der SD-Karte ist dann halt noch ein Stapel
Eingangsschutzdioden (mit 0,7 V Spannungsabfall) mehr dazwischen.

> Ich hab im Datenblatt groß auf de ersten Seite "Low Drop Out Voltage
> 0.4V" gelesen und dachte, das wäre wohl das, womit der Hersteller
> "angibt".

Ja, aber das bezieht sich dann auf den maximalen Laststrom.  Weiß
ja nicht, welchen du dir angesehen hast.  Bei den hier betrachteten
eher kleinen Strömen sollte das wirklich viel weniger werden.

Musst halt mal ein paar Regler miteinander vergleichen.  Schau dir
auch die Ruheströme an.  Lowdrop-Regler mit pnp-Transistor brauchen
da mehr als solche mit FETs.

> Wenn es nach wie vor mit 3 Batterien läuft, umso besser. Die
> Vierte wäre dann praktisch nur dazu da, die Laufzeit zu verlängern.

Solange du keinen Schaltregler benutzt, verlängerst du die Laufzeit
allerdings nicht (zumindest nicht, solange die SD-Karte auch noch
bis 2,7 V hinab funktioniert), denn der Strom bleibt ja der gleiche.

von Frank K. (fchk)


Angehängte Dateien:

Lesenswert?

So, mit dieser Schaltung kann Dein Billig-Programmer alle 
Target-Spannungen von 1.65V bis zu 5.5V. Der verwendete 
Level-Shifter-Baustein NC7SZ125 kann am seinen Eingängen bis zu 5.5V ab, 
auch wenn er mit 1.65V betrieben wird. Er wird auch in vielen JTAG 
Programmern eingesetzt, zB bei Amontec. Kostenpunkt so um die 30 Cent 
bei den üblichen Verdächtigen (Digikey, Farnell, Mouser).

Daran denken, dass beim ISP-Programmer an Pin 2 Spannung anliegen muss, 
sonst funktioniert der Levelshifter für MISO nicht.

Datenblatt: http://www.fairchildsemi.com/ds/NC/NC7SZ125.pdf

fchk

von Martin Zippel (Gast)


Lesenswert?

Ich möchte, für den Fall, dass nach mir jemand nach einer Lösung für 
dieses doch recht weit verbreitete Problem sucht, meine Ergebnisse 
notieren. Auf die Misserfolge und langen Fehlersuchen werde ich nicht 
eingehen, das dürfte jedem bekannt sein.

Dank an Frank K. für die Schaltung, aber als ich diesen Plan sah, waren 
die Teile für meinen eigenen Vorschlag schon bestellt.

Letztendlich läuft der von mir vorgeschlagene Schaltplan, um den Atmega 
zu programmieren. Allerdings muss ich den 4050BE jedes Mal entfernen, 
wenn die Schaltung arbeiten soll, da sonst undefinierbare Dinge 
geschehen.
Allerdings kann ich bisher keine bessere Alternative für einen 
Pegelwandler 5V - 3,3V finden. Die Liste vom µC-Forum hilft mir nicht 
weiter, keiner der dort genannten Bausteine ist bei Conrad erhältlich. 
Außerdem scheint mir dort der genannte 74AHC126 falsch eingeordnet, da 
er an den Logikeingängen nur 0,5V mehr als Supplyspannung verträgt.

Der 74HCT125N macht keine Probleme, der kann auch im normalen Betrieb 
verbleiben.

Zusammengefasst: Den 4050BE zum Betrieb rausnehmen, dann funktioniert 
der Aufbau.

Ich danke euch für Eure Vorschläge.

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.