Hallo,
ich habe hier 2 Boards mit STM32ern: STM32F4 Discovery und STM32H7A3
Nucleo und würde gerne eine Kommunikation zwischen beiden aufbauen
mittels I2C (und einem GPIO Pin).
Nun haben beide aber leicht unterschiedliche Pegel:
- das F4 Discovery läuft mit 3V (gemessene 2,98V)
- das H7 Nucleo läuft mit 3.3V (gemessene 3,45V)
Wäre der Unterschied (knapp 0,5V) klein genug dass es keine Probleme
gibt oder muss ich größere Vorkehrungen (Pegelwander?) treffen?
Meine Idee war nun da es um I2C (und einen GPIO den ich auch als Open
Drain betreiben kann) geht, könnte ich da einfach nur den Pull-Up auf
die niedrigere Spannung ziehen (die 3V vom F4). Der Pegel reicht dann
trotzdem noch um bei dem H7 einen sauberen High Pegel zu erreichen.
Würde das so passen oder riskiere ich damit irgendwelche
unvorhergesehenen Probleme?
Gruß,
AVerr
Lutz schrieb:> Die Massen müssen natürlich verbunden sein
Jawohl, habe ich vergessen zu erwähnen.
Vielen Dank, dann werde ich mich mal an's Basteln machen :)
AVerr schrieb:> das F4 Discovery läuft mit 3V (gemessene 2,98V)> das H7 Nucleo läuft mit 3.3V (gemessene 3,45V)
Natürlich möglich, Beide Spannungen sind zulässig, aber meiner Meinung
nach verwunderlich, dass ein 3.0V Spannungsregler und keiner mit 3.3V
dem F4 Board verwendet worden sein soll. Entweder war der etwas
billiger, deine Eingangsspannung ist zu niedrig oder du hast eine zu
große last angeschlossen.
Auch 3.45V hören sich seltsam an. Ein 3,3V Spannungsregler der so
ungenau und dann auch noch zuviel regelt?
Bitte überprüfe die Spannungswandler ICs, ob tatsächlich ein 3,0V bzw.
3,3V Typ verbaut ist.
QQ schrieb:> Beide Spannungen sind zulässig, aber meiner Meinung> nach verwunderlich, dass ein 3.0V Spannungsregler und keiner mit 3.3V> dem F4 Board verwendet worden sein soll.
Das liegt wohl daran dass ein 3.3V Spannungsregler (LD3985M33R)
verwendet wird, aber direkt dahinter eine BAT60J Diode steckt. Mit
Forward Voltage Drop passen die ca. 3.0V recht gut.
Ja, die 3.45V machen mir auch etwas Sorgen. Laut Schaltplan müsste ein
ST1L05CPU33R verbaut sein, der nicht so viel ausgeben dürfte. Ich werde
das später noch überprüfen ob das so stimmt.
Was die 3.45V betrifft kann ich Entwarnung geben ... ich weiß nicht
warum mein Multitmeter (billiges Peaktech Teil) gestern die 3.45V
angezeigt hat, aber Heute sind es 3.32V, macht auch mehr Sinn. Wird wohl
Zeit für ein besseres Multimeter ...
AVerr schrieb:> Wird wohl Zeit für ein besseres Multimeter
Oder frische Batterien. Das war oben nämlich meine erster Gedanke bei
den erwähnten Spannungen.
Walter T. schrieb:> Oder frische Batterien.
Das ist der Witz an der Sache: ich habe erst vor 2 Tagen die Batterien
gewechselt, sie sind also noch frisch.
AVerr schrieb:> Das liegt wohl daran dass ein 3.3V Spannungsregler (LD3985M33R)> verwendet wird, aber direkt dahinter eine BAT60J Diode steckt. Mit> Forward Voltage Drop passen die ca. 3.0V recht gut.
Das machen die auf dem Disco Board, damit man auch extern 3,3V
einspeisen kann (hinter der Diode). Wenn man das nicht möchte, kann man
die BAT60 auch brücken mit dem Nebeneffekt, das die Betriebsspannung
sauberer ist. Die kleine Diode ist nämlich ein ganz schöner Widerstand.
Da die ursprüngliche Frage jetzt geklärt ist:
Was ist der Anwendungsfall? Wozu verbindet man zwei MCUs mit viel
Leistung durch eine Leitung mit wenig Bandbreite?
Walter T. schrieb:> Was ist der Anwendungsfall? Wozu verbindet man zwei MCUs mit viel> Leistung durch eine Leitung mit wenig Bandbreite?
Weil das die 2 Boards sind die ich gerade da habe. Am Ende werden viel
kleinere STM32er verwendet, aber erstmal will ich nur das Zusammenspiel
der 2 Komponenten testen. Ja, gerade der H7 ist für den Zweck unnötig
komplex, aber das hab ich schon im Griff ;)
AVerr schrieb:> warum mein Multitmeter (billiges Peaktech Teil) gestern die 3.45V> angezeigt hat, aber Heute sind es 3.32V, macht auch mehr Sinn.
Solche Messgeräte gefallen mir, wenn man für das sehnlichst gewünschte
Ergebnis einfach ein wenig länger damit herummessen muss... ;-)
AVerr schrieb:> Meine Idee war nun da es um I2C
Wenn du schon 2 Leitungen für die Verbindung verwendest, warum dann
nicht besser einen UART, der mit 8MBd bei weniger Protokoll- und
Verwaltungsoverhead die Daten bidirektional unabhängig vom
Übertragungszustand des Partners übertragen kann?
Schön, wenn man den I²C hat und 5 Slaves dran. Aber ich würde eine
Kommunikation zwischen meinen eigenen 2 Geräten nicht mit einem
Multimasterbus abhandeln. Schon das Gelecke mit der Busarbitrierung und
das Gebettel um den Bus smat Einhaltung irgendwelcher Timings wäre mir
viel zu umständlich.