Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2023:apredescu:minigpu [2023/05/21 22:24]
alex_andrei.cioc [Hardware Design]
pm:prj2023:apredescu:minigpu [2023/05/28 23:43] (current)
alex_andrei.cioc [Software Design]
Line 58: Line 58:
 ===== Software Design ===== ===== Software Design =====
  
 +Am dezvoltat proiectul in mediul PlatformIO.
  
 +Pentru acest proiect am avut nevoie de mai multe componente la nivel software. Mai exact, pe langa logica efectiva de a genera semnale VGA, am avut nevoie si de o modalitate de a incarca poze pentru a le putea citi pentru afisare pe ecran.
  
-===== Rezultate Obţinute =====+Astfel, am impartit munca pe cele doua core-uri ale ESP32. Un core ruleaza un server HTTP si serveste o pagina Web cu o interfata de unde se poate naviga prin filesystem-ul de pe cardul SD si face operatii precum:
  
 +  * Creare de directoare
 +  * Redenumire fisiere/​directoare
 +  * Descarcare fisiere
 +  * Incarcare fisiere.
  
 +Intre timp, s-a defectat (sau, probabil, nu a functionat niciodata) slot-ul de card SD de pe display, asa ca a trebuit sa adaug un breaker adapter separat, si am schimbat putin conexiunile electrice.
 +
 +Functionalitatea de generare de semnale VGA foloseste intreruperi precise, pentru a avea o fidelitate cat mai buna a imaginii si a respecta constrangerile de sincronizare VGA. Nu e prea mult de explicat aici, in afara de faptul ca a trebuit sa fiu foarte atent la eficienta si am folosit functiile low-level pentru lucru cu GPIO.
 +
 +Repository-ul unde se afla codul se gaseste [[https://​github.com/​nurof3n/​mini-gpu|aici]].
 +===== Rezultate Obţinute =====
 +
 +Cand ies imaginile perfect anunt aici ;)
 ===== Concluzii ===== ===== Concluzii =====
  
-===== Download =====+Am aflat pe viu ce inseamna sa stii ce vrei sa faci, sa stii cum sa faci, sa faci, si sa NU mearga :<
  
 +Cand e nevoie si de lucru cu hardware-ul,​ apar foarte des lucruri neprevazute;​ si e cu atat mai greu cu cat folosesti piese care nici nu au numele firmei inscriptionat pe ele. De exemplu, display-ul mi-a dat foarte multe batai de cap, caci m-am bazat pe faptul ca slotul integrat de card SD o sa imi fie util. S-a dovedit ca e destul de greu de configurat, si, probabil, trebuie sudate niste jumpere pe acolo ca sa primeasca destul curent pentru a functiona, insa faptul ca nu se gaseste nicaieri documentatie despre circuit m-a facut sa renunt la el si sa folosesc un slot extern.
 +
 +Batai mari de cap mi-a dat si placuta de dezvoltare cu ESP32, mai ales alegerea pinilor. Proiectul meu necesita o latime de banda mare pentru output, si am ajuns sa folosesc toti pinii GPIO care nu sunt rezervati pentru alte lucruri importante; adica, daca mai aveam nevoie de inca un pin, probabil nu mai aveam de unde sa fac rost:)) M-am incadrat la fix numai dupa ce am facut sacrificiul de a avea un throughput de 3 ori mai mic, folosind registri pentru scrierea pe rand a bitilor de culoare RGB; astfel, in loc de 24 de biti pentru culoare, folosesc doar 8 biti, insa scriu de 3 ori. In viata nu le poti avea pe toate ;)
 +
 +De asemenea, a fost o experienta (si de bonding, de altfel) sa stau cu tata sa printam un PCB de "​mana"​...
 +===== Download =====
  
 +Repository [[https://​github.com/​nurof3n/​mini-gpu|aici]].
 ===== Jurnal ===== ===== Jurnal =====
  
Line 77: Line 98:
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
  
 +Resurse (foarte) utile: ​
 +  * Documentatia oficiala pentru placuta mea: https://​docs.espressif.com/​projects/​esp-idf/​en/​latest/​esp32s3/​hw-reference/​esp32s3/​user-guide-devkitc-1.html
 +  * Laburile de PM
  
 +Biblioteci folosite:
 +  * https://​github.com/​espressif/​arduino-esp32/​blob/​master/​cores/​esp32/​Arduino.h
 +  * https://​github.com/​espressif/​arduino-esp32/​tree/​master/​libraries/​WiFi
 +  * https://​github.com/​espressif/​arduino-esp32/​tree/​master/​libraries/​WebServer
 +  * https://​github.com/​espressif/​arduino-esp32/​tree/​master/​libraries/​SD
 +  * https://​github.com/​Bodmer/​TFT_eSPI
 +  * https://​github.com/​Bodmer/​TJpg_Decoder
  
 <​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​ <​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​
  
pm/prj2023/apredescu/minigpu.1684697083.txt.gz · Last modified: 2023/05/21 22:24 by alex_andrei.cioc
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0