Sida 2 av 2
Re: i2c-buss hänger sig?
Postat: 21 februari 2026, 13:04:58
av hawkan
Koden finns ju på nätet, det är ju Arduino.
Men du har två initialiseringar av I2C, på samma I2C-buss. Kan aldrig vara bra.
Du kan se om de kan använda samma underliggande I2C kommunikation, är det Wire som de ska används i så fall?
Tittade lite snabbt i koden, det finns ju begin_I2C(.. Wire) för mcp och det går nog också för u8g2 men det orkar jag inte leta upp.
Re: i2c-buss hänger sig?
Postat: 22 februari 2026, 14:01:55
av mattswe
Det går bra nu, har haft datorhaveri och ominstallation av Windows sedan förra inlägget.
Ja, jag gissar att problemet ligger på mjukvarusidan. U8G2 använder också Wire om jag minns rätt, har inte hunnit installera om allt än så jag har inte kunnat kolla.
Re: i2c-buss hänger sig?
Postat: 22 februari 2026, 14:51:47
av Icecap
Utan att ha kollat mjukvaran:
Du har 2 saker som kör på I²C.
De har vardera "driver" inkluderat.
I min hjärna ska det finnas 1(!) "drivrutin" för I²C och sedan ska vardera "driver" kommunikera med den drivrutin.
JAG tror att du kanska har 2 olika "drivrutiner" som använder samma I²C hårdvara - och det ju kan bara ställa till det!
Det ska ju eg. vara uppdelt:
1: Själva drivrutinen för I²C. Den skickar o hämtar data via lämpliga anrop.
2: En rutin för displayen.
3: En rutin för MCP23x17
De 2 sista ska sedan samsas om att använda I²C'n - och jag tror att de inte är klara till det.
Re: i2c-buss hänger sig?
Postat: 22 februari 2026, 15:00:10
av hawkan
och jag tror att de inte är klara till det.
Tror och tror. Varför inte veta?
Jag vet att de fungerar ihop på samma I2C-buss.
Bara att leta upp funktionen där man ger en existerande Wire. Överlåtes till läsaren.
Re: i2c-buss hänger sig?
Postat: 22 februari 2026, 17:13:02
av toolbox
Vet inte om det hjälper dig men du är inte ensam om att ha problem med i2c-displayer framför allt om man använder hårdvarubaserad i2c. Här har du ett möjligt problem:
https://forum.arduino.cc/t/conflict-wit ... i2c/471067 :
Many of the Ebay SSD1306 displays do not ACK the I2C properly.
Most libraries have an option to handle these badly configured displays.
A properly configured SSD1306 will work on the same bus with any other proper I2C devices. The Wire.h library should work fine.
If your SSD1306 is non ACKing, I suggest that you put it on different pins to the regular hardware I2C devices.
Inte säkert att det är ditt problem, men kan ju vara värt att fundera över.