Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Mitä tarkoittaa register I2C-väylässä ? (C++, Python)

peran [29.05.2022 17:57:52]

#

Siis mitä tarkoittaa rekisteri smbus-väylässä ?

Siis käskyissä block_prosess_call,process_call,read_block_data, read_i2c_block_data, write_block_data ...

Löytyy register-parametri, muttei minulle ole avautunut, mihin sitä tarvitaan/mikä on sen tarkoitus ?

Lähde mm. https://buildmedia.readthedocs.org/media/pdf/smbus2/latest/smbus2.pdf

peran [29.05.2022 18:08:36]

#

Tarkoittaako kyseinen rekister offset:tia ?

Metabolix [29.05.2022 18:13:27]

#

Rekisteri tarkoittaa suunnilleen samaa kuin muistiosoite. Pienissä laitteissa voi olla muistia esimerkiksi parikymmentä tavua ja laitteita voi säätää kirjoittamalla tähän muistiin. Oikeasti rekisterit eivät välttämättä ole todellista yhtenäistä muistia, vaan laite voi toteuttaa ne jotenkin muuten. Esimerkiksi rekisterin taustalla voi olla jono niin, että lukemalla saa aina seuraavan arvon jonosta, tai "rekisteri" voi olla suoraan jokin laitteen toiminto kuten anturin mittaustulos. Samalla rekisterillä voi olla myös eri merkitys lukemisessa ja kirjoittamisessa, esimerkiksi sama rekisteri voisi lukiessa palauttaa tietoa anturilta mutta kirjoittaessa vaikka säätää jotain anturin asetuksia.

Käytännössä rekisterin merkitys selkiytyy, kun lukee ohjattavan laitteen ohjeita. Siellä on usein aika tarkat kuvaukset, mitä eri rekistereistä saa lukemalla ja mitä tapahtuu kirjoittamalla.

peran [29.05.2022 18:35:15]

#

Juurikin tuota oletin tarkoittavan, mutten osannut pukea sitä sanoiksi.

Elikkäs kun laitan reksiteriksi 3, niin muutokset laitteessa tapahtuu kolmanteen muistipaikkaan eli tavallaan offset 3:a laitteessa.

Kiitokset selityksestä.

vesikuusi [29.05.2022 18:41:28]

#

Kuten Metabolix sanoi - se riippuu ihan laitteesta (slave), jonka kanssa kommunikoidaan. Ks. esimerkiksi tämä dokumentaatio, joka mielestäni on kuvaavampi: https://www.kernel.org/doc/html/latest/driver-api/i2c.html

Tuolla sivulla 'register' sijasta käytetään sanaa 'command'.

https://www.kernel.org/doc/html/latest/driver-api/i2c.html:

u8 command
Byte interpreted by slave

Slave-laitteesta riippuen, tuo voi olla muistipaikka, tai se voi olla esimerkiksi sen interruptin maski, jonka I2C-slave-laite laukaisee prosessorilleen.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta