ในบทความนี้เราจะดูลักษณะและการออกแบบของเครื่องวิเคราะห์ลอจิกหลายช่องสัญญาณราคาถูกและเรียบง่ายสำหรับนักวิทยุสมัครเล่นและกึ่งมืออาชีพ ฮาร์ดแวร์ของอุปกรณ์เป็นโมดูลที่เชื่อมต่อกับคอมพิวเตอร์ส่วนบุคคลหรือแล็ปท็อป ผ่านแอปพลิเคชันซอฟต์แวร์ที่ติดตั้งบนคอมพิวเตอร์ การควบคุมอุปกรณ์และการแสดงข้อมูลที่ส่งทั้งหมดจะดำเนินการ

ลักษณะสำคัญของอุปกรณ์:

  • มากถึง 32 ช่องอินพุต;
  • หน่วยความจำ 128 KB ต่อช่อง;
  • ความถี่สุ่มตัวอย่างสูงถึง 100 MHz;
  • อินพุตนาฬิกาภายนอก
  • อินพุตทั้งหมดเข้ากันได้กับลอจิก 3.3 V และ 5 V;
  • ขนาดบัฟเฟอร์ prefetch/postfetch ที่กำหนดค่าได้คือผลคูณของ 8 KB;
  • เครื่องกำเนิดสัญญาณนาฬิกาภายใน 16 บิต
  • โหมดการซิงโครไนซ์ภายในหลายโหมด
  • ความล่าช้าในการซิงค์ที่ตั้งโปรแกรมได้
  • ตัวนับเหตุการณ์การซิงโครไนซ์ที่ตั้งโปรแกรมได้
  • อินพุตการซิงโครไนซ์ภายนอก
  • การสื่อสารกับพีซีผ่าน LPT (โหมด EPP) หรืออินเทอร์เฟซ USB
  • แอปพลิเคชันพีซีหลายเวอร์ชันสำหรับระบบปฏิบัติการต่างๆ

องค์ประกอบหลักของเครื่องวิเคราะห์ลอจิกคือ FPGA ซึ่งผลิตโดยบริษัท ซึ่งทำหน้าที่หลักทั้งหมด แผนผังของอุปกรณ์แสดงในรูปที่ 1

Oscillator IC4 (IC6) ซึ่งยืมมาจากมาเธอร์บอร์ดคอมพิวเตอร์เก่า ถูกใช้เป็นแหล่งสัญญาณนาฬิกาสำหรับ FPGA แม้ว่าออสซิลเลเตอร์ได้รับการออกแบบให้ทำงานที่แรงดันไฟฟ้า 5 V แต่ก็ไม่พบปัญหาใด ๆ ในการทำงานของอุปกรณ์เมื่อขับเคลื่อนด้วยแรงดันไฟฟ้า 3.3 V

ชิป RAM ความเร็วสูงภายนอกใช้เพื่อจัดเก็บตัวอย่าง

แหล่งจ่ายไฟภายนอกที่มีแรงดันไฟฟ้าเอาต์พุตสูงถึง 15 V ใช้ในการจ่ายไฟให้กับอุปกรณ์ FPGA และ RAM มีแรงดันไฟฟ้า 3.3 V ดังนั้นจึงติดตั้งตัวควบคุมแรงดันไฟฟ้า 3.3 V ของซีรีส์ LD1117DT33

ตัวเชื่อมต่อพอร์ตขนาน K7 อยู่บนบอร์ดวิเคราะห์ตรรกะและเชื่อมต่อโดยตรงกับ FPGA แผงวงจรของเครื่องวิเคราะห์ลอจิกเป็นแบบสองด้าน โดยใช้ส่วนประกอบที่ยึดบนพื้นผิวและส่วนประกอบตะกั่วทั่วไป มุมมองของแผงวงจรพิมพ์แสดงในรูปที่ 2

ความคิดเห็นแทนที่จะเชื่อมต่อพิน 40 (Vss) ของชิป SRAM พิน 39 ของชิปนี้เชื่อมต่อกับกราวด์ วิธีแก้ไข: เชื่อมต่อพิน 39 และ 40 เข้าด้วยกันบน PCB (ไม่ได้ใช้พิน 39 ในชิป SRAM)

ในการเชื่อมต่อกับคอมพิวเตอร์ส่วนบุคคลผ่าน USB คุณต้องใช้อะแดปเตอร์พิเศษซึ่งมีแผนภาพแสดงในรูปที่ 3

อะแดปเตอร์อินเทอร์เฟซ USB สำหรับเครื่องวิเคราะห์ลอจิกประกอบอยู่บนชิปซีรีส์ FT2232C ที่ผลิตโดย FTDI วงจรไมโครนี้รวมการทำงานของวงจรไมโครสองชุด FT232BM และ FT245BM ที่แยกจากกัน มีช่อง I/O สองช่องที่กำหนดค่าแยกกัน ประเด็นหลักของการกำหนดค่า FT2232C เพื่อใช้เป็นส่วนหนึ่งของอุปกรณ์คือแหล่งจ่ายไฟจากอินเทอร์เฟซ USB และโหมดการจำลองบัสไมโครคอนโทรลเลอร์ (โหมดการจำลองบัสโฮสต์ MCU) โหมดนี้ถูกแปลงเป็นโปรโตคอล EPP โดยใช้มัลติเพล็กเซอร์ IC3 74HCT4053D เนื่องจากการถอดรหัสโดยตรงของสัญญาณ /DST, /AST และ RD/WR อาจทำให้เกิดข้อขัดแย้งด้านเวลา จึงมีการใช้สัญญาณ A8 เพิ่มเติม ซึ่งใช้เป็นสัญญาณ RD/WR (อ่าน/เขียน) ในระหว่างช่วงเวลาของการส่งข้อมูลผ่านโปรโตคอล EPP .

ตัวเชื่อมต่อ JTAG (CON2) ใช้เพื่อกำหนดค่า FPGA ซึ่งใช้สำหรับการพัฒนาในอนาคต ในขณะนี้ ไม่ได้ใช้อินเทอร์เฟซนี้

EEPROM (IC2) ซีรีส์ 93LC56 จัดเก็บข้อมูลการกำหนดค่าสำหรับ FT2232C และจำเป็นสำหรับอินเทอร์เฟซที่ตั้งโปรแกรมได้เพื่อให้ทำงานได้อย่างถูกต้อง ในการตั้งโปรแกรมชิปนี้ จะใช้ยูทิลิตี้ FT_Prog (ก่อนหน้านี้เรียกว่า MProg) ยูทิลิตี้นี้และไดรเวอร์ FT2232C พร้อมให้ดาวน์โหลดบนเว็บไซต์ FTDI

แผงวงจรพิมพ์ของอะแดปเตอร์ได้รับการออกแบบด้านเดียวซึ่งช่วยให้การผลิตง่ายขึ้น

นอกจากนี้ยังมีอะแดปเตอร์อินเทอร์เฟซ USB เวอร์ชัน B 1.0 (รูปที่ 5) เวอร์ชันนี้มีความโดดเด่นด้วยการไม่มีตัวเชื่อมต่อ JTAG และแผงวงจรพิมพ์ซึ่งได้รับการออกแบบมาให้ติดตั้งไว้ในตัวตัวเชื่อมต่อ CANNON 25 ลักษณะของอะแดปเตอร์ที่ประกอบจะแสดงในรูปที่ 6

ก) ข)
รูปที่ 6. ลักษณะที่ปรากฏของอะแดปเตอร์อินเทอร์เฟซ USB เวอร์ชัน A 1.1 (a) และเวอร์ชัน B 1.0 (b)

นอกจากนี้ยังมีวงจรวิเคราะห์ลอจิกอีกเวอร์ชันหนึ่ง (รูปที่ 7) ซึ่งมีการรวมอินเทอร์เฟซ USB และ LPT ไว้แล้ว ผู้เขียนตัวเลือกนี้คือ Bob Grieb และเมื่อพัฒนาวงจรจะใช้สภาพแวดล้อม TinyCAD แผงวงจรพิมพ์ได้รับการพัฒนาในตัวแก้ไข FreePCB

เครื่องวิเคราะห์ลอจิกเป็นตัวช่วยที่ขาดไม่ได้ในการดีบักวงจรดิจิทัล มาดูเทคนิคพื้นฐานในการทำงานกับ Saleae Logic Analyzer และแอนะล็อกภาษาจีน

ในการทำงานเราจะต้อง:

  • สายเชื่อมต่อ (แนะนำชุดนี้);
  • เขียงหั่นขนม

1 ข้อมูลจำเพาะของตัววิเคราะห์ลอจิกเครื่องวิเคราะห์ตรรกะ Saleae

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

ตารางนี้แสดงรายการพารามิเตอร์หลักของตัววิเคราะห์ลอจิก ซึ่งเป็นสำเนาภาษาจีนของฉันของเครื่องวิเคราะห์ของบริษัท สาลี.

2 การติดตั้งไดรเวอร์สำหรับเครื่องวิเคราะห์ตรรกะ Saleae

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

หากคุณมีสำเนาของบริษัทอื่น เช่น USBee AX Pro ที่มีความน่าจะเป็นสูง ไดรเวอร์จากผู้ผลิตเครื่องวิเคราะห์ดั้งเดิมก็จะเหมาะกับมันเช่นกัน

3 ตัวอย่างงานด้วยเครื่องวิเคราะห์ลอจิก

สำหรับการทดลองแรก ลองใช้ตัวแปลง USB-UART บนชิป FTD1232 มาเชื่อมต่อเครื่องวิเคราะห์เข้ากับพอร์ต USB เราเชื่อมต่อพินของช่อง 1 ถึง 6 เข้ากับพินของตัวแปลง USB-UART โดยทั่วไปแล้ว เราสนใจเพียงสองบรรทัดเท่านั้น - Rx และ Tx; เราสามารถทำได้โดยใช้เพียงสองบรรทัดเท่านั้น ตัวแปลงจะถูกระบุในระบบเป็นพอร์ต COM มาเปิดตัวเทอร์มินัลใด ๆ (ตัวอย่างเช่นนี่เป็นโปรแกรมที่ดีสำหรับการทำงานกับพอร์ต COM) และเชื่อมต่อกับพอร์ต


การเชื่อมต่อตัวแปลง USB-UART บนชิป FTD1232 เข้ากับเครื่องวิเคราะห์ลอจิก

เปิดโปรแกรม ซาเลลอจิก- หากติดตั้งไดรเวอร์สำหรับเครื่องวิเคราะห์อย่างถูกต้อง ชื่อโปรแกรมจะระบุ เชื่อมต่อแล้ว- เชื่อมต่อแล้ว สมมติว่าเราไม่รู้ว่าช่องไหนจะมีสัญญาณและช่องไหนจะไม่ ดังนั้นเราจะไม่ตั้งค่าทริกเกอร์ให้เริ่มจับสัญญาณ เพียงคลิกที่ลูกศรของปุ่มสีเขียวขนาดใหญ่ เริ่ม(สตาร์ท)แล้วนำไปลงสนาม ระยะเวลา(Duration) พูด 10 วินาที. นี่คือเวลาที่เครื่องวิเคราะห์ลอจิกจะรวบรวมข้อมูลที่มาจากทั้ง 8 ช่องหลังจากกดปุ่ม "Start" เราเริ่มการจับภาพและส่งข้อความไปยังพอร์ต COM พร้อมกัน หลังจากผ่านไป 10 วินาที เครื่องวิเคราะห์จะรวบรวมข้อมูลเสร็จสิ้นและแสดงผลลัพธ์ในช่องดูสัญญาณ ในกรณีนี้สัญญาณจะอยู่บนช่องสัญญาณเดียวเท่านั้นซึ่งเชื่อมต่อกับพิน Tx (ตัวส่งสัญญาณ) ของตัวแปลง USB-UART


เพื่อความชัดเจนคุณสามารถกำหนดค่าได้ ตัวถอดรหัสข้อมูลที่ถูกดักจับ เมื่อต้องการทำเช่นนี้ เราจะพบฟิลด์ในคอลัมน์ด้านขวา เครื่องวิเคราะห์คลิกไอคอนเครื่องหมายบวก - “เพิ่ม” ระบุประเภท - อนุกรม Async- หน้าต่างจะปรากฏขึ้นเพื่อขอให้คุณเลือกการตั้งค่า ในฟิลด์แรก ให้ป้อนหมายเลขช่องสัญญาณที่คุณมีข้อมูล ปล่อยให้ส่วนที่เหลือเหมือนเดิม หลังจากกดปุ่มแล้ว บันทึก(บันทึก) เครื่องหมายสีน้ำเงินจะปรากฏขึ้นเหนือช่องสัญญาณที่เกี่ยวข้องซึ่งแสดงค่าไบต์ที่ถูกดักจับ เมื่อคลิกที่เฟืองในตัวถอดรหัสนี้ คุณสามารถตั้งค่าโหมดการแสดงผลของค่า - ASCII, HEX, BIN หรือ DEC หากคุณส่งสตริงไปยังพอร์ต COM ให้เลือกโหมด ASCII แล้วคุณจะเห็นข้อความที่คุณส่งไปยังพอร์ต


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

มาเชื่อมต่อตัววิเคราะห์ลอจิกกับตัวแปลง USB-RS485 ในลักษณะเดียวกัน มีเพียงสองบรรทัดข้อมูล ดังนั้นคุณสามารถตั้งค่าทริกเกอร์ให้ทริกเกอร์ที่ขอบของช่องสัญญาณใดก็ได้: สัญญาณในโปรโตคอล RS-485 มีความแตกต่างและขอบพัลส์ปรากฏพร้อมกันในแต่ละช่องสัญญาณ แต่อยู่ในแอนติเฟส


คลิกปุ่ม "Start" ในโปรแกรมวิเคราะห์ เมื่อใช้เทอร์มินัลของเรา เราจะเชื่อมต่อกับตัวแปลง USB-RS485 และถ่ายโอนข้อมูลบางส่วน เมื่อทริกเกอร์ถูกกระตุ้น โปรแกรมจะเริ่มรวบรวมข้อมูลและเมื่อเสร็จสิ้นจะแสดงบนหน้าจอ


Saleae Logic ช่วยให้คุณสามารถส่งออกข้อมูลที่บันทึกไว้ในรูปแบบของรูปภาพและข้อมูลข้อความ บันทึกการตั้งค่าโปรแกรม คำอธิบายประกอบ และตัวถอดรหัสช่องสัญญาณ

ตัวอย่างสุดท้ายในการทบทวนสั้นๆ นี้คือเฟรมข้อมูลที่บันทึกไว้ซึ่งส่งผ่านโปรโตคอล SPI แบบอนุกรม ช่อง 2 แสดงสัญญาณการเลือกทาส ช่อง 0 แสดงพัลส์นาฬิกา และช่อง 1 แสดงข้อมูลจริงจากต้นแบบไปยังทาส


ข้อสรุป

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

ดาวน์โหลดคำแนะนำในการใช้โปรแกรมสำหรับเครื่องวิเคราะห์ลอจิก Saleae

  • ดาวน์โหลดคำแนะนำในการใช้โปรแกรมสำหรับตัววิเคราะห์ลอจิก Saleae จาก Depositfiles.com
  • ดาวน์โหลดคำแนะนำการใช้โปรแกรมสำหรับตัววิเคราะห์ลอจิก Saleae จาก File-upload.com
  • ดาวน์โหลดคำแนะนำในการใช้โปรแกรมสำหรับเครื่องวิเคราะห์ลอจิก Saleae จาก Up-4ever.com
  • ดาวน์โหลดคำแนะนำในการใช้โปรแกรมสำหรับตัววิเคราะห์ลอจิก Saleae จาก Hitfile.com

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

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

วงจรวิเคราะห์ลอจิกที่ใช้ Arduino MK

ก่อนอื่นเราต้องออกแบบสิ่งที่เราจะประสาน เครื่องวิเคราะห์ลอจิกเป็นเครื่องมือง่ายๆ ที่มีหน้าที่อ่านและวิเคราะห์รหัสไบนารี่ (สัญญาณดิจิทัล) ที่ส่งผ่านการใช้ไฟฟ้า

กล่าวอีกนัยหนึ่งทุกๆ 5 โวลต์ที่จ่ายให้กับอุปกรณ์จะเป็นหนึ่งเดียวหากไม่มีเช่นนั้นจะเป็นศูนย์ รหัสไบนารี่นี้ใช้ในการเข้ารหัสข้อมูลและในอุปกรณ์หลายชนิด รวมถึงอุปกรณ์ที่ใช้ Arduino การอ่านเริ่มต้นตามกฎด้วยสิ่งเดียว และหากต้องการตรวจสอบโปรเจ็กต์ของคุณด้วยการเข้ารหัสไบนารี คุณจะต้องมีตัววิเคราะห์ลอจิก

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

  1. 4 ช่องทางสำหรับการวิเคราะห์เชิงตรรกะของสัญญาณขาเข้า
  2. ความแปรปรวนของความถี่สัญญาณสูงถึง 400 kHz ช่วงนี้จะครอบคลุมอุปกรณ์สมัยใหม่ส่วนใหญ่ ยกเว้นอุปกรณ์พิเศษ
  3. แรงดันไฟฟ้าอินพุตควรสูงถึง +5 โวลต์ ตามที่อธิบายไว้แล้ว นี่คือมาตรฐานที่ใช้เป็นหน่วย (การมีสัญญาณ)
  4. จอแสดงผล LED สำหรับแสดงข้อมูล โปรแกรมเมอร์ที่มีความซับซ้อนเป็นพิเศษสามารถซื้อ LED สองสามดวงและสร้างจอแสดงผลของตนเองในแนวทแยงที่พวกเขาต้องการได้ แต่สำหรับคนอื่นๆ การเขียนซอฟต์แวร์สำหรับอุปกรณ์ดังกล่าวจะต้องใช้แรงงานมากเกินไปและจะกลายเป็นขั้นตอนที่ไม่จำเป็น ดังนั้นที่นี่เราจะพิจารณาเวอร์ชันอุปกรณ์ที่มีจอ LCD
  5. แบตเตอรี่สำหรับจ่ายไฟ 4 ก้อน 1.2 V ที่แรงดันไฟฟ้าสูงสุด 4.8 V
  6. แรม ขอแนะนำให้ใช้สองประเภท - ความเร็วสูง (3.6 มิลลิวินาทีต่อสัญญาณ) และความเร็วต่ำ (36 วินาที) โซลูชันนี้จะช่วยให้คุณครอบคลุมช่วงสัญญาณทั้งหมด
  7. แผงควบคุมหรือปุ่มคู่หนึ่ง
  8. เปลือกใด ๆ สำหรับยึดโครงสร้าง คุณสามารถพิมพ์บนเครื่องพิมพ์ 3 มิติ คุณสามารถนำกล่องพลาสติกที่ไม่จำเป็นหรือทำโดยไม่มีเคสเลยก็ได้ ที่นี่เราจะไม่ให้คำแนะนำ อุปกรณ์ใช้งานได้ไม่ว่าจะมีเปลือกหรือไม่มีเปลือก คุณก็เลือกได้

หากต้องการพลังงานคุณต้องเลือกแบตเตอรี่เนื่องจากแบตเตอรี่ขนาด 1.5 โวลต์จำนวน 4 ก้อนอาจทำให้ Arduino เสียหายและทำให้บอร์ดไหม้ได้ ไม่ต้องพูดถึงอันตรายต่อจอ LCD ดังนั้นอย่าละเลยและรับส่วนประกอบที่มีคุณภาพ ท้ายที่สุดแล้วคุณภาพของผลิตภัณฑ์ขั้นสุดท้ายจะเท่ากับพารามิเตอร์ของส่วนประกอบที่แย่ที่สุด

อย่าลืมเพิ่มสวิตช์ S1 ลงในวงจรสุดท้ายซึ่งจะใช้ในการจ่ายไฟและปิดอุปกรณ์เพื่อไม่ให้แบตเตอรี่หมดประจุ

จำเป็นต้องใช้ตัวต้านทานแบบดึงขึ้นพิเศษซึ่งจะกำจัดข้อมูลเท็จที่อาจเกิดขึ้นเนื่องจากสนามแม่เหล็กไฟฟ้าของนิ้วของโพรบสัญญาณ ส่งผลให้สัญญาณรบกวนและการบิดเบือนของอินพุตดิจิทัลมีน้อยที่สุด

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

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

จากที่กล่าวมาทั้งหมด คุณได้รวบรวมรายการอุปกรณ์ต่อพ่วงคร่าวๆ ที่จะซื้อแล้ว แต่มาอธิบายประเด็นนี้กันดีกว่า ในตัววิเคราะห์ลอจิก คุณจะต้องมี:

  1. ไมโครคอนโทรลเลอร์ Arduino นั้นเอง ไม่สำคัญว่าคุณจะเลือกอันไหน แต่จะส่งผลต่อขนาดสุดท้ายของอุปกรณ์เท่านั้น ซอฟต์แวร์สำหรับเวอร์ชันใดๆ จะมีลักษณะเหมือนกัน ใช้บอร์ดในภาพด้านบน
  2. จอ LCD. หากคุณมีโทรศัพท์แบบปุ่มกดเก่า คุณสามารถถอดออกและตั้งค่าการผลิตแบบ "ไร้ขยะ" ได้
  3. ตัวต้านทานที่มีความจุต่างๆ
  4. เซ็นเซอร์ปัจจุบัน
  5. แบตเตอรี่ 4 ก้อน
  6. LED หนึ่งหรือสองอัน
  7. แต่การ์ดหน่วยความจำนี้เป็นทางเลือก

นอกจากนี้ คุณจะต้องมีหัวแร้ง หัวแร้ง และอุปกรณ์เสริมอื่น ๆ ตามธรรมชาติ เป็นการดีกว่าถ้าหาสถานที่ที่คุณจะรวบรวมทั้งหมดนี้ล่วงหน้า และหากคุณทำงานกับหัวแร้งเป็นครั้งแรก ให้ศึกษากฎความปลอดภัยจากอัคคีภัยและคุณสมบัติการทำงานของหัวแร้งเพื่อไม่ให้บัดกรีแต่ละส่วนซ้ำ 10 ครั้ง

การเขียนโปรแกรม Arduino MK เมื่อใช้งานโปรเจ็กต์ "ตัววิเคราะห์ลอจิก"

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

รหัสสำหรับวงจรในรูปภาพด้านบนอาจเป็นดังนี้:

/************************************ 128 x 64 เครื่องวิเคราะห์ลอจิก LCD 6 แชนเนลและ 3Mb/s โดย Bob Davis ใช้ Universal 8bit Graphics Library, http://code.google.com/p/u8glib/ ลิขสิทธิ์ (c) 2012, [ป้องกันอีเมล] สงวนลิขสิทธิ์. ************************************************** ****/ #include "U8glib.h" // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 // U8GLIB_ST7920_128X64_4X u8g(8, 9, 10, 11 , 4, 5, 6, 7, 18, 17, 16); // **** หมายเหตุ **** ฉันย้ายหมุดควบคุมทั้งสามอันแล้ว !!! U8GLIB_ST7920_128X64_4X ยู8ก(8, 9, 10, 11, 4, 5, 6, 7, 1, 2, 3); ตัวอย่าง int; อินพุต int=0; int OldInput=0; intxpos=0; โมฆะ u8g_prepare(โมฆะ) ( u8g.setFont(u8g_font_6x10); u8g.setFontRefHeightExtenstedText(); u8g.setDefaultForegroundColor(); u8g.setFontPosTop(); ) โมฆะ DrawMarkers (โมฆะ) ( u8g.drawFrame (0,0,128,64); u8g .drawPixel(20,1); u8g.drawPixel(60,1); u8g.drawPixel(20, 62); u8g.drawPixel (100,62); รอทริกเกอร์ของอินพุตที่เป็นบวก Input=digitalRead(A0); while (Input != 1)( Input=digitalRead(A0); ) // รวบรวมข้อมูลอะนาล็อกลงในอาร์เรย์ // ไม่มีการวนซ้ำเร็วขึ้นประมาณ 50% ! ตัวอย่าง=PINC; ตัวอย่าง=PINC;<128; xpos++) { u8g.drawLine (xpos, ((Sample&B00000001)*4)+4, xpos, ((Sample&B00000001)*4)+4); u8g.drawLine (xpos, ((Sample&B00000010)*2)+14, xpos, ((Sample&B00000010)*2)+14); u8g.drawLine (xpos, ((Sample&B00000100)*1)+24, xpos, ((Sample&B00000100)*1)+24); u8g.drawLine (xpos, ((Sample&B00001000)/2)+34, xpos, ((Sample&B00001000)/2)+34); u8g.drawLine (xpos, ((Sample&B00010000)/4)+44, xpos, ((Sample&B00010000)/4)+44); u8g.drawLine (xpos, ((Sample&B00100000)/8)+54, xpos, ((Sample&B00100000)/8)+54); } } void setup(void) { pinMode(A0, INPUT); pinMode(A1, INPUT); pinMode(A2, INPUT); pinMode(A3, INPUT); pinMode(A4, INPUT); pinMode(A5, INPUT); // assign default color value if (u8g.getMode() == U8G_MODE_R3G3B2) u8g.setColorIndex(255); // RGB=white else if (u8g.getMode() == U8G_MODE_GRAY2BIT) u8g.setColorIndex(3); // max intensity else if (u8g.getMode() == U8G_MODE_BW) u8g.setColorIndex(1); // pixel on, black } void loop(void) { // picture loop // u8g.firstPage(); do { draw(); } while(u8g.nextPage()); // rebuild the picture after some delay delay(100); }

อย่าลืมดาวน์โหลดไลบรารี่เพื่อทำงานกับ Arduino และคำนึงด้วยว่าเอาต์พุตไปที่หน้าจอ LCD เมื่อคุณเขียนซอฟต์แวร์เสร็จแล้ว เพียงโหลดซอฟต์แวร์ลงบนบอร์ดโดยใช้อะแดปเตอร์ USB พิเศษ

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

ในการทำงานในวงจรดิจิทัลที่ซับซ้อน เครื่องวิเคราะห์ลอจิกภาษาจีนเป็นสิ่งที่จำเป็นอย่างยิ่ง ราคาที่ต่ำและซอฟต์แวร์ที่สะดวกสบายก็น่าดึงดูดเช่นกัน และมันค่อนข้างเหมาะกับฉันจนกระทั่งจำเป็นต้องตรวจสอบการทำงานของโหนดวงจรต่าง ๆ พร้อม ๆ กัน ซึ่งขับเคลื่อนจากแหล่งต่าง ๆ และไม่มีจุดร่วม เริ่มแรก เครื่องวิเคราะห์มีช่องสัญญาณแยกกำลัง 8 ช่องพร้อมแอมพลิจูดพัลส์ที่อินพุต 5 โวลต์ การปรับเปลี่ยนนี้ทำให้สามารถแยกอินพุตของเครื่องวิเคราะห์แบบไฟฟ้าและทำงานกับพัลส์ที่มีแอมพลิจูดตั้งแต่ 3 โวลต์ถึง 25 โวลต์ ตำแหน่งของสวิตช์บิสกิตจะถูกเลือกขึ้นอยู่กับช่วงของพัลส์อินพุต แต่วงจรการออกแบบจะยังคงใช้งานได้ถึง 65 โวลต์

วงจรนี้ใช้ออปโตคัปเปลอร์ความเร็วสูงที่ออกแบบมาเพื่อทำงานในเครือข่ายใยแก้วนำแสง ลักษณะความถี่ของออปโตคัปเปลอร์นั้นสูงกว่าที่เครื่องวิเคราะห์จะพลาดได้ เนื่องจากระยะเวลาพัลส์ขั้นต่ำที่เครื่องวิเคราะห์สามารถบันทึกได้คือประมาณ 42 นาโนวินาที กระแสไฟ LED ของออปโตคัปเปลอร์ถูกเลือกในช่วง 6-7.5mA ออปโตคัปเปลอร์ช่วยให้กระแสเพิ่มขึ้นได้ถึง 15mA และกระแสดังกล่าวจะเกิดขึ้นที่แรงดันไฟฟ้าขาเข้า 65 โวลต์ เมื่อสวิตช์อยู่ในตำแหน่ง "25v"

โดยเฉพาะ บอร์ดของฉันมีช่องแยกไฟฟ้า 4 ช่อง และช่องไม่แยก 4 ช่องพร้อมอินพุต 5 โวลต์ จ่ายไฟจากบอร์ดวิเคราะห์ ในกรณีนี้จำเป็นต้องดำเนินการแก้ไขบางอย่าง: ถอดบอร์ดวิเคราะห์ออกจากเคส ตัดแทร็กไปที่พิน 9 ของตัวเชื่อมต่อ และใช้แรงดันไฟฟ้าจากพินด้านขวาของ LM1117 ไปยังพินนี้ผ่านตัวต้านทาน 10 โอห์ม

เลย์เอาต์และการออกแบบนั้นค่อนข้างเรียบง่ายและความเป็นไปได้ในการใช้งานก็เพิ่มขึ้นอย่างมาก
เมื่อทดสอบอินพุตที่แยกกระแสไฟฟ้า เพื่อความบริสุทธิ์ของการทดลอง อินพุตจะเชื่อมต่อแบบขนาน นั่นคือ 4 อินพุตใน A,B,C,D และดังนั้น Gnd A,B,C,D จึงเชื่อมต่อกัน สวิตช์ถูกตั้งค่าไว้ที่ตำแหน่งเดียวกัน พัลส์ถูกสร้างขึ้นโดยการเด้งกลับของหน้าสัมผัสและแหล่งพลังงานภายนอกด้วยแรงดันไฟฟ้าที่เหมาะสม

ในระหว่างการประกอบมีการใช้ออปโตคัปเปลอร์ 6N137 และสวิตช์ MPN-1 ตัวแบ่งประกอบด้วยตัวต้านทาน smd0805 แต่ 1206 ก็จะพอดี เมื่อบัดกรีสายเคเบิลเพื่อเชื่อมต่อกับเครื่องวิเคราะห์ลำดับจะเปลี่ยนไปบางส่วน แต่ทุกอย่างจะมีป้ายกำกับไว้บนบอร์ด

แทนที่จะใช้สวิตช์ MPN-1 คุณสามารถใช้สวิตช์อื่นได้ แม้ว่าคุณจะต้องปรับแผงวงจรพิมพ์หรือใช้สายไฟก็ตาม ผู้แต่ง - ดูโบวิตสกี นิโคไล

1. การแนะนำ:

การวิเคราะห์เชิงตรรกะนี้ เครื่องเอเตอร์ได้รับการออกแบบมาเพื่อการบันทึก การออก และการวิเคราะห์ลำดับต่างๆ ของพัลส์และโปรโตคอลตามลำดับในช่วงเวลาที่กำหนด นำมาสำหรับฮาร์ดแวร์มัลติโปรแกรมเมอร์บน FT232

2. คำอธิบายสั้น ๆ

เครื่องวิเคราะห์มีช่องอินพุต/เอาต์พุต 7 ช่อง ซึ่งเชื่อมต่อกับอุปกรณ์ต่างๆ ที่กำลังศึกษาอยู่ขึ้นอยู่กับดุลยพินิจของผู้ใช้

ช่อง 1-5 สอดคล้องกับอินพุต/เอาต์พุต ช่องเหล่านี้สามารถเป็นเอาต์พุตหรืออินพุตได้ ขึ้นอยู่กับการตั้งค่าช่อง ช่อง 5 ไม่ได้ถูกส่งไปยังขั้วต่อใดๆ แต่มีแผงสัมผัสอยู่บนบอร์ด

ช่อง 6 – อินพุตเท่านั้น ช่องนี้ใช้ร่วมกับช่อง 1 และทำหน้าที่จำลองอินพุต/เอาต์พุตแบบสองทิศทาง เช่น ในบัส I2C นั่นคือทิศทางการส่งสัญญาณของช่องจะเปลี่ยนไปเมื่อโปรโตคอลทำงาน ข้อมูลเอาต์พุตไปที่เอาต์พุต 3 และข้อมูลอินพุตจะผ่านช่อง 6 ดู "การใช้งานโปรโตคอล I2C" สำหรับรายละเอียดเพิ่มเติม

ช่อง 7 ส่งออกเท่านั้น ช่องนี้บนโปรแกรมเมอร์ถูกนำมาใช้เป็นเอาต์พุต 12V ที่ทรงพลัง ตัวอย่างเช่นใช้เป็นไฟแบ็คไลท์เมื่อทำงานกับจอแสดงผลจาก Nokia 6100 (ดูตัวอย่างการใช้งาน)

ทางด้านซ้ายของหน้าต่างการทำงานของโปรแกรมจะมีการตั้งค่าสำหรับพอร์ตตัววิเคราะห์ ซึ่งได้แก่:

  • อัตรารับส่งข้อมูล (BoudRate)
  • การผกผันช่อง (ตรวจสอบ “เอ็น.อี.จี."
  • ทิศทางพอร์ต (เข้า/ออก)
  • ขนาดของอาร์เรย์เอาต์พุต (อนุญาตให้มีขนาดสูงสุด 65kbit)

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

ทางด้านขวาของช่องโปรแกรมจะมีส่วนควบคุมสำหรับโปรโตคอลจำลอง มีอยู่:

  • เมนูแบบเลื่อนลงการเลือกโปรโตคอล
  • เมนูแบบเลื่อนลง 7 เมนู (ต่อช่อง): เลือกการกำหนดช่องสัญญาณและสัญญาณโปรโตคอล
  • การผกผันข้อมูลโปรโตคอล (เพื่อไม่ให้สับสนกับการกลับพอร์ต)
  • หน้าต่างสำหรับการป้อนข้อมูล (เพื่อกำหนดลำดับตัวเลขของโปรโตคอล)

3. การจัดการและการป้อนข้อมูล

คลิกเมาส์ซ้ายตั้งค่าเคอร์เซอร์ไปที่ตำแหน่งนี้บนแผงรูปคลื่นโดยไม่เปลี่ยนสถานะของบิตนี้

คลิกขวาบนแผงรูปคลื่น วางเคอร์เซอร์ไว้ที่ตำแหน่งนี้ และเปลี่ยนสถานะของบิตที่ตำแหน่งนี้

นอกจากการป้อนข้อมูลด้วยเมาส์แล้วยังสามารถป้อนข้อมูลได้อีกด้วย จากแป้นพิมพ์- หลังจากกดปุ่ม "0" หรือ "1" แล้ว 0 หรือ 1 จะถูกป้อนแทนเคอร์เซอร์ตามลำดับ นอกจากนี้ เพื่อความสะดวก ฟังก์ชั่นของปุ่ม "0" จะถูกทำซ้ำกับปุ่ม "2" นั่นคือ เมื่อคุณกดปุ่ม "2" ระบบจะป้อน 0

การป้อนข้อมูลแบบอาร์เรย์(เพื่อการบันทึกเท่านั้น) ลำดับโปรโตคอลสามารถป้อนเป็นทศนิยม (1 34 987), ไบนารี (0b100 0b101010 0b1111111111111) และเลขฐานสิบหก (0xFA 0x 12C 0x 1a 2cb ) ข้อมูลถูกป้อนโดยคั่นด้วยช่องว่างนอกจากนี้ยังสามารถผสมรูปแบบข้อมูลได้ (123 0b1010 0x12aB)

ข้อมูลจะถูกป้อนตามด้วยการเพิ่มที่อยู่ เมื่อถึงขอบเขตอาเรย์ ขนาดของมันจะเพิ่มขึ้น ขนาดอาร์เรย์ข้อมูลสูงสุด – 65 kbit

การป้อนข้อมูลตามไฟล์หากต้องการป้อนข้อมูลตามไฟล์ คุณต้องสร้างไฟล์ที่มีนามสกุลใดก็ได้ เช่น txt รูปแบบฟรี

คุณสามารถแยกตัวเลขในไฟล์ด้วยจุด จุลภาค หรือช่องว่าง คำอธิบายในไฟล์คั่นด้วยเครื่องหมายอัฒภาค “;”

เนื้อหาไฟล์ตัวอย่าง:

123 343, 234 ; นี่คือคำอธิบายหลังเครื่องหมายอัฒภาค

0x12F, 0b10101010 ; ฯลฯ

ไดร์เวอร์สำหรับเครื่องวิเคราะห์

เครื่องวิเคราะห์ใช้ฟังก์ชันพิเศษของ FT232R ซึ่งคุณต้องติดตั้งไดรเวอร์พิเศษ FTD 2XX การติดตั้งพอร์ต COM ปกติไม่เหมาะสมขอแนะนำให้นำคนขับมาจากผู้ผลิต - เป็นต้น

4. การเชื่อมต่อเครื่องวิเคราะห์:

ลักษณะที่ปรากฏของเครื่องวิเคราะห์จะแสดงในรูปที่ 2

เจ 1– จัมเปอร์จ่ายไฟ (Vcc) มี 4 สถานะ: 1.8V, 3V, 5V และแหล่งจ่ายไฟภายนอก

เอ็กซ์ที1– มินิยูเอสบี การเชื่อมต่อพีซี

เอ็กซ์ที 2– ขั้วต่อส่วนต่อประสานสำหรับเชื่อมต่อเครื่องวิเคราะห์กับวัตถุทดสอบ มีผู้ติดต่อ 10 ราย:

1 ช่อง 1 (อินพุต/เอาต์พุต)
พอร์ตจ่ายไฟ 2 พอร์ต (Vcc) (ขึ้นอยู่กับสถานะของจัมเปอร์จ่ายไฟไฟจะเป็นอินพุตหรือเอาท์พุต)
3 Cbus 4 ไม่ได้ใช้ แต่คุณสามารถส่งสัญญาณความถี่ 6,12,24 หรือ 48 MHz ได้ (ดูรายละเอียดเพิ่มเติมที่ “การใช้ Cbus”)
5 ช่อง 2 (อินพุต/เอาต์พุต)
7 ช่อง 3 (อินพุต/เอาต์พุต)
9 ช่อง 4 (อินพุต/เอาต์พุต)
รวม 4,6,8,10

เอ็กซ์ที3– ขั้วต่อส่วนต่อประสานสำหรับเชื่อมต่อเครื่องวิเคราะห์กับวัตถุทดสอบ มีผู้ติดต่อ 10 ราย

1 พอร์ตเอาท์พุต (Vcc) (ขึ้นอยู่กับสถานะของจัมเปอร์จ่ายไฟ แหล่งจ่ายไฟจะเป็นอินพุตหรือเอาท์พุต)
3 ช่อง 3 (อินพุต/เอาต์พุต)
5 ช่อง 4 (อินพุต/เอาต์พุต)
7 ช่อง 6 (อินพุตเท่านั้น)
เอาต์พุต 9 ช่อง 7 สัญญาณ 12V!!!
รวม 2,4,6,8,10

เจ2– จัมเปอร์ 2 ตำแหน่ง เปลี่ยนการทำงานของช่อง 6

ตำแหน่ง 1-2 เปลี่ยนช่อง 6 จาก Vcc เป็น 12V
ตำแหน่ง 2-3 เปลี่ยนช่อง 6 จาก 0V เป็น 12V
ตำแหน่ง 1-2 ใช้ในโปรแกรมเมอร์เพื่อสร้างสัญญาณ MCLR เมื่อกระพริบคอนโทรลเลอร์ PIC

ช่อง 1-5 เป็นอินพุตตามค่าเริ่มต้นและอยู่ในสถานะที่สาม (สถานะ Z) เมื่อตั้งค่าช่องสัญญาณเป็นเอาต์พุต ช่องสัญญาณจะถูกส่งออกขณะส่งสัญญาณเท่านั้น

แต่ละช่องมีตัวต้านทานจำกัดกระแส 300 โอห์ม

ช่อง 6 จะเป็นเอาต์พุตเสมอ สถานะเริ่มต้นคือ "0"

5. การใช้สัญญาณ Cbus (ขั้วต่อ XT2 ขา 3)

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

ความถี่ 6, 12, 24 และ 48 MHz สามารถส่งออกไปยังพินนี้ได้ ทำได้โดยใช้ยูทิลิตี้ MProg พิเศษที่คุณสามารถทำได้

6. คำอธิบายโดยย่อเกี่ยวกับสิ่งที่ต้องทำเพื่อส่งความถี่ไปยัง Cbus:

  1. ติดตั้งยูทิลิตี้ Mprog
  2. เลือกการค้นหาอุปกรณ์โดยคลิกที่แว่นขยายหรือในเมนูอุปกรณ์ -> สแกน หลังจากนั้นยูทิลิตี้จะค้นหาอุปกรณ์และแสดง PID เป็นต้น
  3. ในแท็บเครื่องมือเลือกฟังก์ชันอ่านและแยกวิเคราะห์นั่นคือเราอ่านการตั้งค่าปัจจุบันและแสดงสิ่งนี้บนจอแสดงผล
  4. เปิดบุ๊กมาร์กฟุต 232 ร (หากไม่ได้เปิดขึ้นมาเอง) หลังจากนั้น 2 ช่องจะเปิดขึ้นสลับ rs 232 signzl (สิ่งนี้ไม่เกี่ยวข้องกับเรา เนื่องจากโปรแกรมวิเคราะห์จะจัดการสัญญาณเหล่านี้ด้วยวิธีของตัวเอง) และภาคสนามการควบคุม I/O
    ฟิลด์ I/O Controls มี 4 เมนูย่อย C1-C4
  5. เลือกเมนู C4 สิ่งเหล่านี้เป็นฟังก์ชันเพิ่มเติมของสัญญาณ Cbus4 จากฟังก์ชันที่นำเสนอทั้งหมด เราสนใจ CLK6, CLK12, CLK24 และ CLK48 ทุกอย่างควรชัดเจนจากชื่อของฟังก์ชันเจ - ฟังก์ชั่นที่เหลือไม่มีผลกระทบ (อย่างแม่นยำมากขึ้นเมื่อเลือกมันเป็นไปไม่ได้ที่จะทำนายสถานะของพินนี้) เนื่องจากได้รับการออกแบบมาให้ทำงานในโหมดพอร์ต COM
  6. เพื่อให้ FT232R ใช้ฟังก์ชันที่เลือกคุณต้องบันทึกโปรเจ็กต์ (หากไม่มีสิ่งนี้จะไม่ทำงาน) นี่คือวิธีการเขียนยูทิลิตี้นี้
  7. หลังจากบันทึกโปรเจ็กต์ลงดิสก์แล้ว คุณสามารถตั้งโปรแกรม FT232R ของเราใหม่ได้ ปุ่มสายฟ้าถูกเปิดใช้งาน หลังจากกดแล้วprog จะเขียนการตั้งค่าของเราลงในชิป

7. วิธีอธิบายและใช้โปรโตคอลของคุณเอง

หากต้องการสร้างคำอธิบายโปรโตคอล คุณจะต้องเขียนไฟล์ INI ของคุณเอง ฉันแนะนำให้คัดลอกไฟล์ใดไฟล์หนึ่งที่มีอยู่แล้วทำการเปลี่ยนแปลง ลองใช้ไฟล์ SPI_9BIT เป็นตัวอย่าง จะต้องระบุคำอธิบายในไฟล์เหล่านี้แยกบรรทัด!!!

;ส่วนหัวการตั้งค่าในส่วนนี้ของไฟล์ระบุการตั้งค่าโปรโตคอลเฉพาะ:


;จำนวนบรรทัดในโปรโตคอล ในนี้มี 4 ตัวครับ
num_lin = 4
;ด้านล่างบรรทัดจะแสดงรายการตามหมายเลขและชื่อ
lin1 = โมซี่
lin2 = มิโซะ
lin3 = เอสซีเค
lin4 = เอสเอส
;จำนวนบิตที่ส่ง
บิต = 18
;เพิ่ม. ข้อมูลนั้นจะถูกแสดงในหน้าต่างข้อมูลเพิ่มเติม
waring = ช่อง 6 เชื่อมโยงกับช่อง 1 ในฮาร์ดแวร์ บอดเรตจะถูกหารด้วย 2 เนื่องจากนาฬิกาจะถูกส่งเป็น 2 รอบนาฬิกา
; ส่วนหัวของโปรโตคอล ลำดับที่ใช้ในเกณฑ์วิธีจะอธิบายไว้ด้านล่าง


SS = ไม่มี ไม่มี ไม่มี ไม่มี ไม่มี ไม่มี ไม่มี ไม่มี ไม่มี ไม่มี ไม่มี ไม่มี ไม่มี ไม่มี ไม่มี ไม่มี
SCK = ไม่มี ไม่มี ไม่มี ไม่มี ไม่มี ไม่มี ไม่มี ไม่มี ไม่มี ไม่มี ไม่มี
โมซี่ = 0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8
มิโซะ = N N N N N N N N N N N N N N N N N N N N N N

ในส่วนนี้ หมายเลขบิต 0 1 2 14 34 ฯลฯ จะถูกระบุเป็นบิตที่ส่ง ในรูปแบบการส่ง 1 ให้เขียน O (จาก English One) ในรูปแบบการส่ง 0 ให้เขียน N (เช่น Null)

สิ่งสำคัญ: เมื่ออธิบายโปรโตคอล อาจมีความแตกต่างในจำนวนบิตที่ระบุใน num_lin และที่อธิบายไว้ในส่วนโปรโตคอล

หลังจากที่คุณแก้ไขหรือเขียนไฟล์ INI แล้ว คุณจะต้องเพิ่มรายการลงในไฟล์ protocol.lst เพื่อให้โปรแกรมสามารถค้นหาและใช้งานโปรโตคอลใหม่ได้

8. ตัวอย่างการใช้เครื่องวิเคราะห์วิเคราะห์บัส I2C

ขั้นแรก เราเชื่อมต่อเครื่องวิเคราะห์กับบัส I2C (อุปกรณ์ที่ทดสอบคือจอยสติ๊กแบบกระบองจากคอนโซล Wii) โดยไม่จำเป็นต้องใช้องค์ประกอบภายนอก แผนภาพการเชื่อมต่อแสดงในรูปที่ 3 ฉันไม่เห็นประเด็นในการอธิบายโปรโตคอล สิ่งนี้เขียนโดยละเอียดบนอินเทอร์เน็ต

ดังที่เห็นได้จากแผนภาพ มีการใช้ 3 ช่องสัญญาณสำหรับการใช้งาน (ช่อง 1,4,5) และโปรโตคอล I2C เป็นแบบสองสาย สิ่งที่สำคัญที่สุดคือเครื่องวิเคราะห์ไม่มีความสามารถในการเปลี่ยนทิศทางของบัสในระหว่างการส่งสัญญาณ ดังนั้นการแยกสัญญาณอินพุตและเอาต์พุตจึงเกิดขึ้นบนทรานซิสเตอร์ (ดูแผนภาพ) ดังนั้นช่อง 1 จึงเป็นเอาต์พุต โดยจะส่งข้อมูลออกเป็น I2C และช่อง 5 เป็นอินพุต รับข้อมูลผ่าน I2C

หากต้องการกำหนดค่า ให้เลือก “I2C” ในเมนูการเลือกอินเทอร์เฟซ และตั้งค่าช่องทำเครื่องหมายและปุ่มต่อไปนี้:

ช่อง 1 NEG (เอาต์พุตผกผัน) OUTSDA _OUT ข้อมูลเอาต์พุต

ช่อง 4 สัญญาณนาฬิกา OUTSCL

ช่อง 5 IN SDA _IN ข้อมูลอินพุต

9. ตัวอย่างการใช้เครื่องวิเคราะห์เพื่อวิเคราะห์บัสเอสพีไอ (9นิดหน่อย)

ตัวอย่างนี้สาธิตการเลียนแบบโปรโตคอลอนุกรมสำหรับควบคุมจอแสดงผลจาก Nokia6100 แผนภาพสำหรับเชื่อมต่อจอแสดงผลกับเครื่องวิเคราะห์แสดงในรูปที่ 4 สำหรับองค์ประกอบภายนอก จำเป็นต้องใช้ตัวต้านทานจำกัดกระแสเท่านั้นในการแบ็คไลท์จอแสดงผล คุณสมบัติพิเศษคือการส่งสัญญาณ SPI ไม่ใช่ 8 บิตตามปกติ แต่เป็น 9

ในการใช้งานโปรโตคอลนี้ SPI 9 บิตแยกต่างหากจะถูกสร้างขึ้นในตัววิเคราะห์

การกำหนดค่าเครื่องวิเคราะห์และสัญญาณโปรโตคอล

หากต้องการกำหนดค่า ให้เลือก “SPI _9BIT” ในเมนูการเลือกอินเทอร์เฟซ และตั้งค่าช่องทำเครื่องหมายและปุ่มต่อไปนี้:

ช่อง 1 OUT เราจะลงทะเบียนสัญญาณนี้ด้วยตนเอง มันไม่ได้อยู่ในบันทึก

ช่อง 2 OUT SS; สัญญาณเลือกชิป

ช่อง 3 OUT SCK ;นาฬิกาโปรโตคอล

ช่อง 4 OUT MOSI สัญญาณข้อมูล

เนื่องจากเราไม่ได้รับข้อมูล สัญญาณทั้งหมดจึงได้รับการกำหนดค่าเป็นเอาต์พุต และไม่มีการใช้สัญญาณโปรโตคอล MISO

นอกจากนี้ยังจำเป็นต้องตั้งค่าจัมเปอร์จ่ายไฟไปที่ตำแหน่ง 3.3V เนื่องจากอุปกรณ์จะจ่ายไฟจากเครื่องวิเคราะห์