Site icon TAPIT

Chức năng nhập xuất tín hiệu số GPIO trên nRF52832 Bluetooth SoC

Khối nhập xuất tín hiệu số GPIO trên chip Bluetooth nRF52832 của hãng Nordic được tổ chức bởi 1 Port với 32 chân I/O có thể truy cập điều khiển độc lập. Hai hoạt động chính của khối này là đọc tín hiệu điện áp đặt vào bên ngoài một chân của chip (INPUT) và điều khiển cho chân của chip nối nguồn hoặc nối đất (OUTPUT). Bài viết này sẽ hướng dẫn các bạn tiếp cận những tính năng cơ bản trên dựa vào thư viện được xây dựng sẵn trong nRF52 SDK của  hãng Nordic và KeilC IDE. 

Đầu tiên, mình giới thiệu sơ qua một số đặc tính về điện áp của nRF52832 và các chân I/O mà các bạn cần nắm để giao tiếp với các thiết bị khác:

Về dòng điện thì các bạn xem ở bảng sau:

Để sử lập trình tính năng input/output thì chúng ta cần khai thác file thư viện nrf_gpio.h, File này các bạn có thể tìm thấy trong nRF52 SDK (….SDK\modules\nrfx\hal\)

I/ Khai báo INPUT/OUPUT

Để khai báo sử dụng 1 chân chúng ta sử dụng hàm nrf_gpio_cfg, hàm này được định nghĩa như sau:

Trong đó: 

Để đơn giản hơn, các bạn có thể sử dụng 2 hàm mặc định sau để khai báo input hoặc ouput, 2 hàm này đã được định nghĩa sẵn bên trong file nrf_gpio.h: 

II/ Chức năng INPUT

Sau khi đã cấu hình một chân với tính năng INPUT, để đọc mức điện áp đang đặt bên ngoài chân, chúng ta sử dụng hàm:

uint32_t nrf_gpio_pin_read(uint32_t pin_number)

Trong đó:

III/ Chức năng OUTPUT

Sau khi đã cấu hình 1 chân với chức năng OUTPUT, để điều khiển mức logic cho chân OUPUT đấy, chúng ta sử dụng hàm sau: 

void nrf_gpio_pin_write(uint32_t pin_number, uint32_t value)

Trong đó: 

Các bạn cũng có thể sử dụng lệnh để đảo giá trị logic của 1 chân.: void nrf_gpio_pin_toggle(uint32_t pin_number) 

Lưu ý: Bạn cũng có thể đọc 1 chân OUTPUT để kiểm tra giá trị lần cuối các bạn ghi vào là bao nhiêu. 

Bài viết hướng dẫn tiếp theo sẽ có nội dung về External Interrupt, các bạn cũng có thể theo dõi các bài viết khác trong chuỗi hướng dẫn về Bluetooth Low Energy, Bluetooth Mesh tại đây. Chúc các bạn thành công! 

Nhóm TAPIT R&D