mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AVR per Levelshifter mit Raspi flashen


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
Autor: Mathias O. (m-obi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mahlzeit,

ich hab u.a. vor einen AVR, mittels Avrdude auf dem Raspi, zu flashen. 
Dazu habe ich als Levelshifter diesen hier.
http://www.amazon.de/Adafruit-Bi-Direktionaler-Pegelwandler-TXB0104-Bausatz/dp/B010LTHB2E/ref=sr_1_1?ie=UTF8&qid=1457696282&sr=8-1&keywords=txb0104

Für I²C verwende ich diesen.
http://www.amazon.de/Adafruit-bi-direktionaler-Pegelwandler-Kanal-I2C-sicher/dp/B00MUJ2B2E/ref=sr_1_1?ie=UTF8&qid=1457696302&sr=8-1&keywords=levelshifter

Wenn ich mit dem erstgenannten das ganze Versuche, funktioniert es 
sporadisch. Und wenn es funktioniert, liesst es aber die falsche ID aus.
Nehme ich den für I²C klappt es wunderbar, ich ich kann schreiben und 
lesen. Und die ID stimmt auch.
Bei dem erstegannten mit dem TXB0104 drauf, hab ich auch extra OE auf 
einen Pin gelegt um es zu steuern.
Auf der PI-Seite sind 3,3V und auf der AVR-Seite sind 5V.

Woran kann das liegen?

: Bearbeitet durch User
Autor: Mathias O. (m-obi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Weiß keiner woran das liegen kann?

Autor: Mathias O. (m-obi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hab es nun mal mit einem TXB0108 probiert. Das ist es dasselbe.

Kennt jemand einen anderen Levelshifter, wo man auch die Aus-/Eingänge 
hochohmig schalten kann?

Autor: Dirk K. (dekoepi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wozu überhaupt einen Levelshifter? AVR laufen auch mit 3,3V, also 
5V-Versorgung abziehen und direkt mit Pi flashen - ohne fehleranfällige 
Zusatzkomponenten. Damit sollten doch alle Probleme behoben sein. :)

Autor: Arduino Fanboy D. (ufuf)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Raspberry hat doch USB.
Warum nimmst du nicht einen der vielen verschiedenen USB ICSP Adapter?
Oder einen Arduino als Programmieradapter...

: Bearbeitet durch User
Autor: Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stell mal die ISP-Frequenz auf 125kHz oder weniger.

Autor: Mathias O. (m-obi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dirk K. schrieb:
> Wozu überhaupt einen Levelshifter? ...

Als wenn auf der Platine nur ein AVR drauf wäre :D.
Die Schaltung ist jetzt nunmal ausgelegt auf 5V. Als die entwickelt 
wurde, war der RPi noch garnicht im Gespräch. Weitere Entwicklungskosten 
wollte ich jetzt nicht noch reinstecken.

U. F. schrieb:
> Der Raspberry hat doch USB.

Die Idee kam mir auch schon. Nutze ja sonst auch immer einen USBasp (bei 
Windows). Hab ja auch noch einen USB port frei am RPi. Mal schauen. 
Wollte es jetzt aber erstmal so probieren.

Knut B. schrieb:
> Stell mal die ISP-Frequenz auf 125kHz oder weniger.

Hab ich schon. Sogar auf 10kHz. Geht aber auch nicht.

Autor: Klaus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mathias O. schrieb:
> Als wenn auf der Platine nur ein AVR drauf wäre :D.
> Die Schaltung ist jetzt nunmal ausgelegt auf 5V.

Und die muß einwandfrei funktionieren, während der AVR geflascht wird? 
Oder geht da was kaputt, wenn es zuwenig Spannung bekommt?

MfG Klaus

Autor: Mathias O. (m-obi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Klaus schrieb:
> Mathias O. schrieb:
>> Als wenn auf der Platine nur ein AVR drauf wäre :D.
>> Die Schaltung ist jetzt nunmal ausgelegt auf 5V.
>
> Und die muß einwandfrei funktionieren, während der AVR geflascht wird?
> Oder geht da was kaputt, wenn es zuwenig Spannung bekommt?
>
> MfG Klaus

Das ganze wird in einer Vorrichtung geflasht und automatisch getestet. 
Dazu wird auch geprüft ob der Buck Converter aus den 24V auch 5V macht. 
Dies dient dann auch zur Versorgung des Pegelwandlers. Dazu sollte der 
Pegelwandler auch hochohmig schaltbar sein. Da nach dem Flash-Vorgang 
die Pins vom AVR als UART auf der Platine genutzt werden für RS485.

Autor: Frank K. (fchk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mathias O. schrieb:
> Hab es nun mal mit einem TXB0108 probiert. Das ist es dasselbe.
>
> Kennt jemand einen anderen Levelshifter, wo man auch die Aus-/Eingänge
> hochohmig schalten kann?

Nimm 74HCT125 (VCC=5V) für die 3.3->5V Richtung und 74LVC125 (VCC=3.3V) 
für die 5V->3.3V Richtung.

Oder einen Haufen 74LVC1T45. Die gehen von 1.8V bis 5.5V auf jeder Seite 
und sind richtungsmäßig umschaltbar.

fchk

Autor: Holger S. (223rem)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mathias O. schrieb:
...
> Woran kann das liegen?

Texas schreibt dazu im DB vom TXBxxx:

"For the same reason, the TXB0108 should not be used in applications 
such as I2C or 1-Wire where an opendrain driver is connected on the 
bidirectional data I/O. For these applications, use a device from the TI 
TXS01xx series of level translators."

Gruß Holger...

Autor: Joachim B. (jar)
Datum:

Bewertung
-1 lesenswert
nicht lesenswert
Dirk K. schrieb:
> Wozu überhaupt einen Levelshifter? AVR laufen auch mit 3,3V, also
> 5V-Versorgung abziehen und direkt mit Pi flashen - ohne fehleranfällige
> Zusatzkomponenten. Damit sollten doch alle Probleme behoben sein. :)

ach?

nur wenn der AVR im Auslieferzustand auf 8MHz steht dann ginge 3,3V 
Versorgung, typische Arduino kommen mit 16MHz und laufen nicht mit 3,3V, 
Ausnahme Arduino mini328p in der 8MHz Version, die werden per Bootloader 
vom FTDI oder CH340/341 (auf 3,3V) USB Adapter oder seriell Rx Tx DTR 
programmiert.

Autor: Dirk K. (dekoepi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das hast du sicher in der Praxis schon verifiziert?

Ich habe das - offenbar anders als du - getan, und bei Zimmertemperatur 
ist mir noch kein 16-MHz-AVR untergekommen, der an 3,3V gezickt oder ein 
Programm nicht angenommen hätte. Laufen einwandfrei. Arduino Pro Mini 
16MHz 5V einfach mit 3,3V betrieben. Dazu den OnBoard-LDO runtergelötet 
und extern einen genügsameren verwendet, der im Dauerbetrieb die 
LiIon-Spannung auf 3,3V regelt. Und beim Flashen den 
USB-zu-Seriell-Wandler ebenfalls auf 3,3V eingestellt.

: Bearbeitet durch User
Autor: Joachim B. (jar)
Datum:

Bewertung
-1 lesenswert
nicht lesenswert
Dirk K. schrieb:
> Das hast du sicher in der Praxis schon verifiziert?

ich halte mich an Datenblätter, ich bin einfach aus dem Alter raus wo 
ich Datenblätter ignoriere, klar als Jungspund hatte ich sogar 8MHz 
Chips erfogreich (aus der Not) mit 16MHz betrieben, aber das glückte nur 
weil sie das Design auf kleinere Strukturen umgestellt hatten WD1772-2 
(Atari ST von 720k Disketten auf 1,44MB Disk umgestellt).
Normalerweise wird bei overclocking recht schnell instabil, das es in 
einigen Fällen trotzdem klappen kann nenne ich Glück und kein sicheres 
Design.

: Bearbeitet durch User
Autor: Thomas H. (thergenhahn)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nach meiner Erfahrung erkennt ein mit 5V betriebener AVR die 
3,3V-Signale vom Raspi problemlos. Bleibt nur MISO, das vom AVR zum 
Raspi geht. Da schalte ich eine rote LED in Reihe, 5V -1,6V=3,4V. Auf 
der Raspi-Seite noch einen Widerstand von 3,3k nach GND, dann leuchtet 
die LED auch. Und falls es physikalisch möglich wäre, dass in einer LED 
ein kleiner Strom am Kristall "vorbei" fließen könnte, kann auch der die 
Spannung nicht hochziehen.

Autor: Mathias O. (m-obi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist nur blöd, wenn im Laufe des Testprozesses, da 5V bei den anderen 
Signalen rübergehen. Nach dem Flashen werden die einzelen Funktionen der 
Schaltung getestet. Die ISP-Pins vom AVR haben ja auch noch anderen 
Aufgaben.
Das ganze wird in einer Vorrichtung geflasht und getestet.

Autor: Stefanus F. (stefanus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Einfache Spannungsteiler genügen.
AVR µC werden mit 1Mhz oder 1,2Mhz Taktfrequenz ausgeliefert.

16Mhz laufen in der Praxis auch bei 3,3V. Ich habe das auch mehrmals 
ausprobiert. Mit 4V habe ich sogar zwei Langzeit-Tests gemacht 
(Webserver mit ESP8266).

: Bearbeitet durch User
Autor: Stefanus F. (stefanus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Ist nur blöd, wenn im Laufe des Testprozesses,
> da 5V bei den anderen Signalen rübergehen.

Ein einfacher 1k Ohm Widerstand dazwischen genügt als Schutz.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.