Forum: Mikrocontroller und Digitale Elektronik MAX3949 über I2Can Arduino wird nicht gefunden


von Viggal (Gast)


Angehängte Dateien:

Lesenswert?

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

von Stefan F. (Gast)


Lesenswert?

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".

von Viggal (Gast)


Lesenswert?

Ich habs jetzt statt den 4700ohm mit 1120ohm versucht um auf die 3mA zu 
kommen, finde aber leider immer noch nichts.

von Viggal (Gast)


Lesenswert?

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.

von Stefan F. (Gast)


Lesenswert?

Es ist wie gesagt kein I²C. Ich sehe in deinem Oszillogramm 9 Takte, 
nicht 16.

von Viggal (Gast)


Angehängte Dateien:

Lesenswert?

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
Noch kein Account? Hier anmelden.