สารบัญ:

EZProbe โพรบลอจิกที่ใช้ EZ430: 4 ขั้นตอน
EZProbe โพรบลอจิกที่ใช้ EZ430: 4 ขั้นตอน

วีดีโอ: EZProbe โพรบลอจิกที่ใช้ EZ430: 4 ขั้นตอน

วีดีโอ: EZProbe โพรบลอจิกที่ใช้ EZ430: 4 ขั้นตอน
วีดีโอ: Logic Probe and Logic Pulser 2024, กรกฎาคม
Anonim
EZProbe โพรบลอจิกที่ใช้ EZ430
EZProbe โพรบลอจิกที่ใช้ EZ430

นี่เป็นโครงการโพรบลอจิกอย่างง่ายที่ใช้ดองเกิล TI EZ430 ฉันใช้ประโยชน์จากข้อเสนอฟรีสำหรับ ez430s สองสามตัวจาก TI ในเดือนกันยายน 2010 ซึ่งสะดวกและสนุกมากในการลองใช้ตัวอย่างโค้ดขนาดเล็กและดูไฟ LED กะพริบ ตั้งแต่นั้นมาพวกเขาได้นอนรอบโต๊ะของฉันและฉันต้องหาอะไรให้พวกเขา และฉันต้องการหยุดคนมาขอยืม "เมมโมรี่สติ๊ก" ของฉัน นี่ไม่ใช่เมมโมรี่สติ๊ก 16 บิต MCU พร้อม ADC หลายช่องสัญญาณ หน่วยความจำการเขียนโปรแกรม 2K ที่เพียงพอและทำงานสูงสุด 16 เมกะเฮิร์ตซ์ ทั้งหมดเต็มไปด้วยบอร์ดอินเทอร์เฟซการเขียนโปรแกรมการดีบักในแพ็คเกจอุปกรณ์ usb ที่ดี เป้าหมายการออกแบบหลักของฉันคือการจำกัดการแทรกแซงของฉันให้เหลือเพียง ez430 รุ่นดั้งเดิม โดยที่ฉันไม่ต้องการเปลี่ยนแปลงทางกายภาพมากเกินไป และฉันต้องการคงไว้ซึ่งฟังก์ชันการเขียนโปรแกรม/การดีบักสำหรับโครงการกระดานเป้าหมายอื่นๆ ทั้งหมดนี้ในขณะที่ให้บริการเพื่อวัตถุประสงค์ที่เป็นประโยชน์เพิ่มเติม นี่เป็นโครงการ linux ตามปกติ ฉันได้ให้ความสนใจกับความรู้ที่ดีที่สุดของฉันในการจัดเตรียมเพื่อให้สามารถสร้างขึ้นภายใต้หน้าต่างได้ แต่ฉันไม่มีเวลาและทรัพยากรที่จะลองทุกอย่างภายใต้หน้าต่าง โครงการอิเล็กทรอนิกส์ส่วนใหญ่ของฉันทำบนเขียงหั่นขนมขนาดเล็กมาก และฉันมักจะทำงานในพื้นที่แคบ (โต๊ะในครัว โต๊ะที่ยืมมาครึ่งหนึ่ง ฯลฯ) มีหลายกรณีที่ฉันต้องตรวจสอบระดับตรรกะของวงจร และฉันใช้มัลติมิเตอร์ (ขนาดก้อนอิฐ) เพื่อตรวจสอบสิ่งต่างๆ มันทำให้ฉันรำคาญอยู่เสมอเพราะโปรเจ็กต์ของฉันมีขนาดเล็กกว่ามัลติมิเตอร์มาก และฉันพบว่ามันเข้ามาขวางทางฉันเสมอ ฉันต้องการทางเลือกอื่น โพรบลอจิกขนาดเล็กจะทำได้ ez430 สมบูรณ์แบบสำหรับงานนี้ ขั้นแรก มันมีรูปร่างเหมือนโพรบแล้ว ฉันแค่ต้องตอกตะปูและไฟ LED ดังที่ได้กล่าวไว้ก่อนหน้านี้ ฉันต้องการทำให้โปรเจ็กต์นี้เรียบง่ายและไม่ทำลายล้าง และฉันใช้ประโยชน์จากสิ่งที่มีอยู่แล้ว แทนที่จะสร้างโครงการบน pcb / pref-board ฉันสร้างสิ่งนี้บนบอร์ดเป้าหมาย msp430f2012 โดยใช้ส่วนหัว 14 พินผ่านรูเป็นพื้นที่สร้างต้นแบบของฉัน นี่คือที่ที่ไฟ LED ขนาดเล็กไป ฉันไม่ต้องการเจาะรูบนปลอกพลาสติก ฉันไม่ต้องการใช้ลวดมากเกินไปหรือเพิ่มจุดสัมผัสเพิ่มเติม ทั้งหมดที่ฉันต้องการคือหน้าสัมผัสโพรบ io และอินพุตปุ่มสำหรับการเลือกฟังก์ชัน บวก gnd และ vcc การเชื่อมต่อ usb ดูสมบูรณ์แบบสำหรับงานนี้ ฉันจะจ่ายไฟให้กับโพรบผ่าน usb (วงจรโปรแกรมเมอร์จะควบคุมศักย์ไฟฟ้าประมาณ 3v สำหรับฉัน) และใช้การเชื่อมต่อ D+ และ D- usb สำหรับโพรบและสวิตช์ของฉัน เนื่องจาก ez430 เป็นอุปกรณ์ทาส / ไคลเอนต์ เมื่อเริ่มต้น มันจะไม่ทำอะไรเลย ยกเว้นการดึงขึ้นบน D+ (เพื่อระบุว่าเป็น usb "ความเร็วสูง") ฉันใช้ D- ลอยตัวเป็นโพรบ io ของฉันและ D+ เป็นอินพุตปุ่มสัมผัสของฉัน (ฉันไม่จำเป็นต้องตั้งค่าตัวต้านทานแบบดึงขึ้นสำหรับสิ่งนั้น มันมีอยู่แล้ว) ข้อมูลเพิ่มเติมสามารถพบได้ที่นี่

ขั้นตอนที่ 1: คุณสมบัติและแอปพลิเคชัน

คุณสมบัติและการใช้งาน
คุณสมบัติและการใช้งาน

คุณสมบัติ * จ่ายไฟจากวงจรผ่านขั้วต่อ usb * โหมดการทำงาน 3 โหมดหมุนระหว่างการอ่านลอจิก, เอาต์พุตพัลส์, เอาต์พุต PWM * กดปุ่มยาว (ประมาณ 1.5 วินาที) หมุนผ่านโหมดการทำงาน 3 โหมด * p1.0 ไฟ LED สีเขียวเดิมเป็นตัวบ่งชี้โหมด ปิด - โพรบ เปิด - เอาต์พุต กะพริบ - pwmlogic โพรบ * โพรบลอจิกสีแดง - สวัสดี สีเขียว - ต่ำ ไม่มีลอย * โพรบลอจิกสีแดง / เขียวกะพริบเมื่ออ่านพัลส์ต่อเนื่อง > 100Hz * ไฟ LED สีเหลือง 4 ดวงแสดงความถี่ที่ตรวจพบใน 8 ขั้นตอน กะพริบเป็นสีเหลือง ระบุช่วงความถี่สูง (เช่น ขั้นตอนที่ 5-8) * แสดงความถี่พัลส์ที่ตรวจพบสำหรับ 100hz+, 500hz+, 1khz+, 5khz+, 10khz+, 50khz+, 100khz+, 500khz+ * สำหรับการระเบิดของพัลส์เดี่ยวแบบไม่ต่อเนื่อง ไฟ LED สีแดง / สีเขียวจะติดค้างและตามมา การนับพัลส์จะแสดงแบบค่อยเป็นค่อยไปบนไฟ LED จะนับได้ถึง 8 เอาต์พุตพัลส์ต่อเนื่องแบบพัลส์ การตั้งค่าความถี่ * ระบุโดย p1.0 ไฟ LED สีเขียวเดิมติดสว่าง * ไฟ LED สีเหลือง 4 ดวงแสดงความถี่พัลส์เอาต์พุตใน 9 ขั้นตอน ไฟสีเหลืองกะพริบแสดงว่ามีช่วงความถี่สูง (เช่น ขั้นตอนที่ 5-8) * ความถี่พัลส์ เอาต์พุตสำหรับ 100hz, 500hz, 1khz, 5khz, 10khz, 50khz, 100khz, 500khz, 1mhz * กดปุ่มสั้น ๆ เพื่อหมุนการตั้งค่าความถี่ที่แตกต่างกัน 9 แบบ เอาต์พุตพัลส์ต่อเนื่อง การตั้งค่า pwm * ระบุโดย p1.0 ไฟ LED สีเขียวกะพริบเป็นต้นฉบับ * เหมือนกับก่อนหน้า โหมดการทำงาน ยกเว้นการแสดงค่า pwm (และตั้งค่า) แทนความถี่ * ไฟ LED สีเหลือง 4 ดวงแสดงเปอร์เซ็นต์ pwm เอาต์พุตใน 9 ขั้นตอน ไฟสีเหลืองกะพริบแสดงถึงช่วงความถี่สูง (เช่น ขั้นตอนที่ 5-8) * pwm เปอร์เซ็นต์สำหรับ 0%, 12.5%, 25%, 37.5%, 50%, 62.5%, 75%, 87.5%, 100% * กดปุ่มสั้น ๆ หมุนการตั้งค่า pwm 9 แบบที่แตกต่างกัน แผนผังคือ ประกอบด้วยสองส่วนซึ่งเชื่อมต่อผ่านขั้วต่อ usb คู่หนึ่ง แผนผังด้านซ้ายแสดงส่วนเพิ่มเติมของดองเกิล EZ430 พร้อมบอร์ดเป้าหมาย F2012 แผนผังด้านขวาคือหัวโพรบลอจิกและจะต้องสร้างใหม่ตั้งแต่ต้น

ขั้นตอนที่ 2: รายการชิ้นส่วนและการก่อสร้าง

รายการชิ้นส่วนและการก่อสร้าง
รายการชิ้นส่วนและการก่อสร้าง
รายการชิ้นส่วนและการก่อสร้าง
รายการชิ้นส่วนและการก่อสร้าง

รายการชิ้นส่วน * ti ez430-f2013 (ใช้ส่วนโปรแกรมเมอร์) * บอร์ดเป้าหมาย ti ez430 f2012 * ไฟ LED 1.2 x 0.8 มม. สีเหลือง 4 อัน สีแดง 1 อัน สีเขียว 1 อัน * เล็บหนึ่งอัน ประมาณ 3/4 นิ้ว หัวแบน * ปุ่มสัมผัสหนึ่งปุ่ม * ฝาครอบจากซุปเปอร์กาว 1 กรัม (จำเป็นต้องใช้ซุปเปอร์กาวด้วย) * ขั้วต่อ usb ชนิด a (ด้านพีซี) * การสร้างสายไฟ ฉันใช้บอร์ดเป้าหมาย msp430f2012 แทนบอร์ดเป้าหมาย f2013 ที่มาพร้อมกับดองเกิล ez430 เพราะฉันมี บางส่วนเหล่านี้ ถ้าคุณต้องการใช้กระดานเป้าหมายเดิมของ f2013 คุณจะต้องเขียนโค้ดส่วนเล็กๆ ใหม่อีกครั้งซึ่งใช้ adc เพื่อตรวจหาสถานะลอยตัว f2013 มี adc 16 บิตล่วงหน้ามากกว่า 10 บิตที่ฉันใช้ในการก่อสร้าง คุณจะต้องใช้ปลายบัดกรีที่ละเอียดและหัวแร้งควบคุมอุณหภูมิ (หรือสถานี) ฉันไม่สามารถจินตนาการได้ว่าใครจะบัดกรีไฟ LED ด้วยเตารีดธรรมดาได้ วิธีที่ฉันทำคือการชุบแผ่นเฮดเดอร์แพดก่อน จากนั้นจึงใช้ทวีตเตอร์แบบละเอียดเพื่อวางไฟ LED smd หลังจากจัดแนวไฟ LED สีแดงและสีเหลืองแล้ว ฉันดีบุกขาข้างหนึ่งของตัวต้านทาน 1/8 วัตต์และบัดกรีที่บน pcb ปลายด้านหนึ่งไปที่ gnd ทั่วไป ไฟ LED สีเขียวจะไปล่าสุด มันแน่นมากและคุณต้องการเพียงแค่ใช้บัดกรีให้มากพอที่จะติดสิ่งต่างๆเข้าด้วยกัน ฟลักซ์ก็เป็นสิ่งจำเป็นเช่นกัน ใช้มัลติมิเตอร์เพื่อทดสอบข้อต่อของคุณ จากนั้นคุณจะต้องเชื่อมสายปุ่มและสายโพรบ ฉันใช้ cat5e cut offs แต่สายไฟที่มีเกจสูงจะทำได้ ดังแสดงในแผนผังและรูปภาพ พวกมันวิ่งจากบอร์ดเป้าหมายไปยังขั้วต่อ usb คงจะดีถ้าฉันสามารถหาตัวเชื่อมต่อขนาดเล็กเพื่อที่พวกเขาจะได้เลิกยุ่งได้ตามใจชอบ แต่ตอนนี้จะทำได้

ขั้นตอนที่ 3: การก่อสร้างหัวโพรบ

การก่อสร้างหัวโพรบ
การก่อสร้างหัวโพรบ

ที่ด้านล่างคุณจะเห็นบิตที่ฉันใช้ในการสร้าง (ซุปเปอร์กาว) การประกอบหัวโพรบ ความคิดของฉันคือการสร้างบนตัวเชื่อมต่อ usb เพื่อให้สามารถถอดออกเพื่ออัพเดตเฟิร์มแวร์ได้ ฉันใช้ซุปเปอร์กลูเพื่อประกอบทุกอย่างเข้าด้วยกัน "เล็บ" ติดอยู่บนปุ่มสัมผัสโดยตรงเพื่อการสลับโหมดที่รวดเร็วและการตั้งค่าความถี่ / pwm คุณอาจต้องการทำอย่างอื่นหากไม่ได้ผลสำหรับคุณ กลไกปุ่มสัมผัสจะมีการโยกเยก ในการออกแบบหนึ่งฉันใช้คลิปหนีบกระดาษเพื่อจำกัดการโยกเยก และหัวโพรบอีกอันฉันใช้ฝาปิดจากซุปเปอร์กาวเพื่อยึดตำแหน่งเล็บ คุณอาจต้องการเพิ่มตัวต้านทานป้องกัน / ไดโอดลงไป ขั้วต่อ usb มีการเชื่อมต่อเหล่านี้ (1) 5v, (2) D-, (3) D+ และ (4) Gnd, D- คือการเชื่อมต่อเข้ากับตะปู, D+ เชื่อมต่อกับปุ่มสัมผัส, อีกอัน ปลายปุ่มสัมผัสต้องเชื่อมต่อกับกราวด์ กลยุทธ์โพรบบนตัวเชื่อมต่อนี้ทำให้ฉันมีความยืดหยุ่นมากมาย ด้วยสายไฟบนหัวโพรบ คุณสามารถขยายวงจรและเปลี่ยนโปรเจ็กต์นี้เป็นอย่างอื่นโดยเพียงแค่เปลี่ยน "หัว" และเฟิร์มแวร์ เช่น อาจเป็นโวลต์มิเตอร์, tv-b-gone (พร้อมทรานซิสเตอร์และแบตเตอรี่บนหัวโพรบ) ฯลฯ ฉันจะเพิ่ม "ไฟหน้า" แบบ LED สีขาวลงไป

ขั้นตอนที่ 4: บันทึกการใช้งานและแอปพลิเคชันสำรอง

บันทึกการใช้งานและแอปพลิเคชันสำรอง
บันทึกการใช้งานและแอปพลิเคชันสำรอง

บันทึกการใช้งาน

* wdt (ตัวจับเวลาจ้องจับผิด) ใช้เพื่อกำหนดเวลาปุ่ม (ยกเลิกการตีกลับและกด n-hold) รวมถึงไฟ LED แบบพัลส์ สิ่งนี้จำเป็นเนื่องจากไฟ LED ไม่มีตัวต้านทานจำกัดและไม่สามารถเปิดได้อย่างต่อเนื่อง * นาฬิกา dco ตั้งไว้ที่ 12mhz เพื่อรองรับวงจรเป้าหมาย 3v * adc ใช้เพื่อตัดสินใจว่าเราโพรบที่ขาลอยหรือไม่ ค่าเกณฑ์สามารถปรับได้ผ่านซอร์สโค้ด * การกำหนดความถี่ทำได้โดยการตั้งค่า timer_a เพื่อจับภาพสำหรับการตรวจจับขอบ และนับพัลส์ภายในระยะเวลาหนึ่ง * โหมดเอาต์พุตใช้โหมดต่อเนื่อง timer_a โหมดเอาต์พุต 7 (ตั้งค่า/รีเซ็ต) ทั้งการบันทึกและเปรียบเทียบรีจิสเตอร์ (CCR0 และ CCR1) เพื่อให้ได้การปรับความกว้างพัลส์

รหัสแหล่งที่มา

นี่เป็นคำแนะนำสำหรับ linux เท่านั้น สภาพแวดล้อมของฉันคือ ubuntu 10.04 distros อื่น ๆ ควรทำงานตราบเท่าที่คุณติดตั้ง toolchain msp403 และ mspdebug อย่างถูกต้อง

คุณสามารถสร้างไดเร็กทอรีและวางไฟล์ต่อไปนี้ในพวกเขาคลิกเพื่อดาวน์โหลด ezprobe.c

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

หรือทำตามขั้นตอนต่อไปนี้

msp430-gcc -Os -mmcu=msp430x2012 -o ezprobe.elf ezprobe.c msp430-objdump -DS ezprobe.elf > ezprobe.lst msp430-objdump -h ezprobe.elf msp430-ขนาด ezprobe.elf

ในการแฟลชเฟิร์มแวร์ ให้ต่อดองเกิล ez430 ของคุณและทำ

mspdebug -d /dev/ttyUSB0 uif "prog ezprobe.elf"

ความเป็นไปได้ของแอปพลิเคชันสำรอง

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

* เครื่องทดสอบเซอร์โว อันนี้ฉันไม่ได้คลิกเพื่อดาวน์โหลด ezprobe_servo.c * เครื่องทดสอบแบตเตอรี่ / โวลต์มิเตอร์ สูงถึง 2.5v หรือสูงกว่าพร้อมตัวแบ่งตัวต้านทานบนหัววัดสำรอง * tv-b-gone พร้อมหัววัด ir led- หัว * pong-clock, w/ 2 ตัวต้านทาน tv-out probe-head

การแก้ไขปัญหา

* คุณต้องการเตารีด / สถานีควบคุมอุณหภูมิและปลายบัดกรีที่ละเอียดจริงๆ ไฟ LED (รวมกัน) มีขนาดเล็กกว่าเมล็ดข้าว * ใช้ฟลักซ์ * โปรดเตรียมถอดสาย D- และ D+ ออกระหว่างการดีบัก เนื่องจากอาจรบกวนการทำงานของ USB ตามปกติ หากคุณเขียนเฟิร์มแวร์บนอุปกรณ์ที่ดัดแปลง อย่าทำเอาต์พุตบนสองพินนี้เมื่อเฟิร์มแวร์ของคุณเริ่มทำงาน และหากทำเช่นนั้น คุณจะไม่สามารถดาวน์โหลดเฟิร์มแวร์ได้อีกต่อไป (แน่นอนว่าคุณสามารถยกเลิกการขายได้หากเกิดเหตุการณ์นี้ขึ้น) หากคุณพบขั้วต่อขนาดเล็กที่พอดีกับเคส USB ให้ใช้ * แหล่งจ่ายไฟสำหรับบอร์ดเป้าหมายถูกดึงมาจากบอร์ดโปรแกรมเมอร์ผ่านตัวควบคุม ซึ่งจะใช้ 5v จาก usb เมื่อใช้ ezprobe ในวงจร ฉันมักจะมีการจัดหาโปรเจ็กต์เป้าหมายเป็น 3v จาก AAA 1.5v แฝด ซึ่งเพียงพอแล้ว แต่โปรเจ็กต์ต้องอยู่บนหรือต่ำกว่า 12 เมกะเฮิรตซ์ 16mhz dco จะต้องใช้แหล่งพลังงาน 5v เต็ม * ฉันไม่ได้ใช้ตัวต้านทานจำกัดหรือซีเนอร์ไดโอดเพื่อป้องกันโพรบ คุณอาจต้องการทำเช่นนั้น

แนะนำ: