Differences

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

Link to this comparison view

pm:prj2026:vlad.radulescu2901:tudor_andrei.matei [2026/05/06 00:21]
tudor_andrei.matei [Introducere]
pm:prj2026:vlad.radulescu2901:tudor_andrei.matei [2026/05/13 02:19] (current)
tudor_andrei.matei
Line 5: Line 5:
  
 Proiectul constă în realizarea unui terminal de comunicații mobil și independent,​ cu o estetică retro, pe care rulează un sistem de operare dezvoltat de la zero. Proiectul constă în realizarea unui terminal de comunicații mobil și independent,​ cu o estetică retro, pe care rulează un sistem de operare dezvoltat de la zero.
-Scopul lui: replicarea funcționalității de bază a unui telefon mobil clasic. 
-Ideea de la care am pornit:​Mi-am dorit să recreez experiența telefoanelor fiabile de la începutul anilor 2000, explorând în același timp la nivel bare-metal, pe un microcontroller cu memorie foarte limitata. 
-Utilitate: demonstrează capacitatea de a construi o arhitectură software avansată (multitasking,​ gestiune PROGMEM) și de a integra senzori, protocoale și un management de putere eficient într-un singur sistem portabil. Pentru alții, ar putea fi un dispozitiv de comunicație de urgență / rezervă destul de interesant. 
  
-}===== Descriere generală =====+**Scopul lui**: replicarea funcționalității de bază a unui telefon mobil clasic.
  
-===== Hardware Design =====+**Ideea de la care am pornit**: Mi-am dorit să recreez experiența telefoanelor fiabile de la începutul anilor 2000, explorând în același timp la nivel bare-metal, pe un microcontroller cu memorie foarte limitata.
  
 +**Utilitate**:​ demonstrează capacitatea de a construi o arhitectură software avansată (multitasking,​ gestiune PROGMEM) și de a integra senzori, protocoale și un management de putere eficient într-un singur sistem portabil. Pentru alții, ar putea fi un dispozitiv de comunicație de urgență / rezervă destul de interesant.
  
-Listă componente +===== Descriere generală ===== 
-Microcontroler ​ATmega328P+1. Schema bloc 
 + 
 +{{:​pm:​prj2026:​vlad.radulescu2901:​schema_bloc_matei_tudor-andrei_334ca_final.png|}} 
 + 
 +2. Descrierea Modulelor Hardware 
 + 
 +**Microcontroller** (ATmega328P): Unitatea centrală de procesare a sistemului — gestionează intrările de la tastatură, comunicația cu rețeaua mobilă, afișarea interfeței și generarea semnalelor audio. 
 + 
 +**Modul GSM (SIM800L)**:​ Asigură conectivitatea la rețeaua celulară pentru apeluri vocale și SMS-uri. Comunică cu microcontrolerul prin UART. 
 + 
 +**Display (Nokia 5110 PCD8544)**: Ecran LCD monocrom pentru afișarea meniurilor, mesajelor și stării sistemului. Controlat prin SPI pentru un refresh fluid. 
 + 
 +**Modul RTC (DS3231**): Menține data și ora exactă independent de microcontroler,​ inclusiv în modul repaus. Comunică prin I²C. 
 + 
 +**Tastatură multiplexată analogic**: Mai multe butoane conectate printr-un divizor de tensiune la un singur pin ADC. Butonul apăsat este identificat prin nivelul de tensiune măsurat. 
 + 
 +**Senzor de lumină ambiantă (LDR)**: Fotorezistență pe un pin ADC. Valoarea citită ajustează automat luminozitatea ecranului prin PWM. 
 + 
 +**Buzzer pasiv**: Redă tonuri de apel și sunete de sistem. Controlat de Timer 2 (mod CTC/PWM) pentru frecvențe precise fără a solicita procesorul. 
 + 
 +**Modul de alimentare: Acumulator Li-Ion (3.7V)** cu circuit de încărcare și protecție, urmat de un convertor Boost ce stabilizează tensiunea la 5V. 
 + 
 + 
 +3. Descrierea Modulelor Software 
 + 
 +**Scheduler cooperativ**:​ Planifică execuția task-urilor (audio, display, senzori) pe baza unui tick generat de Timer 1 la fiecare milisecundă,​ eliminând funcțiile blocante de tip delay(). 
 + 
 +**Driver grafic (GUI)**: Translatează text și date de stare într-un frame buffer de pixeli. Fonturile compacte (4×6, 3×5) sunt stocate în Flash (PROGMEM) pentru a conserva RAM-ul. 
 + 
 +**Motor audio**: Redă structuri muzicale (frecvențe și durate din MIDI) stocate în PROGMEM, cu suport pentru legato/​staccato și control al frecvenței prin Timer 2. 
 + 
 +**Controller de evenimente (Input & Power Management)**:​ Procesează intrările de la LDR și tastatură, gestionează intrarea în repaus la inactivitate și trezirea prin întreruperi (PCINT). 
 + 
 +**Parser AT**: Formatează comenzile pentru SIM800L și interpretează răspunsurile rețelei (ex: RING, +CMTI). 
 +===== Hardware Design =====
  
-Modul GSM SIM800L (cu antenă)+** Componente și rolul lor ** 
  
-Ecran LCD Nokia 5110 (PCD8544)+^ Componentă ^ Referință ^ Rol principal ^ 
 +| ATmega328P | U5 | Microcontroler central — execută codul, controlează toate perifericele | 
 +| SIM800L | U1 | Modul GSM — apeluri, SMS, comunicație celulară | 
 +Nokia 5110 | LCD1 | Afișaj grafic 84×48px — interfața utilizator | 
 +| Li-Ion 18650 | U6 | Sursă de energie principală 3.7V | 
 +| TP4056 | — | Încărcator baterie Li-Ion ​(integrat în modulul Power Bank U7
 +| MT3608 | U7 | Step-up 5V (integrat în modulul Power Bank U7) | 
 +| Buzzer pasiv | BF1 | Audio GSM (SPKP/SPKN) și tonuri generate de MCU (OC2B) | 
 +| DS3231 | U2 | RTC — păstrează ora exactă cu compensare termică | 
 +| Tranzistor NPN | Q1 | Driver backlight LCD — comutare PWM pe pinul BL | 
 +| Fotorezistență LDR | RP1 | Senzor lumină ambientală — reglaj automat backlight | 
 +| Butoane tactile | S1–S5 | Tastatura analogică citită pe un singur pin ADC | 
 +| Condensator 1000µF | C1 | Decuplare alimentare SIM800L — absoarbe vârfurile de curent GSM | 
 +| Condensatori 100nF | C2, C3 | Decuplare VCC și AREF pe ATmega | 
 +| Rezistențe | R2–R14 | Divizoare tensiune, limitare curent, pull-down, pull-up | 
 +| Cuarț 16MHz | Y1 | Referință de timp precisă pentru ATmega |
  
-Acumulator Li-Ion 18650 
  
-Modul încărcare baterie TP4056+** Pini ATmega328P ** 
  
-Convertor Step-Up MT3608+^ Pin fizic ^ Semnal ^ Periferic ^ Motivul alegerii ^ 
 +| PD0 (30) | GSM_RX | SIM800L TX | Pin hardware UART RX — nu poate fi schimbat | 
 +| PD1 (31) | GSM_TX | SIM800L RX | Pin hardware UART TX — nu poate fi schimbat | 
 +| PD2 (32) | WAKE_INT0 | Buton wake-up | Suportă întrerupere externă INT0 — trezire din sleep | 
 +| PD3 (1) | OC2B | Buzzer pasiv | Ieșire PWM hardware Timer2 — generare frecvențe audio | 
 +| PD5 (9) | OC0B | Backlight LCD | Ieșire PWM hardware Timer0 — control luminozitate | 
 +| PD6 (10) | DC | Nokia 5110 | Linie Data/​Command SPI | 
 +| PD7 (11) | RST | Nokia 5110 | Reset display | 
 +| PB2 (14) | CS/CE | Nokia 5110 | Chip Select SPI | 
 +| PB3 (15) | MOSI | Nokia 5110 | Date SPI hardware — pin fix | 
 +| PB5 (17) | SCK | Nokia 5110 | Clock SPI hardware — pin fix | 
 +| PC4 (27) | I2C_SDA | DS3231 | Linie date I2C hardware — pin fix | 
 +| PC5 (28) | I2C_SCL | DS3231 | Linie clock I2C hardware — pin fix | 
 +| PC0 (23) | ADC0 | Tastatura S1–S5 | Canal ADC — citire tensiuni diferite per buton | 
 +| PC1 (24) | ADC1 | LDR | Canal ADC — citire divizor fotorezistență | 
 +| PC6 (29) | RESET# | Circuit reset | Pin dedicat reset hardware | 
 +| PB6 (7) | XTAL1 | Cuarț 16MHz | Pin dedicat oscilator extern | 
 +| PB7 (8) | XTAL2 | Cuarț 16MHz | Pin dedicat oscilator extern | 
 +| 3, 5 | GND | — | Mase separate digital și analog | 
 +| 4, 6 | VCC | — | Alimentare 5V digital | 
 +| 18 | AVCC | — | Alimentare 5V referință ADC | 
 +| 20 | AREF | — | Referință tensiune ADC (100nF la GND) |
  
-Buzzer Pasiv+{{ :​pm:​prj2026:​vlad.radulescu2901:​schema_electrica_f_matei-tudor.png |}}
  
-Modul RTC DS3231 
  
-Tranzistor NPN (BC547 / 2N2222)+** Blocuri funcționale ** 
  
-Fotorezistență (LDR)+1. ** Alimentare ** 
 +Bateria Samsung Li-Ion 18500 alimentează întregul sistem. Modulul Power Bank U7 are trei roluri simultane: încarcă bateria când e conectat la USB, protejează bateria la supradescărcare,​ și generează 5V stabili prin step-up intern pentru logică. SIM800L este alimentat direct din baterie la 3.7–4.2V, separat de restul circuitului,​ deoarece are nevoie de curenți mari la transmisie GSM care ar destabiliza linia de 5V.
  
-Butoane Tactile (Push Buttons)+2. ** Microcontroler ATmega328P **  
 +Este creierul sistemului. Rulează la 16MHz datorită cuarțului extern, ceea ce îi permite timinguri precise pentru SPI, UART și PWM simultan. Coordonează toate celelalte module: citește butoanele și senzorul de lumină prin ADC, afișează informații pe LCD prin SPI, comunică cu modulul GSM prin UART, sincronizează ora cu RTC-ul prin I2C, și generează sunete prin PWM.
  
-Condensator Electrolitic 1000µF+3. ** Comunicație GSM — SIM800L **  
 +Modulul primește comenzi AT de la MCU prin UART și execută operații GSM: înregistrare în rețea, apeluri, SMS. Linia de transmisie de la MCU spre SIM trece printr-un divizor de tensiune din R2 și R3 (10kΩ/​10kΩ) care coboară nivelul logic de la 5V la 2.5V, compatibil cu intrarea SIM800L. În sens invers, semnalul de 2.8V al SIM800L este suficient pentru a fi recunoscut ca nivel logic 1 de ATmega, deci nu necesită adaptare. Ieșirea audio diferențială SPKP/SPKN merge direct la buzzerul BF1 pentru redarea vocii în timpul apelurilor.
  
-Condensatori Ceramici 100nF+4. ** Afișaj Nokia 5110 **  
 +Ecranul grafic de 84×48 pixeli afișează interfața utilizator — ore, meniuri, stare rețea. Comunicația se face prin SPI folosind 5 linii: clock, date, chip select, data/​command și reset. Luminozitatea backlight-ului este controlată prin PWM de pe pinul PD5, care comandă tranzistorul NPN Q1. Acesta funcționează ca un întrerupător electronic — MCU-ul modulează rapid curentul prin LED-ul de backlight fără să disipe putere inutil.
  
-Set Rezistențe (1kΩ10kΩ220Ω, etc.)+5.**  Ceas RTC — DS3231 **  
 +Modulul păstrează ora exactă independent de MCU. Are un oscilator intern cu compensare termicăextrem de precisși o baterie proprie pe modul care îi permite să funcționeze chiar și când alimentarea principală e deconectată. MCU-ul îl citește și îl setează prin I2C pe pinii PC4 și PC5. DS3231 este ales în locul unui RTC simplu tocmai pentru precizia sa — deriva temporală este sub 2 minute pe an.
  
-Oscilator Cuarț 16MHz (dacă folosești chip-ul stand-alone)+6. ** Interfață utilizator — tastatura ​și senzorul de lumină **  
 +Cele 5 butoane tactile sunt conectate pe un singur pin ADC0 printr-o rețea de rezistențe în serie. Fiecare buton apăsat conectează nodul de măsură la GND printr-un număr diferit de rezistențe,​ producând o tensiune distinctă pe care MCU-ul o identifică. Rezistența de pull-down R12 (10kΩasigură o tensiune definită când niciun buton nu e apăsat, împiedicând flotarea pinului ADC. 
 +Fotorezistența LDR formează un divizor de tensiune cu R14 (10kΩ) pe pinul ADC1. Pe lumină puternică rezistența LDR scade, tensiunea pe ADC crește, și MCU-ul reduce luminozitatea backlight-ului. La întuneric procesul se inversează. Astfel dispozitivul se adaptează automat la condițiile de iluminare.
  
 +7. ** Audio ** 
 +Sistemul are două surse de sunet distincte. Buzzerul BF1 este conectat direct la ieșirea diferențială audio a SIM800L și redă vocea interlocutorului în timpul apelurilor. Al doilea canal audio, pe pinul PD3 prin Timer2 hardware, generează tonuri și melodii de apel fără să încarce procesorul — timerele hardware produc semnalul PWM autonom.
  
 ===== Software Design ===== ===== Software Design =====
pm/prj2026/vlad.radulescu2901/tudor_andrei.matei.1778016094.txt.gz · Last modified: 2026/05/06 00:21 by tudor_andrei.matei
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