Pracujem zrovna na rozbehaní I2C komunikácie môjho STM32L-discovery s teplotným senzorom LM75BD. Malo by ísť o jednoduché čítanie 2 bajtov zo senzoru. Program sa mi vždy zasekne v časti po odoslaní adresy senzoru na SDA pin. Neviete mi nikto poradiť? Vonkajšie pull-up rezistory mám zapojené (3k9).
Fórum › Mikrokontroléry
STM32L-discovery - problém s I2C
podívej se na IIC paměťovým osciloskopem, zda slave dá ACK po přijetí adresy. Dále si zkontroluj, zda všechno posíláš tak jak to slave vyžaduje. Při čtení pak ACK dává Master na každý byte přijatých dat.
hu
K osciloskopu sa dostanem az v skole buduci tyzden. Zaujimave ale je, ze ked si sama menim urovne pinov SDA a SCL a generujem si tak akoby na SCL hodiny a na SDA start, poziadavku o citanie dat a stop, senzor odpoveda a posiela data aj ACK ...
v tom případě buď errata jak napsal yaqwsx nebo něco špatně zapsuješ do registrů. V datasheetu je popsaný postup, v jakém pořadí a co nastavit. V errata bývá popsáno, jak postupovat při potlačení projevů chyby. Někdy tam žádný "workaround" není, ale to je vyjímečně. Máš správně nastavený GPIO? Máš nastavený generátor hodin vč předděliče? Není taktování IIC pro periferii moc rychlé?
Zkus si na stránkách st.com k tomu procesoru najít application notes s ukázkou práce s IIC.
hu
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
MSP430 a I2C — založil Marek
I2C na Atmega32 — založil Deko
Komunikace dvou AVR po I2C — založil tripwax
Avr jako i2c slave — založil David Skalka
Moderátoři diskuze