This is an old revision of the document!


Simulator Wowki, introducere în RP2040

Microcontroler

Microcontrolerele sunt circuite integrate (IC) mici pe care le puteți programa să îndeplinească diverse sarcini. Acestea au un procesor, memorie și pini de intrare/ieșire (GPIO) pentru a interacționa cu lumea externă. De la jucării până la mașini, microcontrolerele sunt prezente peste tot în electronică.

RP2040 este un microcontroler puternic și versatil construit de Raspberry Pi Foundation. Acest cip, bazat pe arhitectura ARM, este inima plăcilor de dezvoltare precum popularul Raspberry Pi Pico. De asemenea, folosim RP2040 în placa Marble Pico.

Raspberry Pi Pico board Marble Pico board

Pentru a debloca potențialul RP2040, Raspberry Pi Foundation a creat Pico-SDK. Acest kit de dezvoltare software (SDK) gratuit și open-source vă oferă instrumentele și bibliotecile necesare pentru a programa RP2040 în C și C++.

RP2040

Numele acestui cip a fost furnizat de Raspberry Pi Foundation și este explicat în fișa tehnică:

RP: Reprezintă “Raspberry Pi”, similar cu modul în care alte produse Raspberry Pi folosesc “Pi” în numele lor.

  • 2: Indică numărul de nuclee din CPU. RP2040 are un procesor cu două nuclee.
  • 0: Reprezintă tipul de CPU (Arm Cortex-M0+) folosit în RP2040.
  • 4: Semnifică cantitatea de RAM (în kilobyți) de pe cip. RP2040 vine de obicei cu 256KB de RAM (2^4 * 16KB) - floor(log2(ram / 16k)).
  • 0: Semnifică cantitatea de stocare nevolatilă de pe cip. RP2040 vine de obicei cu 0MB de flash, dar poate avea până la 16MB de memorie flash off-chip prin intermediul bus-ului dedicat QSPI (2^4 * 16KB) - floor(log2(nonvolatile / 16k)).

RP2040 pinout

RP2040 are două nuclee de procesor M0+, DMA, memorie internă și blocuri periferice conectate prin intermediul țesăturii de bus AHB/APB. Acesta oferă o varietate de caracteristici pentru dezvoltare flexibilă:

  • 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.
    • SRAM internă: Memoria internă (264 kB) poate stoca cod sau date și este accesibilă simultan de diferite părți ale cipului.
  • Procesare:
    • DMA: Canalele DMA (Direct Memory Access) dedicate descarcă sarcinile repetitive de mutare a datelor de la procesoare, îmbunătățind eficiența.
    • I/O flexibil: Pinii GPIO pot fi controlați direct sau prin funcții logice integrate.
  • Comunicare:
    • Periferice hardware: Hardware-ul dedicat gestionează protocoalele standard de comunicare precum SPI, I2C și UART.
    • I/O programabil (PIO): Controlierele PIO flexibile pot fi configurate pentru diverse funcții de I/O personalizate.
  • USB:
    • Controler USB integrat: Oferă funcționalitate USB host sau device sub control software (Full Speed/Low Speed).
  • Convertor analog-digital (ADC): Patru canale ADC pot fi folosite pentru a converti semnalele analogice în date digitale.
  • Ceasuri:
    • Două bucle cu fază blocată (PLL): Generează ceasuri pentru funcții specifice precum USB (48MHz) și sistemul (până la 133MHz).
  • Gestionarea puterii:
    • Regulator de tensiune intern: Simplifică alimentarea prin necesitatea doar a unei surse externe de tensiune pentru I/O.

RP2040 system overview

Pe scurt, RP2040 oferă procesare puternică, opțiuni flexibile de memorie, diverse opțiuni de comunicare și periferice integrate, ceea ce îl face potrivit pentru diverse proiecte de dezvoltare.

Datasheet

RP2040, la fel ca majoritatea componentelor electronice, are o fișă tehnică (uneori numită fișă de date sau fișă de specificații). Acest document este ca un manual de instrucțiuni pentru cip, explicând caracteristicile sale și cum să îl utilizați în proiectele dvs.

Ce conține o fișă tehnică RP2040?

  • Prezentare generală: O descriere de bază a RP2040, funcționalitățile sale și tipurile de proiecte pentru care este potrivit.
  • Pinout: O diagramă care arată toți pinii de pe cip, funcțiile lor (cum ar fi GPIO-urile pentru conectarea la alte componente) și specificațiile electrice (cum ar fi limitele de tensiune).
  • Specificații tehnice: Informații detaliate despre performanța, memoria, consumul de energie și alte aspecte tehnice ale RP2040.

A avea în vedere:

  • Complexitate: Fișele tehnice pot fi tehnice. Nu vă faceți griji dacă nu înțelegeți totul de la început! Concentrați-vă pe secțiunile relevante pentru proiectul dvs. (de exemplu, pinii GPIO).
  • Exemple limitate: Fișele tehnice pot să nu ofere ghiduri pas cu pas pentru proiecte. Cu toate acestea, ele oferă baza pentru înțelegerea modului de utilizare a RP2040 cu codul dvs.
  • Resurse complementare: Dacă fișa tehnică este copleșitoare, resursele online precum tutorialele și forumurile vă pot ajuta să explicați conceptele într-un mod mai ușor de utilizat.

Configurarea GPIO-urilor

Pinii GPIO pot fi utilizați ca ieșiri (LED-uri, motoare, buzzere) sau ca intrări (butoane, senzori).

RP2040 are trei periferice care controlează pinii GPIO:

  • Pads - controlează pinul sau pad-ul fizic efectiv pe care procesorul îl are în exterior. Acest control reglează parametrii electrici, cum ar fi curentul maxim sau rezistențele de pull-up și pull-down.
  • IO Bank0 - conectează și multiplexează pinii perifericului la pad-urile de ieșire. Mai multe periferice utilizează același pad de ieșire pentru a comunica cu exteriorul. De exemplu, în imaginea de mai jos, GPIO0 poate fi utilizat fie pentru:
    • SIO - funcția GPIO
    • SPI_RX - pinul de recepție pentru perifericul SPI
    • I2C0_SDA - pinul de date pentru perifericul I2C0
    • UART0_TX - pinul de transmisie pentru perifericul UART0 (portul serial 0)
  • SIO - care controlează pinii interiori ai MCU. Acesta este perifericul pe care dezvoltatorii îl folosesc pentru a citi și a scrie valoarea pinilor.

Simulator Wowki

Wokwi este o platformă bazată pe web care vă permite să simulați și să prototipați circuite electronice cu microcontrolere. Oferă o interfață vizuală unde puteți glisa și plasa componente, conectați-le cu fire virtuale și scrieți cod pentru a controla comportamentul lor. Wokwi suportă în prezent plăci de microcontrolere populare precum:

  • Arduino Uno, Mega, Nano, etc.
  • Raspberry Pi Pico
  • Plăci ESP32 (generice)
  • Plăci multiple STM32

De ce să folosiți Wokwi?

  • Simulare rapidă și ușoară: Wokwi vă permite să creați și să testați circuite electronice fără a avea nevoie de hardware fizic. Acest lucru poate accelera semnificativ procesul de dezvoltare.
  • Interfață intuitivă: Platforma oferă o interfață grafică ușor de utilizat, ceea ce face accesibilă chiar și pentru începători în domeniul electronicii.
  • Integrare cu IDE-uri populare: Wokwi se poate integra cu IDE-uri precum Arduino IDE și Visual Studio Code, permițându-vă să scrieți și să compilați codul direct în cadrul platformei.
  • Funcționalități avansate: Pe lângă simulare și prototipare, Wokwi oferă și funcționalități precum debug-ul, analiza circuitelor și partajarea proiectelor cu alții.

Cum funcționează Wokwi?

  • Creați un nou proiect: Alegeți un tip de microcontroler și începeți să adăugați componente în circuitul dvs.
  • Conectați componentele: Folosiți fire virtuale pentru a conecta componentele împreună.
  • Scrieți cod: Utilizați editorul de cod integrat pentru a scrie codul care va controla comportamentul componentelor.
  • Simulați circuitul: Apăsați butonul de simulare pentru a vedea cum funcționează circuitul dvs. în timp real.

Wokwi este un instrument excelent pentru studenții de la Computer Science care doresc să învețe despre electronică și programare. Platforma oferă un mediu sigur și accesibil pentru experimentare și dezvoltare de proiecte.

Exercitii

  1. Creați un program în Wokwi pentru a clipi un LED conectat la un microcontroler Raspberry Pi Pico (RP2040).
  2. 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.

Bibliografie

priot/laboratoare/01.1728234667.txt.gz · Last modified: 2024/10/06 20:11 by jan.vaduva
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