เบิร์น AVR ด้วย FTDI-Bitbang [ตอนที่ 1]

Posted by | July 25, 2010 | Arduino-Hacking | 2 Comments

รอบนี้ยังนำเสนอเครื่องเบิร์นกันอีกสักวิธีครับ? ที่ผมมาแนะนำบ่อยๆ เพราะว่าช่วงนี้เห็นว่าหลายคนเหลือเอาไปใช้งานกัน บอร์ดเดียวคงจะไม่พอใช้งาน แต่จะซื้อมาใช้หลายๆบอร์ด มันก้อคงไม่ประหยัดมากนักครับ ผมจึงพยายามหาเครื่องไม้เครื่องมือมาช่วยทำ สร้างสรรค์โปรเจคกันได้เต็มที่

สำหรับเครื่องเบิร์นนี้จริง จุดประสงค์เพื่อ จะเอามาช่วย เบิร์น bootloader สำหรับการสร้างบอร์ด arduino เอง? เพราะว่าจริงแล้วไอซี ATmega328 หรือ ATmega168 ที่เพิ่งซื้อมาใหม่จากโรงงาน จะไม่บรรจุโปรแกรมอะไรไว้เลยครับ ต้องเบิร์น boot loader เข้าไปก่อนครับ ถึงจะใช้งานกับ IDE ของ Arduino

แต่สำหรับรอบนี้ ขอพูดแบบกลางๆ ก่อน คือทำเครื่องเบิร์นสำหรับใช้งานการเบิร์น AVR ทั่วไปครับ สำหรับเครื่องเบิร์นที่จะมาแนะนำบทความนี้ เรียกว่า FTDI Bitbang ครับ เป็นโปรเจคที่พัฒนาโดย Mr.Suz ซึ่งทางเขาได้ทำให้ Bitbang ของ FT232RL เป็นเครื่องโปรแกรมไอซีได้ โดยโปรแกรมที่จะใช้งานกัน วันนี้จะมาแนะนำวิธีการใช้งาน กับ setup กันครับ

บทความนี้ นำมาจาก Burning the Bootloader without external AVR-Writer ของ? Kimio Kosaka แต่เอามาแก้ไข นิดหน่อยให้ใช้งานกับของที่มีในไทยได้ครับ สำหรับสิ่งที่น่าสนใจอย่างหนึ่ง เหมือนนำ FT232RL มาใช้เป็นเครื่องเบิร์นคือ มันสามารถ รันได้ทุก platform ตัวไอซี มี driver ที่รันได้ทั้ง mac os และ linux? ถ้าท่านใช้ OS อื่น ก้อลงเข้าไปอ่านดูึครับ ลิงค์ต้นฉบับ

Download ซอฟร์แวร์ที่จำเป็น จากเวปไซค์ต้นฉบับ

  1. “avrdude-serjtag” FTDI BitBang AVR-Writer
    serjtag-0.3.zip mirror site
    serjtag-0.3.tar.gz mirror site
  2. serjtag-0.3.zip original site (http://suz-avr.sblo.jp/archives/20070621-1.html)
    serjtag-0.3.tar.gz original site (http://suz-avr.sblo.jp/archives/20070621-1.html)
  3. ไฟล์ configure-file สำหรับ avrdude-serjtag
    avrdude.conf (Update: เพื่อให้ใช้ ATmega328P,168P and 88P ได้ครับ)
  4. โปรแกรมกราฟฟิกสำหรับ AVRDude – “avrdude-GUI (yuki-lab.jp Version)”
    avrdude-GUI-1.0.5.zip mirror site
    avrdude-GUI-1.0.5.zip original site (http://yuki-lab.jp/hw/avrdude-GUI/index.html)
  5. avrdude-GUI (yuki-lab.jp Version) require Microsoft .NET Framework 2.0. ถ้าสามารถเปิดโปรแกรม avrdude-gui ได้ไม่ต้องติดตั้งใหม่ครับ
    แต่ถ้ามีปัญหา ระบบต้องการ ก้อเข้าไปโหลดได้ที่นี้ครับ? here (Microsoft .NET Framework 2.0 download page)

วิธีการติดตั้ง

ไฟล์ที่ให้โหลด ส่วนมากไม่ได้มีระบบ install ไฟล์ เราต้องติดตั้งเองครับ ซึ่งความจริงเราจะติดตั้งไว้ที่ไหนก้อได้คับ เอาที่เราสะดวกครับ เพราะเวลามันรัน ไม่ได้อ้างอิงตำแหน่งไดเร็กทรอรี่อยู่แล้วครับ

  • สำหรับไฟล์ serjtag-0.3 หลังจากแตกไฟล์ มาเราจะใช้แค่โฟลเดอร์ “serjtag-0.3/binary” ซึ่งภายในโฟลเดอร์จะมีโปรแกรม avrdude.exe ที่ทำการแก้ไขแล้ว เพื่อสามารถใช้เครื่องโปรแกรมจาก FTDI Bitbang ได้ครับ สำหรับโฟลเดอร์อื่นจะไม่เอามาก้อได้ครับ ในที่นี้ผมเอาไปใส่รวมกับ arduino และเปลี่ยนชื่อ เป็น “G:/arduino/avrdude-serjtag”
  • avrdude.conf เป็นไฟล์ configure สำหรับเพื่อใช้กับ avrdude ให้แตกไฟล์ แล้วไปรวมใน ไดเร็กทรอรี่ “g:/arduino/avrdude-serjtag/binary” ก้อได้ครับ
  • สำหรับโปรแกรม สุดท้าย คือ avrdude-gui เป็นโปรแกรม wrapper? จะมีอยู่ไฟล์เดียว ไว้ที่ไหนก้อได้ที่เรา ที่เราสะดวก ผมเอารวมไว้ที่ “g:/arduino/”

* สำหรับไดเร็กทรอรี่ จะจัดไว้ที่ไหนก้อได้แล้วแต่สะดวกครับ

แปลงกาย UCON-UART เป็นเครื่องเบิร์นไอซี

สำหรับตอนนี้ส่วนของ software คงจะเริ่มแล้วมาดู Hardware กันบ้าง ความจริงโปรเจคนี้เขาดัดแปลงบอร์ด Arduino Diecimila มาใช้งานเบิร์นบอร์ดตัวเอง แต่ทาง freeduino ของเราไม่ได้เตรียมไว้ให้ครับ เดี่ยวจะเพิ่มเติมในโอกาสหน้าครับ 😀 หรือใครใจร้อนจะทำ hardwire บนบอร์ดแบบท่านเบียร เพื่อนสมาชิกแห่ง electoday ก้อได้ครับ ชมได้ที่นี้

สำหรับบอร์ดที่ผมเลือกมา เป็น UCON-UART ของบริษัท INEX เป็นบอร์ด usb2serial ที่มีขาสัญญาณ RS232c ออกมาครบ มีระดับไฟอยู่ +5/+3.3v? ซึ่งมันเลยเหมาะกับการใช้งานกับไมโคร ต่อตรงไม่ต้องผ่าน buffer อีกที่ และยังเอามาทำตัวเบิร์นแบบ ftdi bitbang ได้อีกครับ ผมว่ามันก้อเหมือน 2 in 1 คุ้มดี สำหรับผู้ที่สนใจก้อสามารถสั่งซื้อทาง บริษัทเขาเลยครับ ราคาตอนนี้ 290 บาทครับ

คุณสมบัติคร่าวๆดังนี้ครับ

  • ใช้ไอซี FT232R ในการแปลงสัญญาณ
  • มี LED แสดงสภาวะการทำงาน
  • มีจุดต่อสัญญาณครบทุก สัญญาณทั้ง DCD,RxD,TxD,DTR,DSR,RTS และCTS
  • เลือกใช้ไฟเลี้ยงได้ทั้ง +3.3V และ +5V หรือใช้จากพอร์ต USB ก็ได้

มาดูเรื่องการ setup กันต่อ สำหรับบอร์ด Freeduino เวลาเราจะเบิร์น bootloader จะเบิร์นผ่าน ISP ครับ โดยคอนเน็กเตอร์ ICSP หรือ ISP แบบ 6 PIN ครับ ดังรูปครับ

ให้เราต่อสาย ICSP กับบอร์ด UCON-UART ดังแผนภาพข้างหลังนี้ครับ

ภาพสุดท้ายที่เพิ่มใช้งานแล้ว ใช้สายนิดเดียวครับ ที่เห็นที่คอนเน็กเตอร์ ICSP ผมเอาเข็มขัดรัดสายไฟ มันมัดให้มันรวมกันไว้ครับ? ตอนนี้เราก้อได้เครื่องเบิร์น AVR ที่ถูกที่สุดในโลกแล้ว ถูกกว่านี้ต้องทำเองครับ 😀


การใช้งาน avrdude-gui ครับ

บอร์ดพร้อมติดตั้งโปรแกรมแล้ว มาถึงการใช้งานโปรแกรม avrdude ครับ

รันชื่อโปรแกรม avrdude-gui.exe ที่เราได้ติดตั้งไป จะได้หน้าต่างดังภาพข้างหลังนี้ครับ

จากนั้น Setting โปรแกรมดังภาพครับ

  1. ตำแหน่งของโปรแกรม avrdude.exe
    • เปิดโฟลเดอร์ “G:\arduino\avrdude-serjtag\binary”.
    • เลือก “avrdude.exe”, แล้วคลิก [Open(O)] .
  2. เลือกเครื่องโปรแกรมมิ่ง (Programmer area)
    • เลือก “FT232R Synchronous BitBang (diecimila)” ให้สังเกตุ diecimila ที่ตัวท้ายครับ เผื่อจะมีหลายตัวให้เลือก
  3. เลือก Device เบอร์ ไอซี สำหรับ arduino จะมี ATmega168 ,ATmega328 แต่ถ้าอยากเอาไปใช้งานกับเครื่องเบิร์น AVR ตัวอื่นก้อได้เช่นกันครับ (ยังไม่ได้ลองนะครับ)
  4. เพิ่มเติม Command line Option area
    • ให้ใส่ ที่ Textbox
      -P ft0 -B 4800
      “-P ft0” กำหนด port ของ Bitbang,? “-B 4800” ใช้ความเร็วต่ำ ในการเบิร์น

    ** ข้อควรระวัง ในช่อง Port ปล่อยวางไว้ครับ
    ** – B 4800 เปลี่ยนได้นะครับ ที่ใส่ไว้ เพื่อให้ชัวส์ว่าใช่งาน แต่ใช้งานจริงเอาออกได้

ทดสอบเบื้องต้น

  1. เสียบสาย ICSP กับบอร์ดแล้ว เสียบ UCON-UART ติดตั้ง driver usb2serial ปกติ ก้อพร้อมใช้งานครับ
  2. รันโปรแกรม avrdude-GUI.
  3. การทดสอบง่ายๆที่สุดก้อ กด Read Fuse-bits

ถ้ากดอ่าน Fuse-bit แล้วไม่มีอะไร error ออกมา แสดงว่า เราติดตั้งโปรแกรม สำเร็จแล้วครับ
แต่ถ้าไม่ work ตรวจสอบสาย กับ config ในโปรแกรม avrdude-GUI อีกรอบครับ อาจจะเลือกไอซีผิค เครื่องโปรแกรมผิด

มาถึงตอนนี้เครื่องเบิร์นแบบ USB ที่ถูกสุดในจักรวาลก้อพร้อมใช้งานแล้วครับ ตอนนี้เราแค่เลือกไฟล์ flash ก้อใช้งานได้แล้วครับ เจอกันในต่อสอง เกี่ยวกับ ใช้เครื่องเบิร์น FTDI Bitbang สำหรับเบิร์น bootloader ให้ arduino ครับ

About chang

ชื่อ “ช้าง” ส่วนมากเขาจะเรียกว่า “พี่ช้าง” แล้ว มีความสนใจทางเทคโนโลยีทางคอมพิวเตอร์ อิเล็กทรอนิกส์ และ หุ่นยนต์ เป็นทั้งนักคิด นักประดิษฐ์ ชอบทดลองเล่น จนเดี่ยวนี้รู้สึกว่าจะเล่นมากกว่ามืออาชีพไปสักแล้ว

  • pommm

    เด๊่ยวนี้ถ่ายรูปมี art นะเนี่ย

    • ฮ่าๆๆ กล้องเขาดีจิง

      ตัวนี้เป็น USB ใช้บน linux ก้อได้นะ เร็วด้วย แต่ยังไม่ confirm ว่าเบิร์นไอซี มีเสียหรือป่าว ฮ่าๆ เอาไปลองที่