Kết thúc bus SPI và điện trở kéo lên


11

Bộ vi điều khiển của tôi (sê-ri ATMEL) cần giao tiếp với thiết bị nô lệ bằng giao thức SPI. Tôi đang thiết kế phần cứng. Tốc độ bus SPI tối đa là 1 MHz. Khoảng cách giữa chủ và nô lệ nhỏ hơn 50mm.

Câu 1) Tôi có cần thêm chấm dứt nối tiếp trên bus SPI để tránh phản xạ ở tốc độ SPI này (1MHz) không? Nếu vậy, tôi nên tính giá trị của nó như thế nào và tôi nên đặt điện trở kết thúc ở đâu - gần chủ hoặc gần nô lệ?

Câu 2) Tôi đã thấy các thiết kế tham chiếu khác trong đó đôi khi mọi người sử dụng điện trở kéo lên trên tất cả các tín hiệu SPI, đôi khi chỉ trên một vài tín hiệu (CS hoặc MISO) và đôi khi không có. Chúng ta có cần điện trở kéo lên trên tín hiệu SPI (vì cổng SPI là cấu hình đẩy-kéo) không? Các chân thời gian duy nhất sẽ nổi là cho đến khi vi điều khiển có được sức mạnh của nó và có thể đặt các chân làm đầu ra. Vậy tôi có nên sử dụng điện trở kéo lên hay điều gì sẽ xảy ra nếu tôi không sử dụng bất kỳ điện trở kéo nào trong thiết kế của mình?

Câu trả lời:


19
  1. Ở 1 MHz và 50 mm (2 inch), bạn không cần kết thúc. Bạn có tín hiệu kỹ thuật số trên tàu thông thường, và thậm chí không phải là tín hiệu rất nhanh.
  2. Bạn không cần pullups hoặc kéo xuống trên các dòng SPI. Khi được sử dụng, các dòng SPI luôn được điều khiển rõ ràng theo cả hai hướng. Tuy nhiên, có thể tốt khi đặt một pulldown (hoặc pullup) trên dòng MISO. Đó là bởi vì dòng này chỉ được điều khiển bởi một nô lệ khi dòng chọn nô lệ của nó được xác nhận. Khi xe buýt không được sử dụng, tất cả các dòng chọn nô lệ thường không được xác nhận, vì vậy MISO nổi. Giá trị dữ liệu tùy ý là không liên quan vì không có gì nhìn vào giá trị của nó trừ khi được chọn một nô lệ, nhưng điện áp trung gian trên dòng này có thể khiến máy thu trong bản gốc bị dòng điện quá mức hoặc có thể dao động. Tôi thường đặt một pulldown 100 kΩ trên MISO vì lý do này. Nó giữ cho dòng thấp vô hại khi không sử dụng. Bạn cũng có thể sử dụng pullup, miễn là tất cả các nô lệ vẫn hoạt động ngay cả khi không sử dụng.

2
Một lý do quan trọng để đặt pullup lên các chân CS / SS là để đảm bảo rằng tất cả các nô lệ vẫn được bỏ chọn khi chủ được đặt lại hoặc khởi động. Trong trường hợp đó, các chân của nó thường là hi-Z và do đó nổi, điều này có thể dẫn đến nhiều nô lệ được chọn và lái xe buýt MISO (dẫn đến ngắn mạch). Có lẽ đây sẽ là một bổ sung hữu ích cho câu trả lời này?
Matthijs Kooijman
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.