Pin SS có thể được buộc thấp nếu chỉ sử dụng một thiết bị SPI không?


8

Tôi đọc trực tuyến rằng để bắt đầu giao dịch SPI với thiết bị được hỗ trợ SPI, dòng SS (chọn nô lệ, còn gọi là chọn chip) phải được đặt ở mức thấp cho toàn bộ giao dịch sau đó được đưa lên cao ở cuối giao dịch. Nếu tôi tạo một mạch chỉ chứa một thiết bị SPI, tôi sẽ cần hạ lệnh gửi dòng SS sau đó nâng dòng ss mọi lúc hay tôi có thể buộc dòng ss thấp và gửi lệnh không giới hạn không? Thiết bị tôi đang sử dụng là chip âm thanh ISD1700 .


3
Nói chung là có, chân SS cho phép thiết bị nô lệ biết khi nào giao dịch bắt đầu và kết thúc. Không có nó, không có gì để đảm bảo nó vẫn đồng bộ. Nó có thể hoạt động nhưng nếu nó không đồng bộ, nó sẽ không lấy lại được.
Kevin White

4
@kevinWhite thực sự nhiều thiết bị SPI cần chuyển đổi SS đó để khởi động một máy trạng thái nội bộ. Bảng dữ liệu cho thiết bị cụ thể của bạn sẽ cho bạn câu trả lời, nhưng nếu bạn đã có nó, tại sao không thử?
akohlsmith

1
@akohlsmith - Tôi đồng ý, tôi đang nói rằng bạn KHÔNG cần SS không phải là bạn có thể thoát khỏi mà không có nó. Ngay cả những thiết bị không yêu cầu nó thực hiện các hoạt động nội bộ cũng có thể thoát khỏi sự đồng bộ với chủ. Nhà sản xuất duy nhất đã thấy rằng không nên sử dụng SS là Thiết bị analog cho một số thiết bị của họ, nơi họ có nhiều chức năng được gán cho các chân sao cho SS có thể không khả dụng. Tôi không thấy làm thế nào điều đó có thể đáng tin cậy và tôi đã nghe thấy những khiếu nại trong đó thiết bị yêu cầu thiết lập lại để đồng bộ hóa trở lại.
Kevin White

Tôi đồng ý với @akohlsmith. Và nếu bạn muốn trả lời câu hỏi tôi sẽ bỏ phiếu. Đây là lý lẽ của tôi: Tôi định kỳ liên lạc với một thiết bị qua SPI. Nhưng, có một tính năng điều khiển ngắt cũng cần SPI cho cùng một thiết bị. Sử dụng chân SS tôi sẽ có thể làm gián đoạn giao dịch SPI hiện tại mà không hoàn thành nó. Cho phép tôi truy cập vào thiết bị SPI nhanh hơn khi phục vụ ngắt.
st2000

Câu trả lời:


14

[@Kevin và @akohlsmith nên đăng bình luận của họ dưới dạng câu trả lời.
Điều này là để mở rộng về ý kiến ​​của họ. ]

SPI 1 không quy định hành vi chính xác của SS (dòng chọn nô lệ 2 ). Hành vi này phụ thuộc vào việc thực hiện từng thiết bị riêng lẻ. Tôi đã thấy các thiết bị có thể hoạt động với SS được xác định vĩnh viễn. Tôi cũng đã thấy các thiết bị yêu cầu các cạnh rơi và tăng trên SS.

Mặc dù không nói rõ rằng SS phải được bật,
hướng dẫn thiết kế (tr.31) nói rằng SS bắt đầu và kết thúc giao dịch SPI. Sẽ là khôn ngoan khi cho rằng SS phải được thay đổi để giao dịch SPI được thực hiện.

1 SPI là một tùy chỉnh, hơn là một tiêu chuẩn.
2 CS (chọn chip) là tên gọi khác của nô lệ chọn.


6
Đây là một câu trả lời rất tốt. Nhiều / Hầu hết các thiết bị đích SPI phụ thuộc hoàn toàn vào dòng SPI_CS để khởi tạo bên trong máy trạng thái bắt bit đến bộ phận để đồng bộ hóa giữa bộ khởi tạo và thiết bị đích. Có một vài thiết bị có thể đồng bộ hóa lại một cách đơn giản bằng cách nhận ra đồng bộ hóa hoặc opcode vỗ nhẹ khi đang di chuyển trên đường tín hiệu MOSI. Nhưng những người này chiếm thiểu số và bất kỳ ai thiết kế hệ thống sử dụng các thiết bị SPI đều được khuyến nghị cung cấp SPI_CS cho từng thiết bị đích ngay cả khi điều đó có nghĩa là sử dụng thêm mạch và / hoặc GPIO với thiết bị khởi tạo để cung cấp khả năng đó.
Michael Karas

Không cần thêm câu trả lời, câu trả lời của bạn nắm bắt những gì @kevinwhite và bản thân tôi đang nói. :-)
akohlsmith

5

Nó hoàn toàn phụ thuộc vào thiết bị nô lệ.

Nếu giao thức cho thiết bị nô lệ bao gồm một số loại khung, cho dù đó là với các gói có độ dài cố định, bắt đầu / dừng byte hoặc một tiêu đề chỉ định độ dài gói, thì thiết bị nô lệ có thể hoạt động mà không cần chọn chip. Tôi có một chip bộ nhớ flash SPI trong bo mạch tôi hiện đang làm việc có vẻ hoàn toàn hài lòng với hoặc không có chip chọn. Nó có thể được nối vĩnh viễn đến 0V (được bật) mà không gặp vấn đề gì.

Điều này thực sự gây ra cho chúng tôi một số vấn đề, bởi vì một nhà thầu đã thiết lập một số I / O cấp thấp bao gồm SPI, và chúng tôi (và họ!) Đã không nhận ra rằng họ sẽ không chọn chip hoạt động. Mãi cho đến khi tôi phải gia hạn công việc SPI của họ để thêm một thiết bị SPI khác trên cùng một chiếc xe buýt mà tôi thấy chúng tôi thực sự không có lựa chọn chip!

Ngược lại, nhiều thiết bị nô lệ cần chọn chip để đóng khung dữ liệu và gửi nhiều bit / byte hơn gói dự kiến ​​mà không giải phóng chip chọn ở cuối sẽ được xem là chuyển và từ chối không hợp lệ. Các bộ xử lý tín hiệu thường sẽ tải giá trị mới vào đầu ra trên chip chọn cạnh tăng. Các ADC tương tự thường sẽ sử dụng chuyển SPI để bắt đầu (và đôi khi là thời gian) quá trình chuyển đổi, vì vậy chúng cần chip chọn cạnh xuống làm trình kích hoạt của chúng.

Bảng dữ liệu của bạn không thực sự nói bất cứ điều gì về cách điều khiển con chip cụ thể của bạn qua SPI và tôi không đủ động lực để google nó. Bài tập còn lại cho người đọc ...;)


Tôi sẽ buộc SS ở mức thấp và cầu nguyện cho nó hoạt động vì bảng dữ liệu cho thiết bị tôi nhận được từ internet chỉ nói rằng (theo bảng định nghĩa pin trong biểu dữ liệu) SS được sử dụng để kích hoạt thiết bị. Nó cũng nói rằng nếu SS cao, thì các dòng SPI khác sẽ ở trạng thái trở kháng cao. ngón tay đan chéo.

@Mike Tôi phát hiện ra một số động lực sáng nay, vì vậy tôi đã googled "ISD1700". Hai liên kết đầu tiên là hai tệp PDF. Cái đầu tiên là bảng dữ liệu bạn liên kết đến; và cái thứ hai là hướng dẫn thiết kế cho biết chính xác cách lái chip. Hướng dẫn thiết kế cho biết (phần 10.2, trang 31): "Giao dịch SPI được bắt đầu trên cạnh rơi của pin SS ~." Vì vậy, không, bảng dữ liệu nói rằng bạn không thể tránh khỏi những gì bạn đang lên kế hoạch. Và tôi không muốn quá lén lút ở đây, nhưng nếu bạn có JFGI và đọc hai liên kết hàng đầu xuất hiện, bạn có thể đã trả lời câu hỏi của riêng mình.
Graham

3

Không biết bất cứ điều gì cụ thể về thiết bị nô lệ SPI, không, bạn không thể buộc SS ở mức thấp.

Nhiều thiết bị sử dụng cạnh hàng đầu của SS để đặt lại logic bên trong của chúng để bắt đầu giao dịch mới. Ví dụ, bộ nhớ có thể hiểu hai byte đầu tiên là địa chỉ, sau đó là byte tiếp theo dưới dạng dữ liệu. Một số ký ức không thực hiện ghi vật lý cho đến khi SS được xác nhận lại.

Đối với một số thiết bị có giao thức phù hợp, bạn có thể thoát khỏi nó. Tuy nhiên, nó sẽ không hoạt động với hầu hết các thiết bị ngoài kia.


Vài năm muộn về điều này. Và tôi ở đây vì tôi cũng đang tìm kiếm câu trả lời. Thông tin rất tốt mà bạn đã thêm Olin và thông tin tốt từ những người khác nữa. Tôi nghĩ vấn đề chủ yếu là do việc giải thích các từ 'chọn chip' hoặc 'chọn nô lệ' - mà nếu người ta buộc phải giả định điều gì đó, thì giả định đơn giản là kích hoạt thiết bị đó và tắt tất cả các thiết bị nô lệ khác có thể can thiệp vào các giao tiếp giữa nô lệ và chủ. Một "giả định" công bằng và hợp lý. Thật tuyệt khi chủ đề này được xóa ngay tại đây trong chủ đề này.
Kenny

Một câu hỏi tiếp theo từ chủ đề này có thể là ----- nếu pin chọn / pin kích hoạt chip không nên được kích hoạt vĩnh viễn, thì chính xác khi nào nên bật và tắt thiết bị nô lệ spi? Ví dụ: chúng ta có vô hiệu hóa thiết bị nô lệ sau khi hoàn thành mỗi lệnh được gửi cho nô lệ không?
Kenny
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.