เครื่องโปรแกรม AVR

การใช้งาน ATtiny85 ด้วย เครื่องโปรแกรม AVR รุ่น USBasp

การใช้งาน ATtiny85 ด้วย เครื่องโปรแกรม AVR

การใช้งาน ATtiny85 ด้วย เครื่องโปรแกรม AVR รุ่น USBasp


AVR เป็นไมโครคอนโทรลเลอร์รุ่นต่อมาที่มีการ พัฒนาต่อมาจาก MCS-51 โดยบริษัท ATMEL อัน เนื่องมาจากว่า MCS-51 ยุคหลังนี้ไม่ค่อยมีคนใช้ งานจริง และมีใช้งานแต่เฉพาะในสถาบันการศึกษา เป็นเช่นนี้ก็เพราะว่าการออกออกแบบวงจรที่ ค่อนข้างยุ่งยาก และต้องอาศัยการต่ออุปกรณ์ร่วม เยอะนั้นเอง

ATtiny85 ไอซีตะกูล AVR


ATtiny85 ไอซีตะกูล AVR ขนาดเล็ก มีพื้นที่โปรแกรม 8KB สามารถใช้บอร์ด Arduino ในการโปรแกรมแบบ ISP ได้ และยังสามารถใช้โค้ด Arduino ในการเขียนโปรแกรมให้ไอซีทำงานได้อีกด้วย เหมาะสำหรับการเรียนรู้การใช้งาน ไมโครคอนโทรลเลอร์ AVR ขั้นพื้นฐาน รายละเอียดเพิ่มเติม ตามลิงค์ด้านล่าง


โดยบทความนี้จะแสดงวิธีการ ขั้นตอนการเขียนโปรแกรม ( code ) ลงบน AVR ด้วยการโปรแกรมแบบ  ISP (In System Programming) จาก เครื่องโปรแกรม AVR รุ่น USBasp

การใช้งาน ISP (In System Programming)


  • MOSI == Master Out Slave In: data input
  • MISO == Master In Slave out : data output
  • SCK == Serial ClocK : clock input
  • RST == RESET: used to activate the serial Programming

จากข้างบนจะเห็นว่า ขาที่เป็น MOSI นั้น จะเป็นขาส่งข้อมูลออก ( Output ) ของตัวแม่ ( Master )
MISO นั้น เป็นขาที่รับข้อมูล (Input ) ที่ส่งมาจากลูก ( Slave )
SCK นั้น เป็นตัวนาฬิกาคอยให้จังหวะการส่งข้อมูล
ขาสุดท้ายก็คือ RST นั้น คือตัวที่เริ่มให้มีการเขียนโปรแกรมลง Chip

ขั้นตอนการทํางาน


1 : ลงไดร์เวอร์ให้ เครื่องโปรแกรม AVR รุ่น USBasp


เสียบ USBasp ไปที่ USB ของ คอมพิวเตอร์

เสียบ USBasp ไปที่ USB ของ คอมพิวเตอร์

คลิกขวา ที่ Start เลือกไปที่ Device Manager

ลงไดร์เวอร์ให้ เครื่องโปรแกรม AVR รุ่น USBasp



แสดงการติดตั้งไดรเวอร์ที่ยังไม่สมบูรณ์

เครื่องโปรแกรม AVR รุ่น USBasp



ดาวน์โหลดไดร์เวอร์ USBasp ตามลิงค์ด้านล่าง


เมื่อดาว์นโหลดไฟล์เสร็จแล้ว ให้คลายไฟล์นำไปวางไว้ในโฟลเดอร์

คลายไฟล์นำไปวางไว้ในโฟลเดอร์



คลิก เลือกไฟล์ InstallDriver เพื่อติดตั้งไดรเวอร์

คลิก เลือกไฟล์ InstallDriver เพื่อติดตั้งไดรเวอร์

คลิก Next >

คลิก Next >

คลิก Finish

คลิก Finish


ตรวจสอบไดร์เวอร์ USBasp หลังติดตั้ง ต้องแสดงการติดตั้งไดรเวอร์ USBasp ที่พร้อมใช้งานแล้ว

ติดตั้งไดรเวอร์ USBasp ที่พร้อมใช้งาน



2 : เพิ่มบอร์ด ATtiny85 ให้ Arduino IDE

เพิ่มบอร์ด ATtiny85 ให้กับ Arduino IDE ตามขั้นตอนลิงค์ด้านล่าง



3 : ต่อวงจรสำหรับ อัพโหลดโปรแกรม

ต่อวงจร เครื่องโปรแกรม AVR รุ่น USBasp กับ ATtiny85 ตามภาพด้านล่าง


การใช้งาน ATtiny85 ด้วย เครื่องโปรแกรม AVR
การใช้งาน ATtiny85 ด้วย เครื่องโปรแกรม AVR



เชื่อมต่อวงจรดังนี้:

  • MOSI – เชื่อมต่อ USBasp ขา MOSI กับ ATtiny85 ขา 5
  • RST – เชื่อมต่อ USBasp ขา RST กับ ATtiny85 ขา 1
  • SCK – เชื่อมต่อ USBasp ขา SCK กับ ATtiny85 ขา 7
  • MISO – เชื่อมต่อ USBasp ขา MISO กับ ATtiny85 ขา 6
  • VCC – เชื่อมต่อ USBasp ขา VCC กับ ATtiny85 ขา 8
  • GND – เชื่อมต่อ USBasp ขา GND กับ ATtiny85 ขา 4

การใช้งาน ATtiny85 ด้วย เครื่องโปรแกรม AVR รุ่น USBasp



4 : ต่อวงจร LED เพิ่ม เพื่อทดสอบการทำงาน

เพื่อทดสอบการใช้งาน ขา OUTPUT ของ ATtiny85 แบบ Digital โดยสั่งให้ ATtiny85 เปิด/ปิด ไฟ LED

โดย การต่อ LED ขายาว และ รีซิสเตอร์ 220 OHM เพิ่มที่ขา 3 และ LED ขาสั้น ไปที่ขา 4 ดังรูปด้านล่าง

ต่อวงจร LED ATtiny85
การใช้งาน ATtiny85 ด้วย เครื่องโปรแกรม AVR รุ่น USBasp



5 : โปรแกรมแรกกับ ATtiny85


ในตัวอย่างนี้ เราจะมาทดลองสั่งงาน เปิด/ปิด หลอดไฟ LED โดยโปรแกรม Blink หรือ ไฟกระพริบ ATtiny85

เซ็ตขา PB4 ของ ATtiny85 ให้เป็นโหมดเอาท์พุท ด้วยคำสั่ง pinMode(4, OUTPUT);

คำสั่ง digitalWrite(4, HIGH); ใช้ในการควบคุม LED โดย HIGH = ไฟติด , LOW = ไฟดับ

คำสั่งหน่วงเวลา delay(500); โดย 500 คือ 500 มิลลิวินาที หรือ 0.5 วินาที และ 1000 คือ 1000 มิลลิวินาที หรือ 1 วินาที


เปิดโปรแกรม Arduino IDE เขียนโปรแกรม ตามโค้ดด้านล่างนี้


void setup()
{
  //The 8-pin ATTinys (25/45/85) all have 5 usable digital output pins 0-4
  pinMode(4, OUTPUT);
}
void loop()
{
  digitalWrite(4, HIGH);  	//Set the LED pins to HIGH. This gives power to the LED and turns it on
  delay(500);  	// Wait for a half a second

  digitalWrite(4, LOW); 	// Set the LED pins to LOW. This turns it off
  delay(1000);    // Wait for a half second
}



ไปที่ Tools -> Board แล้วเลือกให้ตรงกับบอร์ดที่ใช้งาน สำหรับ ATtiny85 ให้เลือกบอร์ดเป็น ATtiny25/45/85

เลือกบอร์ดเป็น ATtiny25/45/85



ไปที่ Tools -> Processor -> ATtiny85

ไปที่ Tools -> Processor -> ATtiny85


ไปที่ Tools -> Programmer -> USBasp

ไปที่ Tools -> Programmer -> USBasp

ไปที่ Tools -> Clock -> Internal 8 MHz

ไปที่ Tools -> Clock -> Internal 8 MHz

ผลลัพธ์การทำงานคือ ไฟ LED สีแดงกระพริบ แสดงว่า การอัพโหลดโค้ด โปรแกรมแรกของคุณ กับ ATtiny85 สำเร็จแล้ว



6 : รายการอุปกรณ์


credit : http://riteshkhanna.com/2016/04/20/programming-attiny45attiny85-with-a-usbasp-avr-programmer/