Differences

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

Link to this comparison view

pm:prj2025:ccristi:rares_andrei.ticus [2025/05/27 03:37]
rares_andrei.ticus [Arhitectura programelor]
pm:prj2025:ccristi:rares_andrei.ticus [2025/05/27 04:20] (current)
rares_andrei.ticus [Documentație]
Line 5: Line 5:
  
 Scopul acestui sistem este de a oferi sprijin pentru depanarea sistemelor embedded la un preț redus. Astfel, el se preteaza foarte bine pentru observarea semnalelor de frecvență redusă. Scopul acestui sistem este de a oferi sprijin pentru depanarea sistemelor embedded la un preț redus. Astfel, el se preteaza foarte bine pentru observarea semnalelor de frecvență redusă.
-}+
 ===== Descriere generala ===== ===== Descriere generala =====
  
Line 97: Line 97:
 - ''​uart.cpp''​ - acest fișier conține implementarea mai multor funcționalități - ''​uart.cpp''​ - acest fișier conține implementarea mai multor funcționalități
         * definirea inițializării modulelor UART - se inițializează 2 module (SPI2, baudarate 19200 și SPI9, baudrate 115200). Pe SPI2 microcontroller-ul așteaptă un caracter literă mare de la calculator și, în rutina întreruperii cauzate de primirea mesajului, încearcă să trimită înapoi caracterul mic aferent. Pe SPI9 se trimit datele culese de la GPIO.         * definirea inițializării modulelor UART - se inițializează 2 module (SPI2, baudarate 19200 și SPI9, baudrate 115200). Pe SPI2 microcontroller-ul așteaptă un caracter literă mare de la calculator și, în rutina întreruperii cauzate de primirea mesajului, încearcă să trimită înapoi caracterul mic aferent. Pe SPI9 se trimit datele culese de la GPIO.
-        * definirea mecanismului de trimitere pe seriala SPI2. Practic, de fiecare dată când transmisia pe SPI9 este posibilă, programul verifică dacă mai are ceva de transmis din buffer-ul de transmisier, iar, în caz contrar, încarcă în buffer prima înregistrare de stare GPIO netrimisă. ​+        * definirea mecanismului de trimitere pe seriala SPI2. Practic, de fiecare dată când transmisia pe SPI9 este posibilă, programul verifică dacă mai are ceva de transmis din buffer-ul de transmisie, iar, în caz contrar, încarcă în buffer prima înregistrare de stare GPIO netrimisă. ​
  
-- ''​gpio.cpp''​ - acest fișier conține definirea funcției de inițializare a pinilor de input, în care acești pini sunt trecuți pe modul de input cu rezistență de pull-up și generarează întrerupere pe ambele fronturi. Totodată, se introduce rutina de tratere a întreruperii pe porturile 1, 3 și 4. Această rutină preia starea curentă a pinilor și timpul curent (counter-ul numărătorului) și le introduce în buffer-ul ​circular de stări ce este transmis în uart.cpp.+- ''​gpio.cpp''​ - acest fișier conține definirea funcției de inițializare a pinilor de input, în care acești pini sunt trecuți pe modul de input cu rezistență de pull-up și generarează întrerupere pe ambele fronturi. Totodată, se introduce rutina de tratere a întreruperii pe porturile 1, 3 și 4. Această rutină preia starea curentă a pinilor și timpul curent (counter-ul numărătorului) și le introduce în coada (circulară) de stări ce este transmisă în uart.cpp.
  
 === Script rulat pe calculator === === Script rulat pe calculator ===
Line 109: Line 109:
 - Link github: https://​github.com/​raresh001/​Logical-Analyzer/​tree/​master - Link github: https://​github.com/​raresh001/​Logical-Analyzer/​tree/​master
  
-Archivă cod: {{:​pm:​prj2025:​ccristi:​ticusrares_logicalanalyzer.7z|}}+Arhivă cod: {{:​pm:​prj2025:​ccristi:​ticusrares_logicalanalyzer.7z|}}
  
-===== Rezultate obținute =====+===== Rezultate obținute ===== 
  
 Link videoclip demonstrație:​ https://​youtu.be/​VTMEd0hsHNk Link videoclip demonstrație:​ https://​youtu.be/​VTMEd0hsHNk
 +
 +===== Concluzii ======
 +
 +Sistemul a reușit cu succes să detecteze comunicația pe serială (atât bitul de start, cât și codificarea caracterelor). În urma unor rulări succesive cu litera A (în care 5 biți de 0 consecutivi),​ am observat că diferența maximă de timp pentru transmisie între 2 rezultate a fost de aproximativ 7 ciclii ai ceasului folosit de GPIO (iar transmsia celor 5 biți dura aproximativ 700 de ciclii de ceas).
 +
 +În ceea ce privește beneficiile acestui proiect, consider că analizorul logic m-a ajutat să învăț să gestionez microprocesoare cu o documentație mai puțin clară (nu există exemple de cod în datasheet, iar în general utilizatorii acestui procesor folosesc librăriile oferite de firma Renesas pentru a abstractiza lucrul cu regiștrii). ​
 ===== Planificare - Diagrama Gantt ===== ===== Planificare - Diagrama Gantt =====
  
Line 121: Line 127:
  
 Datasheet microprocesor RA4M1 - https://​cdn.sparkfun.com/​assets/​b/​1/​d/​3/​6/​RA4M1_Datasheet.pdf Datasheet microprocesor RA4M1 - https://​cdn.sparkfun.com/​assets/​b/​1/​d/​3/​6/​RA4M1_Datasheet.pdf
 +
 Schema electronică a microcontroller-ului - https://​docs.arduino.cc/​resources/​schematics/​ABX00087-schematics.pdf Schema electronică a microcontroller-ului - https://​docs.arduino.cc/​resources/​schematics/​ABX00087-schematics.pdf
-Documentație ​biblioteca ​matplotlib (Pyhton) - https://​matplotlib.org/​+ 
 +Documentație matplotlib (Pyhton) - https://​matplotlib.org/​
pm/prj2025/ccristi/rares_andrei.ticus.1748306249.txt.gz · Last modified: 2025/05/27 03:37 by rares_andrei.ticus
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