Hallöchen
Ich baue ein Shield für den Arduino, welcher mit Uno und Due
funktionieren sollte. Der Shield sollte kompatibel sein mit 5V und 3.3
Volt, wählbar via Jumper oder automatischer Schaltung. Ein Sound IC gibt
es leider nur mit 5 Volt.
Da ich kein Profi bin frage ich zur Sicherheit lieber einmal nach...
- Sind die BSS138 mit 2x 10k R ok für I2C und anderen Ein/Ausgängen?
- Gibt es Level Schifter Chips (keine gefunden der BI arbeitet und I2C
komp. sind) mit 8 Bit oder 4 Bit welche auch gerade die Wiederstände
beinhalten?
- Wenn ich den Sound IC (5Vol, 8 Bits Daten + 3 Steuerung) mit einem
MCP23017 betreibe und die I2C via BSS 138 mit einem Level Schifter
versehen sind (MCP 23017 + LCD) , erübrigt sich die Datenleitungen auch
zu konvertieren, da der MCP23017 auch mit 5 Volt betrieben wird. Sollte
so ok sein?
- Da ich ein ULN2004 benutze, nehme ich an, dass dort CD (Pullup 10k)
mit der Spannung des 5V versorgt werden muss? Ansteuerung mit 3.3V
funktioniert und der Aushang liefert dann den GND zu 5Volt.
- Eingange die mit Masse geschaltet werden haben intern einen Pullup,
also benötige ich hier kein Level Schifter, ich denke das ist richtig?
Danke für die Hilfe.
> Sind die BSS138 mit 2x 10k R ok
Du meinst hoffentlich den berühmten Levelshifter-Schaltungsvorschlag von
Philips (heute NXP). Die Schaltung funktioniert mit den meisten Chips.
> Gibt es Level Schifter Chips
Sicher, aber die Pull-Ups werden da nicht drin ein, weil es keine festen
Werte gibt die in allen Umgebungen optimal sind. Manche Schaltungen
(z.B. Lego Mindstorms) erfordern viel größere Widerstände. Andere
wiederum laufen besser mit kleineren Widerständen - vor allem bei hoher
Taktfrequenz.
> Wenn ich den Sound IC
Welcher ist das?
> Da ich ein ULN2004 benutze, nehme ich an, dass dort CD (Pullup 10k)> mit der Spannung des 5V versorgt werden muss?
Das ist der Anschluss für die Freilaufdioden. Den brauchst du nur bei
kapazitiven Lasten (z.B. Relais) und er muss dann an die +
Versorgungsspannung der Lasten angeschlossen werden.
> Eingange die mit Masse geschaltet werden haben intern einen Pullup,
Dann wohl auf 5V. Wie reagieren sie wohl, wenn der High Pegel nur 3,3V
ist?
Mr D. schrieb:> Ein Sound IC gibt> es leider nur mit 5 Volt.
Was soll der machen?
Je nach Anwendung kann man sich auch einfach überlegen, ob das Ganze
sinnvoll ist und man nicht einfach einen ESP8266/ESP32 einsetzen sollte,
die können z.B. die Aufgabe des Sound IC genauso übernehmen (wenn meine
Annahme richtig ist dass du etwas wiedergeben möchtest). Die kann man
auch schön mit der Arduino IDE programmieren.
Am besten wäre natürlich ein Schaltplan, den musst du so oder so
zeichnen und dann kann man sicherlich den einen oder anderen Fallstrick
sofort erkennen, ist nur in deinem Interesse. ;)
Der Sound Chip ist ein SN76489 (old style, Dil 16)
4 Mhz Clock
Data 0-7, NCE, NRD, NLE
NRD und NLE sind zusammen und werden als !Ready gelesen.
NCE is Chip Enable. Soweit funktioniert das bereits jedoch mit 5 Volt.
Dieser Chip hat keine bidirektionalen Leitungen, daher würde ich nicht
so eine bidirektionale Levelshifter Schaltung einsetzen. Die hat nämlich
auch eine Menge Nachteile.
Nimm lieber 74LVC Gatter als Levelshifter.
Stefan U. schrieb:> Dieser Chip hat keine bidirektionalen Leitungen, daher würde ich nicht> so eine bidirektionale Levelshifter Schaltung einsetzen. Die hat nämlich> auch eine Menge Nachteile.>> Nimm lieber 74LVC Gatter als Levelshifter.
Ne brauche die LS ja für I2C und der MCP23017 ist direkt an 5 Volt genau
wie das LCD. Somit erübrigt es ja ein LS für die Datenleitungen...
Neopixel funktioniert nun auch mit dieser Schaltung.
Habe das getestet mit Breadboard Aufbau.
Brauche nur noch einen für eine TX Leitung die reinkommt mit 5 Volt.
Aber sollte auch gehen mit dieser Schaltung, da nur 19200 Baud.
Danke für den Tip mit dem Gatter wird es mal anschauen.
Ich glaube nicht, dass du für I²C Levelshifter brauchst. Denn wenn da
alles mit rechten Dingen abläuft, haben alle Busteilnehmer
Open-Collector Ausgänge. Der High Pegel wird ausschließlich durch die
Pull-Up Widerstände definiert. Die hängst du einfach an 3,3V und gut
ist. Damit sollten auch 5V IC's klar kommen.
Serielle UART Leitungen bringst du mit einem Spannungsteiler (1k Ohm +
2,2k Ohm) von 5V runter auf 3,3V.
Stefan U. schrieb:> Ich glaube nicht, dass du für I²C Levelshifter brauchst. Denn wenn da> alles mit rechten Dingen abläuft, haben alle Busteilnehmer> Open-Collector Ausgänge.
Gilt oC auch für den AT-328? Ich hatte mir neulich einen TXS0108E
gegönnt, um eine 3,3V-Platine am 5V-Nano zu betreiben.
- Danke für den Tipp mit dem Spannungsteiler, spart ein Transistor. :)
- mit dem I2C bin ich mir da nicht ganz sicher, zumal ja der 5V chip
dann mit 5 Volt sendet, clock und Daten... oder sehe ich das falsch?
> Verstehe dann aber nicht warum mir jemand gesagt hat ich müsse für das> LCD 5V mit I2C einen LS benutzen sonst sei es hin.
Keine Ahnung was er damit meint. Die allermeisten LCDs kann man auch mit
3,3V betreiben, wenn man an den Kontrast-Eingang eine negative Spannung
von 1-2V anlegt. Sonst sieht man nichts.
> Und einige I2C Chips haben intern ja auch Pullups, was ist den damit?
Ja die gibt es. Wenn es wirklich nur Widerstände oder
Konstantstromquellen sind, erledigen die ESD Schutzdioden der 3,3V Chips
das Problem für dich. Die begrenzen dann die Spannung auf ca 3,6V.
Wenn die die Leitungen aber hart auf 5V ziehen, dann brauchst du
Pegelwandler. Dann sind das aber genau genommen keine richtigen I²C
Anschlüsse. Solange im Datenblatt kein eindeutiger Hinweis darauf steht,
würde ich hier erstmal davon ausgehen, dass du keine Pegelwandler
brauchst.
Hast du ein Oszilloskop?
Du könntest 100 Ohm Widerstände in Reihe schalten und dann am
Oszilloskop-Bild sehr deutlich erkennen, ob der Chip die Leitungen auf
5V zieht, oder nicht.
Stefan U. schrieb:> Hast du ein Oszilloskop?> Du könntest 100 Ohm Widerstände in Reihe schalten und dann am> Oszilloskop-Bild sehr deutlich erkennen, ob der Chip die Leitungen auf> 5V zieht, oder nicht.
Nein, leider habe ich das nicht, ansonsten ich das ja selber ausknobeln
könnte. Bin aber am überlegen, es fehlen mir halt ein paar 100
Teuronen...
Ich werde das mal ausprobieren mit meinem billigen LCD aus China (2€).
Danke.
Bei Aliexpress gibt es derzeit Spielzeug-Oszilloskope mit TFT Display
für 15 Euro incl. Versand.
https://www.aliexpress.com/item/Assembled-DSO138-2-4-TFT-Handheld-Pocket-size-Digital-Oscilloscope-Kit-DIY-Parts-Electronic-Learning-Set/32803186608.html
Wenn du die Takfrequenz deiner I²C Kommunikation niedrig genug
einstellst, kannst du damit schon ganz gut was sehen. Das Ding ist jetzt
kein Profi Equipment aber immer noch viel besser, als gar keins zu
haben. Ich wäre als Teenager sehr glücklich gewesen, wenn es das damals
schon gegeben hätte.
Stattdessen arbeitete ich 5 Wochenenden hart in der Montage, um ein
altes analoges als Lohn zu bekommen.
Ich sehe gerade: Der Fotograf hätte wenigstens das Display gerade rücken
können, bevor er es ablichtet. Denen ist auch nix peinlich. Tsss