Hej,
Na jednej szynie I2C mam podpięte PCF8583, PCF8574, TDA7318. Moduł zawierający TDA zasilany jest z głównego trafa, które z kolei załączane jest poprzez ekspander 8574. TDA przy braku zasilania w jakiś sposób blokuje komunikację I2C, gdy go wypnę z szyny I2C to wszystko działa bezbłędnie. Żeby zasilić TDA najpierw muszę skorzystać z ekspandera - i błędna pętla się zamyka... Niestety nie mam analizatora stanów logicznych żeby sprawdzić co jest nie tak ale podejrzewam że chodzi o flagę ACK potwierdzenia - nie znalazłem w jaki sposób zrobić aby bascom ignorował ACK (dawał tylko takt zegara i nie sprawdzał czy slave ściągnął linię w dół w celu potwierdzenia). Próbowałem też dać większe opóźnienia przez Config I2cdelay ale bez skutku.
Jak to obejść?
Dodaje fragment schematu
![[Bascom]Kilka urządzeń I2C, jedno blokuje komunikację [Bascom]Kilka urządzeń I2C, jedno blokuje komunikację](https://obrazki.elektroda.pl/24_1263641549_thumb.png)
Na jednej szynie I2C mam podpięte PCF8583, PCF8574, TDA7318. Moduł zawierający TDA zasilany jest z głównego trafa, które z kolei załączane jest poprzez ekspander 8574. TDA przy braku zasilania w jakiś sposób blokuje komunikację I2C, gdy go wypnę z szyny I2C to wszystko działa bezbłędnie. Żeby zasilić TDA najpierw muszę skorzystać z ekspandera - i błędna pętla się zamyka... Niestety nie mam analizatora stanów logicznych żeby sprawdzić co jest nie tak ale podejrzewam że chodzi o flagę ACK potwierdzenia - nie znalazłem w jaki sposób zrobić aby bascom ignorował ACK (dawał tylko takt zegara i nie sprawdzał czy slave ściągnął linię w dół w celu potwierdzenia). Próbowałem też dać większe opóźnienia przez Config I2cdelay ale bez skutku.
Jak to obejść?
Dodaje fragment schematu
