This shows you the differences between two versions of the page.
priot:laboratoare:01 [2024/10/06 21:14] jan.vaduva [Microcontroler] |
priot:laboratoare:01 [2024/10/15 02:08] (current) alexandru.bala [Microcontroler] |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ===== Simulator Wowki, introducere în RP2040 ===== | + | ===== Laboratorul 01: Simulator Wowki, introducere în RP2040 ===== |
Line 39: | Line 39: | ||
- | Desi marea majoritatea a proiectelor experimentate in cadrul laboratorului pot fi realizate cu MicroPython sau CircuitPython pentru proiectele mai complexe recomandam utilizarea C/C++ in special din considerente de performanta. De asemenea recomandam sa verificati de asemenea disponibilitatea bibliotecilor, pentru a va asigura că există biblioteci disponibile pentru limbajul și proiectul dvs. | + | Desi marea majoritatea a proiectelor experimentate in cadrul laboratorului pot fi realizate cu MicroPython sau CircuitPython pentru proiectele mai complexe recomandam utilizarea C/C++ in special din considerente de performanta. De asemenea recomandam sa verificati disponibilitatea bibliotecilor, pentru a va asigura că există biblioteci disponibile pentru limbajul și proiectul dvs. |
==== RP2040 ==== | ==== RP2040 ==== | ||
Line 56: | Line 56: | ||
* Memorie: | * Memorie: | ||
* Suport pentru memorie externă: Codul poate fi executat direct din memoria flash externă folosind interfețele SPI, DSPI sau QSPI. O mică cache internă îmbunătățește performanța pentru datele accesate frecvent. | * Suport pentru memorie externă: Codul poate fi executat direct din memoria flash externă folosind interfețele SPI, DSPI sau QSPI. O mică cache internă îmbunătățește performanța pentru datele accesate frecvent. | ||
- | * SRAM internă: Memoria internă (264 kB) poate stoca cod sau date și este accesibilă simultan de diferite părți ale cipului. | + | * SRAM internă: Memoria internă (256 kB) poate stoca cod sau date și este accesibilă simultan de diferite părți ale cipului. |
* Procesare: | * Procesare: | ||
* **DMA**: Canalele DMA (Direct Memory Access) dedicate descarcă sarcinile repetitive de mutare a datelor de la procesoare, îmbunătățind eficiența. | * **DMA**: Canalele DMA (Direct Memory Access) dedicate descarcă sarcinile repetitive de mutare a datelor de la procesoare, îmbunătățind eficiența. | ||
Line 66: | Line 66: | ||
* **I2C**: Pentru comunicație serială multi-master | * **I2C**: Pentru comunicație serială multi-master | ||
* I/O programabil (PIO): Controlierele PIO flexibile pot fi configurate pentru diverse funcții de I/O personalizate. | * I/O programabil (PIO): Controlierele PIO flexibile pot fi configurate pentru diverse funcții de I/O personalizate. | ||
- | * USB - poate fi utilizată atât pentru programarea microcontrolerului, cât și pentru comunicația cu alte dispozitive: | + | * **USB** - poate fi utilizată atât pentru programarea microcontrolerului, cât și pentru comunicația cu alte dispozitive: |
* Controler USB integrat: Oferă funcționalitate USB host sau device sub control software (Full Speed/Low Speed). | * Controler USB integrat: Oferă funcționalitate USB host sau device sub control software (Full Speed/Low Speed). | ||
* Convertor analog-digital (**ADC** - pentru conversia analog-digitală): Patru canale ADC pot fi folosite pentru a converti semnalele analogice în date digitale. | * Convertor analog-digital (**ADC** - pentru conversia analog-digitală): Patru canale ADC pot fi folosite pentru a converti semnalele analogice în date digitale. | ||
- | * Ceasuri - pentru măsurarea timpului și generarea de întreruperi: | + | * **PWM**: Pentru generarea de semnale PWM (Pulse Width Modulation) |
+ | * **Ceasuri** - pentru măsurarea timpului și generarea de întreruperi: | ||
* Două bucle cu fază blocată (PLL): Generează ceasuri pentru funcții specifice precum USB (48MHz) și sistemul (până la 133MHz). | * Două bucle cu fază blocată (PLL): Generează ceasuri pentru funcții specifice precum USB (48MHz) și sistemul (până la 133MHz). | ||
* Gestionarea puterii: | * Gestionarea puterii: | ||
Line 135: | Line 136: | ||
- Proiectați și implementați un program pentru un microcontroler Raspberry Pi Pico (RP2040) care incrementează un contor de la 0 la 9 și afișează numărul curent pe un display cu 7 segmente. Programul ar trebui să includă și un buton de resetare care, atunci când este apăsat, resetează contorul înapoi la 0. | - Proiectați și implementați un program pentru un microcontroler Raspberry Pi Pico (RP2040) care incrementează un contor de la 0 la 9 și afișează numărul curent pe un display cu 7 segmente. Programul ar trebui să includă și un buton de resetare care, atunci când este apăsat, resetează contorul înapoi la 0. | ||
* [[https://wokwi.com/projects/403561096139405313|Folositi template-ul disponibil]] | * [[https://wokwi.com/projects/403561096139405313|Folositi template-ul disponibil]] | ||
+ | - Rescrieti aplicatia de la punctul 2 in MicroPython si observati diferentele de implementare. | ||
==== Bibliografie ==== | ==== Bibliografie ==== | ||
Line 142: | Line 144: | ||
- [[https://www.raspberrypi.com/documentation/microcontrollers/c_sdk.html|Pico-SDK]] | - [[https://www.raspberrypi.com/documentation/microcontrollers/c_sdk.html|Pico-SDK]] | ||
- [[https://www.raspberrypi.com/documentation/pico-sdk/hardware.html#ga71d35b29e897b9bb4fc881b587b08cab|Documentatie Pico-SDK]] | - [[https://www.raspberrypi.com/documentation/pico-sdk/hardware.html#ga71d35b29e897b9bb4fc881b587b08cab|Documentatie Pico-SDK]] | ||
+ | - [[https://proto-pic.co.uk/content/RPI-PICO-R3-PUBLIC-SCHEMATIC.pdf|Schematic Raspberry Pi Pico]] | ||
<hidden> | <hidden> |