Hallo zusammmen, ich versuche einen Pulser mit möglichst kurzer Risetime zu bauen. Mein erster Versuch mit einem ADCMP58080 war ein mäßiger Erfolg mit ca. 90ps. Nun versuche ich es mit dem Laserdriver MAX3949ETE+ (wie ihn Leobodnar verwendet). Diesen wollte ich mit einen Arduino Uno R3 an seiner I2C Schnittstelle programmieren, doch leider findet mein Arduino den Laserdriver nicht. Im Anhang findet ihr meinen Schaltplan sowie den verwendeten I2C Scanner, welchen ich aus dem Netz habe und nur um den Befehl digitalWrite(3, HIGH) (sowie das zugehörige) ergänzt habe, da dies vom MAX3949 benötigt wird. Ebenfalls habe ich bereits ein Programm laufen lassen, welches Verbindungen zwischen SDA/SCL zueinander und zu GND überprüft (dieses Programm findet auch keinen Fehler). Die benötigten Spannungen liegen alle an und unter dem Oszi habe ich die Abläufe auch betrachtet, welche so vom Timing her eig. passen sollten. Da ich jetzt nicht mehr weiter weiß freue ich mich auf eure Antworten. MfG
Du brauchst stärkere Pull-Up Widerstände, da muss mehr Strom fließen. Außerdem ist das kein I²C, sondern "The MAX3949 implements a proprietary 3-wire digital interface. Each operation consists of 16-bit transfers".
Ich habs jetzt statt den 4700ohm mit 1120ohm versucht um auf die 3mA zu kommen, finde aber leider immer noch nichts.
Stefan ⛄ F. schrieb: > Außerdem ist das kein I²C, sondern "The MAX3949 implements a proprietary > 3-wire digital interface. Each operation consists of 16-bit transfers". Ohja, das hab ich leider vergessen wegen Anfangsprobleme, na dann ist ja klar dass nichts geht.
Es ist wie gesagt kein I²C. Ich sehe in deinem Oszillogramm 9 Takte, nicht 16.
Jetzt bin ich endlich dazugekommen den Code für die Übertragung zu schreiben. Nun werden je Kommunikationsvorgang 16 Bit in MSB übertragen, wovon die ersten 7 die Adresse sind, das Achte Write/Read und die letzten Acht der Befehl/Auslesewert sind (vgl. S21/22 Datenblatt). Die Übertragungsfrequenz beträgt ca. 250kHz was ebenfalls passen sollte (S.6 Datenblatt). Im Anhang findet ihr dazu die Abläufe zueinander (habe leider nur ein 2-Kanal Oszi, darum die vielen Fotos). Bei den Fotos habe ich die Adresse komplett auf Null gelassen, zuerst ein Writebit gesetzt und dann das Register 0x05 angesprochen (deswegen die bestimmten Highzustände). Danach eine kurze Pause und wieder die Adresse 0 angesprochen, dann aber ein Readbit und im Anschluss ist mein Arduino auf Empfang. Wie man bei dem letzten Byte sieht bleibt dieses durchgängig auf Low, wobei laut S.23 Datenblatt zumindest D1 High sein sollte. Wahrscheinlich übersehe ich etwas komplett Offentsichles und freue mich daher auf eure Tipps.
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.