สารบัญ:

Atmega16/32 บอร์ดพัฒนาพร้อม LCD: 8 ขั้นตอน
Atmega16/32 บอร์ดพัฒนาพร้อม LCD: 8 ขั้นตอน

วีดีโอ: Atmega16/32 บอร์ดพัฒนาพร้อม LCD: 8 ขั้นตอน

วีดีโอ: Atmega16/32 บอร์ดพัฒนาพร้อม LCD: 8 ขั้นตอน
วีดีโอ: ความรู้เบี้องต้นATMEGA16 CODEVISIONAVR 2024, พฤศจิกายน
Anonim
Atmega16/32 บอร์ดพัฒนาพร้อม LCD
Atmega16/32 บอร์ดพัฒนาพร้อม LCD
Atmega16/32 บอร์ดพัฒนาพร้อม LCD
Atmega16/32 บอร์ดพัฒนาพร้อม LCD
Atmega16/32 บอร์ดพัฒนาพร้อม LCD
Atmega16/32 บอร์ดพัฒนาพร้อม LCD

คำแนะนำนี้แสดงให้เห็นวิธีทำบอร์ดพัฒนาของคุณเองสำหรับโปรเซสเซอร์ Atmega16 หรือ Atmega32 อินเทอร์เน็ตเต็มไปด้วยบอร์ดพัฒนาทำเองที่บ้าน แต่ฉันคิดว่ามีพื้นที่เหลือสำหรับอีกอันหนึ่ง บอร์ดนี้มีประโยชน์มากในโครงการของฉัน และฉันได้ออกแบบและทำให้มันให้บริการหนึ่งในโครงการของฉัน มีอะไรให้บ้าง- ตัวเชื่อมต่อ ISP- แรงดันอ้างอิงที่ปรับได้สำหรับ AREF พร้อมทริมเมอร์- ไฟ LED 8 ดวงเชื่อมต่อ PORTA กับจัมเปอร์แบบถอดได้ คุณจึงสามารถใช้ไฟ LED กับพอร์ตอื่นได้ด้วย- แท่งเข็มสำหรับ PORTA, PORTB, PORTC และ PORTD.- แถบเข็มที่ปรับเปลี่ยนสำหรับหน้าจอ LCD (4 บิต)- ขั้วต่อพอร์ตอนุกรม rs232- โมดูล rs232 แบบถอดได้- ควบคุม 5V สิ่งที่คุณต้องการ (ชิ้นส่วนสำหรับเมนบอร์ด)- 1x โปรเซสเซอร์ Atmega16 หรือ Atmega32- 1x คริสตัล (คุณสามารถเลือกได้ว่าจะกี่เมกะเฮิรตซ์)- 2x 27 pF ตัวเก็บประจุสำหรับคริสตัล- 1x 7805 ตัวควบคุมแรงดันไฟฟ้า- 1x 47uF ตัวเก็บประจุ 16V- 3x ตัวเก็บประจุ 100nF-1x แจ็ค DC 2, 1 มม. หรือ 2, 5 มม. (สิ่งที่คุณต้องการใช้)- โพเทนชิออมิเตอร์ 1x 1K - ไฟ LED 8x (สีใดก็ได้)- ตัวต้านทาน 8x 330 โอห์ม- แท่งแหลมจำนวนมากชิ้นส่วนสำหรับโมดูล rs232- Max232 IC- 4x 0, ตัวเก็บประจุ 1uF - ไฟ LED 2x (สีเขียวและสีแดง)- ตัวต้านทาน 2x 330 โอห์ม- แถบเข็ม- ขั้วต่อ D9

ขั้นตอนที่ 1: แผงวงจร

แผงวงจร
แผงวงจร
แผงวงจร
แผงวงจร

มีวงจรจากทั้งสองบอร์ดและไฟล์ pdf มีไฟล์พิมพ์จากบอร์ดเหล่านี้ คุณสามารถแกะสลักกระดานของคุณจากรูปภาพเหล่านี้ ไฟล์ zip มีไฟล์ Eagle ทั้งหมดจากบอร์ดเหล่านี้ อย่าลังเลที่จะปรับเปลี่ยนสิ่งเหล่านี้ตามที่คุณต้องการ

ขั้นตอนที่ 2: การแกะสลักหรือการกัด

การแกะสลักหรือการกัด
การแกะสลักหรือการกัด
การแกะสลักหรือการกัด
การแกะสลักหรือการกัด

มีสองวิธีในการทำกระดานเหล่านี้ การกัดหรือการกัด ฉันไม่ใช่นักเคมี ดังนั้นฉันจึงใช้วิธีสุดท้าย ฉันสร้างโรงสีของฉันจากคำแนะนำที่ยอดเยี่ยมเหล่านี้ ดังนั้นหากใครมี nc-mill ด้วยและต้องการใช้เพื่อสร้างบอร์ดเหล่านี้ เพียงแจ้งให้เราทราบแล้วฉันจะส่งรหัส G

ขั้นตอนที่ 3: การบัดกรี

บัดกรี
บัดกรี
บัดกรี
บัดกรี

รูปภาพด้านล่างจะแสดงชื่อของส่วนประกอบและตำแหน่งที่ควรอยู่บนเครื่อง

ขั้นตอนที่ 4: การทดสอบ

การทดสอบ
การทดสอบ

ก่อนที่เราจะสามารถทดสอบบอร์ดพัฒนาของเราได้ เราจำเป็นต้องมีสายเคเบิลโปรแกรมเมอร์ AVR นี่เป็นคำแนะนำที่ดีเกี่ยวกับสายเคเบิลการเขียนโปรแกรม เราต้องการเพียง 6 สาย SCK, MISO, MOSI, RST, Ground และ +5V นั่นคือสาเหตุที่ขั้วต่อของฉันมีเพียง 6 ขาเท่านั้น สำคัญ! สัญญาณ SCK, MISO, MOSI และ RST ต้องการตัวต้านทาน 390 โอห์ม ซึ่งมักจะบัดกรีบนบอร์ด แต่ฉันต้องการประหยัดพื้นที่บางส่วนจากบอร์ด และนั่นเป็นสาเหตุที่ตัวต้านทานอยู่ภายในสายเคเบิล หากไม่มีตัวต้านทานเหล่านี้ การเขียนโปรแกรมจะไม่ทำงาน เรายังต้องทำสายเคเบิลระหว่างโมดูล rs232 กับเมนบอร์ด นอกจากนี้ยังมี "สายทดสอบ" สองสามเส้นบนรูปภาพ และสิ่งเหล่านี้มีประโยชน์มากเมื่อเรากำลังจะทดสอบบอร์ดของเรา

ขั้นตอนที่ 5: การเขียนโปรแกรมและโปรแกรมทดสอบอย่างง่าย

การเขียนโปรแกรมและโปรแกรมทดสอบอย่างง่าย
การเขียนโปรแกรมและโปรแกรมทดสอบอย่างง่าย

ต่อไปเราจะต้องใช้โปรแกรม "ทดสอบ" เพื่อทดสอบบอร์ดของเรา สำคัญ! เราต้องปิดการใช้งาน JTAG จาก PORTC หากเราไม่ทำเช่นนั้น โมดูล LCD จะไม่ทำงาน ดังนั้นจึงมีความจำเป็น ในระบบปฏิบัติการ Linux เราสามารถทำได้ด้วยคำสั่ง avrdude:avrdude -p m16 -c stk200 -U lfuse:w:0xe4:m -U hfuse:w:0xd9:m คำสั่งนี้จะปิดใช้งาน JTAG และตั้งค่า oscillator ภายใน 8Mhz ขึ้นและใช้งาน บอร์ดของเรามีคริสตัลภายนอก แต่ผู้คนใช้คริสตัลที่มีขนาดต่างกัน ดังนั้นคำสั่งนี้จึงปลอดภัยสำหรับทุกคน หากคุณต้องการใช้คริสตัลภายนอกของคุณนี่คือไซต์สำหรับการคำนวณฟิวส์ที่ถูกต้อง IMPORTATNT! ระวังด้วยการเขียนโปรแกรมฟิวส์ หากคุณตั้งค่าฟิวส์ผิด โปรเซสเซอร์ของคุณจะไม่ทำงาน มีวิธีการกู้คืนด้วยพัลส์ภายนอก แต่หวังว่าคุณจะไม่ต้องทำเช่นนั้น =) โปรแกรมทดสอบอย่างง่าย:#include (avr/io.h)int main(void){DDRA = 0xff; // ตั้งค่าพอร์ตเป็น outputDDRB = 0xff;DDRC = 0xff;DDRD = 0xff;PORTA = 0x00; // ปิดการใช้งาน pull-upsPORTB = 0x00;PORTC = 0x00;PORTD = 0x00;}ถึงเวลาที่จะเปิดเครื่องแล้วส่งโปรแกรมทดสอบเล็ก ๆ นี้ไปยังโปรเซสเซอร์ด้วย winavr หรือสิ่งที่คุณต้องการใช้ ตอนนี้เราสามารถทดสอบได้ พอร์ตของเราทำงานอย่างถูกต้อง วางปลายด้านหนึ่งจากสายไฟไปที่หมุด LED อันหนึ่งแล้วแตะปลายอีกด้านหนึ่งทุกพอร์ตทีละขั้นตอน ไฟ LED ควรส่องแสงทุกครั้ง หากไม่ส่องแสงแสดงว่ามีบางอย่างผิดปกติกับการบัดกรี จำการทดสอบด้วยว่าทุก led ใช้งานได้

ขั้นตอนที่ 6: การทดสอบพอร์ตอนุกรม

การทดสอบพอร์ตอนุกรม
การทดสอบพอร์ตอนุกรม
การทดสอบพอร์ตอนุกรม
การทดสอบพอร์ตอนุกรม

หากทุกอย่างทำงานได้อย่างสมบูรณ์ ก็ถึงเวลาทดสอบโมดูล rs232 ของเราแล้ว มีโปรแกรมเล็กๆ น้อยๆ ที่ทดสอบว่า TX และ RX ของเราใช้งานได้ การใช้งานใน Linux:สร้างไฟล์ชื่อ Makefile และคัดลอกข้อความด้านล่างในไฟล์ รหัส Makefile ถือว่าคุณใช้ Atmega16 และสายเคเบิลการเขียนโปรแกรมของคุณคือ stk200 อย่าลืมตั้งค่าการอนุญาตที่ถูกต้องเป็น พอร์ตอนุกรมของคุณ /dev/ttyS0CC=/usr/bin/avr-gccCFLAGS=-g -Os -Wall -mcall-prologues -mmcu=atmega16 -std=gnu99OBJ2HEX=/usr/bin/avr-objcopy AVRDUDE=/usr/bin /avrdude: $(TARGET).hex $(AVRDUDE) -p m16 -P /dev/parport0 -c stk200 -u -U flash:w:test.hex%.obj: %.o $(CC) $(CFLAGS)) $< -o $@%.hex: %.obj $(OBJ2HEX) -R.eeprom -O ihex $< $@clean: rm -f *.hex *.obj *.oดาวน์โหลดไฟล์ atteched serial.c และใส่ มันอยู่ในโฟลเดอร์เดียวกับที่ Makefile อยู่ เพิ่มพลังให้กับบอร์ดพัฒนาของคุณและใส่สายเคเบิลระหว่างโมดูล rs232 และเมนบอร์ด ไฟ LED บนโมดูลควรสว่างแล้ว วางสายทดสอบระหว่างพิน PA0 และพิน LED บางตัว ใช้เทอร์มินัลของคุณและไปที่โฟลเดอร์ที่เป็น test.c และ Makefile เชื่อมต่อโปรแกรมเมอร์ ISP เข้ากับบอร์ด ตอนนี้ได้เวลาส่งรหัสของเราในโปรเซสเซอร์และมันเกิดขึ้นกับคำสั่งเทอร์มินัล: ทำการดาวน์โหลดซอฟต์แวร์ชื่อ GTKterm (เทอร์มินัลพอร์ตอนุกรม)Fedora: yum ติดตั้ง gtktermUbuntu: sudo apt-get ติดตั้ง gtkterm เริ่ม GTKterm และจัดรูปแบบโดยใช้ความเร็ว 9600Kbs 8 data bits, 1 stop bit, no parity, overflow none.หากทุกอย่างทำงานได้ ก็ควรเขียนว่า "works!" บนหน้าจอ GTKterm เมื่อคุณกดปุ่ม "z" และเมื่อคุณกดปุ่ม "x" ไฟ LED บนบอร์ดควรเปิดขึ้น และเมื่อคุณกด "c" ไฟจะดับลง

ขั้นตอนที่ 7: การทดสอบโมดูล LCD

การทดสอบโมดูล LCD
การทดสอบโมดูล LCD
การทดสอบโมดูล LCD
การทดสอบโมดูล LCD

ถึงเวลาทดสอบโมดูล LCD ของเราแล้ว ฉันแนบซอฟต์แวร์ที่ยอดเยี่ยมสำหรับควบคุมหน้าจอ LCD ฉันดาวน์โหลดโค้ดจาก Scienceprog.com และแก้ไขเล็กน้อย ตั้งโปรแกรมโปรเซสเซอร์ด้วยรหัสนี้และเสียบโมดูล LCD ของคุณบนบอร์ด การเชื่อมต่อขาโมดูล LCD:1 = VSS(Ground)2 = VDD(5V)3 = VO(Ground)4 = RS5 = R/W6 = E11 = PC412 = PC513 = PC614 = PC7My lcd-module มีตัวเชื่อมต่อ 2 ตัว (ดูรูป) เนื่องจากข้อความจะคว่ำถ้าคุณวางโมดูลตามที่ควรจะเป็น ฉันมิเรอร์และติดตัวเชื่อมต่อใหม่กับอีกด้านหนึ่ง ตอนนี้ใช้งานได้ทั้งสองวิธี

ขั้นตอนที่ 8: วิดีโอบางรายการ

มาตรความเร่งหรี่

แนะนำ: