Netduino Plus 2 - HD44780 na I2C (PCF8574)

Zdravíčko,

již nějakou dobu řeším na Netduino Plus 2 LCD HD44780 (20x4).
Mezi LCD a ND2 je I2C modul (PCF8574).

Ale nedaří se mi jej rozchodit…udělal jsem si program,
kterým jsem otestoval výsutpy z I2C na LCD a ty fungují.

Jediné čeho jsem docíli, je fungující ovládání podsvícení,
nic jiného mi nechodí.

Už se s tím babrám měsíc a bez výsledku, velmi bych uvítal pomoc.

děkuji předem za reakce.

K tomu modulu není žádná dokumentace, co se tam má posílat? Víš jak funguje samotný displej s HD44780?

Dokumentace by byla, ale nejsem schopen to i přesto rozhoupat.

Samotný HD44780 by měl fungovat ve 4bit modu nebo 8bit modu.

Udělal jsem si maly programek na testovani vystupu I2C modulu a to slape,
ale zbytek proste nevim.

Vicemene jsem doufal ze zde bude nekdo kdo se tim zabyval a bude toto mit za seboou, pripadne mi poradi lepsi moznost.

Pokud Ti šlape I2C komunikace, tak si projdi časování toho LCD. Po zapnutí musíš počkat nejakou dobu, než začneš do LCD posílat data. Najdi si to v datasheetu. Pokud to tam není, tak počkej cca 0,5 sek., než začneš s LCD komunikovat. Každý zápis do LCD také potřebuje určitý čas na zpracování.

Zkusil jsem napsat program, testováno jen v simulaci:
Expander_PCF8574.zip (61.9 KB)

Stahnul jsme projekt…ale nevim v čem to otevřít…

Visual Studio 2010 pro / 2012 Express /2013 Express tento projekt neznaji.

Omlouvám se, přehlédl jsem, že to má být pro Netduino Plus 2(což je ARM procesor, myslel jsem že je to podobné na arduino, které bývá osazeno ATmegaxxxx).
Jinak ty soubory *.c a *.h se dají otevřít v programu Poznámkový blok.

Hledal jsem specifikaci Netduino Plus 2 a zatím jsem našel dvě verze, jedna s STM32F405RG a druhý s AT91SAM7X512. Pro jakou verzi to potřebuješ?

V pohodě,

jinak v notepadu jsem to samozrejme otevrel,
ale blizsi mi je c#.

Jinak se jedna o STM32F405RGT6

Jinak jeste jendou dekuji za luxusni pomoc, takovou super odezvu jsem necekal

Zdar chlapi,

objednal jsem z GME nové lcd :
gme.cz/mc2004e-syl-p513-077

Abych vyvráítl možnost že zbylé dva co mám jsou vadné.
Nicméně jsem nerozhodil ani tento.

Mám návrh, snad neporušuji pravidla tohoto fóra.
Rád bych požádal někoho kdo mi celou záležitost pomůže vyřešit,
a to za finanční odměnu. LCD semi hodně líbí.

Cílem by bylo použít co nejméně drátu z netduina a mít k jendoduchou knihovnu (driver), který bude modifikovatelný pro různé velikosti LCD (2*16,4x20…)

I2C není podmínkou, může to jet přes 74HC595B / 74HC595D

Pokud někdo nemá účet, mohu peníze poslat složenkou nebo jako kredit na mobil. stačí se jen domluvit na výši, řekni si za kolik.

Přijde mi to fér, když už mi s tím bude někdo pomáhat aby z toho něco měl.

Zkus to postupně. V prvním kroku si připoje LCD 8-bitově a zkus rozběhnout komunikaci po 8 bitech. Jakmile Ti to bude šlapat, tak už potom modifikace způsobu, jak dostat data do displeje jsou jednoduché. Tyhle LCD jsou jednoduché a dobře se s nima pracuje. Knihovnu pro něj jsem napsal podle datasheetu cca za 1 odpoledne. Modifikace způsobů přenosu trvaly déle, ale hlavně kvůli tomu, že jsem to chěl mít napsané tak, že v .inc (něco jako .h) souboru mám výběr způsobu komunikace a portů. Knihovna vlastní má pak podmíněné překlady právě pro přenos dat do LCD a inicializační sekvence. Ale abych se vrátil k LCD. Je třeba dodržet následující :

  1. Po zapnutí napájení musíš počkat, než začneš s LCD komunikovat. LCD potřebuje pro svou inicializaci nějaký čas. Většinou dávám 0,5 sek. Během inicializace LCD nelze použít BF displeje.
  2. Po zápisu dat nebo instrukce do LCD musíš buď zkontrolovat BF před zápisem nebo prostě po zápisu nějakou dobu počkat. Pro smazání LCD (instrukce 0x01) a cursor home (instrukce 0x02) dávám 2 ms, pro ostatní dávám 50us. Mělo by to stačit.
  3. Délka impulzu E by měla být alespoň 400ns. Když bude 1us (1000ns), nic tím nezkazíš. Taky už jsem koumal u jednoho LCD, proč mi nechodí a pak jsem zjistil, že E v délce 500ns mu nestačil.