Differences

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

Link to this comparison view

pm:lab:lab6-2023-2024 [2025/03/23 14:58]
mihnea.dinica Revert change
pm:lab:lab6-2023-2024 [2025/04/09 02:43] (current)
mihnea.dinica Add points
Line 81: Line 81:
     * 1 - Intreruperea I2C este activata (atat timp cat bitul TWINT este high)     * 1 - Intreruperea I2C este activata (atat timp cat bitul TWINT este high)
     * 0 - Intreruperea I2C este dezactivata     * 0 - Intreruperea I2C este dezactivata
 +  * TWSTA: TWI START Condition
 +    * 1 - Setat software atunci cand se doreste sa obtinem statusul de Master pe magistrala I2C.
 +  * TWSTO: TWI STOP Condition
 +    * 1 - Setat software atunci cand vrem sa facem release la statusul de Master.
 ==== TWI Status Register ==== ==== TWI Status Register ====
 {{pm:​lab:​twsr.png?​600}} {{pm:​lab:​twsr.png?​600}}
Line 132: Line 136:
 Comunicarea cu senzorul se va face prin citirea/​scrierea registrelor senzorului, folosind I2C. Pentru accesarea unui registru, atât pentru scriere Comunicarea cu senzorul se va face prin citirea/​scrierea registrelor senzorului, folosind I2C. Pentru accesarea unui registru, atât pentru scriere
 cât și pentru citire, este necesară transmiterea adresei acestuia înainte de operație. Tabela cu registrele si adresele acestora, se găsește cât și pentru citire, este necesară transmiterea adresei acestuia înainte de operație. Tabela cu registrele si adresele acestora, se găsește
-în [[https://​www.nxp.com/​docs/​en/​data-sheet/​MPL3115A2.pdf|Datasheet]],​ în secțiunea ''​14''​.+în [[https://​www.nxp.com/​docs/​en/​data-sheet/​MPL3115A2.pdf|Datasheet-ul senzorului]], în secțiunea ''​14''​.
  
 {{ :​pm:​lab:​lab6:​mpl3115a2-registers.jpeg?​400 |}} {{ :​pm:​lab:​lab6:​mpl3115a2-registers.jpeg?​400 |}}
Line 138: Line 142:
 ===== 6. Exerciții ===== ===== 6. Exerciții =====
  
-Descărcați {{:​pm:​lab:​lab6:​lab6-skel-2023-2024.zip|arhiva cu scheletul de cod}}. Urmăriți indicațiile din ''​TODO''​-uri.+Descărcați {{:​pm:​lab:​lab6:​lab6-skel-2025.zip|arhiva cu scheletul de cod}}. Urmăriți indicațiile din ''​TODO''​-uri.
  
-**Task 0.** Completați corpul funcțiilor ''​twi_init'',​ ''​twi_start''​ și ''​twi_stop''​ din fișierul ''​twi.c''​. ​+**Task 0 [2p].** Completați corpul funcțiilor ''​twi_init'',​ ''​twi_start''​ și ''​twi_stop''​ din fișierul ''​twi.c''​. ​
  
 <​note>​ <​note>​
Line 146: Line 150:
 </​note>​ </​note>​
  
-**Task 1.** Completați corpul funcțiilor ''​twi_read_ack'',​ ''​twi_read_nack''​ și ''​twi_write''​ din fișierul ''​twi.c''​.+**Task 1 [2p].** Completați corpul funcțiilor ''​twi_read_ack'',​ ''​twi_read_nack''​ și ''​twi_write''​ din fișierul ''​twi.c''​.
  
 <​note>​ <​note>​
Line 153: Line 157:
 </​note>​ </​note>​
  
-**Task 2.** Completați corpul funcției ''​twi_discover''​ din fișierul ''​twi.c''​. Funcția trebuie să trimită un SLA_R (slave read)+**Task 2 [2p].** Completați corpul funcției ''​twi_discover''​ din fișierul ''​twi.c''​. Funcția trebuie să trimită un SLA_R (slave read)
 către toate adresele posibile pentru I2C slaves (0-127), pentru a determina ce dispozitive sunt conectate pe magistrala de I2C. către toate adresele posibile pentru I2C slaves (0-127), pentru a determina ce dispozitive sunt conectate pe magistrala de I2C.
 Afișați pe serial adresele dispozitivelor conectate și nu uitați să apelați funcția în ''​main''​. Afișați pe serial adresele dispozitivelor conectate și nu uitați să apelați funcția în ''​main''​.
Line 173: Line 177:
 </​note>​ </​note>​
  
-**Task 3.** În următoarele task-uri, vom folosi senzorul **MPL3115A2**,​ prezentat anterior. Pentru a putea configura și citi valorile+**Task 3 [4p].** În următoarele task-uri, vom folosi senzorul **MPL3115A2**,​ prezentat anterior. Pentru a putea configura și citi valorile
 registrelor senzorului, vom urmări pașii din diagrama de stări de mai jos, preluată din [[https://​www.nxp.com/​docs/​en/​data-sheet/​MPL3115A2.pdf|Datasheet MPL3115A2]]. ​ registrelor senzorului, vom urmări pașii din diagrama de stări de mai jos, preluată din [[https://​www.nxp.com/​docs/​en/​data-sheet/​MPL3115A2.pdf|Datasheet MPL3115A2]]. ​
  
Line 183: Line 187:
 </​note>​ </​note>​
  
-**Task 3.1.** Pentru început, vrem să inițializăm senzorul. Completați corpul funcției ''​mpl3115a2_init''​ din fișierul ''​mpl3115a2.c''​. Aceasta va trebui apelată în cadrul+**Task 3.1 [1p].** Pentru început, vrem să inițializăm senzorul. Completați corpul funcției ''​mpl3115a2_init''​ din fișierul ''​mpl3115a2.c''​. Aceasta va trebui apelată în cadrul
 funcției ''​main'',​ înainte de loop. funcției ''​main'',​ înainte de loop.
  
-**Task 3.2.** Completați corpul funcțiilor ''​mpl3115a2_read_pressure''​ și ''​mpl3115a2_read_temperature''​ din fișierul ''​mpl3115a2.c''​. Acestea vor trebui apelate în cadrul+**Task 3.2 [3p].** Completați corpul funcțiilor ''​mpl3115a2_read_pressure''​ și ''​mpl3115a2_read_temperature''​ din fișierul ''​mpl3115a2.c''​. Acestea vor trebui apelate în cadrul
 funcției ''​main'',​ în interiorul loop-ului. Afișați valorile citite pe serial. funcției ''​main'',​ în interiorul loop-ului. Afișați valorile citite pe serial.
  
Line 233: Line 237:
 <​hidden>​ <​hidden>​
 <​solution>​ <​solution>​
-Arhiva cu soluțiile o puteți descărca de aici: {{:​pm:​lab:​lab6:​lab6-skel-solution.zip}}+Arhiva cu soluțiile o puteți descărca de aici: {{:​pm:​lab:​lab6:​lab6-solution-2025.zip}}
 </​solution>​ </​solution>​
 </​hidden>​ </​hidden>​
Line 245: Line 249:
 ===== 8. Responsabili laborator ===== ===== 8. Responsabili laborator =====
  
-  * [[irina_cristina.nita@stud.acs.upb.ro|Irina-Cristina Niță]] +  * [[mihnea.dinica@stud.acs.upb.ro|Mihnea-Gabriel Dinica]] 
-  * [[sebastian.severin@stud.acs.upb.ro|Sebastian Severin]]+  * [[atoader@stud.acs.upb.ro|Alexandru Toader]]
  
pm/lab/lab6-2023-2024.1742734716.txt.gz · Last modified: 2025/03/23 14:58 by mihnea.dinica
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