[Hay] Hướng dẫn sử dụng Raspberry Pi Pico

0
720

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ướng dẫn sử dụng Raspberry Pi Pico 

Sơ đồ chân Raspberry Pi Pico

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

Sơ đồ chân Raspberry Pi Pico 

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. 

Ngoại vi Raspberry Pi Pico

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: 

Chân GPIO

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. 

Các chân ngắt GPIO

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:

  • Mức cao
  • Mức thấp
  • Cạnh tích cực (chuyển đổi từ mức logic thấp sang mức logic cao)
  • Cạnh âm (chuyển từ mức logic cao sang mức logic thấp)

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.

Các chân ADC của RPi Pico

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

Các chân I2C

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: 

  • Chế độ Master hoặc chế độ Slave (Địa chỉ lưu trữ mặc định = 0x055)
  • Có ba chế độ tốc độ như: Chuẩn (m 0 đến 100 Kb / s), Nhanh (nhỏ hơn hoặc bằng 400 Kb / s) và chế độ Fast Plus (s nhỏ hơn hoặc bằng 1000 Kb / s)
  • Có bộ đệm dữ liệu truyền và nhận 
  • Có thể được sử dụng ở chế độ ngắt và DMA

Các chân SPI

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: 

  • Giao thức SPI Motorola
  • Giao thức truyền dữ liệu nối tiếp TI
  • Giao thức truyền dữ liệu cho các thiết bị của hãng National Semiconductor.

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. 

Chân UART

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

Một số tính năng nổi bật của thiết bị ngoại vi UART là:

  • Tạo tốc độ Buad có thể lập trình được
  • Hỗ trợ giao tiếp không đồng bộ các bit tiêu chuẩn như bit start, stop và chẵn lẻ.
  • Điều khiển dòng dữ liệu nối tiếp trong phần cứng có thể lập trình được

Các chân PWM

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ác tính năng và thông số kỹ thuật của Raspberry Pi Pico

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

Lập trình Raspberry Pi Pico

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:

Những hạn chế của 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.

Tôi là một người làm việc trong lĩnh vực cơ khí, thiết bị công nghiệp....Blog là nơi tôi chia sẻ thông tin hữu ích đến các bạn đọc.
Subscribe
Notify of
0 Bình luận
Inline Feedbacks
View all comments