marți, 17 martie 2020

Afisaj LCD1602 controlat prin protocol i2c de o placa STM32F103C8

   Vrand sa portez proiectul cu radio-ul bazat pe TEF6686 pe o placa STM32F103C8 ("blue pill"), am constatat (si eu) ca prin rularea programului i2c_scanner sau a a unora derivate ori nu gaseste nimic ori raporteaza e serial ca este o eroare sau sunt mai multe la diverse adrese, de la 0x01.
   Am cautat pe internet si am gasit multe discutii, dar un singur articol pare ca a depistat si rezolvat problema. Articolul este STM32 I2C SCANNER. Initial, nu am realizat ce am era prezentat acolo, dar am incarcat programul pentru radio si am conectat la el afisajul LCD2004 si receptorul TEF6686, spre surprinderea mea, afisajul s-a aprins, a aparut partea de inceput, apoi a ramas stins. Am realizat imediat ca placa cu STM32F103C8 trimite corect comenzi prin protocol i2c, dar nu intelege ce i se comunica.
   Am conectat un afisaj LCD1602 cu interfata de la radio, pentru ca ii stiam adresa, si am incarcat sketch-ul "Hello World!". Apoi am adaptat bucati de sketch-uri de test pentru afisaj LCD1602 rezultand sketch-ul STM32F103_i2c_LCD1602.ino si am realizat 2 filmulete:
STM32F103 cu afisaj LCD1602 pe i2c
i2c LCD1602 drived by STM32F103C
  Schema de conectare este "clasica", doar ca am alimentat afisajul de la 5V, microcontrolerul se alimenteaza la 3,3V ori prin folosirea placii de intarfeta USB-FTDI (RxTx) ori din USB-ul placii folosind stabilizatorul intern al placii de dezvoltare.
   O schema desenata cu programul Fritzing, gasita in articolul de la https://controllerstech.com/i2c-lcd-in-stm32/
   Eu am alimentat separat cu 5V afisajul deoarece interfata USB-FTDI trebuie pusa sa lucreze cu 3,3V si eu tot testez.


Niciun comentariu:

Trimiteți un comentariu