Currently viewing the tag: "bootloader"

จากตอนที่แล้ว เราก้อได้แปลงกายเจ้า UCON-UART [FT232RL] เป็นเครื่องเบิร์นได้แล้ว ในบทความตอนนี้ เราจะเอาเครื่องเบิร์น FTDI ฺBitbang กับ avrdude-gui ใช้งาน burn bootloader กันดีกว่าครับ ความจริงเราสามารถปรับแต่งให้ Arduino IDE เบิร์น bootloader ได้ ซึ่งสนใจก้อเข้าไปอ่านตามลิงค์นี้ “How to run this “FTDI Bitbang method” with the Arduino-IDE” ที่ผมทดลองมายังไม่สะดวกมากนักครับ เพราะว่าอย่างหนึ่ง คือ ตัวโปรแกรม avrdude จะต้องปรับแต่ง เพื่อให้ใช้กับ bitbang ได้ ซึ่งมันยังไม่ compatible กับ arduino-0018 ครับ ลักษณะโปรเจค open-source ก้ออย่างงี้ล่ะครับ ถ้ามันยังไม่นิยมมาก ก้อไม่ค่อยเป็นมาตราฐาน และบ่อยครั้งมันก้อปิดตัวเองไปช้าๆ ครับ ตอนนี้เราก้อใช้กับมันแล้วทำความเข้าใจกันไปครับ

การเบิร์น bootloader ถ้าเราใช้ Arduino IDE ขั้นตอนจะไม่ยุ่งยากมากครับ กด [Burn Bootloader] จากเมนูอย่างเดียว ก้อจบ แต่พอเราใส่เครื่องเบิร์นไปใน IDE ไม่ได้ เลยลำบากเลย วิธีนี้ก้อเผื่อไว้ครับ ส่วนมากเครื่องเบิร์นหรือเครื่องโปรแกรมที่ขายในไทย มันอาจจะไม่ใช้ไม่ได้กับ arduino IDE เราก้อ manual เองเลย [ใครอยากใช้ FTDI แบบไม่ manual? เข้าไปดูตามลิงค์นี้ครับ]

สำหรับในบทความนี้จะขอยึดกับ การเบิร์น Bootloader ของ ไอซี ATmega328 เป็นหลักครับ สำหรับไอซีตัวอื่น ทางท่านผู้อ่าน ต้องลองเองครับ

รายละเอียด →

VN:F [1.9.20_1166]
Rating: 0.0/10 (0 votes cast)

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

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

Notes: 2

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

VN:F [1.9.20_1166]
Rating: 10.0/10 (1 vote cast)

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

กว่าจะเป็น เบิร์นโปรแกรมได้แบบ ทุกวันนี้
เมื่อก่อน เวลาเราพัฒนาคอนโทรลเลอร์ การเขียนข้อมูล ( data หรือ program ) ลงใน EEPROM (erasable rom) นั้น เขาจะต้องถอดเอา chip ไปล้างข้อมูลด้วยแสง ultraviolet ถึงจะเขียนโปรแกรมเข้าไปในใหม่ได้ ( ไม่รู้ว่าเกิดกันทัน ผมมาก้อไม่เห็นแล้วนะครับ ) และอายุการใช้งานจำกัด ดังนั้นจะเห็นว่า เวลาจะพัฒนาโปรแกรมอะไรใหม่ จะมีกระบวนการที่วุ่นวายมากๆเลย

PROM ตัวแรกๆ ของโลก รูปจาก http://en.wikipedia.org/wiki/Read-only_memory

ต่อมาความก้าวหน้าทาง Technology ทาง flash memory พัฒนามากขึ้น ได้บรรจุ flash memory ลงไปใน chip ด้วยทำให้การทำงานลบล้างข้อมูลบน chip ง่ายขึ้น อาจจะไม่ต้องใช้แสง ultraviolet เพื่อลบข้อมูล ใช้ไฟ ปกติก้อสามารถ อ่านเขียน ลบ โปรแกรมได้ แตก้อ่ยังต้องมีเครื่องมือ หรือ วงจรที่ต้องออกแบบมาเพื่อใช้งานนี้อยู่ดี

(อ่านต่อ click เลย) รายละเอียด →

VN:F [1.9.20_1166]
Rating: 0.0/10 (0 votes cast)

ตอนนี้ คนเริ่มใช้ Arduino กันเยอะมากขึ้นแล้ว หลังจากที่สำรวจ ตอนนี้ก้อมี บอร์ดที่เรียกว่า Arduino(clone) /Freeduino /m168 board อยู่หลายเจ้าเลย

เดี่ยวคงจะมีปัญหา ตัว bootloader พังบ้างล่ะ ตอนผมลองเล่นแรกๆ ส่วนมากจะชอบสร้างบอร์ดเองกัน แต่จะติดปัญหา ส่วนของเครื่องโปรแกรม คือเครื่องโปรแกรมที่อยู่ในโปรแกรม Arduino มันหาไม่ได้ คือจะเพิ่มเครื่องโปรแกรมที่เรามีอยู่ได้หรือป่าว ทางเราเลยจะบอกวิธีการ hack สุดแสนจะง่าย ให้ Arduino ใช้เครื่องโปรแกรมเราได้

ขอเล่าย้อนไปก่อน การจะ Hack จะต้องเข้าใจโครงสร้างของ Arduino ก่อน

Arduino เป็นโปรเจค open-source ที่รวมกับ โปรเจค open-source หลายๆตัวเข้ามาใช้ (อันนี้ต้องขอบคุณ คนพัฒนาในอดีตครับ ทำเอาไว้เยอะมาก) อย่างเช่น ตัวโปรแกรม base จะเป็น java ทำให้มันทำงานได้หลายๆ platform ตัวคอมไพล์เลอร์ของ Arduino จะใช้ avr-gcc และตัวสุดท้าย ตัวโปรแกรม ใช้ avrdude ในการ burn โปรแกรม

ถ้าเข้าใจโครงสร้างมันแล้วจะใส่อะไร เพิ่มอะไรก้อพอจะหาทางไปต่อได้ถูกครับ (ใช้พี่ google ดำไปได้ต่อ)

กลับมาที่ bootloader อีกรอบ การเบิร์น boot-loader นั้นไม่ยากยุ่ง เพราะว่าในโปรแกรม Arduino จะมีส่วนของ burn bootloader อยู่แล้ว ถ้าท่านมีเครื่องโปรแกรมตามรายชื่อในรูปก้อใช้งานได้เลยครับ แต่ปัญหามีอยู่ว่า เครื่องโปรแกรมที่มีรายชื่อ เป็นเครื่องที่ไม่มีขายในไทย จะเอามาใช้งานได้บ้างไหม

โดยปกติจะใช้ burn bootloader ตอนไหนบ้าง ผมจะใช้ตอนแรก ในการสร้างบอร์ดครับ หลังจากที่ได้ไอชีมาใหม่ ยังไม่ได้ใส่ firmware กับอีกรอบที่ bootloader เสีย (อันนี้โอกาสเกิดได้น้อย แต่มันก้อยังเสียได้) อาการเสียของ bootloader ดูง่ายๆ ถ้า LED13 บนบอร์ดไม่กระพริบ แสดงว่า boot-loader มันจะเสียแล้ว ?วิธีการเบิร์น bootloader ก้อแค่ กดที่เมนู Burn Bootloader ตอนโปรแกรมมันจะเบิร์น firmware และ set fusebit ให้

::กรอบแทรก :: เดี่ยวคนมาใหม่จะงง ขออธิบายให้รู้จัก bootloader กันสักนิด

? bootloader คือ firmware ส่วนหนึ่งที่ทำหน้าที่ เป็นที่ช่วยในการ upload โปรแกรม หรือ sketch ที่เราเขียนเข้าไปใน flash rom ผ่านทางสาย serial หรือ usb ซึ่งแล้วแต่คนออกแบบครับ โดยไม่จำเป็นต้องมีเครื่องโปรแกรมไอชี

สำหรับวิธีการ Hacking ให้ Arduino มีเครื่องโปรแกรมนั้นง่ายๆครับ ก้อแค่ edit file ไฟล์ programmers.txt ซึ่งจะอยู่ที่? >> [drive:]\arduino\hardware\programmers.txt ดังรูป

วิธีการเพิ่มแค่ใส่ CODE เข้าไปเพิ่ม แล้ว restart โปรแกรมใหม่เท่านั้นเอง ตัวแปร config ต่างๆมันจะเก็บไว้ในรูปแบบ object ของ java เอาที่สำคัญๆ ได้แก่

.communtication กำหนดว่าใช้ usb หรือ serial

.protocol เครื่องโปรแกรมใช้รูปแบบการรับส่งข้อมูลแบบไหน อันนี้ท่านต้องรู้จักโปรแกรม avrdude แล้วท่านจะรู้จัก protocol ต่างๆครับ

เครื่องโปรแกรมที่มีในไทยนะครับ ที่ผมเคยทดลองใช้อยู่ จะมีรุ่นดังต่อไปนี้นะครับ

  1. AVR-ISP (LPT)
  2. AVR-ISP (USB)
  3. USBASP (รุ่นทำกันเอง)

รายละเอียด →

VN:F [1.9.20_1166]
Rating: 0.0/10 (0 votes cast)

ยุคนี้เป็นคอมพิวเตอร์รุ่นที่สาม หรือ รุ่นที่สี่ ไม่แน่ใจ ตอนนี้เราสามารถพกพาคอมพิวเตอร์ความเร็วสูงไปไหนก้อได้ ยุคต่อไป เราคงใส่กระเป๋าตังได้แล้ว ด้วยกระแส ยุคที่เครื่อง?โน๊ตบุ๊ต ครองเมือง ทุกอย่างเล็กลง เพื่อให้เหมาะกับการพกพา?เลยทำให้ตัด?พอร์ตที่ไม่ได้ใช้งานออกไปเรื่อย?พอร์ตสือสาร?อย่าง?serial กับ pararell เลยโดนตัดไป แรกๆ เนื่องจากการเข้ามาของ USBถ้าตอนนี้ ใครมีต้องรีบเก็บไว้เลยนะครับ Retro ดี เผื่อจะได้แต่งบ้านได้ :D

ตอนนี้เวลาจะ upload ไฟล์ หรือ การเบิร์นโปรแกรม ด้วยไมโครฯ อาจจะยุ่งยากขึ้นไปอีก

การเขียนโปรแกรม พัฒนาโปรแกรมบนบอร์ดไมโครคอนโทรลเลอร์มักจะใช้ พอร์ทสื่อสาร อย่าง serial port? เนื่องจากความง่าย เข้าถึงคอมพิวเตอร์ได้เลย อย่าง arduino จะ upload โปรแกรม จะผ่าน port serial หรือจะให้ดูดี จะใส่ไอชี usb 2 serial ไว้บนบอร์ด แต่จริงก้อยังเป็น serial ไม่ได้เป็น usb จริงๆครับ? ก้อเลยเป็นที่มาของโครงการใหม่ เพื่อให้ arduino สามารถ upload โปรแกรมผ่าน usb ได้

รูปบอร์ด arduinoS3v3 แบบ upgrade แล้ว

รายละเอียด →

VN:F [1.9.20_1166]
Rating: 0.0/10 (0 votes cast)

สวัสดีครับ พ่อแม่ พี่น้อง ของ Electonic ช่วงนี้ปิดเทอม อากาศร้อน ไม่น่าอยู่บ้านไปอย่างยิ่งๆ หาอะไรทำหาลืมความร้อนกันบ้าง (ไม่เห็นมันจะเกี่ยวกันเลย)

เรามาต่ออะไรกันง่ายๆครับ มีคนถามผมบ่อยว่า arduino เอาไป burn หรือ upload แบบไม่ผ่าน arduino ide ได้หรือป่าว อยากจะเขียนบน avr-studio หรืออย่างอื่นจะ upload ได้ไหม

 

 

ก้อต้องบอกได้ว่า arduino สามารถใช้โปรแกรมอื่น upload hex ได้นะครับ


เข้าใจ bootloader

ส่วนของ bootloader ที่ใส่ใน mcu เป็นตัวส่วนช่วย upload ไฟล์ครับ ซึ่งเขาทำไว้ compatible กับอุปกรณ์ เบิร์นมาตราฐานอยู่แล้วครับ อย่างใน arduino เขาจะใส่ stk500-v1 ไว้ ฉะนั้นการทำงานของ arduino ?ในตอนเข้าโหมด loader นั้น มันจะจำลองตัวเองเป็น stk500-v1 เป็นเครื่องเบิร์น แต่มันเบิร์นเข้าตัวเองล่ะครับ (ต่อไปเครื่องเบิร์นจะขายได้ไหมนิ) ซึ่งตอนนี้จะเอาโปรแกรมเบิร์น ที่รู้จัก stk500 มาก้อ upload ได้แล้ว อย่างเช่น avrdude สำหรับ avrstudio จะรู้จัก stk500-v2 นะครับ เอาไปใช้งาน อาจไม่ได้

 

GUI สำหรับ windows

เอาล่ะครับ วันนี้มารู้จักอยู่โปรแกรมชื่อ Avrdude กันบ้าง

avrdude เป็นโปรแกรมเบิร์น อย่างเดียวเลยเท่านั้น ซึ่งเป็นโปรเจค opensource อีกอันหนึ่งที่นิยมมาก ทั้งที่โปรแกรมนี้ ไม่มีหน้าตาหล่อๆ เหมือนโปรแกรมอื่นเลย แถมทำงานทำงานบน command line ?ด้วยซ้ำ แต่โปรแกรมดี อย่างไง ก้อเป็นข้อดี และได้พัฒนา ส่วนเพิ่มเติมมาเรื่อยๆ เลยมีส่วน gui ทำงานใน windows เพิ่มขึ้น มีอยู่หลายตัวครับ อย่าง avr8-burn-o-mat , avrdude-gui วันนี้เอา avrdue-gui ก่อนแล้วกันครับ พอดีมันดีที่ ไฟล์เดียวก้อทำงานได้ แค่นั้นล่ะ อีกตัว ต้องมี java แต่สวยดี

รายละเอียด →

VN:F [1.9.20_1166]
Rating: 0.0/10 (0 votes cast)

ไมโครคอนโทรลเลอร์ เป็นอุปกรณ์ควบคุม ที่นิยมใช้กันมากๆ ซึ่งนับวันจะเล็กลงไปทุกวัน แต่การเรียนรู้ที่จะใช้ มักจะต้องลงทุน พอสมควร ถึงแม้ตอนนี้จะถูกลงกว่าแต่ก่อนแล้วก้อเถอะ

ในตอนนี้ ผมจะมาแนะนำเทคนิคที่น่าสนใจอีกอัน วิธีติดตั้ง boot-loader ซึ่งถ้าท่านใช้ AVR Studio ท่านจะได้ไม่ต้องเปลี่ยนโปรแกรมเลย และยังประหยัด ไม่ต้องใช้ เครื่องโปรแกรม อีกแล้ว เหมาะมากกับ class หรือ workshop จะได้ไม่ต้องมีเยอะ ประหยัดเงิน ไว้ทำซื้ออย่างอื่นดีกว่า ช่วยชาติครับ

รายละเอียด →

VN:F [1.9.20_1166]
Rating: 0.0/10 (0 votes cast)