Forum: Mikrocontroller und Digitale Elektronik AVR Experimentierboard 3.3V/5V


von Michael R. (Firma: Brainit GmbH) (fisa)


Lesenswert?

Hallo allerseits,

bisher lief meine AVR-Infrastruktur durchgehend auf 5V. Nun komme ich 
immer öfter in die Verlegenheit, mit 3.3V-Peripherie zu arbeiten 
(aktuell ein DOG-Display). Daher will ich mir ein flexibles Board mit 
einem ATmega328P bauen, das wahlweise mit 5V und 3.3V läuft.

Grundsätzlich mochte ich das Ding auch im 3.3V-Modus mit 5V versorgen 
können, deshalb möchte ich zwei Versorgungen führen, einmal die normalen 
5V, und einmal über einen kleinen Spannungsregler die 3.3V, das ganze 
dann mit Jumper umschaltbar. Dabei stellen sich mir ein paar Fragen:

a) Frequenz: Soweit ich weiss, läuft der ATmega328P mit 16MHz nur bei 5V 
stabil. Für 3.3V müsste ich die Frequenz reduzieren. Nun hab ich nur 
16MHz Quarze vorrätig. Funktioniert das mit dem "Clock divider" dann 
trotzdem?

b) ISP: ich hab einen "mySmartUSB light". Ich weiss dass dessen Spannung 
umschaltbar ist, aber darauf vergess ich sicher, und das ist mir zu 
riskant. Wenn ich nun dessen Versorung auf die 5V-Schiene gebe, macht 
mir der Spannungsregler brav meine 3.3V und versorgt damit den ATmega. 
Nur haben die Signale (MISO/MOSI/SCK) dann natürlich 5V-Pegel. Wie 
schlimm ist das?

c) UART: Ich hab da so ein USB2serial (irgendein Arduino-Ding, das ich 
aber sehr gerne verwende weil so hübsch klein). Auch das kann mir die 5V 
Versorgung liefern, die dann wieder auf den Spannungsregler usw. Aber 
auch dann haben die Signalleitungen 5V-pegel. Wieder die Frage: Schlimm?

d) i2c: Wohin häng ich die Pullups? 5V oder 3.3V? Und wieder: kann ich 
hier in ein Problem mit verschiedenen Pegeln laufen?


Irgendwie bin ich ziemlich unschlüssig, ob das überhaupt zielführend 
ist, was ich hier vorhabe...

von Frank K. (fchk)


Lesenswert?

Michael Reinelt schrieb:

> a) Frequenz: Soweit ich weiss, läuft der ATmega328P mit 16MHz nur bei 5V
> stabil. Für 3.3V müsste ich die Frequenz reduzieren. Nun hab ich nur
> 16MHz Quarze vorrätig. Funktioniert das mit dem "Clock divider" dann
> trotzdem?

Nimm einen 12 MHz Quarz, und gut ist.

> b) ISP: ich hab einen "mySmartUSB light". Ich weiss dass dessen Spannung
> umschaltbar ist, aber darauf vergess ich sicher, und das ist mir zu
> riskant. Wenn ich nun dessen Versorung auf die 5V-Schiene gebe, macht
> mir der Spannungsregler brav meine 3.3V und versorgt damit den ATmega.
> Nur haben die Signale (MISO/MOSI/SCK) dann natürlich 5V-Pegel. Wie
> schlimm ist das?

Unzulässig. Der Original Atmel ISPmkII holt sich seine Spannung vom 
Target, dann stimmen auch die Signalpegel.

> c) UART: Ich hab da so ein USB2serial (irgendein Arduino-Ding, das ich
> aber sehr gerne verwende weil so hübsch klein). Auch das kann mir die 5V
> Versorgung liefern, die dann wieder auf den Spannungsregler usw. Aber
> auch dann haben die Signalleitungen 5V-pegel. Wieder die Frage: Schlimm?

Unzulässig. Nimm einen MAX3232, der läuft sowohl mit 3.3V als auch mit 
5V VCC. Dann stimmen auch die Signalpegel.

> d) i2c: Wohin häng ich die Pullups? 5V oder 3.3V? Und wieder: kann ich
> hier in ein Problem mit verschiedenen Pegeln laufen?

(1) an VCC des Prozessors, welche Spannung es auch immer ist. (2) ja. Du 
brauchst ggf Pegelwandler.

> Irgendwie bin ich ziemlich unschlüssig, ob das überhaupt zielführend
> ist, was ich hier vorhabe...

Doch, das ist alles machbar.

fchk

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Frank K. schrieb:
>> c) UART: Ich hab da so ein USB2serial (irgendein Arduino-Ding, das ich
>> aber sehr gerne verwende weil so hübsch klein). Auch das kann mir die 5V
>> Versorgung liefern, die dann wieder auf den Spannungsregler usw. Aber
>> auch dann haben die Signalleitungen 5V-pegel. Wieder die Frage: Schlimm?
>
> Unzulässig. Nimm einen MAX3232, der läuft sowohl mit 3.3V als auch mit
> 5V VCC. Dann stimmen auch die Signalpegel.

Der Max3232 aber darf nicht mit dem USB-Seriell-Adapter verbunden 
werden, wenn der 5V-Pegel verwendet. Das ist hier nicht hilfreich.

Sinnvoller ist es, einen USB-Seriell-Adapter mit extern zugeführter 
I/O-Spannung zu verwenden, das kann sogar Prolific.

von Michael R. (Firma: Brainit GmbH) (fisa)


Lesenswert?

Frank K. schrieb:
> Doch, das ist alles machbar.

Hmmm... aber für ein Experimentierboard alles etwas aufwändig :-(

Ich glaub ich werd die Idee vorerst wieder fallenlassen.

von Frank K. (fchk)


Lesenswert?

Michael Reinelt schrieb:
> Frank K. schrieb:
>> Doch, das ist alles machbar.
>
> Hmmm... aber für ein Experimentierboard alles etwas aufwändig :-(
>
> Ich glaub ich werd die Idee vorerst wieder fallenlassen.

Beim STK500 wird das ja auch gemacht. Schau Dir den Schaltplan an.

Wenn Du es richtig machst, kannst Du den Prozessor mit jeder Spannung 
zwischen 1.8V und 5.5V betreiben.

fchk

von Marcel (Gast)


Lesenswert?

Michael Reinelt schrieb:
> c) UART: Ich hab da so ein USB2serial (irgendein Arduino-Ding, das ich
> aber sehr gerne verwende weil so hübsch klein). Auch das kann mir die 5V
> Versorgung liefern, die dann wieder auf den Spannungsregler usw. Aber
> auch dann haben die Signalleitungen 5V-pegel. Wieder die Frage: Schlimm?

Bau dir einen FT232R mit auf dein Board. Den versorgst du per USB mit 5V 
und hängst die Vcc Referenz (für die IO Pins) an die Versorgung von 
deinem Board. Schon hast du die richtigen Signalpegel für UART.
Die 5V vom USB kannst du natürlich auch für dein Board selber nutzen.

von Michael R. (Firma: Brainit GmbH) (fisa)


Lesenswert?

Danke für eure hinweise. Vielleicht werd ich doch daran 
weiterarbeiten...

Ich möchte ganz bewusst kein USB on board haben. Lieber Pegelwandler...

Für momentan werd ich mir einen kleinen I2C-Pegelwandler bauen.

I2C: wäre da ein PCA9515AD tauglich?

Wo ich momentan grad auch massiv unschlüssig bin: was ist den der 
Wald&Wisen-"7805" für 3.3V? Braucht man bei 5V => 3.3V eine LDO?

Für das komplette Experimentierboard würde mir eine "bidirektionale" 
Spannungsunabhängigkeit vorschweben:

- Versorgung generell über 5V

- Prozessor-Versorgung einstellbar 5V, 3.3V und weiter nach unten

- UART nach außen mit 5V oder 3.3V (unabhängig von der 
Prozessorversorgung) Das heisst ich kann bei 5V Prozessorspannung 
3.3V-UART-Pegel haben, und umgekehrt. Natürlich auch beide Seiten 5V 
oder beide 3.3V

- same with I2C: 5V Prozessor, 3.3V i2c und umgekehrt

- ISP immer 5V (damit ich mit meinem Programmieradapter nix falsch 
machen kann)

Dafür bräuchte ich dann auch spezielle Pegelwandler.

Für I2C sollte das mit dem PCA9515AD schon mal verläßlich funktionieren: 
da brauchen nur mehr die Pullups an das richtige Potential, und gut ist.

UART sollte prinzipell einfacher sein, da die beiden Signale nur 
unidirektional sein. Nur find ich da jetzt auf die Schnelle nix 
vergleichbares zum PCA9515AD. Jemand eine Idee?

Mit ISP kenn ich mich da zu wenig aus: funktioniert das gleich wie SPI, 
also unidirektional MISO, MOSI und SCK vom master? Wer ist der Master 
bei ISP? Täte da auch ein unidirektionaler Level Shifter reichen? Der 
auf einer seite fix 5V hat, auf der anderen seite aber variable 5V, 3.3V 
usw. verträgt?

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.