Một số mối quan tâm thiết kế cho truyền thông SPI off board là gì?


8

Tổng quat:

Tôi đang liên lạc giữa 3 bảng pcb tùy chỉnh với dspic33 trên chúng bằng SPI. Tôi có một chủ và 2 nô lệ, nhưng tôi đang gửi cho cả hai nô lệ cùng một dữ liệu (và để họ chọn những gì cần chú ý).

Thiết lập phần cứng:

Hai nô lệ đã tích hợp sẵn bộ điều khiển động cơ BLDC và Master đang điều khiển các bộ điều khiển động cơ này qua SPI. Các dây được chạy khoảng 3 feet từ chủ đến từng nô lệ và các tiêu đề là điển hình .1 "thông qua các tiêu đề SAMTECH lỗ. Mỗi bộ điều khiển động cơ có bộ điều chỉnh 3,3 volt chạy điện tử DSPIC / LV. Tôi sử dụng một bộ điều khiển động cơ (hãy gọi anh ấy là A) để cấp nguồn cho DSPIC chính SPI. Đến bộ điều khiển động cơ khác (hãy gọi anh ấy là B), tôi chỉ chạy các đường SPI và nối đất từ ​​chủ. SPI clk đang chạy ở tốc độ 100KHz

Đến điểm (Cuối cùng):

Không có động cơ chạy, tất cả đều hoạt động tốt, tất cả dữ liệu đi qua như mong đợi cho cả hai nô lệ. Tuy nhiên, khi tôi khởi động động cơ, Bslave không còn nhận được dữ liệu chính xác. Anh ta hoặc chọn thêm đồng hồ hoặc thả chúng, tôi cho là làm cho tiếng ồn thêm. Trong mọi trường hợp, tổng kiểm tra của ông bắt đầu thất bại. Aslave hoạt động như một nhà vô địch không có vấn đề gì.

1) Bạn có mong đợi rằng tất cả các thiết bị này cần phải được chạy cùng một nguồn 3,3 volt không? Nếu vậy, bạn có thể thuyết phục tôi bằng cách nói về vòng lặp tự cảm dài hơn và ma thuật đen như vậy không.

2) Bạn có bất kỳ loại quy tắc nào về tốc độ tôi có thể mong đợi để có thể chạy SPI clk và thành công với thiết lập phần cứng như trên không?


Mô phỏng là cần thiết để ước tính tốc độ của đồng hồ sẽ có thể chạy. Giả sử bạn có các bảng hai lớp hoặc một lớp, một nguyên tắc tốt là định tuyến vết đất hoặc mặt phẳng đồng (trên lớp đối diện) bên dưới hoặc liền kề với các đường SPI để giảm tiếng ồn được ghép vào dấu vết.
Steinar

Câu trả lời:


5

Tôi đã chạy SPI (đồng hồ 2 MHz) khoảng 5m từ hộp này sang hộp khác và tôi không ngần ngại thiết kế đồng hồ và dữ liệu để được cân bằng đầu ra. Cáp (tùy chỉnh) giữa hai cũng được sử dụng cặp xoắn và màn hình trên cả dữ liệu và đồng hồ.

Tôi cũng đã gửi nguồn điện bị cô lập đến hộp từ xa thông qua bộ chuyển đổi dc-to-dc. Tôi đã không có đủ thời gian để hiểu sai về vấn đề này nên có thể giải pháp của tôi là quá mức nhưng hey, nó đã hoạt động. Lý do của tôi đằng sau quyết định này là tôi không muốn gai "tiêu dùng hiện tại" đi xuống màn hình của cặp xoắn. Các màn hình không được kết nối với mặt đất ở cuối gửi PC. Xử lý các tín hiệu kỹ thuật số như tín hiệu tương tự quý giá để có hiệu suất tốt nhất - luôn luôn chấm dứt màn hình của bạn ở đầu nhận và nếu bạn phải (vì bất kỳ lý do gì) chấm dứt miễn cưỡng (cũng như) ở cuối gửi.

Nó là để truyền 128 kênh tín hiệu tương tự tốc độ thấp đến hộp thoát ra từ PC. Tôi nghi ngờ rằng, nếu tôi cần tôi có thể vận hành nó ở xung nhịp 20 MHz.


Khi bạn nói "màn hình", bạn có nghĩa là "lá chắn" khi đề cập đến cáp tùy chỉnh?
JYelton

1
@JYelton ở Anh, nó được gọi là màn hình. Bạn đang ở quốc gia nào?
Andy aka

Tôi ở Mỹ. Một trong những người bạn thân nhất của tôi là người Anh, vì vậy chúng tôi thường có những cuộc thảo luận bất thường về lựa chọn từ ngữ. :) Một "màn hình" với tôi là màn hình hoặc màn hình, hoặc tấm vải lưới giữ ruồi ra khỏi nhà khi cửa sổ mở.
JYelton

@JYelton. Aha một tấm vải lưới mà giữ cho mọi thứ ra. Âm thanh như một màn hình đối với tôi LOL
Andy aka

Chọn làm câu trả lời vì đó là câu trả lời duy nhất trong đó cả 1) và 2) được giải quyết. Mặc dù, như nhiều người đề xuất, nếu tôi thiết kế lại bảng, có lẽ tôi sẽ chỉ thay đổi giao thức thay vì đi tín hiệu vi sai. Tôi tin rằng điều này sẽ làm việc mặc dù. Trong trường hợp này tôi chỉ sử dụng SPI vì nó đã có sẵn trên nguyên mẫu của tôi.
Matt

5

SPI không khác gì bất kỳ giao diện điện nào khác. Hãy chú ý đến các vấn đề toàn vẹn tín hiệu thông thường (che chắn, khu vực vòng lặp, trở kháng, chấm dứt tín hiệu, v.v.) và bạn có thể chạy nó một khoảng cách hợp lý. Khoảng cách hợp lý là gì, nó phụ thuộc vào những gì bạn đang làm với nó và mức độ bạn có thể kiểm soát các yếu tố khác nhau.

Bạn có thể chạy nó 3 feet? Chắc chắn rồi. Bạn có nên Vâng, có những thứ tốt hơn để sử dụng. Như những người khác đã chỉ ra, có RS-4xx có thể hoạt động tốt. Bạn cũng có thể chạy SPI, nhưng sử dụng tín hiệu vi sai qua cáp như RS-4xx. Điều này sẽ sử dụng nhiều dây hơn, nhưng đó là những đứt. Bạn cũng có thể thực hiện RS-485 bình thường, sử dụng UART và tương tự.

Cá nhân tôi đã chạy SPI trên 1 chân cáp, bên trong khung máy, với tốc độ lên tới 32 MHz mà không gặp vấn đề gì. Tôi cũng đã chạy I2C trên 4 feet ở 100 KHz trong môi trường EMI cao và SPI tốt hơn rất nhiều so với I2C-- vì vậy có thể thực hiện được. Nhưng nếu bạn không chú ý đến các chi tiết thì bạn có thể dễ dàng gặp vấn đề. Nhưng thành thật mà nói, bạn cần chú ý đến các chi tiết bất kể bạn sử dụng cái gì.


Nhiều giao diện như RS232 tương đối miễn nhiễm với những thứ như đổ chuông và quá mức, với điều kiện là mọi hiệu ứng như vậy do chuyển đổi dòng được giải quyết trong vòng nửa thời gian. Ngay cả khi một dòng không thể hỗ trợ tốc độ truyền cao, việc làm chậm tốc độ truyền sẽ giúp ích. Ngược lại, nếu những thứ như đổ chuông gây ra vấn đề với SPI ở bất kỳ tốc độ nào, việc làm chậm nó có thể không giúp ích gì trừ khi người ta có thể giảm độ dốc của chuyển đổi dòng.
supercat

Đây là một câu trả lời tốt, đặc biệt là số lượng hệ thống bạn đã thực hiện. Tôi nghĩ rằng tôi sẽ thử loạt điện trở ở phía trình điều khiển để xem nếu điều đó giúp. Tuy nhiên, tôi sợ rằng tiếng ồn đang gây ra thêm đồng hồ ... vì vậy trong trường hợp đó nó có thể không giúp ích gì.
Matt

5

Xem xét cẩn thận sơ đồ nối đất của bạn. Bảo vệ các dòng dữ liệu, nếu nó giúp, và nối đất đúng cách. Đừng chạy dữ liệu và đồng hồ trên cùng một cặp xoắn. Sử dụng cách ly điện nếu cần. Ngoài ra, không có quy tắc nào mà tôi biết.

SPI được thiết kế cho (1) giao tiếp tầm ngắn, thường là trong một PCB và (2) trong môi trường không có nhiều EMI. Có lẽ, các xe buýt duy nhất hoạt động kém hơn SPI khi có EMI là I 2 C và 1 dây. Có xe buýt, được thiết kế để liên lạc tầm xa với sự có mặt của EMI (RS-485, CAN, Ethernet).

Có thể mở rộng và tăng cường SPI. Đây là một ghi chú ứng dụng , trong đó hiển thị một bus SPI với các dòng vi sai.


Tôi sẽ cố gắng che chắn các dòng. Liên quan đến sự cô lập điện, khi tôi không kết nối các căn cứ, thiết bị nô lệ không bao giờ đăng ký bất kỳ đồng hồ nào được gửi bởi chủ.
Matt

1

Có một số cách để giảm thiểu ảnh hưởng của nhiễu lên các đường tín hiệu của bạn. Cách dễ nhất là định tuyến mặt phẳng đồng hoặc dấu vết đồng liền kề với dấu vết tín hiệu của bạn. Điều này giảm thiểu độ tự cảm của dấu vết và khu vực vòng lặp.

Ở tần số cao, các dòng trở lại muốn chạy một đường trở kháng nhỏ nhất liền kề với chính các đường tín hiệu. Tôi giả sử bạn có một điểm chung giữa các mạch của mình nhưng điều này có thể gây ra vấn đề cho tín hiệu tần số cao nếu điểm chung của bạn chỉ đơn giản là kết nối mặt đất "nguồn" giữa các mạch. Nó sẽ gây ra một vùng vòng lặp rất lớn cho các dòng tín hiệu có thể cho phép nhiều nhiễu gây ra do khớp nối từ tính đi lạc.

Nếu bạn có thể, hãy kết nối thêm một kết nối mặt đất giữa các căn cứ liền kề với các đường tín hiệu SPI ngoài việc giữ một mặt phẳng mặt đất bằng đồng hoặc dấu vết được định tuyến liền kề với các đường bên trong các bảng. Nó có thể tạo ra một thế giới khác biệt về mức độ nhạy cảm của mạch của bạn đối với các động cơ.


Tôi không hiểu cụm từ "giữa các căn cứ liền kề với các đường tín hiệu SPI". Cụ thể, từ liền kề không rõ ràng với tôi.
Matt
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.