Differences

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

Link to this comparison view

pm:lab:lab2-2021 [2021/03/21 23:04]
alexandru.predescu [3. Interfața serială USART]
pm:lab:lab2-2021 [2022/03/04 14:00] (current)
alexandru.predescu [5. Linkuri utile]
Line 1: Line 1:
-====== Laboratorul 2: Digital Debugging, USART (draft) ​======+====== Laboratorul 2: Digital Debugging, USART ======
  
  
Line 21: Line 21:
 Vizibilitatea la nivel hardware se realizează printr-o formă de InputOutput (dacă este disponibilă):​ Vizibilitatea la nivel hardware se realizează printr-o formă de InputOutput (dacă este disponibilă):​
  
-  * Depanare ​led - verificarea stării true/​false +  * Depanare ​LED - verificarea stării true/​false 
-  * printf ​pe UART imprimare folosind LCD, bluetooth, etc +  * mesaje ​pe interfața serială / USART depanare prin USART, bluetooth, etc 
-  * Debuggers ​avansate pentru afisarea si modificarea memoriei / registrelor (a se vedea JTAG de mai jos)+  * Debuggere ​avansate pentru afisarea si modificarea memoriei / registrelor (a se vedea JTAG de mai jos)
   * Loopbacking (conectarea ieșirilor la intrări) poate oferi informații despre modul în care comenzile sunt trimise ​ dispozitivelor externe.   * Loopbacking (conectarea ieșirilor la intrări) poate oferi informații despre modul în care comenzile sunt trimise ​ dispozitivelor externe.
  
Line 46: Line 46:
 {{:​pm:​lab:​lab2_2021:​2.jpg?​400|}} {{:​pm:​lab:​lab2_2021:​2.jpg?​400|}}
  
-===== 2. Exemplu de flux de depanare ​=====+==== Exemplu de flux de depanare ====
  
 Un exemplu de flux de depanare ar putea fi următorul: Un exemplu de flux de depanare ar putea fi următorul:
  
   * Verificați de două ori foaia de catalog și schema. Accesați registrele potrivite? Sunt perifericele conectate la pinii la care am crezut că sunt?   * Verificați de două ori foaia de catalog și schema. Accesați registrele potrivite? Sunt perifericele conectate la pinii la care am crezut că sunt?
-  * Este posibilă depanarea prin mesaje de debug (printf)?:+  * Este posibilă depanarea prin mesaje de debug (echivalent ​printf)?:
   * Ai o stivă ethernet? Dacă da, ia în considerare SSH, NFS, etc pentru a realiza debugging printf.   * Ai o stivă ethernet? Dacă da, ia în considerare SSH, NFS, etc pentru a realiza debugging printf.
   * În cazul în care aveti o stiva de rețea, poate sunt disponibile protocoale mai simple: UART? Putem conecta ceva prin UART? Poate un PC, modul HC-05 Bluetooth, un LCD?   * În cazul în care aveti o stiva de rețea, poate sunt disponibile protocoale mai simple: UART? Putem conecta ceva prin UART? Poate un PC, modul HC-05 Bluetooth, un LCD?
Line 74: Line 74:
  
 Microcontroller-ul Atmega328p include un periferic **USART** (Universal Synchronous-Asynchronous Receiver/​Transmitter) pentru interfața serială. În partea de inițializare a acestui periferic trebuie efectuați următorii pași: Microcontroller-ul Atmega328p include un periferic **USART** (Universal Synchronous-Asynchronous Receiver/​Transmitter) pentru interfața serială. În partea de inițializare a acestui periferic trebuie efectuați următorii pași:
-  * alegerea vitezei pentru transmisia de date - baud rate-ul+  * alegerea vitezei pentru transmisia de date - baud rate-ul ​(valori uzuale: 9600, 19200, 38400, 57600, 115200)
   * alegerea formatului cadrului (câți biți de date, de stop, dacă va conține sau nu bit de partitate)   * alegerea formatului cadrului (câți biți de date, de stop, dacă va conține sau nu bit de partitate)
   * activarea transmisiei și recepției datelor pe liniile ''​RX''​ și ''​TX''​.   * activarea transmisiei și recepției datelor pe liniile ''​RX''​ și ''​TX''​.
Line 93: Line 93:
    
 Arduino UNO se conecteaza la PC prin intermediul interfetei seriale, dar utilizeaza un convertor serial-to-USB integrat pe placa. Prin intermediul acestei interfete si utilizand IDE-ul dedicat Arduino se poate programa microprocesorul,​ dar se poate asigura si un canal de debug. Astfel, prin mesaje simple, se poate afla starea sistemului, se pot afisa valorile variabilelor,​ sau chiar se pot trimite comenzi, interfata functionand bidirectional. Mai multe detalii se pot gasi [[https://​www.arduino.cc/​reference/​en/​language/​functions/​communication/​serial/​|aici]] Arduino UNO se conecteaza la PC prin intermediul interfetei seriale, dar utilizeaza un convertor serial-to-USB integrat pe placa. Prin intermediul acestei interfete si utilizand IDE-ul dedicat Arduino se poate programa microprocesorul,​ dar se poate asigura si un canal de debug. Astfel, prin mesaje simple, se poate afla starea sistemului, se pot afisa valorile variabilelor,​ sau chiar se pot trimite comenzi, interfata functionand bidirectional. Mai multe detalii se pot gasi [[https://​www.arduino.cc/​reference/​en/​language/​functions/​communication/​serial/​|aici]]
 +
 +
 +<​note>​Configurația implicită pentru interfața serială USART folosește 8 biți de date, un bit de stop, fără paritate (8N1).</​note>​
  
 Următorul program poate trimite mesaje de la Arduino către PC, prin USB (sau folosind emulatorul din Tinkercad) Următorul program poate trimite mesaje de la Arduino către PC, prin USB (sau folosind emulatorul din Tinkercad)
Line 160: Line 163:
 </​file>​ </​file>​
  
-Depanati ​codul astfel ​incat sa obtineti o valoare de 2V la bornele voltmetrului.+Modificați ​codul astfel ​încât să obtineti o valoare de 2V la bornele voltmetrului.
  
  
Line 172: Line 175:
  
  
-===== 4. Resurse =====+===== 5. Resurse =====
  
   * {{:​pm:​atmel-7810-automotive-microcontrollers-atmega328p_datasheet.pdf|Datasheet Atmega 328p}}   * {{:​pm:​atmel-7810-automotive-microcontrollers-atmega328p_datasheet.pdf|Datasheet Atmega 328p}}
Line 178: Line 181:
   * {{:​pm:​lab:​uno.jpg?​200|pinout Arduino UNO}}   * {{:​pm:​lab:​uno.jpg?​200|pinout Arduino UNO}}
   * Responsabili:​ [[Adrian.Mocanu@gmail.com | Adrian Mocanu]]   * Responsabili:​ [[Adrian.Mocanu@gmail.com | Adrian Mocanu]]
-===== 5. Linkuri utile =====+===== 6. Linkuri utile =====
  
     * {{https://​cache.amobbs.com/​bbs_upload782111/​files_22/​ourdev_508497.html | AVR Baud Rate Tables}}     * {{https://​cache.amobbs.com/​bbs_upload782111/​files_22/​ourdev_508497.html | AVR Baud Rate Tables}}
pm/lab/lab2-2021.1616360660.txt.gz · Last modified: 2021/03/21 23:04 by alexandru.predescu
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