Differences

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

Link to this comparison view

pm:prj2025:fstancu:cristina.drinciu [2025/05/25 18:14]
cristina.drinciu [Rezultate Obţinute]
pm:prj2025:fstancu:cristina.drinciu [2025/05/30 13:42] (current)
cristina.drinciu [Hardware Design]
Line 103: Line 103:
 {{:​pm:​prj2025:​fstancu:​poza2_amp.jpg?​350 |}} {{:​pm:​prj2025:​fstancu:​poza4_amp.jpg?​350|}} {{:​pm:​prj2025:​fstancu:​poza2_amp.jpg?​350 |}} {{:​pm:​prj2025:​fstancu:​poza4_amp.jpg?​350|}}
 {{:​pm:​prj2025:​fstancu:​poza3_amp.jpg?​350 |}} {{:​pm:​prj2025:​fstancu:​poza1_amp.jpg?​350|}} {{:​pm:​prj2025:​fstancu:​poza3_amp.jpg?​350 |}} {{:​pm:​prj2025:​fstancu:​poza1_amp.jpg?​350|}}
 +{{:​pm:​prj2025:​fstancu:​final_project1.jpeg?​350|}} {{:​pm:​prj2025:​fstancu:​final_project.jpeg?​350|}}
  
 Link catre poze si video demonstrativ:​ [[https://​drive.google.com/​drive/​folders/​1RUL_uXa5XXPFie1JvUg6ljKmbEH5EQQS | aici ]] Link catre poze si video demonstrativ:​ [[https://​drive.google.com/​drive/​folders/​1RUL_uXa5XXPFie1JvUg6ljKmbEH5EQQS | aici ]]
Line 143: Line 144:
 === I2C (TWI) === === I2C (TWI) ===
 __//​Rol://​__ Interfața I²C (TWI) generică, folosită pentru a comunica cu DAC-ul MCP4725 la ~400 kHz. __//​Rol://​__ Interfața I²C (TWI) generică, folosită pentru a comunica cu DAC-ul MCP4725 la ~400 kHz.
 +
 +{{:​pm:​prj2025:​fstancu:​amp_twcr.png?​500|}}
  
 Ce face fiecare functie: Ce face fiecare functie:
Line 267: Line 270:
  
 __//​Rol://​__ Preluare continuă de semnal analogic și declanșare ISR pentru procesare. __//​Rol://​__ Preluare continuă de semnal analogic și declanșare ISR pentru procesare.
 +
 +{{:​pm:​prj2025:​fstancu:​amp_admux.png?​500|}}
 +
 +{{:​pm:​prj2025:​fstancu:​amp_adcsra.png?​500|}}
 +
 +{{:​pm:​prj2025:​fstancu:​amp_adcsrb.png?​500|}}
 +
  
 Avem urmatoarele setari pentru registre: Avem urmatoarele setari pentru registre:
Line 332: Line 342:
 Chiar daca am incercat sa lucrez la o frecventa destul de ridicata pentru a avea un sample rate cat mai mare, notele joase sunt redate foarte clar iar cele mai inalte sunt redate o idee mai prost, avand o frecventa destul de mare si masuratorile nu sunt atat de accurate. Chiar daca am incercat sa lucrez la o frecventa destul de ridicata pentru a avea un sample rate cat mai mare, notele joase sunt redate foarte clar iar cele mai inalte sunt redate o idee mai prost, avand o frecventa destul de mare si masuratorile nu sunt atat de accurate.
  
-__Optimizarile ​folosite pentru a obtine performante si imbunatiri care pot fi adaugate:__+=== Optimizarile ​folosite pentru a obtine performante si imbunatiri care pot fi adaugate ​=== 
 + 
 +**1) Free-Running ADC**
  
-  - Free-Running ADC 
   * Folosim ADC în Free-Running Mode pentru conversii continue la rata stabilită de prescaler, fără a reporni manual conversia la fiecare eşantion.   * Folosim ADC în Free-Running Mode pentru conversii continue la rata stabilită de prescaler, fără a reporni manual conversia la fiecare eşantion.
  
Line 340: Line 351:
  
  
-  - Intreruperi+**2) Intreruperi** 
   * toată logica de procesare audio (distorsiune,​ tremolo, delay) se execută în ISR(ADC_vect),​ eliminând buclele de polling   * toată logica de procesare audio (distorsiune,​ tremolo, delay) se execută în ISR(ADC_vect),​ eliminând buclele de polling
  
Line 346: Line 358:
  
  
-  - Math Library+**3) Math Library** 
   * Tremolo folosește sinf() din <​math.h>,​ costisitor în cicluri CPU   * Tremolo folosește sinf() din <​math.h>,​ costisitor în cicluri CPU
  
Line 352: Line 365:
  
  
-  - Buffer Circular Fix-Size pentru Delay+**4) Buffer Circular Fix-Size pentru Delay** 
   * Delay folosește un buffer circular simplu, cu indexare modulară, pentru acces și scriere în timp constant (O(1)).   * Delay folosește un buffer circular simplu, cu indexare modulară, pentru acces și scriere în timp constant (O(1)).
   * Dimensiunea buffer-ului (980) este un compromis între intârziere perceptibilă și consum de memorie SRAM (≈2 KB).   * Dimensiunea buffer-ului (980) este un compromis între intârziere perceptibilă și consum de memorie SRAM (≈2 KB).
  
 +=== Frecvente ale proiectului ===
  
 +**1) Rata de eşantionare ADC: ~10 kHz**
  
 +Prescaler ADC = 64 la 16 MHz → ADC clock ≈ 250 kHz → 25 cicluri pe conversie → ~10 k conversii/​s,​ fiind suficient pentru frecventele relevante ala chitarii.
  
-===== Concluzii =====+**2) LFO Tremolo: 5 Hz**
  
-===== Download =====+Frecvență perceptibilă plăcută de modulare de volum. Phase increment pre-calculatează saltul de fază pe eşantion, fără recalcule de frecvență în timp real.
  
-<note warning>​ +**3Timer Debounce1 kHz (1 ms tick)**
-O arhivă (sau mai multe dacă este cazulcu fişierele obţinute în urma realizării proiectuluisurse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-).+
  
-Fişierele se încarcă pe wiki folosind facilitatea **Add Images or other files**. Namespace-ul ​în care se încarcă fişierele este de tipul **:​pm:​prj20??:​c?​** sau **:​pm:​prj20??:​c?:​nume_student** (dacă este cazul). **Exemplu:​** Dumitru Alin, 331CC -> **:​pm:​prj2009:​cc:​dumitru_alin**. +Asigură o rata de debounce robustă în maxim 50 ms fără pierderi de evenimente.
-</​note>​+
  
 +**4) I2C (TWI): ~400 kHz**
 +
 +Comunicarea cu DAC la fast-mode pentru a corespunde celor 10 k eşantioane/​s și overhead-ul I2C.
 +
 +=== Estimarea Consumului de Putere ===
 +
 +  * Microntroller ATmega328P in mod normal (16 MHz, Vcc = 5 V): ~10–20 mA
 +  ​
 +  *  DAC MCP4725: ~0.5 mA
 +  ​
 +  *  LM358: fiecare canal ~0.7 mA
 +
 +  *  LED-uri și Butoane: LED-uri aprinse (3 × 2 mA) = ~6 mA maxim
 +  ​
 + ​**Total:​**  ​
 +I_total​≈15mA (MCU)+1mA (DAC)+2mA (LM358)+6mA (LED)**≈24mA**
 +
 +**Putere:**
 +P=V×I≈5V×24mA=**120mW**
 +
 +
 +===== Concluzii =====
 +
 +Acest proiect a fost o modalitate perfecta de a aprofunda cunostiintele atat de proiectarea microprocesoarelor,​ a laboratoarelor de la aceasta materie, cat si mai important, cunostiintele de electronica. Constructia partii de HARDWARE a fost o provocare. In final, sunt multumita de outcome. :-D
 ===== Jurnal ===== ===== Jurnal =====
  
Line 375: Line 414:
 18 Mai: Descriere detaliata pentru hardware si modificare liste de componente. ​ 18 Mai: Descriere detaliata pentru hardware si modificare liste de componente. ​
  
 +25 Mai: Decriere detaliata Software + estimarea puterii consumate si optimizarile facute
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
  
-<​note>​ +Datasheet LM358: [[https://​www.onsemi.com/​download/​data-sheet/​pdf/​lm358-d.pdf | LINK]] 
-Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**+ 
-</note>+Datasheet MCP4725: [[https://​ww1.microchip.com/​downloads/​en/​devicedoc/​22039d.pdf | LINK]] 
 + 
 +Datasheet ArduinoUno ATmega328p: [[https://​ww1.microchip.com/​downloads/​en/​DeviceDoc/​Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf | LINK]]
  
 <​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:​prj2025:​fstancu:​pm_amp.zip| Arhiva aici}}
pm/prj2025/fstancu/cristina.drinciu.1748186058.txt.gz · Last modified: 2025/05/25 18:14 by cristina.drinciu
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