สารบัญ:

โปรแกรมเมอร์ VUSBTiny AVR SPI: 3 ขั้นตอน
โปรแกรมเมอร์ VUSBTiny AVR SPI: 3 ขั้นตอน

วีดีโอ: โปรแกรมเมอร์ VUSBTiny AVR SPI: 3 ขั้นตอน

วีดีโอ: โปรแกรมเมอร์ VUSBTiny AVR SPI: 3 ขั้นตอน
วีดีโอ: Using a USBTiny Programmer with Atmel Studio 2024, พฤศจิกายน
Anonim
โปรแกรมเมอร์ VUSBTiny AVR SPI
โปรแกรมเมอร์ VUSBTiny AVR SPI

หลังจากสร้างโปรแกรมเมอร์ usbtiny isp และใช้งานเป็นเวลา 6 เดือน ฉันกำลังหาอีกอันหนึ่งสำหรับพกติดตัว ฉันชอบความเรียบง่ายของการออกแบบ usbtiny isp แต่ต้องการทำให้มันเล็กลงและใช้ชิ้นส่วนน้อยลง สิ่งหนึ่งที่ฉันต้องการเปลี่ยนในการออกแบบดั้งเดิมคือเลิกใช้นาฬิกาคริสตัล วิธีแก้ปัญหาหนึ่งที่ฉันพบคือไดรเวอร์ v-usb รองรับออสซิลเลเตอร์ภายใน 16.5Mhz บนอุปกรณ์ attiny25/45/85 ดังนั้นฉันจึงเริ่มโครงการนี้เพื่อให้ usbtiny isp ใช้ v-usb สำหรับการสื่อสาร usb ประโยชน์ทันทีคือช่วยประหยัดพื้นที่และมีจำนวนส่วนประกอบน้อยลง (ไม่มีคริสตัลอีกต่อไป) คำอธิบายusbtiny จาก https://www.xs4all.nl/~dicks/avr/usbtiny/ USBtiny คือการใช้งานซอฟต์แวร์ของ USB ความเร็วต่ำ โปรโตคอลสำหรับไมโครคอนโทรลเลอร์ Atmel ATtiny แน่นอนว่ามันจะใช้ได้กับซีรีย์ ATmega ด้วย ซอฟต์แวร์นี้เขียนขึ้นสำหรับ AVR ที่ความเร็ว 12 MHz ที่ความถี่นี้ แต่ละบิตบนบัส USB ใช้เวลา 8 รอบสัญญาณนาฬิกา และด้วยกลอุบายมากมาย ซอฟต์แวร์จึงสามารถถอดรหัสและเข้ารหัสรูปคลื่น USB ได้โดยใช้ซอฟต์แวร์ ไดรเวอร์ USB ต้องการพื้นที่แฟลชประมาณ 1250 ถึง 1350 ไบต์ (ไม่รวมสตริงระบุตัวเลือก) ขึ้นอยู่กับการกำหนดค่าและเวอร์ชันของคอมไพเลอร์ และ RAM 46 ไบต์ (ไม่รวมพื้นที่สแต็ก) อินเทอร์เฟซ C ประกอบด้วย 3 ถึง 5 ฟังก์ชัน ขึ้นอยู่กับคำอธิบาย configuration.vusb จาก https://www.obdev.at/products/vusb/ V-USB เป็นการใช้งานอุปกรณ์ USB ความเร็วต่ำสำหรับ Atmel เท่านั้น ไมโครคอนโทรลเลอร์ AVR ทำให้สามารถสร้างฮาร์ดแวร์ USB กับไมโครคอนโทรลเลอร์ AVR ได้แทบทุกชนิด โดยไม่ต้องใช้ชิปเพิ่มเติมใดๆ วิดีโอเกี่ยวกับการก่อสร้างและการใช้งาน

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

คุณสมบัติและชิ้นส่วน
คุณสมบัติและชิ้นส่วน

* ตรรกะการเขียนโปรแกรมจาก usbtiny isp รองรับ avr-dude ที่เป็นผู้ใหญ่ * รอยเท้าขนาดเล็ก * ส่วนประกอบขั้นต่ำ * ให้พลังแก่อุปกรณ์เป้าหมาย โปรดทราบว่าสาย io ไปยัง mcus เป้าหมายไม่ได้รับการป้องกัน คุณสามารถเพิ่มตัวต้านทาน 1k-2k ให้กับ SCK และ MOSI และป้องกันการเชื่อมต่อที่ไม่ถูกต้องตามงานที่พบใน v-usb จากเฟรมเวิร์ก https://www.obdev.at/vusb/ usbtiny isp https://www.xs4all nl/~dicks/avr/usbtiny/parts list * attiny45/85 (85 ง่ายกว่าที่จะมา) * ไดโอด zener 3.6v (1n747, BZX79,..หลีกเลี่ยง 1W ประเภท) * ตัวต้านทาน 68ohm x 2 * ตัวต้านทาน 1.5K * mini breadboard 170 tiepoints * สาย usb (สาย usb เครื่องพิมพ์ usb ของร้านดอลล่าร์ใช้ได้) * ตัวต้านทาน 1k/2k สำหรับการป้องกันสาย io (อุปกรณ์เสริม) จำเป็นต้องใช้เครื่องมือ * โปรแกรมเมอร์ avr ที่ใช้งานได้ (ใช่แล้ว มันคือ catch22 เราต้องการหนึ่งตัวเพื่อสร้าง) * สภาพแวดล้อมการเขียนโปรแกรม avr ทำงาน

ขั้นตอนที่ 2: เค้าโครงเขียงหั่นขนม แผนผัง และการก่อสร้าง

เค้าโครงเขียงหั่นขนม แผนผัง และการก่อสร้าง
เค้าโครงเขียงหั่นขนม แผนผัง และการก่อสร้าง
เค้าโครงเขียงหั่นขนม แผนผัง และการก่อสร้าง
เค้าโครงเขียงหั่นขนม แผนผัง และการก่อสร้าง

การก่อสร้าง

* ตามรูปแบบเขียงหั่นขนมไม่มีส่วนประกอบใด ๆ ตัวต้านทาน 3 ตัวไดโอด 2 ตัว 1 แคปบวก mcu 8 พิน * รับสายเครื่องพิมพ์ usb ของร้านดอลลาร์ที่ตัดปลายเครื่องพิมพ์จะมีลวดเปิดอยู่ 4 เส้นยึดให้แน่นแล้วทำเป็นหัวต่อตัวผู้ 4 พินเราจะใช้เพื่อเชื่อมต่อกับเขียงหั่นขนม ปรึกษาแผนผังสำหรับเลย์เอาต์และการกำหนดพิน (J1) * ระวังขั้วไดโอด

สร้างและฉายภาพโครงการ

โปรเจ็กต์ถูกสร้างขึ้นในกล่อง linux ubuntu lucid พร้อม avr-gcc toolchain ถือว่าคุณมีสภาพแวดล้อมดังกล่าวอยู่แล้ว หรือคุณสามารถค้นหาวิธีตั้งค่าได้จากอินเทอร์เน็ต ซอร์สโค้ดคือ gnu gpl v2 ที่ได้รับอนุญาตจากการสืบทอด

ซอร์สโค้ดเป็นไปตามแบบแผนที่แนะนำโดย v-usb คุณสามารถดาวน์โหลดแพ็คเกจต้นทาง vusbtiny.tgz และยกเลิกการกำหนดเป้าหมายในไดเร็กทอรีโครงการ ภายในไดเรกทอรีต้นทางของคุณ มี main.c ซึ่งเป็นโปรแกรมเมอร์ usbtiny รุ่นแก้ไขของฉัน และไดเร็กทอรีย่อย usbdrv ซึ่งมีเลเยอร์ v-usb โปรดสังเกตเงื่อนไขใบอนุญาตจากสองโครงการข้างต้นเมื่อสร้างสิ่งนี้ แหล่งที่มาของฉันเกี่ยวกับตรรกะของโปรแกรมเมอร์นั้นอิงตามเวอร์ชั่นของ Dick Streefland ไม่ใช่รุ่น Ladyada (แม้ว่าจะเกือบจะเหมือนกันก็ตาม)

สำหรับผู้ที่ไม่มี build too-chain คุณสามารถใช้ binary. ต่อไปนี้

คลิกเพื่อดาวน์โหลด vusbtiny.hex

และใช้ avrdude เพื่อแฟลชเฟิร์มแวร์

avrdude -c usbtiny -p t45 -e -V -U แฟลช:w:usbtiny.hex

(หากอุปกรณ์ของคุณเป็น tiny85 ให้เปลี่ยน -p t45 w/ -p t85)

สามารถดาวน์โหลดแหล่งที่มาได้ที่นี่ คลิกเพื่อดาวน์โหลด vusbtiny.tgz

untar แพ็คเกจต้นทางลงในไดเร็กทอรีการทำงานของคุณ

tar -zxvf vusbtiny.tgz

* ทำ cd vsubtiny เพื่อเปลี่ยนเป็นไดเร็กทอรีการทำงาน vusbtiny * ajust makefile สำหรับอุปกรณ์เป้าหมายตามชิปที่คุณจะใช้ เช่น PROGRAMMER_MCU=t45 หรือ t85 * ทำ make * แนบโปรแกรมเมอร์ ISP ที่คุณชื่นชอบ * แก้ไข makefile และเปลี่ยนพารามิเตอร์ avrdude หากจำเป็น หุ้นหนึ่งถือว่าโปรแกรมเมอร์ USBTiny เช่น AVRDUDE_PROGRAMMERID=usbtiny * เฟิร์มแวร์แฟลชผ่าน make install

หลังจากเฟิร์มแวร์กระพริบ เราจำเป็นต้องตั้งค่าฟิวส์ให้ถูกต้อง เราใช้พิน 1 รีเซ็ตเป็น io ในโครงการนี้

* นาฬิกา ppl ใช้ตามที่กำหนดโดยเลเยอร์ v-usb สำหรับเวลา usb * รีเซ็ตพินถูกปิดใช้งานเนื่องจากเราจำเป็นต้องใช้เป็น io

avrdude -c usbtiny -p t45 -V -U lfuse:w:0xe1:m -U hfuse:w:0x5d:m -U efuse:w:0xff:m

การตั้งค่านี้ปิดใช้งานการตั้งโปรแกรมเพิ่มเติมผ่าน 5V SPI เนื่องจากเราต้องการ RESET pin (pin1) สำหรับ io คุณจะต้องเข้าถึงโปรแกรมเมอร์ HVSP เพื่อกู้คืนฟิวส์

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

การใช้งานและแอพพลิเคชั่น
การใช้งานและแอพพลิเคชั่น
การใช้งานและแอพพลิเคชั่น
การใช้งานและแอพพลิเคชั่น
การใช้งานและแอพพลิเคชั่น
การใช้งานและแอพพลิเคชั่น

กระพริบโดยตรงบนเขียงหั่นขนม

หากคุณกำลังใช้ vusbtiny เพื่อแฟลชอุปกรณ์ AVR 8 พิน คุณสามารถกดอุปกรณ์เป้าหมายของคุณที่ด้านบนของอุปกรณ์โปรแกรมเมอร์ โปรแกรมเมอร์ได้รับการออกแบบเพื่อให้หมุดการเขียนโปรแกรมตรงกับเป้าหมาย มีเคล็ดลับอยู่อย่างหนึ่ง คุณจะต้องแยกพิน 2 และ 3 บนโปรแกรมเมอร์ mcu เนื่องจากเป็นพิน USB D+ และ D- ที่เชื่อมต่อกับพีซี ฉันใช้สก๊อตเทปเพื่อทำสิ่งนี้ คุณสามารถดูได้ในภาพถ่าย แสดงด้านล่างเป็น Tiny13v "ขี่" บน tiny45 พร้อมรับเฟิร์มแวร์

ISP กระพริบผ่านจัมเปอร์

ในการตั้งโปรแกรมวงจรเป้าหมายผ่าน ISP (การเขียนโปรแกรมในระบบ) คุณต้องมีสายเคเบิล ISP ที่นี่ฉันไม่ได้ใช้ส่วนหัวพินมาตรฐาน 2x3 หรือ 2x5 แต่ฉันใช้จัมเปอร์ 1x6 ซึ่งเป็นมิตรกับเขียงหั่นขนมมากกว่า คุณสามารถสร้างส่วนหัวพิน 2x3 หรือ 2x5 โดยแมปกับ J2 ตามที่แสดงบนโครงร่างเขียงหั่นขนมและแผนผัง ภาพต่อไปนี้แสดง tiny2313 พร้อมที่จะแฟลชผ่าน ISP

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

* ไม่สามารถแฟลชเฟิร์มแวร์ได้? ตรวจสอบโปรแกรมเมอร์ดั้งเดิมของคุณ อาจต้องปรับเวลาผ่านแฟล็ก -B ใน avrdude ลองอ่านชิปที่ 1 อาจเป็นฟิวส์ที่ไม่ดี บางทีชิปของคุณอาจต้องการสัญญาณนาฬิกาภายนอก คุณอาจต้องแก้ไขชิปของคุณกลับเป็นค่าเริ่มต้นที่ 1 * ตรวจสอบการเชื่อมต่อ * หากใช้หมุด io ที่แตกต่างกัน ตรวจสอบรหัสและการเชื่อมต่อ * คุณอาจใช้ไดโอด zener แทนด้วย 500mw, 400mw ประเภท * คุณอาจลองลดค่า R3 เป็น 1.2K หรือน้อยกว่า * คุณมีแนวโน้มที่จะประสบปัญหาเรื่องเวลามากเกินไป ลอง -B ธงของ avrdude มีสาย USB ที่สั้นกว่าทั้งหมดช่วยได้

แนะนำ: