Trong bài viết này, chúng ta sẽ nói về bo mạch phát triển Raspberry Pi Pico, đây là bo điều khiển đầu tiên trong chuỗi vi điều khiển Raspberry Pi.
Nó có thể lập trình bằng ngôn ngữ python cũng như C / C ++ SDK. Raspberry Pi Pico là bo mạch có hiệu năng cao, giá rẻ sản xuất trên dòng chip vi điều khiển Raspberry Pi RP2040.
Chip RP2040 là vi điều khiển cortex M0 + lõi kép có tần số hoạt động lên đến 133MHz. Con chip này có 26 chân GPIO đa chức năng và 2MB bộ nhớ Flash.
Hình ảnh dưới đây là sơ đồ chân của bo mạch Raspberry Pi Pico. Nó có tổng cộng 40 chân, bao gồm 26 chân GPIO, tám chân GND, 3 chân debug và chân Vcc.
Màu được đánh dấu ở dưới sơ đồ chân chỉ định các chân Power, ground, UART, GPIO, PWM, ADC, SPI, I2C, system control và Debugging. Nó là một bo mạch PCB dày 1mm 21 × 51 'DIP'.
Tất cả các chân GPIO đều có nhiều chức năng. Ví dụ, các chân GP0 và GP1 có thể được sử dụng làm đầu vào tín hiệu digital, đầu ra tín hiệu digital, I2C0 (chân SDA và SCK), UART0 (Rx và Tx). Nhưng chỉ có thể sử dụng một chức năng tại một thời điểm.
Bây giờ chúng ta hãy xem chi tiết cấu hình chân của tất cả các ngoại vi được hỗ trợ trên Raspberry Pi Pico:
Raspberry Pi Pico có 26 chân GPIO đa chức năng trong tổng số 36 chân GPIO của vi điều khiển RP2040. Trong số 26 chân này, 23 chân là chân tín hiệu digital, và chỉ có 3 chân có khả năng đọc tín hiệu analog.
Các chân digital này được đánh dấu là GP0, GP1 và lên tới GP22. Còn các chân GP23, GP24 và GP25 thì không được hiển thị trên sơ đồ chân do đó không thể sử dụng được. GP26, GP27 và GP28 là các chân digital khả dụng tiếp theo, 26 chân GPIO này có thể được sử dụng ở cả chế độ đầu vào digital và đầu ra digital.
Tất cả các chân GPIO có thể được cấu hình như một chân ngắt bên ngoài với bốn thay đổi trạng thái logic trên các chân GPIO:
Lưu ý: Các GPIO của Raspberry Pi Pico được kết nối với nguồn cấp 3.3V trên bo mạch, do đó được cố định ở 3.3V.
Nó hỗ trợ bốn bộ chuyển đổi tín hiệu tương tự analog sang digital dựa trên SAR 12 bit. Nhưng chỉ có ba kênh analog được đưa ra trên sơ đồ chân, kênh analog thứ tư được kết nối với cảm biến nhiệt độ bên trong.
Do đó, nếu chúng ta muốn đo nhiệt độ, chúng ta có thể sử dụng trực tiếp cảm biến nhiệt độ được tích hợp bằng cách đọc giá trị tương tự analog của ADC4. Bảng sau đây cho thấy tín hiệu đầu vào cho ADC0, ADC1 và ADC2 có thể được kết nối với các chân GP26, GP27 và GP28 tương ứng.
Module ADC | Chân GPIO |
ADC0 | GP26 |
ADC1 | GP27 |
ADC2 | GP28 |
Chuyển đổi Analog / Digital có thể được thực hiện trên bộ ngắt và FIFO với chế độ DMA.
Tốc độ chuyển đổi ADC trên mỗi mẫu giá trị là 2μs tức là 500kS/s. Bởi vì vi điều khiển RP2040 hoạt động ở tần số xung nhịp 48MHZ từ USB PLL. ADC cần 96 chu kỳ xung nhịp CPU để thực hiện một lần chuyển đổi. Do đó, tần số lấy mẫu là
96 x (1 / 48MHz) = 2 μs/mẫu (500kS / s).
Chip RP2040 có hai bộ điều khiển I2C . Cả hai bộ điều khiển I2C đều có thể truy cập thông qua các chân GPIO của Raspberry Pi Pico. Bảng sau đây cho thấy kết nối của các chân GPIO với cả hai bộ điều khiển I2C. Mỗi kết nối của bộ điều khiển có thể được cấu hình thông qua nhiều chân GPIO như trong hình. Nhưng trước khi sử dụng bộ điều khiển I2C, bạn nên cấu hình trên phần mềm chân GPIO mà bạn muốn sử dụng với bộ điều khiển I2C.
Bộ điều khiển I2C | Chân GPIO |
I2C0 - SDA | GP0 / GP4 / GP8 / GP12 / GP16 / GP20 |
I2C0 - SCL | GP1 / GP5 / GP9 / GP13 / GP17 / GP21 |
I2C1 - SDA | GP2 / GP6 / GP10 / GP14 / GP18 / GP26 |
I2C1 - SCL | GP3 / GP7 / GP11 / GP15 / GP19 / GP27 |
Bộ điều khiển I2C của chip RP4020 hỗ trợ các tính năng sau:
Chip RP2040 hỗ trợ hai thiết bị ngoại vi SPI. Cả hai chân module SPI đều có thể truy cập thông qua các chân GPIO của Raspberry Pi Pico. Bảng sau đây cho thấy kết nối của các chân GPIO với cả hai module SPI.
Mỗi kết nối của các chân điều khiển SPI có thể được cấu hình qua nhiều chân GPIO như trong hình. Nhưng trước khi sử dụng SPI, bạn nên cấu hình trên phần mềm các chân GPIO, mà bạn muốn sử dụng với thiết bị ngoại vi SPI.
Bộ điều khiển SPI | Chân GPIO |
SPI0_RX | GP0 / GP4 / GP16 |
SPI0_TX | GP3 / GP7 / GP19 |
SPI0_CLK | GP2 / GP6 / GP18 |
SPI0_CSn | GP1 / GP5 / GP17 |
SPI1_RX | GP8 / GP12 / |
SPI1_TX | GP11 / GP15 / |
SPI1_CLK | GP10 / GP14 / |
SPI1_CSn | GP9 / GP13 / |
Mỗi bộ điều khiển SPI hỗ trợ chế độ master và slave, tương thích với bốn chế độ sau:
Nó có 8 bộ đệm cho mỗi bộ truyền và bộ nhận của bộ điều khiển SPI. Hơn nữa, nó cũng có thể được điều khiển bằng ngắt hoặc DMA.
RP2040 có hai ngoại vi UART giống hệt nhau với Tx 32 × 8 và Rx 32 × 12 FIFO riêng biệt. Bảng sau đây liệt kê các chân GPIO cho cả hai ngoại vi UART đã được hiển thị ở sơ đồ chân của bo mạch Raspberry Pi Pico.
Chân UART | Chân GPIO |
UART0-TX | GP0 / GP12 / GP16 |
UART0-RX | GP1 / GP13 / GP17 |
UART1-TX | GP4 / GP8 |
UART1-RX | GP5 / GP9 |
Vi điều khiển RP2040 có 8 khối PWM và mỗi khối PWM cung cấp hai tín hiệu PWM. Điều đó có nghĩa là mỗi lần có thể truyền tối đa hai tín hiệu PWM. Do đó, có tổng cộng 16 đầu ra tín hiệu PWM có trên Raspberry Pi Pico. Tất cả các chân GPIO có thể được cấu hình để nhận bất kỳ đầu ra tín hiệu PWM nào.
Đặc tính | khả dụng |
Vi điều khiển | RP2040 |
Kiến trúc vi mạch | Bộ xử lý Arm Cortex M0 + lõi kép |
Flash | 2 MB |
SRAM | 264KB |
Chân GPIO | 26 |
I2C | 2 |
UART | 2 |
SPI | 2 |
PWM | 8 khối PWM - 16 đầu ra |
ADC | 3 ADC 12 bit |
State Machines | 8 × Máy trạng thái I / O có thể lập trình (PIO) |
DAC | 0 |
USB | USB 1.1 hỗ trợ thiết bị và máy chủ lưu trữ |
Timer | bộ đếm 64 bit đơn |
Watchdog | 1 bộ 32-bit |
Xung nhịp thời gian thực | 1- RTC |
Nền tảng Raspberry Pi cung cấp hai tùy chọn lập trình cho bo Raspberry Pi Pico như C / C ++ SDK và Micropython. Họ cũng cung cấp phần mềm SDK của riêng họ cho cả 2 ngôn ngữ C và Micropyhton.
Chúng ta cũng có thể lập trình Raspberry Pi Pico bằng Thonny IDE và hỗ trợ cho bo mạch Pico có trong thonny IDE. Bạn có thể tham khảo hướng dẫn bắt đầu với Thonny MicroPython IDE này:
Datasheet
Bạn có thể tham khảo datasheet Pico raspberry pi để khám phá thêm tải tại đây:
Trong các bài hướng dẫn sắp tới, chúng tôi sẽ bắt đầu viết chương trình đầu tiên cho bo điều khiển RPI Pico. Trong khi đó, bạn có thể kiểm tra các dự án khác được phát triển với Raspberry Pi Pico:
Giống như ESP32 và ESP8266, Raspberry Pi Pico có thể được lập trình bằng Micropython. Nhưng không giống như ESP32 và ESP8266, nó không có thiết bị ngoại vi WiFi, Bluetooth và BLE được tích hợp.
Do đó, để sử dụng bo mạch này cho các dự án IoT, chúng ta sẽ phải kết nối các module WiFi, Bluetooth và BLE bên ngoài. Nó là một sự lựa chọn tuyệt vời cho các ứng dụng chi phí thấp.
Nhưng việc bổ sung thêm WiFi, Bluetooth và BLE bên ngoài sẽ làm cho giá của nó cao hơn so với bo mạch ESP32. Đây là bo mạch phát triển đầu tiên trong chuỗi vi điều khiển Raspberry Pi. Có thể họ sẽ bổ sung nhiều ngoại vi được tích hợp hơn trong các phiên bản tiếp theo.