Hallo Frank,
ich nutze seit Jahren den PCA9555 ist eigentlich absolut der gleiche Chip wie der TCA9555.
Wir haben da teilweise bis zu 90cm Kabelverbindung zwischen den Leiterplatten mit den ICs.
Gerade bei unseren LED-Schildern, wir haben am Anfang der Busverbindung 10K Pullup SDA/SCL und auf der letzten Leiterplatte ebenfalls. Somit haben wir 5k Pullup im Einsatz. Zwischen den Kabelverbindungen / Leiterplatten sind Ferritperlen als Filter eingesetzt (siehe Bilder). Diese Schilder sind EMV-Labor geprüft, haben Überspannungs- und Blitzschutzprüfungen hinter sich ohne irgendwelche Probleme.
Hast Du Dich mal auf dem Bus draufgehängt (oszi) und geschaut wie das Signal aussieht? Evtl. verzerrt? oder gar kein I2C Signal?
Hier mal ein kleines CodeBeispiel um einfach mal alle Adressen auf dem Bus zu scannen, das mache ich immer am Anfang der Entwicklung, da einie Adressangaben in den Datenblättern oft etwas merkwürdig angegeben werden. Deswegen einfach mal scannen und die gefundenen Adressen ausgeben. Evtl. ist es nur ein Adressierungsfehler.
procedure I2CScan; // Scanne I2Cs
var
w : byte;
begin
DebugOut('Check Hardware IO...');
b_Pro:= false;
for w:= 1 to 128
do
if TWIstatC(w) then
DebugOut('Adr ' + ByteToStr(w) + '...OK');
endif;
endfor;
end I2CScan; // Ende I2CScan
Gruß
Thorsten
ich nutze seit Jahren den PCA9555 ist eigentlich absolut der gleiche Chip wie der TCA9555.
Wir haben da teilweise bis zu 90cm Kabelverbindung zwischen den Leiterplatten mit den ICs.
Gerade bei unseren LED-Schildern, wir haben am Anfang der Busverbindung 10K Pullup SDA/SCL und auf der letzten Leiterplatte ebenfalls. Somit haben wir 5k Pullup im Einsatz. Zwischen den Kabelverbindungen / Leiterplatten sind Ferritperlen als Filter eingesetzt (siehe Bilder). Diese Schilder sind EMV-Labor geprüft, haben Überspannungs- und Blitzschutzprüfungen hinter sich ohne irgendwelche Probleme.
Hast Du Dich mal auf dem Bus draufgehängt (oszi) und geschaut wie das Signal aussieht? Evtl. verzerrt? oder gar kein I2C Signal?
Hier mal ein kleines CodeBeispiel um einfach mal alle Adressen auf dem Bus zu scannen, das mache ich immer am Anfang der Entwicklung, da einie Adressangaben in den Datenblättern oft etwas merkwürdig angegeben werden. Deswegen einfach mal scannen und die gefundenen Adressen ausgeben. Evtl. ist es nur ein Adressierungsfehler.
Code
procedure I2CScan; // Scanne I2Cs
var
w : byte;
begin
DebugOut('Check Hardware IO...');
b_Pro:= false;
for w:= 1 to 128
do
if TWIstatC(w) then
DebugOut('Adr ' + ByteToStr(w) + '...OK');
endif;
endfor;
end I2CScan; // Ende I2CScan
Gruß
Thorsten
Attachments
Filename: | 03-08-2023_12-58-29.png |
Filesize: | 554.22 KB |
Title: | |
Download counter: | 131 |
Filename: | 03-08-2023_12-59-18.png |
Filesize: | 444.87 KB |
Title: | |
Download counter: | 122 |
Filename: | 03-08-2023_12-58-52.png |
Filesize: | 515.72 KB |
Title: | |
Download counter: | 129 |