เครื่องมือที่ดีที่สุดในการดีบักวงจรดิจิตอลอย่างง่าย?


10

ฉันเป็นนักพัฒนาซอฟต์แวร์มืออาชีพที่คุ้นเคยกับความฟุ่มเฟือยของ debuggers ในตัว ในขณะนี้ฉันได้ทำการทดลองกับแพลตฟอร์ม Arduino อย่างไรก็ตามฉันพบว่าการพยายามเชื่อมต่อกับส่วนประกอบต่างๆเช่นเซ็นเซอร์วัดอุณหภูมิดิจิตอลดัลลัส DS1820 นั้นคลำไปรอบ ๆ ในที่มืด

สมมติว่ามีงบประมาณไม่ถึง 200 เหรียญเครื่องมือประเภทใดที่จะช่วยให้ฉันนึกภาพว่าเกิดอะไรขึ้น ฉันได้ดูเครื่องมือเชื่อมโยง MSO-19 แล้ว แต่ฉันไม่รู้จริงๆเลยเกี่ยวกับความแตกต่างระหว่างออสซิลโลสโคปกับเครื่องวิเคราะห์เชิงตรรกะ

ฉันจะรู้ได้อย่างไรว่าอุปกรณ์ที่ฉันซื้อจะสามารถวัดประเภทของส่วนประกอบ (แบบง่าย) ที่ฉันใช้อยู่ได้

คำตอบ:


9

โดยหลักแล้วออสซิลโลสโคปจะให้การอ่านค่าแรงดันบนบรรทัดในขณะที่เครื่องวิเคราะห์ลอจิกจะบอกคุณว่ามันเป็น 0 หรือ "สูง" เท่านั้น (ค่าของ "สูง" อาจเป็น 5V, 3.3V หรือ 1.8V ขึ้นอยู่กับ วงจรของคุณ) คุณมักจะเห็นว่าเครื่องวิเคราะห์แบบลอจิกมีช่องสัญญาณ (เส้นที่อ่านได้พร้อมกัน) มากกว่าออสซิลโลสโคปเนื่องจากต้องการความละเอียดต่ำ

ในฐานะที่เป็นอุปกรณ์เฉพาะที่ผมเคยได้ยินสิ่งที่ดีเกี่ยวกับSaleae ลอจิก มันตัวอย่างที่ 24MHz นี่หมายความว่าจะตรวจสอบว่าแรงดันไฟฟ้าของโพรบนั้นสูงหรือต่ำ 24 ล้านครั้งต่อวินาทีหรือไม่ ซอฟต์แวร์ยังมีความรู้เกี่ยวกับโปรโตคอลฝังตัวทั่วไปเพื่อช่วยในการแก้ไขข้อบกพร่อง ฉันคิดว่า 24MHz จะเพียงพอสำหรับการทำงานของ Arduino เนื่องจากความเร็วสัญญาณนาฬิกาสูงสุดของ Atmegaxx8 คือ 20MHz


หลังจากครึ่งวันของการวิจัยเพิ่มเติมฉันสามารถพูดได้ว่า Saleae Logic ควรช่วยฉันด้วย 90% ของความคิดที่ฉันมีในตอนนี้ ซอฟต์แวร์ดูขัดและใช้งานง่ายสำหรับฮาร์ดแวร์ "คนนอก" เช่นตัวฉันเอง ฉันเห็นได้ว่าออสซิลโลสโคปจะมีประโยชน์อย่างมาก แต่สำหรับโครงการประเภทง่าย ๆ ตัววิเคราะห์ตรรกะ USB ดูเหมือนจะเป็นการแลกเปลี่ยนที่ดี
โอเว่นโทมัส

ในThe soul of a new machineเทรซี่คิดเดอร์พูดว่า (การถอดความ) มนุษย์ถ้ำใช้ออสซิลโลสโคปเพื่อดูว่าทำไมไฟไม่ไหม้ :-)
stevenvh

9

นี่เป็นเพียงส่วนเพิ่มเติมของคำตอบของเพ็ญจูนเนื่องจากมันไม่เหมาะสมในความคิดเห็นและคำตอบของเขาก็ถูกต้อง เพียงแค่ต้องการชี้แจงความหมายในคำตอบของเขา

ระมัดระวังในการเลือกอุปกรณ์การวัดตามอัตราแบนด์วิดท์ / การสุ่มตัวอย่าง อุปกรณ์ที่มีอัตราการสุ่มตัวอย่าง 25mhz ไม่สามารถสุ่มสัญญาณนาฬิกาดิจิตอล 25mhz อย่างแม่นยำไม่แม้แต่จะปิด

หากคุณใช้สัญญาณนาฬิกาดิจิตอลที่ 25mhz และป้อนลงในขอบเขต o ด้วยแบนด์วิดธ์ 25mhz คุณจะเห็นบางสิ่งที่ใกล้เคียงกับคลื่นไซน์ ขอบเขตที่มีอัตราการสุ่มตัวอย่าง 25 เมกะเฮิรตซ์น่าจะแสดงระดับ DC ตั้งแต่ต่อ Nyquist สัญญาณความถี่สูงสุดที่ขอบเขตตัวอย่างสามารถทำได้คือ 12.5mhz

คลื่นสี่เหลี่ยมประกอบด้วยความถี่พื้นฐานซึ่งเป็นอัตราสัญญาณนาฬิกาของมันสำหรับตัวอย่างนี้ 25mhz นอกจากนี้ยังมีฮาร์โมนิคคี่ขนาดใหญ่ที่ให้รูปทรงสี่เหลี่ยมเพื่อดูสัญญาณนาฬิกาดิจิตอล 25mhz ที่มีความแม่นยำคุณไม่เพียงต้องดูที่ 25mhz แต่ 75, 125, 175, 225 ฯลฯ คุณต้องไปไกลแค่ไหน ความถูกต้องที่คุณต้องการหรือสูงถึงอัตราฆ่าของตัวรับส่งสัญญาณ

ในขณะนี้มีความสำคัญน้อยกว่าเล็กน้อยสำหรับตัววิเคราะห์เชิงตรรกะยังคงมีความสำคัญมาก ตัววิเคราะห์ลอจิกกำลังมองหา 'สูง' และ 'ต่ำ' เหนือหรือภายใต้เกณฑ์บางอย่าง หากสิ่งที่เห็นเข้ามาเป็นคลื่นไซน์คุณจะเห็นสถานะสูงและต่ำที่สั้นและมีช่องว่างยาวระหว่างบิต สิ่งนี้อาจขึ้นอยู่กับสถาปัตยกรรมของเครื่องวิเคราะห์

สิ่งนี้สามารถทำให้ปัญหาการวินิจฉัยที่เกี่ยวข้องกับโหมดการส่งต่างๆเป็นไปไม่ได้ ตัวอย่างเช่น SPI มี 4 โหมดที่แตกต่างกันขึ้นอยู่กับข้อมูลที่ถูกต้องบนขอบนาฬิกาที่เพิ่มขึ้นหรือลดลงและบนขั้วข้อมูล (สูงถึง 1 หรือ 0?) โปรโตคอลการส่งอื่น ๆ ยังมีปัญหานี้ (เช่น I2S และรูปแบบเสียงที่เกี่ยวข้องเช่น) หากคุณไม่สามารถระบุได้อย่างถูกต้องเมื่อการเปลี่ยนขอบเกิดขึ้นเป็นไปไม่ได้เกือบที่จะตัดสินได้ว่าบัสนั้นทำหน้าที่ตามข้อกำหนด

โดยทั่วไปคุณต้องการอัตราแบนด์วิดท์ / การสุ่มตัวอย่างสูงกว่าอัตราข้อมูลเป้าหมายของคุณ หากคุณต้องการตัวอย่างบัส 40 กิโลเฮิร์ตซ์ I2C ตัววิเคราะห์เชิงตรรกะที่มีอัตราการสุ่มตัวอย่างที่ 100mhz นั้นเพียงพอแล้ว หากคุณต้องการตัวอย่างบัส SPI 25 เมกะเฮิรตซ์คุณจำเป็นต้องมีขอบเขต / ตัววิเคราะห์ที่มีแบนด์วิดท์ที่สูงกว่าสิ่งที่อยู่ใกล้ 500mhz ถ้าคุณต้องการความแม่นยำจริงเช่นเดียวกับอัตราการสุ่มตัวอย่างที่ช่วยให้การวัดในช่วงความถี่นั้น

ดังนั้นอุปกรณ์ penjuin ที่แนะนำด้วยอัตราการสุ่มตัวอย่างที่ 24mhz สามารถให้การวัดที่แม่นยำของสัญญาณดิจิตอลที่น้อยกว่า ~ 2mhz ด้วยอัตราการฆ่าที่เห็นได้ว่าอัตราข้อมูลนั้น


3
คุณถูกต้องอย่างแท้จริงนี่ทำให้จิตใจฉันสมบูรณ์ เพื่อช่วยในการแสดงให้เห็นถึงผลกระทบนี้ต่อไปฉันอาหาร 1kHz คลื่นสี่เหลี่ยมเข้าสโคปของฉันและเอาการถ่ายโอนข้อมูลของหน้าจอที่เกิดฟูเรียร์ (แกน x เป็นความถี่โดยทั่วไป): i.imgur.com/lJvtD.png เสียงประสานเป็นยอดที่ซ้ำกัน
jeremy

1
@penjuin ภาพประกอบที่สมบูรณ์แบบ เพียงชี้แจงคำตอบของฉันสำหรับนกเค้าแมวอุปกรณ์ penjuin ที่แนะนำนั้นน่าจะมีความสามารถในการรับมือกับ ardunio มากเนื่องจากคุณอาจไม่จำเป็นต้องจัดการกับอินเทอร์เฟซที่ทำงานที่> 2mhz ด้วยอุปกรณ์ประเภทนั้น ฉันแค่อยากจะทำให้แน่ใจว่าเขาไม่ได้ใช้มันเป็นกฎง่ายๆและให้มันกัดเขาถ้าเขาย้ายไปยังอุปกรณ์ / อินเตอร์เฟสความเร็วสูงในภายหลัง
ทำเครื่องหมาย

1
ตัววิเคราะห์เชิงตรรกะที่มีขีด จำกัด ตัวแปรที่กำหนดไว้อย่างถูกต้องมักจะให้ความละเอียดเพียงพอสำหรับการวิเคราะห์ตรรกะที่ปัจจัยเพียงไม่กี่สูงกว่าความถี่สัญญาณ ปัญหามีอยู่ว่าคอนโทรลเลอร์ที่รับสัญญาณจะเปลี่ยนเป็นศูนย์ตรรกะสำหรับสิ่งใดก็ตามที่ต่ำกว่า 1.2V (ตัวอย่าง) และตรรกะ 1 สำหรับสิ่งใด ๆ ที่สูงกว่า 2.2V (ตัวอย่าง) ในขณะที่ตัววิเคราะห์ลอจิกอาจสลับไปที่ 1.7V เวลาที่แม่นยำน้อยลง ในหลายกรณีอัตราตัวอย่างเร็วกว่าประมาณ 2-3 เท่าในวงจรดิจิตอลก็เพียงพอที่จะเข้าใจสิ่งที่เกิดขึ้น
Wouter Simons

@outer simons ระวังอย่าสับสนแบนด์วิดท์และอัตราการสุ่มตัวอย่าง (ฉันจริง ๆ แล้วล้างการใช้คำในคำตอบด้วย) อัตราการสุ่มตัวอย่างที่ 2x ความถี่ของสัญญาณของคุณเป็นค่าต่ำสุดเปลือยในการตรวจจับสัญญาณนั้น ในการปฏิบัติขอบเขตและโดยเฉพาะอย่างยิ่งการวิเคราะห์มักจะมากเกินไป ตัวอย่างเช่นขอบเขตของฉันมีแบนด์วิดท์ 100mhz แต่ตัวอย่างที่ 2.5 กิกะเฮิร์ตซ์
Mark

คำตอบที่ดี ฉันติดตามโพสต์ของคุณได้ดีและอาจยังสามารถวัดสิ่งที่ฉันต้องการด้วยหนึ่งในอุปกรณ์ราคาถูกลง ฉันจะจับตาดูข้อ จำกัด ต่างๆขณะที่สำรวจส่วนประกอบที่ซับซ้อนมากขึ้น
โอเว่นโทมัส

8

หากคุณวางแผนที่จะทำงานกับวงจรดิจิตอลเป็นหลักตัววิเคราะห์เชิงตรรกะคือสิ่งที่คุณต้องการ ออสซิลโลสโคปมีความสามารถในการแสดงสัญญาณอะนาล็อกได้ค่อนข้างน้อย (เช่น 2-4) โดยละเอียดในขณะที่เครื่องวิเคราะห์แบบลอจิกเนื่องจากพวกมันเกี่ยวข้องกับ high-vs-low โดยทั่วไปจะมีอินพุตที่มากขึ้น

แน่นอนคุณสามารถใช้ O-scope เป็นเครื่องวิเคราะห์เชิงตรรกะ แต่ข้อดีของข้อหลังคือการได้รับ 'ภาพใหญ่' ได้ง่ายขึ้นโดยสามารถดูสัญญาณได้หลายสิบสัญญาณพร้อมกัน



2

เท่าที่การวิเคราะห์เชิงตรรกะดำเนินไปฉันได้เขียนการเปรียบเทียบพื้นฐาน (ที่ค่อนข้าง) กับสิ่งที่ไม่แพง:

การเปรียบเทียบเครื่องวิเคราะห์เชิงตรรกะบนพีซี

สิ่งหนึ่งที่ควรทราบเกี่ยวกับความเร็วในการสุ่มตัวอย่างกฎทั่วไปคือคุณต้องการอัตราการส่งข้อมูลอย่างน้อย 4x เพื่อให้ได้การอ่านที่แม่นยำและสูงสุดถึง 10 เท่าจะดีกว่า ดังนั้นหากคุณต้องการตรวจสอบสัญญาณ 8MHz (ซึ่งคุณสามารถสร้างจาก AVR ที่ราคาไม่แพงใน SPI ได้) คุณต้องการเครื่องวิเคราะห์อัตราการสุ่มตัวอย่าง 32-80MHz ใช้ได้เฉพาะเมื่อถ่ายในโหมด 'async' หากคุณจับภาพในโหมด 'ซิงโครนัส' (เช่นกับสัญญาณนาฬิกา) อัตราการสุ่มตัวอย่างของคุณจะต้องตรงกับอัตราสัญญาณนาฬิกาเท่านั้น ตัวอย่างเช่นในกรณีนี้การสุ่มตัวอย่างแบบซิงโครนัส 8MHz จะเพียงพอที่จะจับสัญญาณ 8MHz SPI (เนื่องจากมีสัญญาณนาฬิกาเฉพาะ)


1

ฉันเป็นเจ้าของ MSO-19 และชอบมันมาก ฉันหวังว่ามันจะมีช่องสัญญาณอนาล็อกมากกว่าหนึ่งช่อง แต่มันทำหน้าที่เป็นทั้งออสซิลโลสโคปและเครื่องวิเคราะห์ตรรกะ สำหรับราคานี้ฉันคิดว่ามันเป็นอุปกรณ์ที่ดี (และทำงานได้ดีใน VMWare บน OS X) โอสโคปช่วยให้ฉันเห็นสิ่งที่เกิดขึ้นจริงในส่วนหนึ่งของวงจรและไม่ได้แสดงให้คุณเห็นเพียงแค่สถานะสูง / ต่ำของสายดิจิตอลเช่นเดียวกับตัววิเคราะห์เชิงตรรกะ มันเป็นโวลต์มิเตอร์ที่แม่นยำ (และตอบสนองเร็วกว่า) มากกว่ามัลติมิเตอร์มาตรฐานของคุณ มันจะดีจริงๆถ้ามันสามารถถอดรหัสข้อมูลอนุกรมได้อย่างไรแทนที่จะเป็นแค่ I2C และ SPI ...


1

คำตอบนี้อาจไม่ค่อยมีประโยชน์สำหรับคุณในการใช้ ardunio แต่เป็นคำตอบสำหรับคำถามทั่วไป

ฉันใช้ฟังก์ชันลอจิกตัววิเคราะห์ของ pickit2 ของฉันอย่างมาก เห็นได้ชัดว่ามันมีไว้สำหรับการเขียนโปรแกรม PIC แต่มันก็มีโหมดตัววิเคราะห์ลอจิก 3 ช่องทางซึ่งฉันใช้ตลอดเวลาเพื่อดูสัญญาณดิจิตอล ฉันยังคงใช้มันแม้ว่าจะใช้ Cortex-M3 สำหรับโครงการปัจจุบันของฉัน เห็นได้ชัดว่ามันเป็นเครื่องมือดั้งเดิมที่มีมาตรฐานของเกียร์ที่เหมาะสม แต่ถึงอย่างนั้นฉันก็พบว่ามันมีประโยชน์อย่างเหลือเชื่อ

ฉันใช้เพื่อแก้ไขข้อบกพร่องวงจร I2C และสัญญาณทีวีเช่นกันเช่นดูโพสต์ของฉันที่นี่


1

นี่มันเท่ห์และราคาถูกจริงๆ: http://www.seeedstudio.com/depot/preorder-open-workbench-logic-sniffer-p-612.html?cPath=75

มีอัตราการสุ่มตัวอย่างที่ดีและคุณสามารถรองรับโครงการเปิด HW ที่ยอดเยี่ยม ดูเหมือนว่ามันยังอยู่ในช่วงเบต้าดังนั้นมันอาจไม่ใช่สิ่งที่ยิ่งใหญ่ที่สุดหากคุณเพียงแค่เสียบปลั๊กบางอย่างและใช้งานได้


ฉันเพิ่งซื้อมาเมื่อเดือนที่แล้วเนื่องจากฉันทำงานกับเน็ตบุ๊กเป็นหลักฉันมีปัญหาเกี่ยวกับขนาดหน้าจอของคอมพิวเตอร์ของฉันเพื่อให้สามารถคลิกปุ่ม "จับภาพ" แต่ถ้าคุณมีแล็ปท็อปหรือคอมพิวเตอร์ตั้งโต๊ะขนาดปกติ จะไม่เป็นไร ฉันไม่ได้ใช้อย่างกว้างขวาง แต่ฉันก็ชอบฉันและราคาก็ดีด้วย!
onaclov2000

ฉันใช้ LA นี้อยู่เล็กน้อยและเนื่องจากนี่เป็น LA แรกของฉันฉันอาจใช้พลังงาน / ฟังก์ชันการทำงานที่น้อยกว่า 50% ที่มีให้ เมื่อเปรียบเทียบกับ LA ต้นทุนต่ำอื่น ๆ ฉันพบว่ามันเป็นหนึ่งใน LA ที่คุ้มค่าที่สุด ซอฟต์แวร์ไม่เลว ในความเป็นจริงฉันพบว่ามันค่อนข้างดีสำหรับวัตถุประสงค์ของฉัน หากคุณต้องการดูว่าฉันใช้มันอย่างไรเพียงแค่คลิกที่โปรไฟล์ของฉันและดูคำถามที่ฉันถาม
icarus74
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.