Hi! Ich verwende USART, um einen Raspberry Pi und einen ATMega8 zu verbinden, es sind also die entsprechenden RXD/TXD Paare verbunden. Dazu habe ich zwei Fragen: 1) Der Raspberry verträgt nur 3.3V an den Pins. Da ich den ATmega aber mit 16MHz laufen lassen möchte, benötigt er mehr Spannung - ich kann ihn also nicht mit 3.3V betreiben, benötige also einen Pegelwandler, der die 5V in 3.3V umsetzt. Gibt es einen, der zwei Ein- und Ausgänge hat, oder sollte ich zwei Einzelne nehmen? Habt ihr eine andere Idee? 2) Der TXD Pin des Raspberry führt im Ruhezustand 3.3V (high). Findige Tüftler haben nun herausgefunden, dass man erkennt, dass der Raspberry komplett heruntergefahren worden ist, wenn TXD nach dem Herunterfahren keine Spannung mehr führt. Diesen Zustand möchte ich gerne abfragen, jedoch ohne mit meinem Schaltungslayout die Signalqualität zu beeinflussen. Meine Idee war, 3.3V als Referenzspannung an den ATmega anzulegen, und dann TXD vom Raspberry zusätzlich zum RXD an einen ADC Port anzuschließen. Was meint ihr dazu? Gibt es eine besser Option? Danke im Voraus!
1) Den Highpegel vom Pi müsste der ATMega8 als solchen erkennen -> kein Pegelumsetzer notwendig. Den Highpegel vom ATMega8 mit einem Spannungsteiler reduzieren und vielleicht mit einem Transistor oder so puffern. 2) Der ATMega8 hat für derartige Geschichten einen Analogkomparator onboard. Der ADC wäre eine Kanone die auf Spatzen schiesst dafür.
Es gibt I2C Pegelwandler, z.B. den pca9306 der in Deinem Falle auch hervorragend funktionieren sollte.
Martin Schwaikert schrieb: > Es gibt I2C Pegelwandler, z.B. den pca9306 der in Deinem Falle auch > hervorragend funktionieren sollte. Die Frage ist, inwieweit macht es Sinn solch einen Baustein zu verwenden, um nicht unnötig Strom zu "verheizen"?
Guten Abend Forum ! Ich habe auch eine Frage zum Raspberry, ich versuche schon seit einigen Stunden ein einfaches Byte an der Uart-Schnittstelle auszugeben. Bekomme es aber nicht hin. Ein Text geht aber keine einfaches Byte Sprache: Python import RPi.GPIO as GPIO serialport= serial.Serial("/dev/ttyAMA0", 19200, timeout=0.5) serialport.write("Hallo") -das geht ohne Probleme aber wie gebe ich zb. 0x55 aus ? danke !
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.