เครื่องกำเนิดฟังก์ชันบนไมโครคอนโทรลเลอร์ เครื่องกำเนิดไฟฟ้ามัลติฟังก์ชั่นบน PIC16F870 เครื่องกำเนิดพัลส์บนตัวควบคุม pic

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

แผนผังของเครื่องกำเนิดสัญญาณทีวี

การเขียนแบบ PCB


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


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

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

ฉันอยากจะเสนอโครงการสำหรับเครื่องกำเนิดไฟฟ้าดังกล่าว

ขั้นแรกให้วงจรกำเนิดพัลส์:

อุปกรณ์นี้ใช้ไมโครคอนโทรลเลอร์ยอดนิยม เอทีเมก้า8 จากแอทเมล.

คำอธิบายของโครงการ วงจรทั้งหมดใช้พลังงานจากแรงดันไฟฟ้า 5 V ไมโครคอนโทรลเลอร์โอเวอร์คล็อกที่ความถี่ 8 MHz ซึ่งได้รับการเสถียรโดยควอตซ์ X1 ตัวจับเวลา/ตัวนับหมายเลข 1 ใช้เพื่อสร้างพัลส์ ตัวเข้ารหัสจะแสดงในรูปแบบของปุ่มในแผนภาพที่เชื่อมต่อกับพิน PC3, PC4 และ PC5 ปุ่มด้านนอกสองปุ่มแทนที่การสลับตัวเข้ารหัสระหว่างการหมุน และปุ่มที่อยู่ตรงกลางคือปุ่มตัวเข้ารหัสที่จะปิดเมื่อคุณกดแกน พัลส์สี่เหลี่ยมของความถี่ที่ตั้งไว้โดยใช้ตัวเข้ารหัสที่มีแอมพลิจูด 5 V จะถูกลบออกจากเอาต์พุตของตัวจับเวลา 1 (OCR1A) ในการแสดงความถี่เอาต์พุต จะใช้จอแสดงผล LCD บรรทัดเดียว 16 ตัวอักษร WH1601 ซึ่งเชื่อมต่อกับพอร์ต D ของไมโครคอนโทรลเลอร์ จอแสดงผลก็เป็นเรื่องปกติเช่นกัน โดยอิงตามไดรเวอร์ HD44780 ตัวต้านทาน R1 ปรับคอนทราสต์ของจอแสดงผล การแลกเปลี่ยนข้อมูลระหว่าง MK และจอแสดงผลจัดขึ้นโดยใช้บัส 4 สาย ขั้วต่อ J1 สำหรับการตั้งโปรแกรมในวงจรของ MK

ตอนนี้เกี่ยวกับโปรแกรมสำหรับไมโครคอนโทรลเลอร์

โปรแกรมนี้เขียนในสภาพแวดล้อมการพัฒนา CodeVisionAVR- สภาพแวดล้อมนี้มีไลบรารีสำเร็จรูปสำหรับการทำงานกับจอแสดงผล และการตั้งค่า MK นั้นชัดเจนและเรียบง่าย ฉันใช้เวอร์ชันก่อนเผยแพร่ CodeVisionAVR เวอร์ชัน 3.12.1มันแตกต่างเล็กน้อยในการสร้างโค้ดโดยใช้ วิซาดา.แต่โดยพื้นฐานแล้วทุกอย่างก็เหมือนกัน ด้านล่างนี้อธิบายทุกอย่างโดยใช้ตัวอย่างการทำงานด้วย CodeVisionAVR เวอร์ชัน 3.12.1อินเทอร์เน็ตเต็มไปด้วยลิงก์เพื่อศึกษาสภาพแวดล้อมนี้ เช่น: การเรียนรู้สภาพแวดล้อมการพัฒนาแบบบูรณาการ CodeVisionAVR.

มาเปิดตัว CVAVR กันดีกว่า สร้างโครงการใหม่ ( โครงการใหม่- โปรแกรมจะแจ้งให้คุณใช้ตัวช่วยสร้างการสร้างโครงการ

เราเห็นด้วย. จากนั้นเลือกตระกูลคอนโทรลเลอร์

การกำหนดค่าพอร์ต I/O คุณต้องสร้างเอาต์พุตบิต 1 ของพอร์ต B (PB1) - ความถี่ที่สร้างขึ้นจะถูกนำมา เราปล่อยให้พอร์ต D เหมือนเดิมในตอนนี้ และตั้งค่าพินที่จะอ่านสถานะตัวเข้ารหัส (PC3, PC4, PC5) เป็นอินพุต ( ทิศทางข้อมูล: ใน) และเปิดแหล่งจ่ายไฟภายใน ( ค่าพูลอัพ/เอาท์พุต- ความหมาย ).

ไปที่แท็บ ไทม์เมอร์/เคาน์เตอร์- ที่นี่คุณต้องกำหนดค่าตัวจับเวลา 2 ตัว: ตัวจับเวลา0และ เครื่องจับเวลา1ปล่อยให้ตัวจับเวลาที่เหลือปิดการใช้งาน ( ค่านาฬิกา: หยุดแล้ว).

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

การตั้งค่ามันขึ้นมา เครื่องจับเวลา1- คุณต้องเลือกโหมด ( โหมด) ซีทีซี (ล้างตัวจับเวลาในการเปรียบเทียบ– รีเซ็ตหากมีการแข่งขัน) ในโหมดนี้ เอาต์พุตตัวจับเวลาจะเปลี่ยนเป็นบันทึก 0 ทันทีที่เนื้อหาของการลงทะเบียนการนับ ทีเอ็นที1ตรงกับกรณี OCR1A- โดยการเปลี่ยนค่าในรีจิสเตอร์ OCR1Aเราจะเปลี่ยนความถี่ของพัลส์เอาท์พุต วงจรใช้เอาต์พุต A ของตัวจับเวลา 1 คุณต้องเลือกค่า สลับไปที่การเปรียบเทียบการแข่งขัน(สลับไปยังสถานะอื่นหากมีการแข่งขัน) โดยทั่วไปให้ดูที่ภาพ:

ขั้นตอนต่อไปคือการเชื่อมต่อจอแสดงผล ใน CodeVisionAVRก็เพียงพอที่จะระบุได้ว่าพอร์ตใดของ MK ที่จะเชื่อมต่อจอแสดงผล เลือกพอร์ต D

ตอนนี้คุณต้องสร้างโค้ดโปรแกรม คลิก โปรแกรม -> สร้าง บันทึก และออก

ตอนนี้คุณต้องไปที่การตั้งค่า โครงการ -> กำหนดค่าและตรวจสอบว่าตั้งค่าประเภท MK และความถี่สัญญาณนาฬิกาอย่างถูกต้อง:

โครงการพร้อมสำหรับ CVAVR

(316.0 KiB, 670 ครั้ง)

หากต้องการแฟลชเฟิร์มแวร์ MK คุณต้องมีไฟล์ที่มีนามสกุล .hex- ในโครงการที่เสร็จสิ้นแล้วนี่คือไฟล์ Gen_mega8.hex- มันอยู่ในโฟลเดอร์ ปล่อย/Exe/.

หากคุณต้องการเขียนโปรแกรมตั้งแต่เริ่มต้น โปรเจ็กต์จะมีความคิดเห็นเกี่ยวกับคำสั่งที่จำเป็นสำหรับอะไร หรือคุณสามารถวางโค้ดที่เสร็จแล้วจากไฟล์ได้ gen_mega8.c.และเมื่อเปลี่ยนมันดูว่ามันสะท้อนให้เห็นบนอุปกรณ์ที่เสร็จแล้วอย่างไร ในการสร้างไฟล์เฟิร์มแวร์ MK คุณต้องกดปุ่ม สร้างโครงการไฟล์ที่มีนามสกุล .hexจะถูกสร้างขึ้นเป็นโฟลเดอร์ ปล่อย/Exe/.
บิตฟิวส์ของตัวควบคุมได้รับการตั้งโปรแกรมให้ทำงานกับเครื่องสะท้อนเสียงควอทซ์ 8 MHz ภายนอกตามรูป:

ตอนนี้เกี่ยวกับการควบคุมเครื่องกำเนิดพัลส์

หลังจากที่จ่ายไฟแล้ว จอแสดงผลและตัวเข้ารหัสจะถูกเตรียมใช้งาน (กำหนดค่าหมุดที่เชื่อมต่อตัวเข้ารหัสอยู่) ถัดไป แถบจะพาดผ่านจอแสดงผล (ตัวเลือก "เคล็ดลับ" ซึ่งสร้างขึ้นสำหรับเอาต์พุตการแสดงผลการฝึก) และข้อความ "ปิดเครื่องกำเนิดไฟฟ้า" จะปรากฏขึ้น หลังจากผ่านไป 2 วินาที หน้าจอจะสว่างขึ้น ความถี่เอาต์พุตจะปรากฏขึ้นหลังจากหมุนปุ่มเข้ารหัสและเปลี่ยนตามหน่วยของเฮิรตซ์ เมื่อคุณกดปุ่มตัวเข้ารหัสค้างไว้ประมาณ 0.5 วินาที ข้อความ “ปล่อยปุ่ม” จะแสดงบนหน้าจอ หลังจากนี้ การหมุนปุ่มเข้ารหัส ความถี่จะเปลี่ยนเป็นสิบเฮิรตซ์ หากต้องการเปลี่ยนความถี่เป็นร้อย (พัน) ของเฮิรตซ์ คุณต้องกดปุ่มตัวเข้ารหัสอีกครั้ง (2 ครั้ง) จากนั้นทุกอย่างจะเริ่มต้นอีกครั้งในหน่วยเฮิรตซ์

เพื่อเพิ่มความสามารถในการรับน้ำหนักของเครื่องกำเนิดไฟฟ้าสามารถเปิดเอาต์พุตของ MK ผ่านทรานซิสเตอร์ได้

เกี่ยวกับความแม่นยำของความถี่เอาต์พุต

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

ฉันเพิ่งซื้อมัลติมิเตอร์ที่สะดวกและกะทัดรัดซึ่งสามารถใช้ในการวัดความถี่ (สูงถึง 9.999 MHz) นี่มันคือ รีวิววิดีโอ - และสามารถสั่งซื้อได้ทาง ลิงค์นี้ .

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

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

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

  • การออกแบบวงจรอย่างง่าย ส่วนประกอบที่เข้าถึงได้
  • แผงวงจรพิมพ์ด้านเดียว
  • แหล่งจ่ายไฟหลัก
  • เอาท์พุทความถี่เฉพาะจาก 1 MHz ถึง 8 MHz;
  • เอาต์พุต DDS พร้อมแอมพลิจูดและออฟเซ็ตที่ปรับได้
  • รูปคลื่นเอาท์พุต DDS: คลื่นไซน์, คลื่นสี่เหลี่ยม, ฟันเลื่อย, สามเหลี่ยม, ECG, เสียงรบกวน;
  • จอแสดงผล LCD สองบรรทัดใช้เพื่อแสดงพารามิเตอร์ปัจจุบัน
  • แป้นพิมพ์ห้าปุ่ม
  • ขั้นตอนการปรับความถี่: 1, 10, 10, 1,000, 10,000 Hz;
  • คืนค่าการกำหนดค่าล่าสุดเมื่อเปิดเครื่อง
  • การปรับชดเชย: -5 V ... +5 V;
  • การปรับความกว้าง: 0 ... 10 V;
  • การปรับความถี่: 0 ... 65534 เฮิรตซ์

พื้นฐานของอุปกรณ์หรืออัลกอริธึมการทำงานของไมโครคอนโทรลเลอร์นั้นนำมาจากการพัฒนาเครื่องกำเนิด Jesper Hansen DDS อัลกอริธึมที่นำเสนอได้รับการแก้ไขเล็กน้อยและปรับให้เข้ากับคอมไพเลอร์ WinAVR-GCC

เครื่องกำเนิดสัญญาณมีเอาต์พุตสองช่อง: เอาต์พุตสัญญาณ DDS และเอาต์พุตคลื่นสี่เหลี่ยมความถี่สูง (1 - 8 MHz) ซึ่งสามารถใช้เพื่อ "ฟื้นฟู" ไมโครคอนโทรลเลอร์ด้วยการตั้งค่าบิตฟิวส์ที่ไม่ถูกต้องหรือเพื่อวัตถุประสงค์อื่น

สัญญาณความถี่สูงมาจากไมโครคอนโทรลเลอร์โดยตรงจากพิน OC1A (PD5) สัญญาณ DDS ถูกสร้างขึ้นโดยไมโครคอนโทรลเลอร์โดยใช้สายโซ่ของตัวต้านทาน R2R (DAC) การปรับออฟเซ็ตและแอมพลิจูดสามารถทำได้ด้วยการใช้แอมพลิฟายเออร์ปฏิบัติการพลังงานต่ำ LM358N

บล็อกไดอะแกรมของเครื่องกำเนิด DDS

อย่างที่คุณเห็น ต้องใช้แรงดันไฟฟ้าสามแรงดันไฟฟ้าในการจ่ายไฟให้กับอุปกรณ์: +5 V, +12 V, -12 V แรงดันไฟฟ้า +12 V และ -12 V ใช้สำหรับส่วนอะนาล็อกของอุปกรณ์บนแอมพลิฟายเออร์ในการดำเนินงานเพื่อปรับ ออฟเซ็ตและแอมพลิจูด

แผนภาพวงจรของแหล่งจ่ายไฟแสดงในรูปด้านล่าง

แหล่งจ่ายไฟใช้ตัวปรับแรงดันไฟฟ้า LM7812, LM7805, LM7912 (ตัวปรับแรงดันไฟฟ้าเชิงลบ -12 V)

ลักษณะของแหล่งจ่ายไฟสำหรับเครื่องกำเนิดไฟฟ้า

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

แผนผังของอุปกรณ์

ในการประกอบอุปกรณ์คุณจะต้อง:

  • ไมโครคอนโทรลเลอร์ ATmega16;
  • เครื่องสะท้อนควอทซ์ 16 MHz;
  • ไฟแสดงสถานะ LCD สองบรรทัดมาตรฐานตามคอนโทรลเลอร์ HD44780
  • R2R DAC ทำในรูปแบบของห่วงโซ่ตัวต้านทาน
  • แอมพลิฟายเออร์ปฏิบัติการคู่ LM358;
  • โพเทนชิโอมิเตอร์สองตัว
  • ห้าปุ่ม;
  • ขั้วต่อและซ็อกเก็ตหลายอัน

การเขียนแบบ PCB

ส่วนประกอบที่ใช้ ยกเว้นไมโครคอนโทรลเลอร์และตัวเชื่อมต่อ อยู่ในแพ็คเกจ Surface Mount (SMD)

อุปกรณ์ติดตั้งอยู่ในตัวเครื่อง

ทดสอบการทำงาน

ดาวน์โหลด

แผนภาพวงจรและแผงวงจรพิมพ์ (รูปแบบ Eagle) -
โครงการจำลองในสภาพแวดล้อม Proteus -

  • ใครพยายามกอง?
  • ดูหัวข้อ Functional Generator เริ่มตั้งแต่โพสต์ที่ 4 ที่มีการพูดคุยถึงการออกแบบนี้ และผู้ใช้ QED และ Cuco ได้รวบรวมเครื่องกำเนิดไฟฟ้านี้แล้ว และได้รับการทดสอบใน Proteus - ใช้งานได้
  • ใครช่วยกรุณาบอกฉันรายการส่วนประกอบสำหรับแหล่งจ่ายไฟที่ใช้ในรุ่นแรก (http://www..html?di=69926) เครื่องกำเนิดไฟฟ้า โดยเฉพาะผมสนใจว่าหม้อแปลงและวงจรเรียงกระแสที่ผู้เขียนใช้รุ่นอะไร หรืออย่างน้อยก็อะนาล็อกที่สมบูรณ์ จากคำขอนั้นชัดเจนว่าฉันไม่เก่งด้านวิศวกรรมไฟฟ้า แต่ฉันคิดว่าฉันสามารถประกอบมันได้โดยไม่ต้องเจาะลึกถึงเรื่องนี้ เพียงเหตุสุดวิสัย ทุกอย่างชัดเจนด้วยคาปาซิเตอร์และสเตบิไลเซอร์ 3 ตัว จริงๆ แล้วไดอะแกรมนี้แนบมาด้วย
  • หม้อแปลงไฟฟ้ากำลังต่ำใด ๆ ที่มีขดลวดทุติยภูมิสองเส้นที่มีแรงดันเอาต์พุต 15 V (ตัวแปร) โดยเฉพาะอย่างยิ่ง ผู้เขียนใช้หม้อแปลง TS6/47 (2x15 V/2x0.25 A) ไดโอดบริดจ์กำลังต่ำก็ใช้ได้เช่นกัน รูปภาพในบทความแสดงทั้งหม้อแปลงและสะพานไดโอด
  • แต่โปรดบอกฉันว่าควรมีการเชื่อมต่อแบบใดระหว่างเอาต์พุตรองของหม้อแปลงและวงจรเรียงกระแสโดยคำนึงถึงวงจรจ่ายไฟของผู้เขียน: สับสน: ฉันหมายถึงถ้าเอาต์พุตของหม้อแปลงเป็น 15V (ฉันคิดว่า ฉันพบสิ่งนี้ - TPS-7.2 (2x15V)ซิม (7.2W) 15Vx2_7.2W_sim (0.24A)x2 - 160.00 รูเบิล) แล้ววงจรเรียงกระแสมีไว้เพื่ออะไร? และในกรณีมีไฟ 12V ที่เอาต์พุตของหม้อแปลง?
  • พูดตามตรงฉันไม่ค่อยเข้าใจคำถามนัก... หม้อแปลงที่คุณระบุน่าจะเหมาะสม... สะพานก็โอเค ฉันคิดว่าน่าจะเหมาะกับตัวอย่าง DB106
  • Vadzz ขอบคุณมากสำหรับคำแนะนำ หาก DB106 เหมาะสม W08 ซึ่งมีพารามิเตอร์ที่คล้ายกันก็จะเหมาะสม เป็นอย่างนั้นเหรอ? พูดง่ายๆ ก็คือมันเป็นสิ่งที่คุณมีโอกาส (ปรารถนา) ที่จะซื้อนั่นเอง และฉันยังไม่สามารถหาค่าของตัวเก็บประจุในแผนภาพของผู้เขียนได้โปรดบอกฉันด้วย ทั้งหมดอยู่ใน nF (นาโนฟารัด-nF) หรือไม่
  • W08 ค่อนข้างเหมาะสม ตัวเก็บประจุอยู่ในวงจรจ่ายไฟหรืออยู่ในวงจรเครื่องกำเนิดไฟฟ้าเองหรือไม่? หากมีแหล่งจ่ายไฟ ตัวเก็บประจุทั้งหมดจะอยู่ในหน่วยไมโครฟารัด (2000 µF, 100 µF, 0.1 µF) ในความคิดของฉัน ในวงจรเครื่องกำเนิดไฟฟ้า มีคอนเดนเซอร์เพียงสองตัวในชุดควบคุมควอตซ์ขนาด 18 พิโคฟารัด
  • Vadzz ขอบคุณอย่างไม่มีที่สิ้นสุด ดูเหมือนว่าคำถามทั้งหมดได้รับการแก้ไขแล้ว แผนภาพวงจรของเครื่องกำเนิดไฟฟ้าดูเหมือนจะง่ายกว่าเล็กน้อย (มีไฟล์ EAGLE) ฉันจะทำให้มันเป็นจริง หากทุกอย่างเป็นไปด้วยดี ฉันจะลองติดแผงวงจรพิมพ์ (รูปแบบ Eagle) สำหรับแหล่งจ่ายไฟ
  • ทุกอย่างควรจะได้ผลสำหรับคุณอย่างแน่นอน... โพสต์ภาพวาดของแผงวงจรพิมพ์มันจะเป็นประโยชน์กับใครบางคนอย่างแน่นอน...
  • ฉันบัดกรีมันและกำลังใช้มัน พูดตามตรงมีปัญหาหลายประการเกิดขึ้นระหว่างทาง: 1) ข้อเสียเปรียบ - เมื่อเปิดเครื่องกำเนิดไฟฟ้าไม่สามารถปรับความถี่ได้ เหล่านั้น. หากคุณต้องการเปลี่ยนความถี่ ให้ปิดการสร้างสัญญาณก่อน จากนั้นจึงปรับความถี่ จากนั้นจึงเปิดการสร้างสัญญาณอีกครั้ง ซึ่งมักจะไม่สะดวกเมื่อคุณต้องการติดตามปฏิกิริยาของอุปกรณ์ที่กำลังปรับให้เปลี่ยนความถี่อย่างราบรื่น ตัวอย่างเช่น หากต้องการควบคุมความเร็วของสเต็ปเปอร์ คุณเพียงแค่ต้องปรับความถี่อย่างราบรื่นเท่านั้น 2) ข้อเสียเปรียบ - EEPROM ล้มเหลวสองครั้ง ผู้เขียนได้จัดให้มีการจัดเก็บโหมดการตั้งค่าไว้ใน EEPROM แต่ไม่จำเป็นเลย จะดีกว่าที่จะไม่จำอะไรและไม่ใช้เลย หรือสุดท้าย หาก EEPROM เสียหาย ก็จะโหลดการตั้งค่า "เริ่มต้น" จาก FLASH แต่มันจะน่าเชื่อถือกว่า โดยรวมแล้วฉันพอใจกับงานที่เหลือ เราขอให้ผู้ที่เข้าใจการเขียนโปรแกรมสำหรับ AVR แก้ไขข้อบกพร่องทั้งสองนี้
  • เกี่ยวกับการปรับความถี่ทันที คุณมักจะต้องใช้ DMA ซึ่งไม่มีในไมโครคอนโทรลเลอร์ดังกล่าว บางทีฉันอาจผิด... ฉันต้องดูซอร์สโค้ดของเครื่องกำเนิด... สำหรับ "EEPROM แมลงวัน" - แน่นอนว่าการค้นหาสาเหตุนั้นน่าสนใจ แต่ฉันคิดว่าสองครั้งไม่ใช่ตัวบ่งชี้ .
  • เครื่องกำเนิดไฟฟ้าสำเร็จรูปสำหรับ ad9850(51) อยู่ที่นี่: http://radiokit.tiu.ru/product_list/group_802113
  • เครื่องปั่นไฟสำเร็จรูปบน AD9850 เป็นอุปกรณ์ที่ดี แต่เมื่อคุณประกอบและติดตั้งด้วยตัวเองก็เป็นอีกเรื่องหนึ่ง...
  • การทำลายข้อมูลใน EEPROM จะทำให้เครื่องกำเนิดไฟฟ้าใช้งานไม่ได้โดยสมบูรณ์ ปัญหาอันไม่พึงประสงค์อย่างยิ่งในช่วงเวลาที่ไม่เหมาะสมที่สุด ฉันมักจะเก็บโปรแกรมคอนโทรลเลอร์สำรองไว้ในกล่องเครื่องกำเนิดไฟฟ้า แต่นี่ไม่ใช่ทางออกจากสถานการณ์ ทำไมไม่จัดให้มีการบันทึกเฉพาะข้อมูลปัจจุบันซึ่งจะไม่ส่งผลกระทบต่อประสิทธิภาพโดยรวมหาก EEPROM ถูกทำลาย? หากข้อมูลสูญหายจาก Flash เราจะโหลดการตั้งค่าเริ่มต้น ทุกอย่างที่เกี่ยวข้องกับประสิทธิภาพของโปรแกรมจะถูกจัดเก็บไว้ใน Flash มันจะทำงานได้อย่างน่าเชื่อถือมากขึ้นด้วยวิธีนี้ ฉันแนะนำให้โพสต์รายการลิงก์กับโปรเจ็กต์ตัวสร้างอื่นๆ บน AVR
  • ที่นี่หลายคนประกอบเครื่องกำเนิดไฟฟ้านี้ (ตามคำพูดของพวกเขา) พวกเขาไม่ได้พูดอะไรเกี่ยวกับเรื่องนี้ ไม่ว่าพวกเขาจะมีปัญหาดังกล่าวหรือไม่ก็ตาม...
  • บอกฉันว่าเป็นไปได้ไหมที่จะเปลี่ยนเฉพาะความถี่หรือรอบการทำงานในเครื่องกำเนิดไฟฟ้านี้?
  • คุณลักษณะของเครื่องกำเนิดไฟฟ้าระบุว่าคุณสามารถเปลี่ยนความถี่ได้ แต่น่าเสียดายที่ไม่สามารถเปลี่ยนข้อจำกัดได้...
  • เพื่อนๆ บอกฉันเกี่ยวกับจัมเปอร์ RESET หน่อย - เมื่อใดควรเปิดและเมื่อใดควรถอดออก..... ขอบคุณ
  • สถานะปกติของจัมเปอร์เปิดอยู่ และนี่น่าจะไม่ใช่จัมเปอร์ แต่เป็นตัวเชื่อมต่อสำหรับเชื่อมต่อปุ่มซึ่งคุณสามารถรีเซ็ต MK ได้หากเกิดอะไรขึ้นกะทันหัน...
อุปกรณ์ที่นำเสนอคือเครื่องกำเนิดพัลส์สี่เหลี่ยมที่ควบคุมผ่านพอร์ตอนุกรมจากคอมพิวเตอร์ มันถูกสร้างขึ้นเพื่อแก้ไขปัญหาเฉพาะอย่างแท้จริงในหนึ่งวันและอาจมีข้อผิดพลาดหรือข้อบกพร่อง ฉันไม่สามารถรับประกันได้ว่าคุณจะได้รับเงินมากมายจากการขายมัน แต่ฟังก์ชั่นพื้นฐานทั้งหมดได้รับการทดสอบแล้ว
ความถี่สูงสุดที่สร้างโดยเครื่องกำเนิดไฟฟ้าคือมากกว่า 13 kHz เล็กน้อย และต่ำสุดคือน้อยกว่า 0.01 Hz (สำหรับความถี่ควอตซ์ออสซิลเลเตอร์ที่ 4 MHz)

โครงการ

โครงการนี้ค่อนข้างง่าย มันถูกประกอบขึ้นบนพื้นฐานของไมโครคอนโทรลเลอร์ PIC16C63A สัญญาณจะถูกนำมาจากพินสองตัวสถานะจะแตกต่างกันเสมอ หากไม่มีโหลด ระดับหนึ่งจะแตกต่างจากแรงดันไฟฟ้าที่จ่ายน้อยกว่า 0.1 โวลต์ ระดับศูนย์ก็ต่ำมากเช่นกัน หมุดได้รับการออกแบบสำหรับกระแสสูงถึง 30 mA ชิป MAX232 ใช้ในการแปลงระดับอินเทอร์เฟซ RS232 เป็นระดับ TTL ในการจ่ายไฟให้กับอุปกรณ์คุณต้องมีแหล่งจ่ายไฟ 5 โวลต์ซึ่งจะไม่แสดงในรูป

โปรแกรม

ในการตั้งค่าพารามิเตอร์ของสัญญาณที่ผลิตโดยไมโครคอนโทรลเลอร์คุณต้องใช้โปรแกรมพิเศษ โปรแกรมนี้เขียนขึ้นสำหรับ Windows OS ด้านล่างคือมุมมองของหน้าต่าง

ส่วนควบคุมได้รับการออกแบบมาเพื่อตั้งค่าความถี่ของสัญญาณเอาท์พุต อัตราส่วนของความยาวของครึ่งรอบบวกและลบ สามารถจำกัดจำนวนพัลส์ที่ออกได้ (1...2 23 -1) เนื่องจากโปรแกรมในไมโครคอนโทรลเลอร์ไม่อนุญาตให้ส่งสัญญาณความถี่ใด ๆ หลังจากกดปุ่ม "ส่ง" ค่าความถี่ที่ใกล้ที่สุดที่เป็นไปได้จะถูกคำนวณและจะถูกเขียนในช่องความถี่แทนที่จะเป็นค่าที่ป้อนจากแป้นพิมพ์ ฟิลด์ "ระยะเวลา 1" และ "ระยะเวลา 0" มีระยะเวลาของสัญญาณในหน่วยที่กำหนดเองซึ่งโปรแกรมทำงานใน PIC ซึ่งเป็นจำนวนเต็มที่มากกว่าศูนย์และน้อยกว่า 2 24 . การตั้งค่ามีไว้เพื่อเลือกหมายเลขพอร์ตอนุกรมและความถี่ของคริสตัลควอตซ์ที่ใช้

ที่มา: svv.on.ufanet.ru


แผนภาพนี้มักถูกดูเช่นกัน:

ผู้อ่านนิตยสารรู้จักเครื่องกำเนิดการวัดซึ่งตั้งค่าความถี่ที่ต้องการโดยใช้แป้นพิมพ์ (ดูตัวอย่างบทความโดย Piskaev A. “ เครื่องวัดความถี่ - เครื่องกำเนิด - นาฬิกา” ใน "วิทยุ", 2545, ไม่ .7, หน้า 31, 32). ตามกฎแล้วอุปกรณ์เหล่านี้ถูกสร้างขึ้นบนไมโครคอนโทรลเลอร์ช่วงของความถี่ที่สร้างขึ้นนั้นถูกจำกัดไว้ที่หลายเมกะเฮิรตซ์และการรับค่าความถี่ที่แน่นอนนั้นเป็นไปไม่ได้ เครื่องกำเนิดที่อธิบายในบทความยังมีไมโครคอนโทรลเลอร์ แต่ใช้เพื่อควบคุมไมโครวงจรพิเศษเท่านั้น - เครื่องสังเคราะห์ความถี่ AD9850 การใช้ไมโครวงจรนี้ทำให้สามารถขยายช่วงความถี่ที่สร้างขึ้นจากเศษส่วนของเฮิรตซ์เป็น 60 MHz ซึ่งภายในนั้นสามารถรับค่าความถี่ใด ๆ ที่มีความแม่นยำ 1 Hz

โดยจะสำรวจคีย์บอร์ด SB1-SB16 แสดงข้อมูลบนตัวบ่งชี้ LCD HG1 คำนวณค่ารหัสความถี่ และส่งผ่านอินเทอร์เฟซแบบอนุกรมไปยังซินธิไซเซอร์ DD2 ตัวส่งสัญญาณเสียง HA1 ทำหน้าที่ยืนยันการกดปุ่มบนคีย์บอร์ด ชิป AD9850 (DD2) ใช้ในการเชื่อมต่อมาตรฐาน ตัวกรอง Z1 เปิดอยู่ที่เอาต์พุตของ DAC หลังจากตัวกรอง สัญญาณไซน์จะถูกส่งไปยังซ็อกเก็ต XW2 และอินพุตของตัวเปรียบเทียบของชิป DD2 (พิน 16) จากเอาต์พุตของอันหลัง สัญญาณสี่เหลี่ยมจะถูกส่งไปยังซ็อกเก็ต XW1 ออสซิลเลเตอร์ควอตซ์ G1 ใช้เป็นเครื่องกำเนิดสัญญาณนาฬิกาสำหรับ DDS ตัวต้านทานทริมเมอร์ R7 ปรับคอนทราสต์ของภาพบนตัวบ่งชี้ HG1
หลังจากรีเซ็ตไมโครคอนโทรลเลอร์แล้ว ตัวบ่งชี้ LCD HG1 จะได้รับการกำหนดค่าสำหรับโหมดการแลกเปลี่ยนบัส 4 บิต ซึ่งจำเป็นเพื่อลดจำนวนบรรทัดอินพุต/เอาต์พุตที่จำเป็นสำหรับการบันทึกข้อมูล



เครื่องกำเนิดไฟฟ้าถูกควบคุมโดยใช้แป้นพิมพ์ประกอบด้วยปุ่ม SB1-SB16 เนื่องจากสายอินพุตพอร์ต B ทั้งหมดเชื่อมต่อกับแหล่งจ่ายไฟผ่านตัวต้านทาน จึงไม่จำเป็นต้องมีตัวต้านทานภายนอกเพื่อดึงพอร์ต RB4 - RB7 เข้ากับสายไฟ ตัวต้านทาน R3-R6 ปกป้องเอาต์พุตของไมโครคอนโทรลเลอร์จากการโอเวอร์โหลดเมื่อมีการกดปุ่มหลายปุ่มพร้อมกันโดยไม่ตั้งใจ
ความถี่ที่ต้องการถูกตั้งค่าจากแป้นพิมพ์ ในการดำเนินการนี้ให้คลิกที่ปุ่มที่มีตัวเลขที่เกี่ยวข้องป้อนค่าที่ต้องการ (เป็นเฮิรตซ์) แล้วกดปุ่ม "*" หากความถี่ไม่เกินค่าสูงสุดที่อนุญาต ข้อความ "ตกลง" จะปรากฏบนตัวบ่งชี้ในช่วงเวลาสั้น ๆ และเครื่องกำเนิดไฟฟ้าจะเข้าสู่โหมดการทำงานและหากเกิน - ข้อความ "ข้อผิดพลาด" ในกรณีนี้คุณต้องกดปุ่ม "C" ("รีเซ็ต") แล้วป้อนค่าที่ถูกต้องอีกครั้ง พวกเขาทำเช่นเดียวกันหากมีข้อผิดพลาดระหว่างกระบวนการอินพุตความถี่ การกดปุ่มนี้สองครั้งจะทำให้อุปกรณ์เข้าสู่โหมดการทำงานตามค่าความถี่ที่ตั้งไว้ก่อนหน้านี้
ในโหมดการทำงาน สัญลักษณ์ดอกจันจะกะพริบที่บริเวณด้านขวาสุดของตัวบ่งชี้ หากป้อนค่าความถี่ปัจจุบันจากชุดควบคุมภายนอก (เช่นจากคอมพิวเตอร์) หากต้องการกลับสู่ความถี่ที่แสดงบนตัวบ่งชี้เพียงกดปุ่ม "*"
ปุ่ม "U" (ขึ้น - ขึ้น) และ "D" (ลง - ลง) ช่วยให้คุณสามารถเปลี่ยนความถี่เอาต์พุตของเครื่องกำเนิดไฟฟ้าทีละขั้นตอนโดยเพิ่มหรือลดค่าตำแหน่งทศนิยมทีละหนึ่งตามลำดับ ตำแหน่งทศนิยมที่ต้องการจะถูกเลือกโดยการเลื่อนเคอร์เซอร์โดยใช้ปุ่ม "L" (ซ้าย - ซ้าย) และ "R" (ขวา - ขวา)
เมื่อคุณกดปุ่ม "*" ค่าความถี่และตำแหน่งเคอร์เซอร์จะถูกบันทึกไว้ในหน่วยความจำแบบไม่ลบเลือนของไมโครคอนโทรลเลอร์ เนื่องจากโหมดการทำงานที่ถูกขัดจังหวะจะถูกกู้คืนโดยอัตโนมัติในครั้งถัดไปที่เปิดเครื่อง เนื่องจากความสามารถในการประมวลผลของไมโครคอนโทรลเลอร์มีจำกัด ความถี่เอาต์พุตจึงถูกตั้งค่าด้วยความแม่นยำประมาณ 1 Hz ซึ่งเพียงพอสำหรับกรณีส่วนใหญ่ เพื่อให้ตระหนักถึงความสามารถของซินธิไซเซอร์ได้อย่างเต็มที่ สามารถควบคุมได้โดยใช้พีซี ในการดำเนินการนี้จะต้องแก้ไขเครื่องกำเนิดโดยการเพิ่มหน่วยซึ่งไดอะแกรมจะแสดงในรูปที่ 1 3. เชื่อมต่อพีซี (หรืออุปกรณ์ควบคุมอื่น ๆ ) เข้ากับเต้ารับ
XS1. เมื่อระดับลอจิกที่อินพุตที่อยู่ A ต่ำ มัลติเพล็กเซอร์ของชิป DD3 จะเชื่อมต่ออินพุตควบคุมซินธิไซเซอร์กับไมโครคอนโทรลเลอร์ DD1 และเมื่อระดับลอจิกสูง ไปยังอุปกรณ์ภายนอก สัญญาณควบคุมจะถูกส่งผ่านหน้าสัมผัส "ENABLE" ของช่องเสียบ XS1 ตัวต้านทาน R19 ให้ระดับลอจิกต่ำที่อินพุตที่อยู่ของ DD3 เมื่อไม่ได้เชื่อมต่ออุปกรณ์ควบคุม
เครื่องกำเนิดไฟฟ้าถูกประกอบและทดสอบบนเขียงหั่นขนม หากคุณไม่สามารถซื้อบอร์ดสำหรับตัวเรือน SSOP สำหรับชิป DD2 ได้ คุณสามารถใช้ลวดกระป๋องสั้น (ยาว 10-15 มม.) ที่มีเส้นผ่านศูนย์กลาง 0.2 มม. เพื่อเชื่อมต่อพินเข้ากับแผ่นอิเล็กโทรดที่เกี่ยวข้อง พิน 1,2,5,10,19, 24, 26, 27, 28 เชื่อมต่อกับสายไฟทั่วไปโดยมีส่วนยาวอีกหนึ่งส่วน
ไฟแสดงสถานะ LCD HG1 - 1TM1601 (บรรทัดเดียว 16 ตัวอักษรพร้อมคอนโทรลเลอร์ในตัว) HA1 เป็นเครื่องส่งเสียงแบบเพียโซอิเล็กทริกที่มีเครื่องกำเนิดไฟฟ้าในตัวซึ่งออกแบบมาสำหรับแรงดันไฟฟ้า 5 V ในฐานะเครื่องกำเนิดสัญญาณนาฬิกา (G1) คุณสามารถใช้ไมโครแอสเซมบลีของออสซิลเลเตอร์ควอทซ์ที่มีความถี่สูงถึง 125 MHz เพื่อใช้หน่วยที่คล้ายกันกับระบบรักษาเสถียรภาพของควอตซ์และบนองค์ประกอบที่แยกจากกัน
โปรแกรมควบคุมของไมโครคอนโทรลเลอร์ขึ้นอยู่กับความถี่ของเครื่องกำเนิดสัญญาณนาฬิกา
เมื่อเขียนโปรแกรมไมโครคอนโทรลเลอร์ค่าบิตต่อไปนี้จะถูกตั้งค่าในคำกำหนดค่า: ประเภทตัวสร้าง (OSC) - RC ตัวจับเวลาจ้องจับผิด (WDT) - ปิดใช้งาน, เปิดใช้งานการหน่วงเวลาในการเปิดเครื่อง (PWRTE) - เปิดใช้งาน