PIC18F4550 über I²C an MAXIM7349

Gast #1278939
Lesenswert?

Hallo,

ich versuche a, GPIO-Demoboard von Microchip
den I²C Bus zu nutzen um einen "Tastenbaustein"
von Maxim anzusteuern (MAX7349).

Sobald ich die Datenleitung des MAX7349 an den I²C Bus anschließe,
wird diese Leitung auf Masse gezogen. Der ganze I²C Bus ist dann quasi 
TOT.
Hab schon den 2. Baustein auf meiner Platine aber keine Besserung.
Ist das Verhalten Normal? Hab ich vielleicht was vom I²C falsch 
verstanden?


Gruß Stefan
Gast #1279027
Lesenswert?

Hi,

Hier der Schaltplan meines Testboardes.

Damit gehe ich dann auch die bereits Funktionierende
I²C Schnittstelle des Microchip GPIO-Demo Boardes. Diese Wiederum führt 
direkt zu den I²C Pins des PIC´s.

Gruß stefan
Angehängte Dateien:
Gast #1279699
Lesenswert?

Hi,

ja der läuft mit 5V. Aber die Verbindung zum Max7349 besteht nur über 
die
gemeinsame Masse und über die I²C Leitungen. Diese sind laut Datenblatt 
5V kompatibel.

Anstatt Kondensator hab ich ein einzelnes Labornetzteil für die sauberen 
3,3V - Aber ich probiers aus.

Pullups sind auf dem Microchip GPIO Demomodul. Dort funktioniert auch 
schon die I²C Kommunikation mit den Mircochip Portbausteinen MCP23008 
usw. auch das Display funktioniert. Eben bis ich den Max anschließe - 
dann ist der Bus TOT.
Die Leitung hat keinen kurzschluß!. Hab schon den 2. Max drin. Hab das 
Gefühl der WILL die Leitung runter ziehen. Deswegen dachte ich ich habe 
was mit dem I²C Protokoll nicht verstanden.

Gruß Stefan
Angehängte Dateien:
Gast #1279851
Lesenswert?

HI,

ich habs.
Mein Multimeter zeigte gut 0,5V falsch an - ich glaub ich habe
beide MAX7349 geschrottet.
Mit nem neuen gehts nun, die Spannungsversorgung mach ich nun lieber 
über nen LM3940 - dann geht da nichts schief.

Nun ne frage zur Kommunikation.

Ich Programmier das mit dem C18 Compiler in C.

Ich möchte den MAX ansprechen. Geht das in dieser Art?


          I2CStart();
     WriteI2C(0x70); // Opcode write mode, addr ess 0x01
     WaitForACK;
     WriteI2C(0x00); // Command Byte: Keys FIFo
     WaitForACK;
     WriteI2C(0xff); // Data byte: D0-D7=High
     WaitForACK;
     I2CStop();

Gruß Stefan

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren