Thêm hơn 2 nô lệ SPI


12

Như những gì tôi thấy trên sơ đồ, có 2 kênh dành cho nô lệ - CS0 và CS1. Có nghĩa là tôi chỉ có thể kết nối 2 chip, như MCP3008 hoặc một cái gì đó? Hoặc tôi có thể gắn thêm nô lệ cho 2 nô lệ kèm theo này.

Chương trình Raspberry có hỗ trợ hoặc bất cứ điều gì chung với sơ đồ kết nối nô lệ SPI này được lấy từ Wikipedia không? Có thể làm cho nó như thế này?

Nô lệ SPI


"Có thể làm cho nó như thế này?" -> Có vẻ như chính xác là như vậy, ngoại trừ Pi có CE0 và CE1 thay vì SS1, SS2, SS3. Các tuyến xe buýt SCLK, MOSI và MISO được chia sẻ giữa tất cả các thiết bị trong cả hai trường hợp.
goldilocks

Câu trả lời:


12

Nhiều cách.

Bạn có thể sắp xếp bit bang mà nô lệ chọn, nghĩa là kết nối tất cả các thiết bị với MISO / MOSI / SCLK được chia sẻ và CS riêng biệt. Chỉ cần đặt CS ở mức thấp cho thiết bị bạn muốn trước khi gọi trình điều khiển SPI. Trình điều khiển SPI sẽ cố gắng thiết lập CS nhưng sẽ không biết nó không được kết nối.

Pis với tiêu đề mở rộng 40 pin có một thiết bị SPI khác với 3 lựa chọn chip. Thư viện pigpio của tôi hỗ trợ thiết bị đó.

Bạn có thể bit phần mềm đập toàn bộ giao thức.

Bạn có thể thêm phần cứng bổ sung để chuyển dòng CS sang bất kỳ thiết bị nào bạn muốn.

Vân vân.

EDITED ĐỂ THÊM

Trình điều khiển Raspberry Pi Linux SPI "thích hợp" hiện đang được xem xét để cho phép các gpios tùy ý được sử dụng làm CS.

EDITED ĐẾN THÊM 2

Trình điều khiển SPI Linux hiện tại (spi_bcm2853) được cho là hỗ trợ GPIO tùy ý khi chọn chip. Xem / khởi động / lớp phủ / README.


1
"Cho phép các gpios tùy ý" theo ý riêng của mình và những gì người ta có thể mong đợi từ một hệ thống nhúng. Cảm ơn các đầu vào.
Ghanima

Joan, vui lòng giải thích cách sử dụng "một thiết bị SPI khác với 3 lựa chọn chip" với thư viện "pigpio" hoặc liên kết đến ví dụ mã. Điều này sẽ giúp trả lời câu hỏi. Cảm ơn
Alex

Xem abyz.co.uk/rpi/pigpio/cif.html#spiOpen . GPIO 16-21 được kết nối với SPI phụ trợ. Xem abyz.co.uk/rpi/pigpio/index.html#Type_3 . Ngoài ra, trình điều khiển SPI Linux hiện tại (spi_bcm2853) được cho là hỗ trợ GPIO tùy ý khi chọn chip. Xem / khởi động / lớp phủ / README.
joan

"Pis với tiêu đề mở rộng 40 pin có một thiết bị SPI khác với 3 chip được chọn" chỉ có 2 cs trên tiêu đề 40 pin

1
@meh Có 5 chip được chọn trên tiêu đề mở rộng 40 pin. Hai cho SPI chính và 3 cho SPI phụ trợ. Các tín hiệu SPI phụ trợ được hiển thị bằng chữ thường tại abyz.co.uk/rpi/pigpio/index.html#Type_3
joan

3

Bạn đúng rằng RaspberryPi chỉ cung cấp hai lựa chọn chip tại bus SPI của nó (xem tại đây ). Và tôi cho rằng các trình điều khiển SPI và giải pháp phần mềm dựa trên thực tế đó (mặc dù câu trả lời của @ joan cho thấy các thư viện khác nhau xử lý nó khác nhau và trình điều khiển chính thức sẽ cho phép các chân GPIO tùy ý được sử dụng làm lựa chọn chip trong tương lai).

Tuy nhiên, bạn cần lưu ý rằng việc chọn chip không gì khác hơn là đầu ra kỹ thuật số chuyên dụng của Pi. Do đó, bạn luôn có thể có số lượng chip lớn hơn nếu bạn sử dụng các chân GPIO. Tuy nhiên, trong trường hợp đó, phần mềm của bạn sẽ chịu trách nhiệm đặt các chân thích hợp để xử lý nô lệ SPI phù hợp.

Vì toàn bộ ý tưởng của các lựa chọn chip là chỉ chọn lẫn nhau một nô lệ duy nhất, bạn có thể sử dụng thêm một số mạch kỹ thuật số đơn giản để giảm số lượng chân GPIO "lãng phí" (nếu bạn cũng cần chúng cho các mục đích khác). Một cái gì đó giống như 74HC / HCT138, bộ giải mã / khử kênh 3 đến 8 dòng có thể được sử dụng để giải quyết 8 nô lệ thông qua 8 lựa chọn chip chỉ với 3 chân GPIO.

Đáng chú ý là hãy nhớ rằng các tuyến xe buýt SCLK và MOSI được chia sẻ giữa tất cả các nô lệ. Vì vậy, khi cắm nhiều nô lệ vào Pi, đảm bảo rằng quạt ra khỏi Pi không bị vượt quá tải (điện trở và điện dung của các chân đầu vào của các nô lệ) - mặc dù ngày nay vấn đề này ít hơn với điện dung thấp và điện trở cao của đầu vào kỹ thuật số.


1

Thực sự có một câu trả lời rất hay cho điều này bởi một kỹ sư RPi, PhilE, tại diễn đàn mâm xôi, xem ngày 28 tháng 9 năm 2015 . Về cơ bản, anh ta đưa ra một ví dụ về lớp phủ Cây thiết bị sử dụng khả năng với spi-bcm2835 để có bất kỳ GPIO miễn phí nào khi chọn chip.

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.