Giao tiếp UART trên Chip Bluetooth nRF52832

Giao tiếp UART trên Chip Bluetooth nRF52832 hoạt động ở chế độ Full-Duplex với bộ truyền, nhận độc lập, hỗ trợ Hardware flow control, kiểm tra Parity và sử dụng 1 bit kết thúc. Mặc dù chỉ có 01 bộ UART nhưng bạn có thể cấu hình bất kỳ chân IO nào để thực hiện giao tiếp này. UART retarget printf cũng được cung cấp sẵn trong SKD mang đến sự tiện lợi người phát triển.

QUÁ TRÌNH TRUYỀN: 

Trình tự tryền của UART bắt đầu khi kích hoạt STARTTX task. Bytes truyền sẽ được ghi vào thanh ghi TXD, sau khi truyền thanh công thì UART sẽ tạo ra một sự kiện TXDRDY (txd ready) để byte tiếp theo có thể ghi vào thanh ghi TXD để truyền.

QUÁ TRÌNH NHẬN

Trình tự nhận của UART bắt đầu khi kích hoạt STARTRX task

Bộ nhận UART có thể thực hiện một chuỗi lưu trữ 6bytes dữ liệu đến theo kiểu FIFO trước khi dữ liệu đó bị ghi đè. Từ các bytes này trong FIFO(First in first out) sẽ được đọc thanh ghi RXD.  UART sẽ tạo ra một event RXDRDY mỗi khi một byte mới được chuyển đến thanh ghi RXD.

Một số thư viện và hàm để sử dụng UART được hỗ trợ bởi nRF52 SDK, các bạn tham khảo Example Project tại:  \Origin_SDK\examples\peripheral\uart\pca10040\blank\arm5_no_packs

1.Khai báo UART

Biến struct comm_params được sử dụng để khởi tạo các thông số cho UART, bao gồm thông tin chân TX, RX, RTS, CTS, PARITY, BAUDRATE. 

Các bạn nên sử dụng chuột phải vào các hàm, biến và Go To Definition of ‘…’ để tìm được định nghĩa của các hàm và biến đấy.  

2.Khởi tạo UART

Hàm khởi tạo APP_UART_FIFO_INIT();

Các thông số truyền vào size của mảng rx, tx, hàm callback khi có ngắt xảy ra, mức độ ưu tiên của ngắt UART

Định nghĩa kích cỡ bộ đệm truyền và nhận:

3. Các hàm truyền nhận dữ liệu: 

Hàm get:

Sử dụng để đọc dữ liệu: Dữ liệu đang có tại bộ đệm nhận UART sẽ được truyền vào p_byte.

Hàm put:

Sử dụng để truyền 1 ký tự đi. 

nRF52SDK đã có tích hợp sẵn UART retarget tại thư viện retarget.h nên chúng ta có thể sử dụng được hàm printf để truyền dữ liệu đi một cách tiện lợi.

 

Theo dõi chuỗi hướng dẫn về Bluetooth Peripheral, Bluetooth Low Energy, Bluetooth Mesh tại đây

Chúc các bạn thành công! 
Nhóm TAPIT R&D