I2C knihovny pro ATTiny85?

Chci přenášet data I2C pomocí desky Digispark ATTiny85:

Našel jsem následující knihovny I2C. Která z nich je lehčí, stabilnější, bez chyb, efektivní, výkonná a snadno použitelná?

Drát vypadá nedostatečně:

„výchozí knihovna Arduino Wire () nepodporuje změny rychlosti sběrnice ani správné hodiny podpora protahování. Díky tomu je výchozí knihovna jen okrajově funkční „ https://www.maxbotix.com/articles/095.htm

Jaké další knihovny I2C jsou k dispozici pro ATTiny? V IDE vidím Digispark SoftSerial, OneWire a VirtualWire.

Jak se všichni porovnávají?


Všimněte si, že tyto další odpovědi nejsou zdánlivě relevantní pro mou otázku:

Komentáře

  • vyzkoušejte oba … ten s nejvíce ukázkovým kódem jako první

Odpověď

Chci přenášet data I2C …

Trochu vágní.

Odeslat na jaké zařízení? Jak rychlý je váš datový tok (100kHz, 400kHz)? Jste jediný, kdo vysílá a nečte nic zpět? Jaké je volnoběžné napětí na vaší sběrnici I2C (pak se zeptat, zda jste zvolili správné hodnoty pull-up rezistoru pro zamýšlenou rychlost sběrnice)?

Zmínil jste, že knihovna Wire nepodporuje rychlost jádra změny bez nějakého hackování, ale nemluvte o rychlosti, kterou hodláte spustit mikrokontrolér, ani o tom, jak rychle hodláte I2C používat. Dokážu odhadnout 400 kHz, protože jste zvýšili rychlost, ale to není skvělý způsob, jak odpovědět na otázku.

Používám knihovnu Wire na Arduino UNO při rychlosti sběrnice I2C 100 kHz a to “ fungovalo dobře pro mé potřeby. Dostal jsem bajty dovnitř a ven.

V tomto okamžiku je nejlepším návrhem, že „pokud některá z výše uvedených knihoven nepodporuje funkci, která by se vám líbila, rozdělte ji a přidejte podporu pro svou funkci sami. Pokud vysíláte pouze na jedno podřízené zařízení, nemusíte si dělat starosti s arbitráží sběrnice, jako to dělá TinyWire . Adafruit je z větší části v pořádku, ale zdá se mi (pomalý), že opravují chyby a udržují kód. Ale nenechte se věkem kódu dostat k vám. I2C byl vytvořen již v roce 1982 a vy jej stále používáte … 😛

Zde bych řekl, jak bych přistoupil výběr knihovny:

  • Definujte funkce, které potřebujete
  • Vyhledejte knihovnu, která má většinu těchto funkcí
  • Přidejte všechny nové funkce, které potřebujete
  • Sdílejte své přidané funkce s komunitou pomocí požadavku na vytažení

odpovědi

bHogan se zdá být původním vývojářem TinyWireM a TinyWireS. Andreas Spiess („Ten se švýcarským přízvukem“) použil rambo implementaci knihovny TinyWire pro jeho senzor I2C a rambo na GitHubu a bHogan na arduino.cc se zdají být stejnou osobou …

Použil jsem také knihovnu TinyWire společnosti Rambo a podařilo se mi to práce. Adafruits verze TinyWire se zdá být vidličkou kódu Rambo.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *