2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-13 06:58
คำแนะนำนี้มีไว้สำหรับอุปกรณ์ทดสอบอย่างง่าย เครื่องกำเนิดนาฬิกาและชีพจร
ใช้อินเทอร์เฟซฮาร์ดแวร์ i2S บน esp8266 เพื่อสร้างนาฬิกาทดสอบหรือลำดับพัลส์ ทำให้ง่ายต่อการประกอบ เนื่องจากไม่จำเป็นต้องใช้ฮาร์ดแวร์พิเศษสำหรับระบบพื้นฐาน
- การสร้างนาฬิกาจาก 2Hz ถึง 20MHz
- ใช้ความถี่ใดก็ได้
- ค้นหาตัวแบ่งนาฬิกาและความยาวบิตที่ตรงกันที่สุดจากนาฬิกาฐาน 160MHz
- โดยทั่วไปแล้วจะจับคู่ความถี่ได้ดีกว่า 0.1% <100KHz
- ทำเครื่องหมายการเลือกอัตราส่วนพื้นที่
- ความคลาดเคลื่อนในการจับคู่ความถี่อาจผ่อนคลายเพื่อให้จัดการพื้นที่การทำเครื่องหมายได้ดีขึ้น
- การสร้างรถไฟพัลส์ตามคำจำกัดความในไฟล์
- GUI บนเว็บช่วยให้ควบคุมจากพีซี โทรศัพท์ แท็บเล็ต
- การจัดการ Wifi เพื่อให้ตั้งค่าเราเตอร์เริ่มต้นได้ง่าย
- การอัปเดตซอฟต์แวร์ OTA
- ใช้ไลบรารี I2s พิเศษ (i2sTXcircular) ให้การควบคุมที่ยืดหยุ่น
ขั้นตอนที่ 1: ฮาร์ดแวร์
ฉันสร้างของฉันในกล่องพิมพ์ 3 มิติที่มีแบตเตอรี่ 18650 พร้อมที่ชาร์จ USB สวิตช์เปิด/ปิด ปลั๊กส่วนหัว 3 พินสำหรับสัญญาณเอาท์พุต
ตัวเครื่องมีช่องแคบสำหรับเก็บอุปกรณ์อิเล็กทรอนิกส์ไว้ข้างแบตเตอรี่
สัญญาณออกมาจากพิน GPIO3 (RX) สามารถใช้ได้โดยตรง แต่สำหรับความสามารถของไดรฟ์ที่สูงขึ้น ฉันเลือกที่จะรวมบัฟเฟอร์เล็กน้อยโดยใช้ 74LVC2G34 ฉันขนานบัฟเฟอร์สองตัวในอุปกรณ์นี้เพื่อเพิ่มความสามารถของไดรฟ์
ทุกอย่างทำได้เพียงในซอฟต์แวร์ในอุปกรณ์ และการควบคุมทำได้โดยการจัดหาเว็บเซิร์ฟเวอร์ เพื่อให้เบราว์เซอร์บนพีซี โทรศัพท์ หรือแท็บเล็ตมีการควบคุมอย่างสมบูรณ์
ขั้นตอนที่ 2: ซอฟต์แวร์
ในการสร้างและตั้งค่าซอฟต์แวร์ให้ใช้รหัสที่
- ติดตั้งไลบรารี i2sTXcircular (รวมอยู่ด้วย)
- ติดตั้งไลบรารี BaseSupport (https://github.com/roberttidey/BaseSupport)
- เพิ่มห้องสมุด WifiManager
- แก้ไขรหัสผ่านใน BaseConfig.h
- รวบรวมและอัปโหลดในสภาพแวดล้อม Arduino
- ตั้งค่าการจัดการเครือข่าย wifi โดยเชื่อมต่อกับ AP และเรียกดู 192.168.4.1
- อัปโหลดชุดไฟล์พื้นฐานจากโฟลเดอร์ข้อมูลโดยใช้ STA ip/upload
- การอัปโหลดเพิ่มเติมสามารถทำได้โดยใช้ ip/edit - ส่วนต่อประสานปกติอยู่ที่ ip/
มันทำงานอย่างไร
ไลบรารี i2sTXcircular อนุญาตให้สร้างบัฟเฟอร์แบบวงกลม ซึ่งจากนั้นจะส่งออกโดยอัตโนมัติโดยฮาร์ดแวร์ i2S บน esp8266 โดยใช้ DMA ดังนั้นจึงไม่มีการใช้โอเวอร์เฮดของซอฟต์แวร์เมื่อมันทำงาน
นาฬิกาพื้นฐานบนอุปกรณ์คือ 160MHz ซึ่งหารด้วยตัวแบ่งคู่ สัญญาณเอาท์พุตจะถูกกำหนดโดยข้อมูลที่ใส่ลงในบัฟเฟอร์ซึ่งส่งออกโดยนาฬิกาที่แบ่งลง โดยการเลือกตัวแบ่งสองตัวและโดยการใช้บิตข้อมูลหลายบิตเพื่อแทนแต่ละพัลส์ ความถี่สามารถประมาณได้ค่อนข้างใกล้เคียงกัน นอกจากนี้ยังช่วยให้รอบการทำงาน (อัตราส่วนเครื่องหมาย/ช่องว่างของพัลส์นาฬิกา) เปลี่ยนแปลงได้
โค้ดจาวาสคริปต์ของเบราว์เซอร์พยายามปรับตัวเลือกพารามิเตอร์ให้เหมาะสมเพื่อให้ตรงกับความถี่ที่เลือกมากที่สุด
แม้ว่าจุดประสงค์หลักคือเพื่อสร้างนาฬิกา แต่ก็ยังสามารถสร้างพัลส์เทรนที่ซับซ้อนมากขึ้นได้โดยใส่คำจำกัดความลงในไฟล์พัลส์ซึ่งจะควบคุมข้อมูลซึ่งจะถูกสร้างและใส่ลงในบัฟเฟอร์แบบวงกลม รายละเอียดอยู่ในไฟล์พัลส์ตัวอย่างที่รวมไว้
ขั้นตอนที่ 3: การดำเนินการ
การทำงานถูกควบคุมโดยอินเทอร์เฟซของเบราว์เซอร์ที่แสดงในภาพหลัก
สำหรับการสร้างนาฬิกาปกติ คุณเพียงแค่เลือกนาฬิกาเป้าหมายและอัตราส่วน % พื้นที่ทำเครื่องหมาย นาฬิกาจริงที่ได้รับและข้อผิดพลาดจะปรากฏขึ้น เมื่อกดปุ่มสร้างนาฬิกา พารามิเตอร์จะถูกส่งไปยังอุปกรณ์และการสร้างนาฬิกาโดยใช้พารามิเตอร์เหล่านี้จะเริ่มต้นขึ้น
โดยการคลิกที่แถบขั้นสูงสามารถดูรายละเอียดเพิ่มเติมได้
นาฬิกาบิตแสดงหลายย่อยของ 160MHz ที่กำลังใช้งานอยู่
เครื่องหมายและช่องว่างแสดงจำนวนบิตที่ใช้เพื่อแสดงเครื่องหมายและช่องว่าง
Div1 และ Div2 แสดงตัวแบ่งสองตัวที่ได้รับเลือกให้สร้างนาฬิกาบิตที่ใกล้ที่สุด
โดยปกติ ตัวแบ่งทั้งสองจะถูกเลือกเพื่อให้ตรงกับความถี่ที่เลือกมากที่สุดและเพื่อเพิ่มจำนวนบิตข้อมูลที่ใช้ ซึ่งจะช่วยให้มีความยืดหยุ่นมากขึ้นในการอนุญาตรอบการทำงานที่แตกต่างกัน อย่างไรก็ตาม บางครั้งการจับคู่ที่ดีที่สุดส่งผลให้มีการนับบิตต่ำ ทำให้เหลือที่ว่างเล็กน้อยสำหรับการเปลี่ยนรอบการทำงาน โดยการเปลี่ยนค่า % ความคลาดเคลื่อน ตัวแบ่งจะถูกเลือกเพื่อให้ความถี่ภายในความคลาดเคลื่อนนี้ แต่ด้วยบิตข้อมูลที่อาจใช้มากขึ้น ลองตั้งค่าความคลาดเคลื่อนเป็น 0.5 หรือ 1
คุณยังสามารถตั้งค่าจำนวนบิตต่อคำเพื่อควบคุมการเลือกพารามิเตอร์ได้อีกด้วย 0 (ค่าเริ่มต้น) หมายถึงเลือกบิตต่อคำ ตัวเลขเดียว (เช่น 24) หมายถึงเลือกเฉพาะพารามิเตอร์ที่ตรงกับค่านี้เท่านั้น คุณยังสามารถใส่ในช่วง (เช่น 24, 31) ใช้ได้เฉพาะกับ Hz เป้าหมายที่สูงกว่า 10KHz เท่านั้น ด้านล่างมาตราส่วนนี้จะมีผลเพื่อให้จำนวนเพิ่มขึ้น
ขนาดบัฟเฟอร์แสดงบัฟเฟอร์ทั้งหมดที่เว้นระยะห่างที่ใช้ในคำ 32 บิต สิ่งนี้ถูกเลือกเพื่อให้แน่ใจว่าพัลส์นาฬิกาก่อตัวเป็นวงกลมที่สมบูรณ์แบบในบัฟเฟอร์ ภายในบัฟเฟอร์นี้ถูกแบ่งออกเป็นบัฟเฟอร์ขนาดเล็กจำนวนหนึ่งเพื่อให้ DMA ที่ถูกล่ามโซ่ทำงาน
สำหรับการทำงานของพัลส์ ให้เลือกพัลส์ TAB ซึ่งจะแสดงไฟล์พัลส์ที่มีอยู่และปุ่มถัดจากแต่ละไฟล์ซึ่งจะสร้างพัลส์เทรนตามคำจำกัดความ คุณสามารถดูเนื้อหาของไฟล์ได้โดยคลิกที่ลิงค์ สามารถอัปโหลดไฟล์พัลส์เพิ่มเติมได้โดยใช้เบราว์เซอร์ไฟล์ ip/edit พวกเขาควรเริ่มต้นด้วยชีพจรชื่อ