Fórum Root.cz

Hlavní témata => Hardware => Téma založeno: BigSandy 18. 04. 2018, 10:43:55

Název: Raspberry Pi 3 - nefunguje I2C sběrnice
Přispěvatel: BigSandy 18. 04. 2018, 10:43:55
Zdravím.
Včera se mi asi posmolil expander MCP23017.
Vůbec jsem ho neviděl.
Vyměnil jsem ho za nový o kterém vím, že je na 100% funkční.
Přes i2cdetect 1 ho vidím, ale to je vše.

Kód: [Vybrat]
sudo i2cset -y 1 0x20 0x12 0xFF
sudo i2cset -y 1 0x20 0x13 0xFF
sudo i2cset -y 1 0x20 0x00 0x00
sudo i2cset -y 1 0x20 0x01 0x00

Error: Write failed

Muže byt spálena sběrnice, když ho vidím?
Název: Re:Raspberry Pi 3 - i2c sběrnice
Přispěvatel: Honza 18. 04. 2018, 12:04:20
Podívej se na blokáč na straně 2 zde (http://ww1.microchip.com/downloads/en/DeviceDoc/20001952C.pdf), zamysli se a sám si odpověz...
Název: Re:Raspberry Pi 3 - nefunguje I2C sběrnice
Přispěvatel: Honza 18. 04. 2018, 13:30:15
A abych tu jen neplkal.

A co přesně znamená "když ho vidím?"
Kód: [Vybrat]
i2cset ti píše
Kód: [Vybrat]
Error: Write failed, takže se mu nedaří zapsat. A možná ho na sběrnici ani "nevidí".

Zkoušel jsi:
Kód: [Vybrat]
sudo i2cdetect -y 1? Výstup?
Název: Re:Raspberry Pi 3 - nefunguje I2C sběrnice
Přispěvatel: BigSandy 18. 04. 2018, 13:34:15
A co přesně znamená "když ho vidím?"
Ano, přes sudo i2cdetect -y 1 ho vidím na adrese 20
Název: Re:Raspberry Pi 3 - nefunguje I2C sběrnice
Přispěvatel: Honza 18. 04. 2018, 13:37:13
A co přesně znamená "když ho vidím?"
Ano, přes sudo i2cdetect -y 1 ho vidím na adrese 20
Jak přesně vypadá výstup i2cdetect? A jak se změní, když dáš SDA natvrdo na 0 (zem)?
Název: Re:Raspberry Pi 3 - nefunguje I2C sběrnice
Přispěvatel: BigSandy 18. 04. 2018, 13:41:41
Takto.
Název: Re:Raspberry Pi 3 - nefunguje I2C sběrnice
Přispěvatel: Honza 18. 04. 2018, 13:44:21
Takto.
A jak to vypadá, když dáš SDA na 0 (drátem)?

I když zkoušíš číst registry toho MCP přes i2cdump? Dostáváš nějaké smysluplné hodnoty, které odpovídají datasheetu?
Název: Re:Raspberry Pi 3 - nefunguje I2C sběrnice
Přispěvatel: ehmmm 18. 04. 2018, 14:07:24
A jak to vypadá, když dáš SDA na 0 (drátem)?

Muzes prosim poucit bastlirskeho zacatecnika, co by mel v takovem pripade videt?
Neco smysluplneho? Nebo jenom to, ze na adrese 0x20 se uz neozve vubec nic?

Jako amater bych si asi na SCL a SDA povesil osciloskop a snazil bych se pochopit, co se tam deje.
Název: Re:Raspberry Pi 3 - nefunguje I2C sběrnice
Přispěvatel: Honza 18. 04. 2018, 14:56:18
A jak to vypadá, když dáš SDA na 0 (drátem)?

Muzes prosim poucit bastlirskeho zacatecnika, co by mel v takovem pripade videt?
Neco smysluplneho? Nebo jenom to, ze na adrese 0x20 se uz neozve vubec nic?

Jako amater bych si asi na SCL a SDA povesil osciloskop a snazil bych se pochopit, co se tam deje.
Pískomil zřejmě osciloskop nemá.

Další postup má více alternativ, napadá mně třeba:

A co se stane při připojení SDA na zem? Pokud není přerušená (zřejmě ne, jinak by se neozvalo jen zařízení na adrese 0x20), tak bude i2cdetect hlásit přítomnost zařízení na všech testovaných adresách. A proč? Protože i2cdump kontroluje jediné - a to ACK na zaslanou adresu. A ACK znamená SDA v 0. Stejně tak by šlo zkusit SDA na logickou 1 - to potom "není vidět" žádné zařízení, protože od žádného nepřijde do kontroléru ACK.

Pokud Pískomil nemá osciloskop ani nic jiného, ať vezme i2cdump + datasheet obvodu a zjistí, jestli se mu na sběrnici něco děje a jestli je to to, co očekává.

V základu sběrnice totiž funguje - zcela jistě jdou hodiny a jde zapsat adresu na SDA + přečíst zpět ACK. To ale neznamená, že tam nemůže být jiná bota...

Pískomil postupuje dost chaoticky. Vrací mu i2cset Write error jenom až na to 4. volání nebo už při prvním? Proč to nezkusí po jednom? Čeho vlastně chtěl dosáhnout těmi 4 zápisy (GPIOA, GPIOB,  IODIRA, IODIRB)?

Atd, atp...

Název: Re:Raspberry Pi 3 - nefunguje I2C sběrnice
Přispěvatel: ehmmm 18. 04. 2018, 15:38:15
A co se stane při připojení SDA na zem? Pokud není přerušená (zřejmě ne, jinak by se neozvalo jen zařízení na adrese 0x20), tak bude i2cdetect hlásit přítomnost zařízení na všech testovaných adresách. A proč? Protože i2cdump kontroluje jediné - a to ACK na zaslanou adresu. A ACK znamená SDA v 0. Stejně tak by šlo zkusit SDA na logickou 1 - to potom "není vidět" žádné zařízení, protože od žádného nepřijde do kontroléru ACK.

Dekuji za vysvetleni.
Název: Re:Raspberry Pi 3 - nefunguje I2C sběrnice
Přispěvatel: BigSandy 18. 04. 2018, 15:40:15
Stah jsem si nového raspbiana a strčil na jinou kartu a vše funguje.
Divné to.
A to si dělám přes crontab zálohu karty jednou týdně, a aní se zálohou to nešlo.