I2C-kirjastot ATTiny85: lle?

Haluan lähettää I2C-tietoja Digispark ATTiny85 -taulun avulla:

Olen löytänyt seuraavat I2C-kirjastot. Kumpi on kevyempi, vakaampi, virheetön, tehokas, tehokas ja helppokäyttöinen?

  • Adafruit ”s TinyWireM -sovellusta ei ole päivitetty kahden vuoden aikana.

  • felias-fogg ”s SoftI2CMaster on päivitetty muutaman päivän sisällä tästä viestistä.

  • lucullusTheOnly ”s TinyWire edustaa muutaman vuoden parannuksia, jotka perustuvat” TinyWireM- ja TinyWireS-kirjastoihin ”. Tätä versiota suosittelee TinyWireM: n luoja BroHogan: https://playground.arduino.cc/Code/USIi2c

Lanka näyttää olevan aliedustettu:

”Arduino Wire () -oletuskirjasto ei tue väylänopeuden muutoksia tai ominaisuuden kelloa tuen venyttäminen. Tämä tekee oletuskirjastosta vain marginaalisesti toimivan ” https://www.maxbotix.com/articles/095.htm

Mitkä muut I2C-libit ovat käytettävissä ATTiny: lle? IDE: ssä näen Digispark SoftSerial, OneWire ja VirtualWire.

Miten ne kaikki vertailevat?


Huomaa, että nämä muut vastaukset eivät ole vaikuttavat kysymykselleni:

kommentit

  • kokeile molempia … eniten esimerkkikoodia ensin

vastaus

Haluan lähettää I2C-tietoja …

Hieman epämääräinen.

Lähetetäänkö mihin laitteeseen? Kuinka nopea tiedonsiirtonopeus on (100 kHz, 400 kHz)? Ainoa lähetät ja et lue mitään takaisin? Mikä on I2C-väylän joutokäyntijännite (kysyäksesi, oletko valinnut oikeat vetovastuksen arvot aiotulle väylänopeudelle)?

Mainitset, että lankakirjasto ei tue ydinkellonopeutta muutokset ilman hakkerointia, mutta älä puhu nopeudesta, jonka aiot käyttää mikrokontrolleria, tai siitä, kuinka nopeasti aiot käyttää I2C: tä. Voin arvata 400 kHz, koska nostit nopeutta, mutta se ei ole hieno tapa vastata kysymykseen.

Käytän Wire-kirjastoa Arduino UNO: ssa I2C-väylänopeudella 100 kHz ja se ” toimi hyvin tarpeisiini. Sain tavuja sisään ja ulos.

Tässä vaiheessa paras ehdotukseni on, että jos jokin yllä luetelluista kirjastoista ei tue haluamaasi ominaisuutta, haaroita se ja lisää itse ominaisuutesi tuki. Jos lähetät vain yhdelle orjalaitteelle, sinun ei tarvitse huolehtia väylän sovittelusta, kuten TinyWire . Adafruit on suurimmaksi osaksi kunnossa, mutta ne näyttävät (minulle) hitaasti korjaavan vikoja ja ylläpitämällä koodia. Mutta älä anna koodin iän päästä sinuun. I2C luotiin takaisin vuonna 1982 , ja käytät sitä edelleen … 😛

Tässä miten lähestyisin kirjaston valitseminen:

  • Määritä tarvitsemasi ominaisuudet
  • Etsi kirjasto, jossa on suurin osa näistä ominaisuuksista
  • Lisää tarvitsemasi uudet ominaisuudet
  • Jaa mahdollisesti lisätyt ominaisuudet yhteisön kanssa vetopyynnöllä

vastaus

bHogan näyttää olevan TinyWireM: n ja TinyWireS: n alkuperäinen kehittäjä. Andreas Spiess (”Sveitsiläisellä aksentilla varustettu kaveri”) käytti rambo TinyWire-kirjaston toteutusta I2C-anturilleen, ja rambo GitHubissa ja bHogan arduino.cc: ssä näyttävät olevan sama henkilö …

Olen käyttänyt myös rambon TinyWire-kirjastoa ja onnistuin tekemään sen TinyWiren Adafruits-versio näyttää olevan haarukka Rambon koodia.

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *