I2C könyvtárak az ATTiny85-hez?

I2C adatokat szeretnék továbbítani egy Digispark ATTiny85 kártya segítségével:

Megtaláltam a következő I2C könyvtárakat. Melyik könnyebb, stabilabb, hibamentesebb, hatékonyabb, hatékonyabb és könnyen használható?

Úgy tűnik, hogy a huzal kevésbé jelenik meg:

“az alapértelmezett Arduino Wire () könyvtár nem támogatja a busz sebességének változását vagy a megfelelő órajelet a nyújtás nyújtása. Ezáltal az alapértelmezett könyvtár csak marginálisan működik “ https://www.maxbotix.com/articles/095.htm

Milyen további I2C libek érhetők el az ATTiny számára? Az IDE-ben a Digispark SoftSerial, a OneWire és a VirtualWire elemeket látom.

Hogyan viszonyulnak mindannyian?


Megjegyzés: ezek a többi válasz nem tűnik relevánsnak a kérdésem szempontjából:

Megjegyzések

  • próbálja ki mindkettőt … azt, amelyik a legtöbb példakóddal rendelkezik először

Válasz

I2C adatokat szeretnék továbbítani …

Kicsit homályos.

Milyen eszközre továbbítja? Milyen gyors az adatátviteli sebessége (100 kHz, 400 kHz)? Csak továbbítasz és nem olvasol vissza semmit? Mekkora az I2C busz alapjárati feszültsége (hogy megkérdezhesse, hogy a tervezett buszsebességhez megfelelő felhúzási ellenállás értékeket választott-e)?

Megemlíti, hogy a Wire könyvtár nem támogatja a mag órajelét hackelés nélkül változik, de ne beszéljen arról, hogy milyen sebességgel kívánja futtatni a mikrovezérlőt, vagy arról, hogy milyen gyorsan kívánja használni az I2C-t. Találhatok 400 kHz-t, mivel felhozta a sebességet, de ez nem jó megoldás a kérdések megválaszolására.

A Wire könyvtárat egy Arduino UNO-n használom, 100 kHz I2C busz sebességgel, és ez ” s jól működött az én igényeim szerint. Bájtokat kaptam ki és be.

Ezen a ponton a legjobb javaslatom az lenne, hogy ha a felsorolt fenti könyvtárak egyike nem támogat egy tetsző funkciót, akkor ezt elágazva tegye meg, és saját maga adjon hozzá támogatást a funkcióhoz. Ha csak egy szolga eszközre továbbít, akkor nem kell aggódnia a busz választottbírósága miatt, mint például az TinyWire . Az Adafruit többnyire rendben van, de (számomra) lassúnak tűnik a hibák kijavítására és a kód karbantartására. De ne hagyd, hogy a kód életkora eljusson hozzád. Az I2C-t még 1982-ben hozták létre , és Ön továbbra is használja … 😛

Itt van, hogyan fogok megközelíteni könyvtár kiválasztása:

  • Adja meg a szükséges funkciókat
  • Keressen olyan könyvtárat, amely rendelkezik a legtöbb ilyen funkcióval
  • Adjon hozzá minden szükséges új funkciót
  • Esetleg ossza meg a hozzáadott funkciókat a közösséggel egy lehívási kérelemmel

Válasz

bHogan a TinyWireM és a TinyWireS eredeti fejlesztője. Andreas Spiess (“A svájci akcentussal rendelkező srác”) rambo “megvalósítását használta a TinyWire könyvtárban az I2C érzékelőjéhez, a rambo a GitHubon és a bHogan az arduino.cc oldalon ugyanaz a személy …

A rambo TinyWire könyvtárát is használtam, és sikerült elkészítenem munka. Úgy tűnik, hogy a TinyWire Adafruits verziója a Rambo kódjának egy villája.

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük