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

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

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

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

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

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

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

ตัวเชื่อมต่อพอร์ตขนาน K7 อยู่บนบอร์ดวิเคราะห์ลอจิกและเชื่อมต่อโดยตรงกับ FPGA แผงวงจรวิเคราะห์ลอจิกเป็นแบบสองด้าน โดยใช้ส่วนประกอบยึดพื้นผิวและส่วนประกอบตะกั่วทั่วไป เค้าโครง PCB แสดงในรูปที่ 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 ซีรีส์ 93LC56 (IC2) เก็บข้อมูลการกำหนดค่าสำหรับชิป FT2232C และเป็นองค์ประกอบที่จำเป็นสำหรับอินเทอร์เฟซการเขียนโปรแกรมเพื่อให้ทำงานได้อย่างถูกต้อง ในการเขียนโปรแกรมชิปนี้จะใช้ยูทิลิตี้ FT_Prog (ก่อนหน้านี้เรียกว่า MProg) ยูทิลิตีนี้และไดรเวอร์ FT2232C มีให้ดาวน์โหลดจากเว็บไซต์ FTDI

อะแดปเตอร์ PCB ได้รับการออกแบบด้านเดียว ซึ่งทำให้ง่ายต่อการผลิต

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

ก) ข)
รูปที่ 6 ลักษณะที่ปรากฏของอะแดปเตอร์อินเทอร์เฟซ USB เวอร์ชัน A 1.1 (а) และเวอร์ชัน 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 กับตัววิเคราะห์ลอจิก

เราเริ่มโปรแกรม สะแลลอจิก. หากมีการติดตั้งไดรเวอร์เครื่องวิเคราะห์อย่างถูกต้อง ส่วนหัวของโปรแกรมจะแสดงขึ้น เชื่อมต่อ- เชื่อมต่อ สมมติว่าเราไม่รู้ว่าช่องไหนจะมีสัญญาณและช่องไหนไม่มี ดังนั้นเราจะไม่ตั้งทริกเกอร์เพื่อเริ่มจับสัญญาณ เพียงคลิกที่ลูกศรของปุ่มสีเขียวขนาดใหญ่ เริ่ม(เริ่มต้น) และวางในสนาม ระยะเวลา(ระยะเวลา), พูด 10 วินาที. นี่คือเวลาที่ตัววิเคราะห์ลอจิกจะรวบรวมข้อมูลที่มาจากทั้ง 8 ช่องหลังจากกดปุ่ม "เริ่ม" เราเริ่มการจับภาพและในขณะเดียวกันก็ส่งข้อความไปยังพอร์ต 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 คืออะไร และข้อผิดพลาดอะไรรอคุณอยู่เมื่อออกแบบและบัดกรี

แผนผังของตัววิเคราะห์ลอจิกที่ใช้ MK Arduino

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

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

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

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

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

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

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

/*********************************** 128 by 64 LCD Logic Analyzer 6 แชนเนลและ 3Mb/s โดย Bob Davis ใช้ไลบรารีกราฟิก Universal 8 บิต http://code.google.com/p/u8glib/ ลิขสิทธิ์ (c) 2012, [ป้องกันอีเมล] สงวนลิขสิทธิ์. **********************************************/ #รวม " 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 u8g(8, 9, 10, 11, 4, 5, 6, 7, 1, 2, 3); ตัวอย่าง int; int อินพุต = 0; int OldInput=0; int xpos=0; เป็นโมฆะ u8g_prepare(เป็นโมฆะ) ( u8g.setFont(u8g_font_6x10); u8g.setFontRefHeightExtendedText(); u8g.setDefaultForegroundColor(); u8g.setFontPosTop(); ) เป็นโมฆะ DrawMarkers(เป็นโมฆะ) ( u8g.drawFrame(0,0,128,64); u8g .drawPixel(20,1); u8g.drawPixel(40,1); u8g.drawPixel(60,1); u8g.drawPixel(80,1); u8g.drawPixel(100,1); u8g.drawPixel(20, 62); u8g.drawPixel(40.62); u8g.drawPixel(60.62); u8g.drawPixel(80.62); u8g.drawPixel(100.62); ) void draw(โมฆะ) ( u8g_prepare(); DrawMarkers(); // รอ ทริกเกอร์ของอินพุตที่เป็นบวก Input=digitalRead(A0); while (Input != 1)( Input=digitalRead(A0); ) // รวบรวมข้อมูลอะนาล็อกลงในอาร์เรย์ // ไม่มีการวนซ้ำเร็วขึ้นประมาณ 50%! ; ตัวอย่าง=PINC;ตัวอย่าง=PINC;ตัวอย่าง=PINC;ตัวอย่าง=PINC;ตัวอย่าง=PINC;ตัวอย่าง=PINC;ตัวอย่าง=PINC;ตัวอย่าง=PINC;ตัวอย่าง=PINC;ตัวอย่าง=PINC;ตัวอย่าง=PINC;ตัวอย่าง=PINC;ตัวอย่าง = พิน; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; ตัวอย่าง = PINC; // แสดงข้อมูลแอนะล็อกที่รวบรวมจากอาร์เรย์ for(int xpos=0; xpos<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 ของตัวเชื่อมต่อ และใช้แรงดันไฟฟ้าที่พินนี้ผ่านตัวต้านทาน 10 โอห์มจากพินด้านขวาของ LM1117

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

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

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

1. การแนะนำ:

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

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

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

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

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

ช่อง 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 กิโลบิต

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

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

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

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

0x12F, 0b10101010 ; และอื่น ๆ

ไดรเวอร์เครื่องวิเคราะห์

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

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

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

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

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

เอ็กซ์ทีทู– ตัวเชื่อมต่ออินเทอร์เฟซสำหรับเชื่อมต่อเครื่องวิเคราะห์กับการทดสอบ มีผู้ติดต่อ 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 ตำแหน่ง เปลี่ยนฟังก์ชั่นของช่อง 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. เลือกการค้นหาอุปกรณ์โดยคลิกที่แว่นขยาย หรือในเมนู Device->Scan หลังจากนั้นยูทิลิตีจะค้นหาอุปกรณ์และแสดง 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 ของเราใหม่ได้ เปิดใช้งานปุ่มสายฟ้า หลังจากกดแล้วโปรแกรมจะเขียนการตั้งค่าของเราไปยังชิป

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

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

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


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


SS = N N N N N N N N N N N N N N N N N N N
SCK = N O N O N O N O N O N O N O N โอ
MOSI = 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

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

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

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

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

ขั้นแรก เราเชื่อมต่อเครื่องวิเคราะห์เข้ากับบัส I2C (อุปกรณ์ที่ทดสอบคือจอยสติ๊กแบบ nunchuck จาก 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 เนื่องจากอุปกรณ์จะได้รับพลังงานจากเครื่องวิเคราะห์