Lúc chúng ta liên kết thân một vi điều khiển và tinh chỉnh với cùng một tuyệt những ngoại vi không giống, ví dụ như một cảm biến tốc độ, một LCD, tuyệt bất cứ module như thế nào không giống, liệu chúng ta tất cả thắc mắc về phương thức các Module liên kết cùng truyền dìm tài liệu với nhau thế nào giỏi bằng cách như thế nào không?

Sẽ gồm nhì phương pháp để MCU dàn xếp tài liệu cùng với các thứ bên ngoài, chính là truyền dữ liệu tiếp liền với tuy nhiên tuy nhiên. quý khách có thể tìm kiếm nắm rõ rộng vào nội dung bài viết trên trên đây.

Bạn đang xem: Giao tiếp spi là gì

Đối cùng với kênh truyền thông liền, một vài giao thức chúng ta thường sử dụng: SPI (Serial Peripheral Interface), I2C (Inter-Integrated Circuit) và UART (Universal Asynchronous Receiver/ Transmitter).

Bài viết này để giúp đỡ các bạn làm rõ về chuẩn tiếp xúc SPI và khuyên bảo thực hành trên vi điều khiển và tinh chỉnh STM32.

A. TỔNG QUAN VỀ GIAO TIẾPhường SPI.

Chuẩn tiếp xúc SPI được thương hiệu Motorola lời khuyên, Thành lập và hoạt động vào giữa những năm 1980 nhằm xử lý về nhu yếu về câu hỏi tiếp xúc thân các thứ với thông lượng nhanh hao hơn giao thức I2C hiện nay có.

SPI (Serial Peripheral Interface) – Hay còn được gọi là Four wire – Chuẩn giao tiếp 4 dây. Kênh truyền nối tiếp song công (full duplex – có 2 con đường truyền tài liệu cá biệt, một con đường truyền với một mặt đường dấn, được cho phép tài liệu truyền dìm theo 2 hướng cùng lúc).SPI là 1 trong những giao thức giao diện Master – Slave. Master là thứ tinh chỉnh (thường là vi điều khiển), còn Slave (hay là các cảm biến, screen LCD hoặc chip nhớ) sẽ thừa nhận lệnh tự Master.Một khối hệ thống SPI chỉ có một sản phẩm công nghệ Master, mà lại lại rất có thể bao gồm một hoặc những sản phẩm Slave.Khối hận SPI của trang bị Master sẽ kết nối với khối SPI của thiết bị Slave qua 4 chân tín hiệu:

*

MOSI (Master Output/Slave Input) – Master gửi tài liệu mang lại Slave sầu.

MISO (Master Input/Slave Output) – Slave gửi dữ liệu cho Master.

SCLK (Serial Clock) – xung duy trì nhịp Clock.

SS/CS (Slave sầu Select/Chip Select) – Master chọn lựa Slave để giao tiếp. Cụ thể vào trường đúng theo hệ thống tất cả một Master giao tiếp với khá nhiều Slave sầu, Master điều khiển bộc lộ nấc súc tích trên chân SS/CS của Slave sầu làm sao xuống đến mức LOW (nấc 0), tức thị Master sẽ tiếp xúc cùng với Slave sầu kia.

*

B. CƠ CHẾ HOẠT ĐỘNG.

*

Mỗi sản phẩm công nghệ Master cùng Slave đều phải có một tkhô cứng ghi dịch 8 bits (Shift Register), một bộ tạo ra xung nhịp (Cloông chồng Generator).

lúc Master truyền tài liệu, Master truyền rằng 8 bits dữ liệu vào thanh hao ghi dịch của nó, kế tiếp 8 bits tài liệu được truyền theo mặt đường biểu hiện MOSI sang máy Slave. Tương trường đoản cú lúc Slave truyền dữ liệu, các bits bên trên tkhô nóng ghi dịch của Slave sầu truyền cho Master thông qua mặt đường biểu hiện MISO.

Bằng giải pháp này, dữ liệu của nhị tkhô hanh ghi sẽ tiến hành điều đình với nhau. Việc phát âm cùng ghi tài liệu vào Slave ra mắt cùng một thời điểm cần tốc độ hội đàm tài liệu ra mắt siêu nkhô cứng. Do đó, giao thức SPI là một trong giao thức hết sức có công dụng.

C. ƯU NHƯỢC ĐIỂM CỦA CHUẨN GIAO TIẾP SPI.

Ưu điểm:

Dữ liệu được truyền thường xuyên cùng ko đứt quãng, vì chưng không có bit Start cùng bit Stop.Hệ thống định can dự đơn giản.Dây MOSI cùng MISO lẻ tẻ đề nghị có thể đồng thời thừa nhận cùng truyền dữ liệu.Tốc độ truyền dữ liệu nhanh hao và tiết kiệm ngân sách và chi phí năng lượng.

Nhược điểm:

Sử dụng các dây để liên kết với nước ngoài vi.Không bao gồm dấu hiệu phân biệt dữ liệu đã làm được truyền thành công.Không có hình thức kiểm tra lỗi (như bit chẵn lẻ của UART).Khoảng biện pháp những trang bị truyền thừa nhận bằng SPI khôn cùng nđính.

D. SPI TRONG STM32F4.

1. Sơ đồ vật khối hận SPI trong STM32F4

*
*

STM32F4 cung cấp 5 kăn năn SPI (SPI1, SPI2, SPI3, SPI4, SPI5) nhằm người dùng liên kết cùng với những ngoại vi giao tiếp bởi SPI.

Theo nhỏng kim chỉ nan, kăn năn SPI trên STM32F4 gồm:

4 chân nhằm liên kết cùng với những đồ vật phía bên ngoài MOSI, MISO, SCK và NSS.Thanh hao ghi dịch – Shift Register nhằm triển khai phxay dịch trong quy trình truyền và dìm dữ liệu giữa Master và Slave.Các tkhô nóng ghi SPI_CR1, SPI_CR2 và SPI_SR chất nhận được cấu hình và trạng thái.

2. Một số tkhô nóng ghi đặc trưng của khối hận SPI vào STM32F4.

2.1. SPI Control Register 1 (SPI_CR1)

*

Thanh ghi gồm những công dụng chính:

– Thiết lập, cấu hình tuyệt loại bỏ những chế độ nhấn tài liệu.

– Cấu hình size khung tàn liệu.

2.2. SPI status register (SPI_SR)

*

Thanh khô ghi tất cả tác dụng chính:

– Thông báo tâm trạng SPI tất cả sẽ giao tiếp hay là không.

– Cờ báo những lỗi xảy ra trong quá trình truyền nhấn tài liệu.

2.3. SPI data register (SPI_DR)

*

Thanh hao ghi dữ liệu 16 bits chia làm nhì bộ đệm: cỗ đệm chứa dữ liệu đã nhận được được và bộ đệm cất dữ liệu sẽ tiến hành truyền đi (Rx_Buffer).

E. THỰC HÀNH SPI TRÊN STM32F411 DISCOVERY

Bài toán: Sử dụng một Master truyền tài liệu mang lại Slave sầu. STM32F411 DISCOVERY bao gồm 5 kăn năn SPI, bọn họ đang sử dụng bộ SPI1 làm tính năng Master và cỗ SPI2 có tác dụng tính năng Slave.

Cách 1: Khởi hễ phần mềm STM32CubeIDE. Kích lựa chọn loại STM32F411VETx với chọn “Next”.

Xem thêm: "Lớp Bê Tông Lót Tiếng Anh Là Gì ? Bê Tông Lót Tiếng Anh Là Gì

Cách 2: Tại mục System bộ vi xử lý Core, chọn SYS và chọn Serial Wire nhằm cấu hình chân nạp code.

Cách 3: Cấu hình SPI1 (Master) ở mục Connectivity.

Cách 4: Cấu hình SPI2 (Slave) làm việc mục Connectivity.

Bước 5: Cấu hình dìm ngắt cho chân nhận tài liệu tại mục NVIC. Bài toán đòi hỏi Slave sầu (SPI2) dìm dữ liệu được truyền rằng từ bỏ Master (SPI1), bắt buộc bọn họ sẽ thông số kỹ thuật nhấn ngắt mang lại SPI2.

Bước 6: Tại mục System bộ vi xử lý Core, lựa chọn GPIO và cấu hình chân PA4 là chân CS (chân Output) để Master điều khiển lựa chọn vật dụng Slave vào trường đúng theo có nhiều Slave.

Bước 7: Sinc Code.

Cách 8: Kết nối dây thân Master cùng Slave sầu bên trên STM32F411 DISCOVERY

*

Cách 9: Lập trình bởi phần mềm STM32Cube IDE.

*

– Thêm tlỗi viện “string.h”.

– Knhị báo mảng Tx_Master chứa dữ liệu mà Master ý muốn truyền đi “Master2Slave ”.

– Khai báo mảng Rx_Slave sầu có giá trị khởi chế tạo ra bằng 0, nhằm lưu trữ 1 ký trường đoản cú tài liệu Lúc ngắt thừa nhận xảy ra tại Slave sầu.

– Khai báo mảng Rx_buffer_Slave nhằm hiển thị tài liệu nhưng Slave nhận thấy trường đoản cú Master.

*

– Tại hàm main(), trước hàm while(1), knhì báo vấn đề ngắt dìm bộc lộ bởi hàm:

HAL_SPI_Receive_IT(&hspi2, Rx_Slave, 1);

Với ý nghĩa các thông số:

+ &hspi2: SPI2 vẫn sử dụng để dìm tài liệu.

+ Rx_Slave: Mảng dấn dữ liệu.

+ 1 là số ký từ nhận sau những lần xẩy ra ngắt.

HAL_SPI_Transmit(&hspi1, Tx_Master, strlen(Tx_Master), 1000);

Với chân thành và ý nghĩa các thông số:

+ &hspi1: SPI1 đang thực hiện để truyền tài liệu.

+ Tx_Master: Mảng đựng dữ liệu sẽ được truyền rằng.

+ strlen(Tx_Master): Số ký từ của mảng cất dữ liệu.

+ 1000 là thời hạn hoàn thành Việc truyền tài liệu.

Các thông số bên trên các bạn sẽ đổi khác tùy theo mục tiêu của bạn viết cùng yên cầu của bài tân oán đưa ra.

– Call hàm ngắt nhận dữ liệu SPI:

*

– Trong STM32F411 DISCOVERY tất cả cho 5 cỗ SPI, bắt buộc trước tiên, ta bình chọn test bộc lộ ngắt xảy ra tất cả bắt buộc trên SPI2 không (Master truyền biểu lộ mang đến Slave sầu dẫn tới việc Slave sầu xẩy ra ngắt).

– hotline lại hàm ngắt dấn HAL_SPI_Receive_IT(&hspi2, Rx_Slave sầu, 1); nhằm liên tục dìm tài liệu. Khi ngắt nhấn xảy ra, chỉ phần tử trước tiên của mảng Rx_Slave đã nhận ra các ký kết từ bỏ liên tục. Mảng Rx_buffer_Slave gồm chức năng tàng trữ toàn cục dữ liệu nhận được.

– Lúc cảm nhận ký từ bỏ xong một chuỗi truyền, mảng Rx_buffer_Slave đã dìm những chuỗi tài liệu truyền tự thành phần thứ nhất.

Cách 10: Chọn Run > Debug As > STM32 MCU C/C++ Application để hấp thụ công tác với hiển thị hình ảnh Debug.

– Kích lựa chọn bảng Live sầu Expressions.

– Sau kia kích vào Add new expression, gõ vào tên thay đổi, mảng nhằm quan sát và theo dõi sự chuyển đổi quý giá vào quá trình Debug. Chúng ta vẫn bắt buộc theo dõi và quan sát mảng thừa nhận tài liệu của Slave, phải đã điền vào tên mảng Rx_buffer_Slave.

– Nhấn Resume (F8) nhằm chương trình tiến hành. quý khách hàng hoàn toàn có thể sử dụng Step Into lớn, Step Over, và Step Return để nhảy từng lệnh, nhẩy vào hay khiêu vũ ra từng hàm.

Bài viết liên quan

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *