Công cụ tốt nhất để gỡ lỗi các mạch kỹ thuật số đơn giản?


10

Tôi là một nhà phát triển phần mềm chuyên nghiệp, đã quen với sự xa xỉ của các trình gỡ lỗi tích hợp. Trong một thời gian, tôi đã thử nghiệm với nền tảng Arduino. Tuy nhiên, tôi thấy rằng việc cố gắng giao tiếp với các thành phần như cảm biến nhiệt độ kỹ thuật số Dallas DS1820 giống như dò dẫm trong bóng tối.

Giả sử ngân sách lỏng lẻo khoảng 200 đô la trở lên, có những loại công cụ nào để giúp tôi hình dung những gì đang diễn ra? Tôi đã xem xét Công cụ liên kết MSO-19, nhưng thực lòng tôi không biết nhiều về sự khác biệt giữa máy hiện sóng và máy phân tích logic.

Làm thế nào để tôi biết rằng thiết bị tôi mua sẽ có khả năng đo các loại linh kiện (đơn giản) tôi đang sử dụng?

Câu trả lời:


9

về cơ bản, máy hiện sóng cung cấp cho bạn đọc điện áp được phân loại trên đường dây trong khi máy phân tích logic sẽ chỉ cho bạn biết nếu nó là 0 hay "cao" (giá trị của "cao" có thể có khả năng là 5V, 3.3V hoặc 1.8V tùy thuộc vào mạch của bạn). Bạn sẽ thường thấy rằng các máy phân tích logic có nhiều kênh hơn (các dòng có thể được đọc đồng thời) so với máy hiện sóng vì độ phân giải thấp hơn yêu cầu.

Đối với một thiết bị cụ thể, tôi đã nghe những điều tuyệt vời về Logic Saleae . Nó lấy mẫu ở 24 MHz; điều này có nghĩa là nó kiểm tra xem điện áp trên một đầu dò cụ thể cao hay thấp 24 triệu lần một giây. Phần mềm cũng có một số kiến ​​thức về các giao thức nhúng phổ biến để hỗ trợ gỡ lỗi. Tôi sẽ tưởng tượng rằng 24 MHz sẽ đủ để arduino hoạt động vì tốc độ xung nhịp tối đa của Atmegaxx8 là 20 MHz.


Sau nửa ngày nghiên cứu thêm, tôi có thể nói rằng Saleae Logic sẽ giúp tôi giải quyết 90% ý tưởng mà tôi có, cho đến bây giờ. Phần mềm trông bóng bẩy và trực quan cho một "người ngoài" phần cứng như tôi. Tôi có thể thấy một máy hiện sóng sẽ vô cùng hữu ích, nhưng đối với các loại dự án đơn giản, máy phân tích logic USB có vẻ như là một sự đánh đổi tốt.
Owen Thomas

Trong The soul of a new machineTracy Kidder nói (diễn giải) rằng cavemen đã sử dụng máy hiện sóng để xem tại sao ngọn lửa sẽ không cháy. :-)
stevenvh

9

đây chỉ là một bổ sung cho câu trả lời của penjuin vì nó không phù hợp với một nhận xét và câu trả lời của anh ta nói chung là chính xác. Chỉ muốn làm rõ một hàm ý trong câu trả lời của mình.

Hãy thật cẩn thận khi chọn một thiết bị đo dựa trên băng thông / tốc độ lấy mẫu của nó. Một thiết bị có tốc độ lấy mẫu 25 mhz không thể lấy mẫu chính xác tín hiệu đồng hồ kỹ thuật số 25 mhz, thậm chí không đóng.

Nếu bạn lấy tín hiệu đồng hồ kỹ thuật số ở mức 25 mhz và đưa tín hiệu vào phạm vi o với băng thông 25 mhz, bạn sẽ thấy một cái gì đó gần với sóng hình sin. Phạm vi có tốc độ lấy mẫu 25 mhz có thể sẽ hiển thị mức DC vì mỗi Nyquist, tín hiệu tần số cao nhất như vậy phạm vi có thể lấy mẫu sẽ là 12,5 mhz.

Một sóng vuông chứa tần số cơ bản là tốc độ xung nhịp của nó, ví dụ 25 mhz này. Nó cũng chứa các sóng hài lẻ lớn tạo ra hình vuông, để xem tín hiệu đồng hồ kỹ thuật số 25 MHz với độ chính xác, bạn sẽ không chỉ nhìn vào 25 MHz mà còn 75, 125, 175, 225, v.v. đến độ chính xác mong muốn của bạn hoặc lên đến tốc độ xoay của bộ thu phát.

Trong khi điều này hơi ít quan trọng đối với một bộ phân tích logic vẫn rất quan trọng. Bộ phân tích logic đang tìm kiếm 'cao' và 'thấp' ở trên hoặc dưới một ngưỡng nào đó. Nếu những gì nhìn thấy xuất hiện là một sóng hình sin, bạn sẽ thấy các trạng thái cao và thấp ngắn giả tạo và khoảng cách dài giả tạo giữa các bit. Điều này có thể phần nào phụ thuộc vào kiến ​​trúc của máy phân tích.

Điều này có thể làm cho việc chẩn đoán các vấn đề liên quan đến các chế độ truyền khác nhau là không thể. Chẳng hạn, SPI có 4 chế độ khác nhau dựa trên dữ liệu có giá trị ở các cạnh đồng hồ tăng hoặc giảm và cũng dựa trên độ phân cực dữ liệu (cao 1 hay 0?). Các giao thức truyền khác cũng có vấn đề này (ví dụ I2S và các định dạng âm thanh liên quan). Nếu bạn không thể xác định chính xác khi nào quá trình chuyển đổi cạnh diễn ra thì gần như không thể xác định xem xe buýt có hoạt động trong đặc điểm kỹ thuật hay không.

Nói chung, bạn cần băng thông / tốc độ lấy mẫu cao hơn nhiều so với tốc độ dữ liệu mục tiêu dự định của bạn. Nếu bạn muốn lấy mẫu bus I2C 40khz, máy phân tích logic có tốc độ lấy mẫu là 100 mhz là quá đủ. Nếu bạn cần lấy mẫu bus SPI 25 mhz, bạn cần phải có một phạm vi / bộ phân tích có băng thông cao hơn nhiều, khoảng 500 mhz nếu bạn cần độ chính xác thực, cũng như tốc độ lấy mẫu cho phép đo trong dải tần số đó.

Vì vậy, penjuin thiết bị được đề xuất với tốc độ lấy mẫu là 24 mhz chỉ có thể cung cấp phép đo chính xác các tín hiệu số nhỏ hơn ~ 2 mhz với tốc độ xoay đáng kể với tốc độ dữ liệu đó.


3
bạn hoàn toàn chính xác, điều này hoàn toàn trượt tâm trí của tôi. Để giúp minh họa hiệu ứng này hơn nữa, tôi đã đưa sóng vuông 1khz vào máy hiện sóng của mình và lấy một màn hình biến đổi Fourier kết quả (trục x là tần số cơ bản): i.imgur.com/lJvtD.png . Các sóng hài là các đỉnh lặp lại.
jeremy

1
@penjuin minh họa hoàn hảo. Chỉ cần làm rõ câu trả lời của tôi cho con nợ, penjuin của thiết bị được đề xuất rất có khả năng đối phó với ardunio, vì bạn có thể sẽ không bao giờ cần phải xử lý giao diện chạy ở tốc độ> 2mhz với loại thiết bị đó. Tôi chỉ muốn chắc chắn rằng anh ta đã không coi đó là quy tắc ngón tay cái và cuối cùng anh ta sẽ cắn anh ta nếu anh ta chuyển sang các thiết bị / giao diện tốc độ cao hơn sau này.
Đánh dấu

1
Một bộ phân tích logic với ngưỡng biến được cấu hình đúng thường cung cấp độ phân giải đủ để phân tích logic ở một vài yếu tố cao hơn tần số tín hiệu. Vấn đề tồn tại ở chỗ bộ điều khiển nhận tín hiệu sẽ chuyển sang logic 0 đối với mọi thứ dưới 1,2V (ví dụ) và logic 1 cho mọi thứ trên 2.2V (ví dụ) trong khi bộ phân tích logic có thể chuyển đổi ở mức 1.7V thời gian ít chính xác. Trong nhiều trường hợp, tốc độ mẫu nhanh hơn khoảng 2-3 lần trong một mạch kỹ thuật số là đủ để hiểu những gì đang xảy ra.
Wons Simons

@wouter simons cẩn thận không nhầm lẫn băng thông và tốc độ lấy mẫu (tôi thực sự đã làm sạch cách sử dụng từ của mình trong câu trả lời). Tốc độ lấy mẫu gấp 2 lần tần số tín hiệu của bạn là mức tối thiểu để phát hiện tín hiệu đó. Trong thực tế phạm vi và đặc biệt là máy phân tích thường chồng chéo rất nhiều. Ví dụ, phạm vi tek của tôi có băng thông 100 mhz nhưng mẫu ở mức 2,5ghz.
Đánh dấu

Câu trả lời chính xác. Tôi đã theo dõi bài viết của bạn tốt và có thể vẫn có thể đo lường những gì tôi muốn với một trong những thiết bị rẻ hơn ngoài kia. Tôi sẽ theo dõi những hạn chế khi tôi khám phá các thành phần phức tạp hơn.
Owen Thomas

8

Nếu bạn có kế hoạch làm việc chủ yếu trên các mạch kỹ thuật số, bộ phân tích logic là những gì bạn muốn. Máy hiện sóng xuất sắc trong việc hiển thị một số tín hiệu tương tự (ví dụ 2-4) rất chi tiết, trong khi các máy phân tích logic, vì chúng liên quan chủ yếu đến mức cao so với thấp thường có nhiều đầu vào lớn hơn.

Bạn chắc chắn có thể sử dụng phạm vi O làm máy phân tích logic, nhưng ưu điểm với cái sau là dễ dàng hơn để có được 'bức tranh lớn' bằng cách có thể xem hàng tá tín hiệu cùng một lúc.



2

Theo như các nhà phân tích logic, tôi đã viết một so sánh cơ bản về những cái tương đối rẻ tiền:

So sánh các máy phân tích logic dựa trên PC

Một điều cần lưu ý về tốc độ lấy mẫu, một nguyên tắc chung là bạn thường cần ít nhất gấp 4 lần tốc độ dữ liệu của mình để có được đọc chính xác, và lên đến 10 lần thì tốt hơn. Vì vậy, nếu bạn muốn theo dõi tín hiệu 8 MHz (mà bạn có thể dễ dàng tạo ra từ một AVR không tốn kém trong SPI chẳng hạn), bạn muốn có một bộ phân tích tốc độ lấy mẫu 32-80 MHz. Điều này chỉ áp dụng khi chụp ở chế độ 'không đồng bộ'. Nếu bạn đang chụp ở chế độ 'đồng bộ' (ví dụ: với tín hiệu đồng hồ), thì tốc độ lấy mẫu của bạn chỉ cần khớp với tốc độ của tín hiệu đồng hồ. Vì vậy, ví dụ trong trường hợp đó, lấy mẫu đồng bộ 8 MHz sẽ đủ để thu được tín hiệu SPI 8 MHz (vì nó có tín hiệu đồng hồ chuyên dụng).


1

Tôi sở hữu một MSO-19 và thích nó rất nhiều. Tôi ước nó có nhiều hơn một kênh tương tự, nhưng nó hoạt động như cả máy hiện sóng và máy phân tích logic. Về giá cả, tôi nghĩ đó là một thiết bị đẹp (và chạy tốt trong VMWare trên OS X). Kính viễn vọng đã giúp tôi thấy những gì thực sự xảy ra trong một phần của mạch và không chỉ cho bạn thấy trạng thái cao / thấp của một dòng kỹ thuật số, như một bộ phân tích logic. Đó là một vôn kế chính xác hơn (và đáp ứng nhanh hơn) so với đồng hồ vạn năng tiêu chuẩn của bạn. Tuy nhiên, sẽ thật tuyệt nếu nó có thể giải mã dữ liệu nối tiếp, tuy nhiên, thay vì chỉ I2C và SPI,


1

Câu trả lời này có thể không được sử dụng nhiều cho bạn khi sử dụng ardunio nhưng là một câu trả lời cho câu hỏi chung.

Tôi sử dụng các chức năng phân tích logic của pickit2 của tôi rất nhiều. Rõ ràng nó có nghĩa là để lập trình PIC nhưng nó cũng có chế độ phân tích logic 3 kênh mà tôi sử dụng mọi lúc để xem tín hiệu số. Tôi vẫn sử dụng nó cho dù tôi đang sử dụng Cortex-M3 cho các dự án hiện tại của mình. Rõ ràng nó là một công cụ cực kỳ nguyên thủy theo tiêu chuẩn của thiết bị phù hợp nhưng ngay cả như vậy tôi thấy nó vô cùng hữu ích

Tôi đã sử dụng nó để gỡ lỗi các mạch I2C và tín hiệu đầu ra TV, ví dụ như xem bài đăng của tôi ở đây


1

Điều này khá thú vị và thực sự rẻ: http://www.seeedstudio.com/depot/preorder-open-workbench-logic-sniffer-p-612.html?cPath=75

Nó có tỷ lệ lấy mẫu khá, và bạn có thể hỗ trợ một dự án CTNH mở tuyệt vời. Có vẻ như nó vẫn đang ở giai đoạn thử nghiệm, vì vậy nó có thể không phải là điều tuyệt vời nhất nếu bạn chỉ muốn cắm một cái gì đó vào và làm cho nó hoạt động.


Tôi mới mua cái này cách đây một tháng, vì tôi chủ yếu làm việc với netbook, tôi gặp vấn đề với kích thước màn hình máy tính của tôi để có thể nhấp vào nút "chụp", nhưng nếu bạn có máy tính xách tay hoặc máy tính để bàn có kích thước bình thường, bạn 'Sẽ ổn thôi. Tôi đã không sử dụng nó rộng rãi, nhưng tôi ít tôi thích, và giá cả cũng tốt!
onaclov2000

Tôi đang sử dụng LA này khá nhiều và vì đây là LA đầu tiên của tôi, tôi có thể sử dụng ít hơn 50% năng lượng / chức năng mà nó cung cấp. So sánh nhiều LA khác chi phí thấp khác, tôi thấy đó là một trong những LA đáng giá nhất. Phần mềm không tệ. Trong thực tế, tôi thấy nó là khá tốt cho mục đích của tôi. Nếu bạn muốn xem tôi đã sử dụng nó như thế nào, chỉ cần nhấp vào hồ sơ của tôi và xem các câu hỏi tôi đã hỏi.
icarus74
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.