STM32L010 I2C Slave - HAL tezave

Vse kar je v povezavi z ARM-Cotrex-M procesorji. Sem spada tako HW kot SW.

Moderator: tilz0R

STM32L010 I2C Slave - HAL tezave

OdgovorNapisal/-a urosg » 30 Maj 2022, 07:20

Ukvarjam se z STM32L010 na katerem bi moral narediti povezave preko I2C kot slave napravo.

Uspelo mi je pripeljati zadevo tako dalec da slave dejansko odgovori ACK na vse poslane bajte iz mastra vendar ne vidim pa prejetih bajtov potem v memoriji, prav tako ob zakljucku prenosa pride do "ACKF" napake in s tem nimam informacije kdaj je bil prenos zakljucen.

Projekt sem ustvaril z CubeMX ter ga potem malce dopolnil z IT callbacki; predno sem dodal IT callbacke nisem imel ACKjev niti na poslano nastavljeno adreso.

V prilogi "main.c" ter "i2c.c" datoteki.

Ce se je kdo ze ukvarjal s tem bi prosil za kaksen namig kje sem zgresil bistvo.

hvala!!!
Priponke
i2c-test.zip
I2C Slave test
(3.47 KiB) Prenešeno 10 krat
Uporabniški avatar
urosg
 
Prispevkov: 627
Pridružen: 10 Feb 2015, 13:38
Kraj: Domžale, Mengeš, Kamnik
Zahvalil se je: 23 krat
Prejel zahvalo: 137 krat
Uporabnika povabil: mucek
Število neizkoriščenih povabil: 13

Re: STM32L010 I2C Slave - HAL tezave

OdgovorNapisal/-a urosg » 13 Jun 2022, 09:47

Da odgovorim sam sebi in mogoce se komu drugemu.

Prilozen primer je cisto OK samo razmisljanje mora biti pravo - t.j. I2C slave dela kot I2C slave v tem smislu, da je v komunikaciji ponavadi prvi byte nek indeks - naslov v tabeli potem pa sledijo podatki in ker sem jaz iz mastra posiljal "test" preko I2C vodila se je seveda vrednost "est" zapisala na poziciji 116 v tabeli - "ram" arrayju.

Torej ce bi nekdo zelel - tako kot sem jaz - dobiti samo "surovo" preneseno vrednost je potrebno v HAL_I2C_AddrCallback funkciji v tretji vrstici zamenjat "&offset" z "&ram[offset]" ter v funkcijo HAL_I2C_ListenCpltCallback dodati reset pozicije "offset = 0", da je vedno ob novem prenosu od zacetka.
Uporabniški avatar
urosg
 
Prispevkov: 627
Pridružen: 10 Feb 2015, 13:38
Kraj: Domžale, Mengeš, Kamnik
Zahvalil se je: 23 krat
Prejel zahvalo: 137 krat
Uporabnika povabil: mucek
Število neizkoriščenih povabil: 13


Vrni se na ARM-Cortex-M

Kdo je na strani

Po forumu brska: 0 registriranih uporabnikov in 1 gost