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> | ||