สารบัญ:

Esp8266 นาฬิกาและเครื่องกำเนิดสัญญาณพัลส์: 3 ขั้นตอน
Esp8266 นาฬิกาและเครื่องกำเนิดสัญญาณพัลส์: 3 ขั้นตอน

วีดีโอ: Esp8266 นาฬิกาและเครื่องกำเนิดสัญญาณพัลส์: 3 ขั้นตอน

วีดีโอ: Esp8266 นาฬิกาและเครื่องกำเนิดสัญญาณพัลส์: 3 ขั้นตอน
วีดีโอ: สัญญาณ pwm คืออะไร ? 2024, กรกฎาคม
Anonim
Esp8266 นาฬิกาและเครื่องกำเนิดสัญญาณพัลส์
Esp8266 นาฬิกาและเครื่องกำเนิดสัญญาณพัลส์

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

ใช้อินเทอร์เฟซฮาร์ดแวร์ 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 พวกเขาควรเริ่มต้นด้วยชีพจรชื่อ

แนะนำ: