Differences

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

Link to this comparison view

pm:prj2026:victor.stoica0203:andrei.popa0810 [2026/05/07 16:28]
andrei.popa0810
pm:prj2026:victor.stoica0203:andrei.popa0810 [2026/05/12 09:05] (current)
andrei.popa0810 [Pinout]
Line 9: Line 9:
  
 Sistemul este format din 2 plăcuțe cu microcontroler ATmega328P: Sistemul este format din 2 plăcuțe cu microcontroler ATmega328P:
-* plăcuța 1 joacă rolul unui GPU: va fi responsabilă să deseneze scena pe un ecran LCD într-un timp cât mai scurt. +  ​* plăcuța 1 joacă rolul unui GPU: va fi responsabilă să deseneze scena pe un ecran LCD într-un timp cât mai scurt. 
-* plăcuța 2 joacă rolul unui CPU: va ține cont despre obiectele din scenă și despre cameră și va transmite informațiile relevante către "​GPU"​ și va procesa inputul de la keypad (utilizator).+  * plăcuța 2 joacă rolul unui CPU: va ține cont despre obiectele din scenă și despre cameră și va transmite informațiile relevante către "​GPU"​ și va procesa inputul de la keypad (utilizator).
  
 Motivul pentru care am ales acest proiect este interesul meu față de modul de funcționare a procesoarelor video și modul prin care acestea interacționează cu restul sistemului de calcul pentru a prezenta/​desena informații pe un display. Motivul pentru care am ales acest proiect este interesul meu față de modul de funcționare a procesoarelor video și modul prin care acestea interacționează cu restul sistemului de calcul pentru a prezenta/​desena informații pe un display.
Line 16: Line 16:
 Scopul meu principal este de a învăța prin experiență cum se implementează un pipeline grafic (chiar dacă este un model software foarte limitat și simplificat) și totodată, ca scop secundar, să scriu de mână un "​driver"​ simplu pentru ecranul LCD. Scopul meu principal este de a învăța prin experiență cum se implementează un pipeline grafic (chiar dacă este un model software foarte limitat și simplificat) și totodată, ca scop secundar, să scriu de mână un "​driver"​ simplu pentru ecranul LCD.
  
-Ca utilitate pentru mine (și alții), vreau ca proiectul să servească ca un exemplu de compromisuri ce trebuie făcute pentru a obține un pipeline grafic 3D funcțional,​ dar și utilizabil (cu framerate decent) pe un sistem foarte limitat ​hardware.+Ca utilitate pentru mine (și alții), vreau ca proiectul să servească ca un exemplu de compromisuri ce trebuie făcute pentru a obține un pipeline grafic 3D funcțional,​ dar și utilizabil (cu framerate decent) pe un sistem ​hardware ​foarte limitat.
  
 ===== Schemă bloc ===== ===== Schemă bloc =====
- +{{:​pm:​prj2026:​victor.stoica0203:​popa_andrei_333caschema_bloc.png|}}
 ===== Hardware Design ===== ===== Hardware Design =====
  
Line 35: Line 34:
  
 ==== Schema electrică ==== ==== Schema electrică ====
 +{{:​pm:​prj2026:​victor.stoica0203:​schematic_proiectpm_popa_andrei.png?​600|}}
 ==== Pinout ==== ==== Pinout ====
 +**Display LCD:**
 +^Pin Display ^Pin Arduino ^Pin ATmega328p ^
 +|BL |5V | | 
 +|RST |5V | |
 +|DC |D10 |PB2 |
 +|CS |GND | |
 +|CLK |D13 |PB5 / SCK |
 +|DIN |D11 |PB3 / MOSI |
 +|GND |GND | |
 +|VCC |5V | |
 +
 +Deoarece există doar un singur periferic conectat prin SPI, am conectat pinul de CS (chip select) la GND, astfel acesta este selectat continuu.
 +Pinul de RST (reset) este conectat la 5V (acesta funcționează în logică negată), deoarece nu am nevoie să resetez software display-ul.
 +
 +**Keypad 4x4:**
 +^Pin Keypad ^Pin Arduino ^PinATmega328p ^
 +|1 (Column) |D6 |PD6 / OC0A |
 +|2 (Column) |D5 |PD5 / OC0B |
 +|3 (Column) |D9 |PB1 / OC1A |
 +|4 (Column) |D10 |PB2 / OC1B |
 +|5 (Row) |D2 |PD2 / PCINT18 |
 +|6 (Row) |D3 |PD3 / PCINT19 |
 +|7 (Row) |D4 |PD4 / PCINT20 |
 +|8 (ROW) |D7 |PD7 / PCINT23 |
 +
 +Ținând doar câte o coloană a keypad-ului pe high la un moment dat, în funcție de care rând este pe low, obținem ce buton a fost apăsat.
 +Am ales pinii pentru coloană pentru a putea schimba eventual coloana activă prin timere.
 +Am ales pinii pentru rând pentru a primi întreruperi în momentul apăsării unui buton.
 +
 +**ATmega328P:​**
 +^Pin Arduino (1) ^Pin ATmega(1) ^Pin Arduino(2) ^Pin ATmega (2) ^
 +|D0 |PD0 / RXD |D1 |PD1 / TXD |
 +|D1 |PD1 / TXD |D0 |PD0 / RXD |
 +
 +Pinii aleși sunt pinii pentru USART și sunt legați RX <-> TX.
  
 ===== Software Design ===== ===== Software Design =====
pm/prj2026/victor.stoica0203/andrei.popa0810.1778160501.txt.gz · Last modified: 2026/05/07 16:28 by andrei.popa0810
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