<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Ayarafun &#187; avr</title>
	<atom:link href="http://www.ayarafun.com/tag/avr/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ayarafun.com</link>
	<description>Make , Creative and Let &#039;s fun</description>
	<lastBuildDate>Sun, 05 Feb 2012 07:30:54 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>แก้ปัญหาไอซี Fusebit เสีย ด้วยเครื่อง Chuprog &#8211; อุปกรณ์เบิร์นไอซีแบบ HighVolt</title>
		<link>http://www.ayarafun.com/2010/07/how-to-clear-lock-bit-with-hv-programming/</link>
		<comments>http://www.ayarafun.com/2010/07/how-to-clear-lock-bit-with-hv-programming/#comments</comments>
		<pubDate>Sat, 10 Jul 2010 19:13:24 +0000</pubDate>
		<dc:creator>chang</dc:creator>
				<category><![CDATA[Arduino-Hacking]]></category>
		<category><![CDATA[avr]]></category>
		<category><![CDATA[HVProg]]></category>
		<category><![CDATA[isp-programming]]></category>

		<guid isPermaLink="false">http://www.ayarafun.com/?p=1789</guid>
		<description><![CDATA[เปิดหัวมาสักแรง เหมือนจะแอบโฆษณา วันนี้ก้อเอาเหตุการณ์สำหรับคนเล่นไมโครฯ คงจะได้เจอกันบ้างครับ อาการ &#8220;Fusebit -Lockbit&#8221; อาการที่จะเกิดขึ้นได้ ถึงจะไม่บ่อยแต่ชวนให้ปวดหัว ปวดใจอย่างแน่นอน อยู่ไอซีที่เรามี หรือ บอร์ดที่เรามี ดันไป set fusebit หรือ ดันไป lockbit เข้าไป burn ไม่ได้ ขยายความอาการ Fusebit Lock เป็นอาการเรียกไอซีของ AVR ครับ ที่วันนี้ไอซีมันไม่ต่อสนองกับเครื่องเบิร์น จะ flash ไม่ได้ จะอ่านก้อไม่ได้ มันอาจจะเกิดได้จาก บางครั้งเราก้อเผลอ ไป lockbit ไอซีจริงๆ ก้อแก้ไม่ได้ บางที่เราก้อไป set fusebit เกี่ยวกับ Clock อาจะทำให้มันให้ ext-clock มันก้อเลยอ่านไม่ได้ บางที่ใช้งานอยู่ มันก้อ hang แล้ว fusebit กับ flash เสียไปก้อมีครับ


No related posts.

Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">เปิดหัวมาสักแรง เหมือนจะแอบโฆษณา วันนี้ก้อเอาเหตุการณ์สำหรับคนเล่นไมโครฯ คงจะได้เจอกันบ้างครับ อาการ <strong>&#8220;Fusebit -Lockbit&#8221; </strong>อาการที่จะเกิดขึ้นได้ ถึงจะไม่บ่อยแต่ชวนให้ปวดหัว ปวดใจอย่างแน่นอน อยู่ไอซีที่เรามี หรือ บอร์ดที่เรามี ดันไป set fusebit หรือ ดันไป lockbit เข้าไป burn ไม่ได้</p>
<p style="text-align: center;"><a href="../wp-content/uploads/2010/07/33404_412775463591_250201053591_4363298_5335144_n.jpg"></a><a href="http://www.ayarafun.com/wp-content/uploads/2010/07/33404_412775463591_250201053591_4363298_5335144_n.jpg"><img class="aligncenter size-full wp-image-1839" title="33404_412775463591_250201053591_4363298_5335144_n" src="http://www.ayarafun.com/wp-content/uploads/2010/07/33404_412775463591_250201053591_4363298_5335144_n.jpg" alt="" width="586" height="257" /></a></p>
<blockquote>
<p style="text-align: justify;">ขยายความอาการ Fusebit Lock เป็นอาการเรียกไอซีของ AVR ครับ ที่วันนี้ไอซีมันไม่ต่อสนองกับเครื่องเบิร์น จะ flash ไม่ได้ จะอ่านก้อไม่ได้ มันอาจจะเกิดได้จาก</p>
<ul>
<li>บางครั้งเราก้อเผลอ ไป lockbit ไอซีจริงๆ ก้อแก้ไม่ได้</li>
<li>บางที่เราก้อไป set fusebit เกี่ยวกับ Clock อาจะทำให้มันให้ ext-clock มันก้อเลยอ่านไม่ได้</li>
<li>บางที่ใช้งานอยู่ มันก้อ hang แล้ว fusebit กับ flash เสียไปก้อมีครับ (เจอแบบนี้ รีบไปแก้ไข PCB ด่วนครับ อาการเข้าขั้นหนักครับ)</li>
</ul>
</blockquote>
<p style="text-align: justify;">
<p style="text-align: justify;">ในรอบนี้ผมจะถือว่า อาการ FuseBit Lock ถือได้ว่าเป็นปัญหาระดับชาติกันเลยที่เดียวครับ (เว่อมาก) เพราะว่าทางผมเคยเจอเหตุการณ์มาครั้งหนึ่งตัว ตัวสมัยยังเป็นวันรุ่น ยังมีประสบการณ์น้อยนิด ตอนนนั้นผมใช้เครื่องเบิร์นหรือเครื่อง programming (ขอเรียกว่าเครื่องเบิร์น แล้วกันนะครับ)? เครื่องเบิร์นที่ผมใช้มีปัญหา check หา AVR มันดันเจอผิคเบอร์ แต่ทางผมก้อ force flash เข้าไป <strong>ตกลงไอซี AVR หลายตัวตอนนั้นก้อก้อเสียหมด</strong> <strong>ตอนโน่นเจอ LockBit ซื้อไอซีใหม่อย่างเดียว </strong> เพราะเรายังไม่มีเครื่องโปรแกรม High Volt ใช้กัน ก้อเป็นเรื่องตรวจใจ ถ้าเจออาการแบบนี้ อย่าไปพยายามใช้ครับ ต้องให้ชัวส์ ว่าเราเจอสาเหตุของปัญหาสักก่อนครับ อย่างน้อยก้อให้เครื่องเบิร์นมันเจอไอซี? ซึ่งทางผมเองคาดว่าตัวเครื่องเบิร์นฯ มันไม่ดีครับ (โทษไปเรื่อย) ตอนนั้นผมจะใช้เครื่องเบิร์น แบบผ่านสาย LPT? มันคงควบคุม timing ได้ไม่ดีครับ เศร้าไปหลายวันเลยที่เดียว</p>
<p style="text-align: justify;">สำหรับตอนนี้ประสบการณ์เยอะขึ้น แต่ก้อยังเผลอไป lockbit เหมือนเดิม ไหนก้อแก้ไม่ได้แล้ว ก้อหาเครื่องโปรแกรม HighVolt มาใช้เผื่อไว้เลยดีกว่าวันนี้เราจะมาดูกันว่า เครื่องเบิร์นแบบ HighVolt ดีอย่างไงครับ</p>
<p style="text-align: right;">(สนใจอ่านต่อคลิกเลยครับ)<span id="more-1789"></span></p>
<p style="text-align: justify;">สำหรับกระบวนการ Flash ไอซี AVR ผมเคยอธิบายวิีธี <a href="../2009/09/basic-isp-programming-for-av/">การเบิร์นแบบ ISP</a> ไปแล้ว ใครอยากทบทวนลองเข้าไปอ่านก่อน</p>
<p style="text-align: justify;">เครื่องเบิร์น หรือเครื่องโปรแกรมแบบ Parallel ที่จะมาแนะนำ เหมาะกับนักพัฒนาคนยากอย่างพวกเรานะครับ เป็นผลงานของเพื่อนสมาชิก electoday ครับ นามว่า เครื่องเบิร์น<a href="http://www.electoday.com/bbs/viewthread.php?tid=6042&amp;extra=page%3D1"> &#8220;Chuprog&#8221; </a>ดังรูปที่เห็นดังบนเลย ให้เราหาเครื่องเบิร์นแบบ High Volt ส่งข้อมูลแบบ Parallel มาใช้กันครับ (วิธีการ  flash แบบ  parallel นะครับ ไม่ใช่ผ่าน parallel port /printer port)</p>
<p style="text-align: justify;">สำหรับเครื่องโปรแกรมนี้ พัฒนาต่อโดยคนไทย เพื่อให้หาอุปกรณ์ที่เหมาะกับท้องถิ่นคับ อย่างเช่นใช้ไอซี PIC ตัวเล็กมาทำเป็น USB to Serial ครับ เพื่อใช้เบิร์น AVR มันช่างเป็นการทำลายเกียรติยศของ AVR สักจิงๆ เดี่ยวรอบหน้าจะขอให้ PIC โดน AVR เบิร์นบ้าง (ตึง&#8230;)</p>
<div class="wp-caption aligncenter" style="width: 552px"><img class="  " title="รูปเครื่องโปรแกรม Chuprog  กับเครื่องโปรแกรม Clone ตัวเดิมครับ (ตัวนี้ใช้งานดีกว่า อีเขียวอีกนะครับ)" src="http://sphotos.ak.fbcdn.net/hphotos-ak-ash2/hs039.ash2/35307_412634238591_250201053591_4360116_3026656_n.jpg" alt="" width="542" height="419" /><p class="wp-caption-text">Chuprog and AVRISP Clone</p></div>
<p style="text-align: justify;">โดยเครื่องเบิร์นผมได้ทดสอบ การใช้งานโดยทั่วไปๆ ใช้ในโหมด ISP ไม่รู้จะเทียบกันอย่างไง เล่าเป็นประสบการณ์การใช้งานแล้วกันนะครับ เทียบการเครื่อง AVRISP (อีเขียว รูปบน) จากการใช้ AVRISP ตัว Clone ที่ซื้อมาจากจีน มันเจอไอซีบ้าง ไม่เจอบ้างครับ อย่างเช่น ผมต่อสาย ISP เข้ากับบอร์ด mega128 แล้ว Read Signature บางที่มันไม่เจอ แต่เอาไปใช้อ่าน mega8/mega168/mega328 มาก้อเจอดี เรื่องนี้ยังสับสนอยู่ว่า เป็นได้ไง แต่ไปยืมเครื่อง AVRISP MKII ของเพื่อนมาลองเจอมัน (แต่มันแพงนะ) มันก้อแปลดีครับ แต่สำหรับ <strong>Chuprog</strong> นี้ไม่ค่อยเจอปัญหาดังกล่าวครับ</p>
<p style="text-align: center;"><img class="aligncenter" src="http://sphotos.ak.fbcdn.net/hphotos-ak-snc4/hs052.snc4/34969_412797893591_250201053591_4364085_1938146_n.jpg" alt="" width="350" height="374" /></p>
<p style="text-align: left;"><strong>สำหรับเครื่องเบิร์นแบบ HighVolt ตัวนี้ มีสรรพคุณดังนี้ครับ</strong></p>
<ul>
<li>สามารถเบิร์นผ่าน ISP mode ได้ (เหมือนเครื่องเบิร์นปกติตามท้องตลาด)</li>
<li>สามารถเบิร์นผ่าน HVSP/PP และยังช่วยให้เข้าไปแก้ Fusebit และ Lockbit ได้ครับ</li>
<li>ใช้งานผ่าน USB ได้ มันจะจำลองตัวเอง เป็น serial ใช้งานกับโปรแกรมอื่นได้ง่ายครับ</li>
<li>วงจรใช้ไฟแค่ +5Volt จาก USB เท่านั้น อันนี้ สะดวกครับไม่ต้องไปหา Adaptor ให้ยุ่งยาก โดยที่วงจร High-Volt? เป็นวงจร Switching จะ Up ไฟจาก 5v เป็น 12v</li>
<li>มีโปรโตคอทชุดคำสั่ง STK500 V2 สามารถใช้กับโปรแกรม AVRStudio หรือจะเอาไปใช้กับโปรแกรมอื่นๆก้อยังได้ (คาดว่า Arduino ก้อใช้ได้)</li>
</ul>
<h3>มาดูการใช้จริง</h3>
<p style="text-align: justify;">สำหรับการทดสอบนี้ ผมเน้นไปทางแก้ Fusebit แล้วกันครับ เนื่องจากถ้าไอซีมัน Lock จะมีเหลือวิธีเดียว หาเครื่องโปรแกรม High Volt เข้ามาอ่าน มาเขียนข้อมูลแทน การทำงานของเครื่อง HighVolt ก้อคือ มันจะจ่ายไฟ +12 Volt เข้าที่ขา Reset ครับ ทำให้ไอซี อนุญาติให้เข้าเขียน Flash ได้</p>
<p style="text-align: justify;">สำหรับบอร์ดที่นำมาใช้? เป็นบอร์ดที่โดนล๊อคจริง ผมได้บอร์ดของ ETT? BASE -AVR MEGA128 มาครับ? แต่ก่อนก้อเราส่ง claim ล่ะครับ แป็บเดียวก้อได้ แต่เราอยู่ไกลจากพระโขนง( ETT อยู่พระโขนงนะ) นานๆจะไปที่ สำหรับรอบนี้ น้องๆ ก้อส่งบอร์ดมาให้ลองของ? นี้ถ้า chuprog? ทำไม่ได้ ผมมีเผามันแน่แท้ อิอิ</p>
<p style="text-align: justify;">
<div class="wp-caption aligncenter" style="width: 586px"><img src="http://sphotos.ak.fbcdn.net/hphotos-ak-snc4/hs079.snc4/35307_412634223591_250201053591_4360113_5363617_n.jpg" alt="" width="576" height="386" /><p class="wp-caption-text">บอร์ด MEGA128 ที่โดน Lock Bit ใช้งานต่อไม่ได้ล่ะ</p></div>
<p style="text-align: left;">สำหรับการต่อใช้งานในโหมดแบบ Parallel จะยุ่งยากกว่าเดิมมากนะสักหน่อย เพราะว่าเราต้องการส่งข้อมูล Parallel เข้าไปยังไอซี จึงใช้สายสัญญาณเยอะครับ ดังรูป</p>
<p style="text-align: left;">
<p style="text-align: center;"><img class="alignnone" src="http://sphotos.ak.fbcdn.net/hphotos-ak-snc4/hs059.snc4/35307_412634218591_250201053591_4360112_4512343_n.jpg" alt="" width="293" height="195" /><img class="alignnone" src="http://sphotos.ak.fbcdn.net/hphotos-ak-ash2/hs039.ash2/35307_412634228591_250201053591_4360114_2033267_n.jpg" alt="" width="315" height="196" /></p>
<p>ซึ่งการต่อสายนิ ต้องทำใจครับเพราะว่าการflash แบบ paralell ใช้สายเยอะ และมันก้อยังไม่มีเป็น Port มาตราฐานสักด้วย แต่ใครวางแผนใส่ไว้เผื่อซ่อมก้อดีครับ อย่างบอร์ด MEGA128 ผมก้อได้ต่อตัวรูปข้างล่างครับ ใช้ Port B สำหรับรับส่ง DATA และ Port D เป็นตัวส่งค่า Control แต่เพิ่มขา PA0 ต่อกับ BS2 และเพิ่ม CLK จิ่มลงที่บอร์ด (บอร์ดมันไม่มี pin Xtal1 ออกมาให้)</p>
<p style="text-align: center;"><img class="alignnone" src="http://www.electoday.com/bbs/attachments/month_1006/1006121645794d6874e6835cfc.jpg" alt="" width="502" height="372" /></p>
<p style="text-align: justify;">สำหรับ XTAL สามารถจิ่มหาได้หลังบอร์ด ดังภาพครับ</p>
<p style="text-align: center;"><img class="alignnone" src="http://sphotos.ak.fbcdn.net/hphotos-ak-ash2/hs039.ash2/35307_412634233591_250201053591_4360115_7117847_n.jpg" alt="" width="584" height="389" /></p>
<p style="text-align: left;">
<p style="text-align: left;">เมือเสียบสายสำเร็จ ให้ปรับโหมด Programming เป็น PP/HVSP ครับ แล้วลองตรวจสอบไอซี ว่าถูกต้องหรือ่ปาวครับ ข้อควรระวังผมเสียบสาย DATA ผิคเรียงกลับกัน มันก้อยังอ่าน Signature ออกมาเป็น 0&#215;00 ,0&#215;00 ,0&#215;00? อันนี้ให้ไปไปแก้ไขสายก่อนนะครับ</p>
<p style="text-align: center;"><img src="http://sphotos.ak.fbcdn.net/hphotos-ak-snc4/hs052.snc4/34969_412797893591_250201053591_4364085_1938146_n.jpg" alt="" width="350" height="374" /></p>
<p style="text-align: left;">
<p style="text-align: left;">จากนั้นเข้าไปแก้ไข Fusebit หรือ LockBit ที่ให้เป็น Default? เราก้อสามารถกลับมาใช้งานแบบ ISP ได้ตามปกติแล้ว? สำหรับคนที่ทำถึงขั้นตอนนี้แล้วไอซียังใช้งานไม่ได้ ส่งกลับ claim ผู้ผลิตครับ อาจจะเสียแล้วนะครับ</p>
<p style="text-align: center;"><img class="alignnone" src="http://sphotos.ak.fbcdn.net/hphotos-ak-snc4/hs059.snc4/35307_412634243591_250201053591_4360117_80234_n.jpg" alt="" width="432" height="289" /></p>
<p style="text-align: left;">
<p style="text-align: left;">สรุป สิ่งที่ประทับใจกันหน่อยนะครับ</p>
<p style="text-align: left;"><strong>ประทับใจ</strong></p>
<ul>
<li>เราสามารถแก้ไข Fuse bit,lock bit ไ้ด้แล้ว แถมเป็นเครื่องโปรแกรมใช้งานปกติได้อีก</li>
<li>วงจรของเครื่องโปรแกรมสามารถจ่ายไฟ +5V และ +12V สำหรับโหมด HV ผมว่าสะดวกมากครับ ไม่ต้องพก adaptor</li>
<li>หาโปรแกรมที่มาใช้งาน ง่ายมันใช้ โปรโตคอล STK500v2 มาตราฐานดี</li>
</ul>
<p style="text-align: left;"><strong>ไม่ประทับใจ</strong></p>
<ul>
<li>คงหาซื้อยาก สำหรับคนทั่วไป ตอนนี้ซื้อได้ทางเน็ทอย่างเดียว</li>
<li>Design Package ต้องปรับครับ เกือบดีแล้ว</li>
</ul>
<p style="text-align: left;">เอาล่ะ คราวนี้เราก้อแก้ไขบอร์ด AVR ด้วยตัวเองได้แล้ว หรือไม่ก้อพอเห็นวิธีการแก้ไขบ้างล่ะ ขอบคุณที่เข้ามาติดตาม ใครใช้งานเจอปัญหาอะไรก้อ share ก้อได้นะครับ</p>


<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.ayarafun.com/2010/07/how-to-clear-lock-bit-with-hv-programming/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>รู้จัก In System Programming (ISP) เบิร์นไอชีได้อย่างไง</title>
		<link>http://www.ayarafun.com/2009/09/basic-isp-programming-for-av/</link>
		<comments>http://www.ayarafun.com/2009/09/basic-isp-programming-for-av/#comments</comments>
		<pubDate>Mon, 21 Sep 2009 13:30:42 +0000</pubDate>
		<dc:creator>chang</dc:creator>
				<category><![CDATA[Embeded System]]></category>
		<category><![CDATA[avr]]></category>
		<category><![CDATA[bootloader]]></category>
		<category><![CDATA[isp]]></category>

		<guid isPermaLink="false">http://www.ayarafun.com/?p=1150</guid>
		<description><![CDATA[กลับมาแล้วครับ รอบนี้ผมก้อมีบทความ ละเอียดอีกแล้ว บทความนี้เป็นของพี่ samira ผมยืมมาช่วยเผยแพร่ทางเวปนี้อีกช่องทางครับ หวังว่าคนเพิ่งมาจะได้ประโยชน์นะครับ (ท่าน CEO ไอยาราฟันส์ขี้เกียจขึ้นเรื่อยๆ) ส่วนมากคนที่เพิ่งเข้ามาจับ จะเจอคำศัพท์ใหม่ๆเยอะเลย ซึ่งมันต้องใช้เวลานะครับ วันนี้ผมมาแนะนำเรื่องพื้นฐานก่อน เรื่อนการเบิร์นครับ กว่าจะเป็น เบิร์นโปรแกรมได้แบบ ทุกวันนี้ เมื่อก่อน เวลาเราพัฒนาคอนโทรลเลอร์ การเขียนข้อมูล ( data หรือ program ) ลงใน EEPROM (erasable rom) นั้น เขาจะต้องถอดเอา chip ไปล้างข้อมูลด้วยแสง ultraviolet ถึงจะเขียนโปรแกรมเข้าไปในใหม่ได้ ( ไม่รู้ว่าเกิดกันทัน ผมมาก้อไม่เห็นแล้วนะครับ ) และอายุการใช้งานจำกัด ดังนั้นจะเห็นว่า เวลาจะพัฒนาโปรแกรมอะไรใหม่ จะมีกระบวนการที่วุ่นวายมากๆเลย PROM ตัวแรกๆ ของโลก รูปจาก http://en.wikipedia.org/wiki/Read-only_memory ต่อมาความก้าวหน้าทาง Technology ทาง flash memory พัฒนามากขึ้น


No related posts.

Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;">กลับมาแล้วครับ รอบนี้ผมก้อมีบทความ ละเอียดอีกแล้ว บทความนี้เป็นของพี่ samira ผมยืมมาช่วยเผยแพร่ทางเวปนี้อีกช่องทางครับ หวังว่าคนเพิ่งมาจะได้ประโยชน์นะครับ (ท่าน CEO ไอยาราฟันส์ขี้เกียจขึ้นเรื่อยๆ) ส่วนมากคนที่เพิ่งเข้ามาจับ จะเจอคำศัพท์ใหม่ๆเยอะเลย ซึ่งมันต้องใช้เวลานะครับ วันนี้ผมมาแนะนำเรื่องพื้นฐานก่อน เรื่อนการเบิร์นครับ</p>
<p style="text-align: left;"><strong> </strong><strong>กว่าจะเป็น เบิร์นโปรแกรมได้แบบ ทุกวันนี้</strong><br />
เมื่อก่อน เวลาเราพัฒนาคอนโทรลเลอร์ การเขียนข้อมูล ( data หรือ  program ) ลงใน EEPROM (erasable rom) นั้น เขาจะต้องถอดเอา chip  ไปล้างข้อมูลด้วยแสง ultraviolet ถึงจะเขียนโปรแกรมเข้าไปในใหม่ได้ (  ไม่รู้ว่าเกิดกันทัน ผมมาก้อไม่เห็นแล้วนะครับ ) และอายุการใช้งานจำกัด  ดังนั้นจะเห็นว่า เวลาจะพัฒนาโปรแกรมอะไรใหม่ จะมีกระบวนการที่วุ่นวายมากๆเลย</p>
<p style="text-align: left;"><img class="aligncenter" src="http://upload.wikimedia.org/wikipedia/commons/thumb/1/16/Eprom.jpg/300px-Eprom.jpg" alt="" width="300" height="156" /></p>
<p style="text-align: left;">PROM ตัวแรกๆ ของโลก รูปจาก <a href="http://en.wikipedia.org/wiki/Read-only_memory" target="_blank">http://en.wikipedia.org/wiki/Read-only_memory</a></p>
<p style="text-align: left;">ต่อมาความก้าวหน้าทาง Technology ทาง flash memory พัฒนามากขึ้น  ได้บรรจุ flash memory ลงไปใน chip ด้วยทำให้การทำงานลบล้างข้อมูลบน chip ง่ายขึ้น  อาจจะไม่ต้องใช้แสง ultraviolet เพื่อลบข้อมูล ใช้ไฟ ปกติก้อสามารถ อ่านเขียน ลบ  โปรแกรมได้ แตก้อ่ยังต้องมีเครื่องมือ หรือ  วงจรที่ต้องออกแบบมาเพื่อใช้งานนี้อยู่ดี</p>
<p style="text-align: right;"><strong>(อ่านต่อ click เลย)</strong><span id="more-1150"></span></p>
<h3 style="text-align: left;"><strong>เครื่องเบิร์นโปรแกรม  (flash programmers)</strong></h3>
<p style="text-align: left;">การอัดโปรแกรมเข้าไปในชิป  หรือเรียกภาษาเราบ่อยๆว่า &#8220;เบิร์นโปรแกรม&#8221; จะต้องใช้ไฟสูง หรือ  สัญญาณระดับไฟมากกว่า 12 โวลต์ เข้าไป tick ขาสัญญาณ เพื่อให้<span onclick="tagshow(event)">ไมโคร</span>ฯ  รับรู้ว่าจะมีการเขียนโปรแกรม ซึ่งในอดีตต้องมีการถอดเข้า ถอดออก ชิปบ่อยๆ  เพื่อย้ายชิปจากบอร์ดที่เราใช้ ไปยังเครื่องโปรแกรม ซึ่งจะมีวงจรที่ทำไฟสูง  แต่ด้วยความต้องการปัจจุบัน ทางบริษัทผลิต chip ได้บรรจุวงจร เพิ่มแรงดันเข้าไปใน  chip ด้วยจึงทำให้สามาร flash โปรแกรม เข้าไปใน chip ได้ด้วย เรียกว่า??In Circuit  System Programming ( ICSP or ISP) พูดตามภาษาชาวบ้านก็คือ การเขียน การเบิร์น  (burn) อุปกรณ์วงจรต่าง จึงลดลงไป</p>
<p>ส่วนการเบิร์นโปรแกรม (flash  programmers) (ISP) จะสามารถเบิร์นโปรแกรมได้สองวิธี เรียกว่า แบบ Parallel  Programming Mode (Parallel Mode) และแบบ <span onclick="tagshow(event)">Serial</span> Downloading Mode (ISP  mode)<br />
ถ้าเป็นแบบ pararell คือการต่อตรงเข้าไป mcu  ไม่ได้ผ่านชุดคำสั่งพิเศษ แต่ถ้าเป็น spi จะใช้ชุดคำสั่งใช้ในการ flash โปรแกรม  เข้าไป ที่นี้ขอกล่าวเฉพาะเขียนโปรแกรมแบบ serial<em><strong> ผ่านโมดุลสื่อสาร  SPI</strong></em></p>
<h2 style="text-align: left;"><strong>การทำงานของ In System Programming (ISP) </strong></h2>
<p style="text-align: left;">อย่างที่บอกไว้ตอนแรก flash memory สามารถเขียนได้ต้องใช้ไฟสูง  ในการขับขา gate จึงได้มีการพัฒนาเพิ่มทวีแรงดัน เพื่อสร้างไฟสูงภายในวงจร  การเบิร์นจึงทำได้ง่ายขึ้น</p>
<p>ในโมดุล ISP จะประกอบด้วยส่้วนการเขียนโปรแกรม  ลบโปรแกรม โดยมีรูปแบบ การส่ง command และ data ตาม datasheet หน้า 299<br />
<a href="http://www.atmel.com/dyn/resources/prod_documents/doc2545.pdf" target="_blank">http://www.atmel.com/dyn/resources/prod_documents/doc2545.pdf</a></p>
<p>บทความนี้ไม่ได้  มาชวนเขียนวิธีการเขียนโปรแกรมเพื่อลง flash  เพียงต้องการให้เข้าใจพื้นฐาน</p>
<p><strong> </strong></p>
<h3 style="text-align: left;"><strong>ขา <span onclick="tagshow(event)">MCU</span> ที่ใช้ใน In System  Programming</strong></h3>
<p style="text-align: left;"><img class="aligncenter" src="http://docs.google.com/File?id=dk2qpvk_960cn58rndd_b" alt="" width="500" height="370" />(ภาพ : ด้วยความเอื้อเฟื้อ จากเว็ปท่าน elmchan.org )</p>
<p style="text-align: left;">หากเข้าไปดูใน Atmel Chip จะเห็นว่า ขาของ chip เหล่านั้น  มีคำอธิบายไว้แทบทุกขาว่ามันทำอะไรบ้าง แต่เราจะสนใจแต่ ขาที่ใช้สำหรับ ISP<br />
<a href="http://www.atmel.com/dyn/resources/prod_documents/doc2545.pdf" target="_blank">http://www.atmel.com/dyn/resources/prod_documents/doc2545.pdf</a><br />
หน้า  2 ของเอกสารนี้ ท่านจะเห็น pin out ของ chip Atmega 44/88/168</p>
<p><strong>MOSI </strong>==  Master Out Slave In: data input<br />
<strong>MISO </strong>== Master In Slave out : data  output<br />
<strong>SCK</strong> == Serial ClocK : clock input<br />
<strong>RST</strong> == RESET: used to activate  the serial Programming</p>
<p>จากข้างบนจะเห็นว่า ขาที่บ่งว่า MOSI นั้น  จะเป็นขาส่งข้อมูลออก( Output ) ของตัวแม่ ( master )<br />
MISO นั้น  เป็นขาที่รับข้อมูล (input ) ที่ส่งมาจากลูก ( slave )<br />
SCK นั้น  เป็นตัวนาฬิกาคอยให้จังหวะการส่งข้อมูล<br />
ขาสุดท้ายก็คือ RST นั้น  คือตัวที่เริ่มให้มีการเขียนโปรแกรมลง chip</p>
<h3 style="text-align: left;"><strong>ขั้นตอนการทำงาน In  System Programming ผ่าน SPI ( จาก datasheet ของ Atmel )</strong></h3>
<p style="text-align: left;">ขั้นตอนการเขียนโปรแกรม ( code ) ลงบน chip นั้นจะส่งข้อมูลเป็นแบบ serial หรือ  ISP จะเริ่มต้นทำงานด้วยขณะที่ขา RST ถูกปรับให้มีค่า Logic high ( ระดับสัญญาณ  เท่ากับ Vcc )</p>
<p>สำหรับขา RST นั้น ปกติ ใช้สำหรับ reset โปรแกรม  กล่าวคือสัญญาณ Reset จะหยุดโปรแกรมและเริ่มต้นการทำงานใหม่ โดยเราทำให้ขา RST  มีระดับสัญญาณต่ำ ( logic ต่ำ )<br />
เมื่อขา RST ถูกตั้งให้เป็น High  คำสั่งพิเศษที่เรียกว่า Programming Enable instruction จะทำงานก่อน</p>
<p>สำหรับการรับส่งข้อมูลแบบ Serial คือการส่งข้อมูลจาก  ด้วยช่องสัญญาณเพียงช่องเดียว หรืือ ขาสัญญาณขาเดียว ในที่นี้คือขาสัญญาณ MISO และ  MOSI<br />
โดยข้อมูลจะส่งผ่าน MOSI ทีละ bit โดยแต่ละ bit สัญญาณจาก SCK  จะเป็นตัวควบคุมจังหวะของการรับส่ง และทางขา MISO  ใช้สำหรับรับข้อมูลจากลูกส่งกลับไปยังต้วแม่</p>
<p>โดยเริ่มจากข้อมูลใน chip  จะถูกลบหมด (chip erase) การลบข้อมูลใน flash memory และจะตามด้วยการเขียนค่า &#8220;FF&#8221;  (hexadecimal number) ลงไปในแต่ละตำแหน่งใน flash or ram memory ของ chip</p>
<p>ความเร็วของสัญญาณนาฬิกา ของ ISP จะถูกกำหนดโดยสัญญาณนาฬิกาอ้างอิงจาก  external clock ทีต่อที่ขา Xtal1 หรือ crystal ที่ต่อกับขา Xtal1&amp;Xtal2  โดยมีข้อกำหนดว่า ความเร็วของขา SCK นั้นจะเร็วไม่เกิน 1/16 ของ ความเร็วของ  crystal ไม่ได้</p>
<p>ฉะนั้น หากระบบของเรา ใช้ Crystal 16 MHz ความเร็วสูงสุดของ  SCK ก็จะได้แค่ 1 MHz แค่นั้น</p>
<h3 style="text-align: left;"><strong>โปรแกรมเบิร์นทำงานได้อย่างไง</strong></h3>
<p style="text-align: left;">โปรแกรมเบิร์น (Software  programmer) สำหรับ <span onclick="tagshow(event)">AVR</span> ที่นิยม ได้แก่ BASCOM ( basic ), avrstudio,  ponyprog , AVR Prog ซึ่ง โปรแกรมบางตัวสื่อสารตรง กับ mcu เลย อย่างเช่น ponyprog  ใช้สาย pararell สื่อสารแบบ SPI ตรงเข้า mcu เลย หรือบางตัวต้องผ่าน usb ติดต่อกับ  บอร์ดของเรา ซึ่ง hardware เหล่านี้จะสื่อสารข้อมูลโดยอาศัย protocol แบบ spi  ติดต่อกับ mcu อยู่ดี</p>
<p>ฉะนั้นโปรแกรมเบิร์นจึงเป็นการเขียนข้อมูล firmware  (hex code) เข้าไปในตัวชิปบนบอร์ดเรา<br />
software เช่น AVR studio, averdude หรือ  BASCOM ที่เราจะใช้เขียนโปรแกรมลง chip นั้น โปรแกรมเหล่านี้ จะมี Option  ให้เราเลือกใช้สายต่อ( hardware programmer ) ระหว่าง PC กับ  บอร์ดที่เราพัฒนา</p>
<p>สาเหตุที่เราต้องเลือกว่าจะใช้ programmer ตัวไหนนั้น  เพราะผู้สร้าง programmer แต่ละอัน ใช้ขาที่ใช้ทางฝั่ง PC สำหรับติดต่อกับ ขา MOSI,  MISO, SCK และ RST นั้น ไม่เหมือนกัน</p>
<p>ตัว hardware programmer  ซึ่งมีหลายรูปแบบ ไม่ว่าจะเป็น แบบต่อผ่าน สาย<strong> parallel สาย serial หรือ สาย <span onclick="tagshow(event)">USB</span></strong> ให้เราเลือกใช้ เช่น จาก <a href="http://www.captain.at/electronics/atmel-programmer/" target="_blank">http://www.captain.at/electronics/atmel-programmer/</a><br />
<img class="aligncenter" src="http://www.captain.at/electronics/atmel-programmer/th_atmega16-programmer.png" alt="" width="529" height="476" /></p>
<p>ต้วอย่าง<strong> serial programmer</strong> จาก <a href="http://www.serasidis.gr/circuits/avr_isp/avr_isp.htm" target="_blank">http://www.serasidis.gr/circuits/avr_isp/avr_isp.htm</a></p>
<p style="text-align: center;"><img style="cursor: pointer;" src="http://www.serasidis.gr/circuits/avr_isp/images/avr_isp_sch.jpg" alt="" width="600" height="306" /></p>
<p style="text-align: left;">จากข้างบน จะเห็นว่าสายต่อไปยัง MOSI ของparallel programmer  สองแบบนี้ มาจากคนละแหล่ง ของ parallel pin</p>
<p>อย่างไรก็ดี  ไม่ว่าสายที่ออกมาจาก ขาใหนก็ตามของ parallel or serial  port??ตัวรับที่อยู่บนบอร์ดของเรา จะมีมาตรฐานเดียวกันหมด กล่าวคือ??10 pin ICSP  header จะมีมาตรฐานเดียวกัน</p>
<p><a href="http://www.olimex.com/dev/pdf/avr-pg2b.pdf" target="_blank">http://www.olimex.com/dev/pdf/avr-pg2b.pdf</a><br />
<strong><br />
ขา 1 ==  MOSI<br />
ขา 2??== Vcc<br />
ขา 1??== LED หรือ เว้นว่าง<br />
ขา 4??== GND<br />
ขา 5??==  RST<br />
ขา 6??== GND<br />
ขา 7??== SCK<br />
ขา 8??== GND<br />
ขา 9??== MISO<br />
ขา  10??==GND</strong></p>
<p style="text-align: left;">เอาล่ะครับ จบสักที่นะครับ อาจจะเข้าใจยากสักนิดนะครับ บทความนี้ เป็นบทความเขียนร่วมกัน ผู้เขียนทั้งสอง คุณพี่ @samira จาก? St. Louis,  MO กับผม <a href="http://www.twitter.com/ayarafun">@ayarafun</a> ช่วยแต่งเติม? หวังว่าบทความคงจะมีประโยชน์บ้าง</p>
<p>บทความเขียนเรียบเรียงโดย samira ,St. Louis,  MO<br />
แนะนำ ตรวจ เพิ่มเติม แก้ใข โดย ChANg,??BKK, Thailand</p>
<h3>เอกสารอ้างอิง</h3>
<p style="text-align: left;"><a href="http://www.ikalogic.com/isp.php" target="_blank">http://www.ikalogic.com/isp.php</a><br />
<a href="http://www.olimex.com/dev/pdf/avr-pg2b.pdf" target="_blank">http://www.olimex.com/dev/pdf/avr-pg2b.pdf</a><br />
<a href="http://www.captain.at/electronics/atmel-programmer/" target="_blank">http://www.captain.at/electronics/atmel-programmer/</a></p>
<p style="text-align: left;"><strong>ข้อมูลเพิ่มเติมเกี่ยวกับ  Memory </strong><br />
<a href="http://en.wikipedia.org/wiki/Read-only_memory" target="_blank">http://en.wikipedia.org/wiki/Read-only_memory</a><br />
<a href="http://en.wikipedia.org/wiki/Flash_memory" target="_blank">http://en.wikipedia.org/wiki/Flash_memory</a></p>


<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.ayarafun.com/2009/09/basic-isp-programming-for-av/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ทำ touch screen ใช้เอง ง่ายนิดเดียว</title>
		<link>http://www.ayarafun.com/2009/08/easy-hid-touch-screen/</link>
		<comments>http://www.ayarafun.com/2009/08/easy-hid-touch-screen/#comments</comments>
		<pubDate>Fri, 21 Aug 2009 17:21:00 +0000</pubDate>
		<dc:creator>chang</dc:creator>
				<category><![CDATA[Embeded System]]></category>
		<category><![CDATA[avr]]></category>
		<category><![CDATA[avrusb]]></category>
		<category><![CDATA[touch screen]]></category>
		<category><![CDATA[usb]]></category>

		<guid isPermaLink="false">http://www.ayarafun.com/2009/08/%e0%b8%97%e0%b8%b3-touch-screen-%e0%b9%83%e0%b8%8a%e0%b9%89%e0%b9%80%e0%b8%ad%e0%b8%87-%e0%b8%87%e0%b9%88%e0%b8%b2%e0%b8%a2%e0%b8%99%e0%b8%b4%e0%b8%94%e0%b9%80%e0%b8%94%e0%b8%b5%e0%b8%a2%e0%b8%a7/</guid>
		<description><![CDATA[ไอเดียสุดเจ๋งเลย เขาเอาจาก touchscreen ที่มีขาย มาต่อกับ คอมพิวเตอร์โดยใน โปรเจค AVRUSB กลายเป็น touch controller ราคาถูกมากกก ผมชอบจิง ไอเดียวเอามาประยุกต์ แบบนี้ ใครสนใจเข้าไปชมที่เวป sparkfun นะครับ ชื่อเลียนแบบ ayarafun ของไทยเรา(ว่าไปนั้น อิอิ) ลองเข้าไปชมครับ USB Touchscreen Mouse No related posts. Related posts brought to you by Yet Another Related Posts Plugin.


No related posts.

Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>ไอเดียสุดเจ๋งเลย เขาเอาจาก touchscreen ที่มีขาย มาต่อกับ คอมพิวเตอร์โดยใน  โปรเจค AVRUSB กลายเป็น touch controller ราคาถูกมากกก ผมชอบจิง ไอเดียวเอามาประยุกต์ แบบนี้</p>
<p>ใครสนใจเข้าไปชมที่เวป <a href="http://www.sparkfun.com">sparkfun</a> นะครับ ชื่อเลียนแบบ <a href="http://www.ayarafun.com">ayarafun </a>ของไทยเรา(ว่าไปนั้น อิอิ)</p>
<p>ลองเข้าไปชมครับ <a href="http://www.sparkfun.com/commerce/tutorial_info.php?tutorials_id=139">USB Touchscreen Mouse</a></p>
<p style="text-align: center;"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="600" height="405" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=5582913&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" /><embed type="application/x-shockwave-flash" width="600" height="405" src="http://vimeo.com/moogaloop.swf?clip_id=5582913&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>


<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.ayarafun.com/2009/08/easy-hid-touch-screen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>วิธีการประกอบบอร์ด freeduino max232</title>
		<link>http://www.ayarafun.com/2009/01/asembly-freeduino-max232/</link>
		<comments>http://www.ayarafun.com/2009/01/asembly-freeduino-max232/#comments</comments>
		<pubDate>Tue, 20 Jan 2009 04:39:22 +0000</pubDate>
		<dc:creator>chang</dc:creator>
				<category><![CDATA[Arduino-Tutorial]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[assembly]]></category>
		<category><![CDATA[avr]]></category>
		<category><![CDATA[max232]]></category>

		<guid isPermaLink="false">http://www.ayarafun.com/?p=217</guid>
		<description><![CDATA[สไลด์แนะนำ วิธีประกอบบอร์ด Freeduino รุ่น Max232


No related posts.

Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>ตอนนี้บอร์ด arduino ในตลาดบ้านเรา เริ่มจะเยอะขึ้นแล้ว มีให้เลือกหลากหลาย ผมได้ทดสอบมาพอสมควร ทั้งบอร์ดที่ผมทำขึ้นมาเอง ซึ่งตอนนี้โพสขายที่ electoday.com และบอร์ดจาก inex และ ett ซึ่งส่วนมากจะยืมเขามาลองนะครับ <img src='http://www.ayarafun.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>บอร์ดที่ผมทำขึ้น ก้อตามนโยบายของเราใช้เอง 60 เปอร์เซ็นต์ ขาย 40 เปอร์เซ็นต์ มีเงินมาพัฒนาโปรเจคนิดหน่อย ทำให้ทางผมมีบอร์ดทำโปรเจคโดยไม่ต้องไปพึ่งใคร</p>
<p>แต่ทางผมก้ออยากลองของคนอื่นบ้าง ผมได้สั่งของทาง logicthai มาลองใช้เพิ่มเหมือนกันครับ <img src='http://www.ayarafun.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':-D' class='wp-smiley' />  ตอนนี้เจ้า arduino ยังนิยมมาก ในบ้านเรา ทางผมก้อว่า เราก้อช่วยๆส่งเสริมกันไปก่อน</p>
<p>ผมก้อได้ เพิ่ม slide วิธีการประกอบบอร์ด Freeduino max232 เข้าไปอ่านกันนะครับ</p>
<p><center><br />
<iframe src='http://docs.google.com/EmbedSlideshow?docid=dk2qpvk_562ctgzbhgs' frameborder='0' width='410' height='342'></iframe><br />
</center><br />
ส่วน credit ยกให้น้องที่มหาลัยพระจอมเกล้า ธนบุรี ทางผมขอมาเผยแพร่นะครับ</p>


<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.ayarafun.com/2009/01/asembly-freeduino-max232/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>คู่แข่ง segway มาแล้ว Arduway</title>
		<link>http://www.ayarafun.com/2008/11/arduway-arduino-plus-legonxt/</link>
		<comments>http://www.ayarafun.com/2008/11/arduway-arduino-plus-legonxt/#comments</comments>
		<pubDate>Mon, 24 Nov 2008 18:41:38 +0000</pubDate>
		<dc:creator>chang</dc:creator>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[avr]]></category>
		<category><![CDATA[balance robot]]></category>
		<category><![CDATA[lego nxt]]></category>
		<category><![CDATA[robot]]></category>

		<guid isPermaLink="false">http://www.ayarafun.com/?p=123</guid>
		<description><![CDATA[Arduway คือ หุ่นยนต์ควบคุมการทรงตัวด้วยตัวเอง (self-balacing robot) หน้าตาของหุ่นยนต์เป็นหุ่นยนต์สองล้อ แต่จับหุ่นยนต์จะตั้งขึ้นให้ยืนด้วยล้อสองล้อ ให้หุ่นยนต์ประคองตัวเองไม่ให้ล้มลงมาได้ เหมือน segway ล่ะครับ โปรเจคนี้เป็นการรวมกันระหว่าง Arduino + Lego NXT ตัวบอร์ดสมองใช้ arduino ในการประมวลผล กับ ประยุกต์ชุด sensor ของ lego NXT มารวมกัน กลายเป็นของเล่น ที่ไม่ใช่เรื่องเล่นๆเลยนะนิ สนใจเข้าไปอ่าน หรือ ลองทำได้ที่นี้ Arduino2Lego Arduway No related posts. Related posts brought to you by Yet Another Related Posts Plugin.


No related posts.

Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p><strong>Arduway </strong> คือ หุ่นยนต์ควบคุมการทรงตัวด้วยตัวเอง (self-balacing robot)<br />
หน้าตาของหุ่นยนต์เป็นหุ่นยนต์สองล้อ แต่จับหุ่นยนต์จะตั้งขึ้นให้ยืนด้วยล้อสองล้อ ให้หุ่นยนต์ประคองตัวเองไม่ให้ล้มลงมาได้ เหมือน segway ล่ะครับ</p>
<p>โปรเจคนี้เป็นการรวมกันระหว่าง Arduino + Lego NXT ตัวบอร์ดสมองใช้ arduino ในการประมวลผล กับ ประยุกต์ชุด sensor ของ lego NXT มารวมกัน กลายเป็นของเล่น ที่ไม่ใช่เรื่องเล่นๆเลยนะนิ</p>
<p style="text-align: center;"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="344" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="data" value="http://www.youtube.com/v/Tw9Jr-SPL0Y&amp;hl=en&amp;fs=1" /><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/Tw9Jr-SPL0Y&amp;hl=en&amp;fs=1" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="425" height="344" src="http://www.youtube.com/v/Tw9Jr-SPL0Y&amp;hl=en&amp;fs=1" allowscriptaccess="always" allowfullscreen="true" data="http://www.youtube.com/v/Tw9Jr-SPL0Y&amp;hl=en&amp;fs=1"></embed></object></p>
<p><span id="more-123"></span></p>
<p>สนใจเข้าไปอ่าน หรือ ลองทำได้ที่นี้<br />
<a href="http://sourceforge.net/projects/a2l/">Arduino2Lego</a><br />
<a href="http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1221664564/">Arduway</a></p>


<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.ayarafun.com/2008/11/arduway-arduino-plus-legonxt/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wiring #3 จับ wiring ไปอยู่ใน arduino</title>
		<link>http://www.ayarafun.com/2008/11/wiring-part-3-port-to-arduino/</link>
		<comments>http://www.ayarafun.com/2008/11/wiring-part-3-port-to-arduino/#comments</comments>
		<pubDate>Fri, 21 Nov 2008 17:23:19 +0000</pubDate>
		<dc:creator>chang</dc:creator>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[MyProject]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[avr]]></category>
		<category><![CDATA[wiring]]></category>

		<guid isPermaLink="false">http://www.ayarafun.com/?p=62</guid>
		<description><![CDATA[และแล้วเรื่องราว ก้อมาตอนสาม ผมตามหาคู่แท้ ให้บอร์ด mega64 ผมได้สักที่ ในโปรแกรม wiring เขาไม่สามารถเอาไปใช้งานได้ ผมเลยกลับไปหาน้องแฟน เฮ้ย น้อง arduino เหมือนเดิม (อ้าว โอ้ ใช้งานกันได้อย่างไง นิ) ภาคนี้เป็นการจับคู่ กันระหว่าง wiring , atmega64 และ arduino สามขั้ว ที่ยังไม่เคยเจอหน้ากันมาก่อน อย่างที่บอกใบ้ ตั้งแต่ตอนแรก ว่า arduino กับ wiring มันเป็นพี่น้องกัน คลานตามกันมาเลย โครงสร้างจะเหมือนกันเลย ซึ่งจะทำให้ wiring มาอยู่ใน arduino จึงเป็นไปได้ ขั้นตอนการดัดแปลง 1. ทำโครงสร้างให้ทำงานใน arduino ได้ Svn download core wiring ทำการ copy ไป -&#62; \arduino\hardware\cores\wiring


Related posts:<ol><li><a href='http://www.ayarafun.com/2011/02/arduino-workshop-at-photawattanasenee-school/' rel='bookmark' title='สรุปโครงการและภาพบรรยากาศ Arduino Workshop ที่ราชบุรี'>สรุปโครงการและภาพบรรยากาศ Arduino Workshop ที่ราชบุรี</a></li>
<li><a href='http://www.ayarafun.com/2011/04/more-lufa-hacks-keyboard-mouse-and-midi/' rel='bookmark' title='LUFA &#8211; เปลี่ยน Arduino UNO ให้เป็นสรรพัด Device USB'>LUFA &#8211; เปลี่ยน Arduino UNO ให้เป็นสรรพัด Device USB</a></li>
</ol>

Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>และแล้วเรื่องราว ก้อมาตอนสาม ผมตามหาคู่แท้ ให้บอร์ด mega64 ผมได้สักที่ ในโปรแกรม wiring เขาไม่สามารถเอาไปใช้งานได้ ผมเลยกลับไปหาน้องแฟน เฮ้ย น้อง arduino เหมือนเดิม (อ้าว โอ้ ใช้งานกันได้อย่างไง นิ)</p>
<p>ภาคนี้เป็นการจับคู่ กันระหว่าง wiring , atmega64 และ arduino สามขั้ว ที่ยังไม่เคยเจอหน้ากันมาก่อน อย่างที่บอกใบ้ ตั้งแต่ตอนแรก ว่า arduino กับ wiring มันเป็นพี่น้องกัน คลานตามกันมาเลย โครงสร้างจะเหมือนกันเลย ซึ่งจะทำให้ wiring มาอยู่ใน arduino จึงเป็นไปได้</p>
<p style="text-align: center;"><img class="aligncenter" src="http://lh4.ggpht.com/_Yf5JCo_hjfM/SSRGu-JEjZI/AAAAAAAAAGY/bxpXkm6qAQY/s288/P1200130.JPG" border="0" alt="" /></p>
<p><span id="more-62"></span></p>
<p><strong>ขั้นตอนการดัดแปลง</strong></p>
<p>1. ทำโครงสร้างให้ทำงานใน arduino ได้</p>
<ul>
<li>Svn download core wiring</li>
<li>ทำการ copy ไป -&gt; \arduino\hardware\cores\wiring</li>
<li>ดัดแปลง แก้ไข WApplet.c และสร้างไฟล์ main.cxx เพื่อโครงสร้างให้เหมือนกับ arduino</li>
</ul>
<p>2. เพิ่มเมนูให้ ett-stamp ลงใน แล้วเพิ่ม board.txt</p>
<p><strong>สำหรับ Atmega128 เพิ่มส่วนนี้นะครับ</strong></p>
<pre class="brush: java">wiring.name=Wiring I/O
wiring.upload.protocol=stk500v2
wiring.upload.maximum_size=126000
wiring.upload.speed=115200
wiring.bootloader.low_fuses=0xc6
wiring.bootloader.high_fuses=0xdd
wiring.bootloader.extended_fuses=0x00
wiring.bootloader.path=atmega128
wiring.bootloader.file=ATmegaBOOT.hex
wiring.bootloader.unlock_bits=0x3F
wiring.bootloader.lock_bits=0x0F
wiring.build.mcu=atmega128
wiring.build.f_cpu=16000000L
wiring.build.core=wiring</pre>
<p><strong>สำหรับอันนี้ Atmega64 เพิ่มส่วนนี้นะครับ</strong></p>
<pre class="brush: java">wiring64.name=Wiring I/O (mega64)
wiring64.upload.protocol=stk500v2
wiring64.upload.maximum_size=62000
wiring64.upload.speed=115200
wiring64.bootloader.low_fuses=0xc6
wiring64.bootloader.high_fuses=0xdd
wiring64.bootloader.extended_fuses=0x00
wiring64.bootloader.path=atmega64
wiring64.bootloader.file=ATmegaBOOT.hex
wiring64.bootloader.unlock_bits=0x3F
wiring64.bootloader.lock_bits=0x0F
wiring64.build.mcu=atmega64
wiring64.build.f_cpu=16000000L
wiring64.build.core=wiring</pre>
<p style="text-align: left;">อันนี้เป็น code เฉพาะกิจนะครับ fuses bit ไม่ได้ check ว่าทำงานถูกต้องไหม อยากลองว่า &#8220;<em>เป็นไปได้ไหม ที่จะเอา wiring มาใช้บน arduino</em>&#8221; ก่อนครับ</p>
<p>หลังจากบอร์ด mega-64 ที่ผมได้แก้ไข (ดูจากตอนที่สอง) และใส่ boot-loader แล้ว พร้อมเอาไปใช้งานได้เลย นี้รูปหน้าตาบอร์ดที่รวมร่างกับอุปกรณ์อื่นๆแล้ว</p>
<p style="text-align: left;"><img class="aligncenter" src="http://lh4.ggpht.com/_Yf5JCo_hjfM/SSRIO6XIYeI/AAAAAAAAAG4/8pnIb8wCN5E/s288/P1200139.JPG" border="0" alt="" /></p>
<p style="text-align: left;">บอร์ดไม่งามมาก ครับ ทำแบบ นักประดิษฐ์คนยาก <img title="Cheesy" src="http://www.electoday.com/yabbfiles/Templates/Forum/default/cheesy.gif" border="0" alt="Cheesy" /></p>
<p style="text-align: left;"><strong><span style="color: #888888;">ทดสอบ wiring บน arduino</span></strong></p>
<p>เหมือนท่านลง core wiring ลงไปแล้ว ท่านอาจจะเจอกับ bug นิดหน่อยครับ ฮ่าๆ มันมาพร้อมกับ bug เสมอ ท่านจะสามารถคอมไพล์ skeate สำหรับ wiring ได้ ซึ่งตอนนี้ทดสอบแล้วล่ะว่า hex ที่ได้เอาไปใช้ได้หรือป่าว ซึ่งผมทดสอบกับระบบรวมๆนะครับ พวก in port ,out port ,serial สามารถใช้งานได้ดีอยู่ ไม่ได้ลองกับ ทุก libary</p>
<p style="text-align: left;"><img class="aligncenter" src="http://lh5.ggpht.com/_Yf5JCo_hjfM/SSbfhd6RFaI/AAAAAAAAAN0/W3HFV3QnnPg/s288/wiring_on_arduino.jpg" border="0" alt="" /></p>
<p style="text-align: left;">หลังจากเพิ่ม code ลงไปใน board.txt จะมีชื่อบอร์ดเพิ่มขึ้นนะครับ</p>
<p style="text-align: left;"><strong>วิธีทดสอบ </strong>ผมใช้วิธีเดิมนะครับ ใช้ตัวอย่าง blinking กับ asii table</p>
<p>แล้ว upload arduino สามารถ upload skeate เข้าไปใน wiring ตัวปลอมเราได้อย่างมหัศจรรย์</p>
<p style="text-align: left;"><strong>ทดสอบกับ blinking (ไฟกระพริบเทพ)</strong></p>
<p style="text-align: left;"><img src="http://lh4.ggpht.com/_Yf5JCo_hjfM/SSRGu-JEjZI/AAAAAAAAAGY/bxpXkm6qAQY/s288/P1200130.JPG" border="0" alt="" /> <img src="http://lh5.ggpht.com/_Yf5JCo_hjfM/SSRHEyS1HhI/AAAAAAAAAGg/FO_nLCmXLeg/s288/P1200131.JPG" border="0" alt="" /></p>
<p style="text-align: left;">รูปทดสอบอื่นๆ ได้ที่ -&gt; <a href="http://picasaweb.google.com/PrasertsakD/EttStampModToWiring211051">http://picasaweb.google.com/PrasertsakD/EttStampModToWiring211051</a></p>
<p style="text-align: left;">ตอนนี้ผมทดลองพื้นฐานอยู่ยังไม่ได้ ว่าจะเอาไปใช้งานจริง ผมว่า <a href="http://www.arduino.cc/" target="_blank">www.arduino.cc</a> กับ <a href="http://www.wiring.org.co/" target="_blank">www.wiring.org.co</a> คงมีเหตุผลอะไรสักอย่าง ที่จะจับมารวมกัน สำหรับท่านที่ทดลอง mega128 หรือ mega64 ท่านสามารถเอา source นี้ไปได้นะครับ</p>
<p style="text-align: left;">download source code-&gt; <a title="download beta wiring 001" href="http://www.ayarafun.com/wp-content/uploads/2008/11/wiring.zip" target="_blank">http://www.ayarafun.com/wp-content/uploads/2008/11/wiring.zip</a></p>
<p style="text-align: left;"><strong>วิธีการติดตั้ง</strong></p>
<p>1. เอา core ไปใส่ใน -&gt; \arduino\hardware\cores\wiring</p>
<p>2. แล้วเพิ่ม ett-stamp ลงไปใน ดังตัวอย่างในไฟล์ board.txt -&gt; \arduino\hardware\board.txt</p>
<p style="text-align: left;">ข้อดีอย่างหนึ่งที่จับ wiring กับ arduino มารวมกัน ผมจะได้มีโปรแกรมใช้งาน โปรแกรมเดียวไม่ต้องสลับไป สลับมา ,แถมจะสามารถ เอา source ไปใช้กับบอร์ดที่อยู่กลุ่ม wiring และ arduino ได้อีกหลายบอร์ด</p>
<p style="text-align: left;">อย่างเช่น เขียนโปรแกรมอยู่ บน wiring ไม่อยู่ เอาแค่ส่วนนี้ไปลองบน arduino ก่อนแล้วกัน ก้อแค่เปลี่ยนไปเลือกที่ tools-&gt;board-&gt;arduino แล้ว upload ทดสอบ พอ wiring มาก้อแก้ โปรแกรมนิดหน่อยแล้ว upload ไปใช้งานใน wiring ได้เลย</p>
<p style="text-align: left;">สรุปการใช้งานครั้งนี้นะครับ</p>
<ul style="text-align: left;">
<li>สามารถเอา core wiring port ไปใช้งาน arduino ได้</li>
<li>สามารถเอา core wiring ไปใช้บน atmega64 ได้อีกดัวย</li>
</ul>
<p style="text-align: left;">อันนี้แค่ขั้นทดลองอยู่นะครับ จะใช้งานจิงคงต้องไปไล่ฆ่า bug  ถ้าใครไม่คิดมาก ไปใช้ mega128 บน wiring ก่อนดีกว่านะครับ</p>
<p style="text-align: left;">หวังว่าคงได้ ไอเดียในการพัฒนานะครับ ทุกครั้งที่เราทำอะไรขึ้นมา เส้นทางมันไม่ได้ ไปได้ง่าย เสมอไปหรอกครับ ทำสิบ ใช้ได้ หนึ่งก้อนับว่าดีแล้ว? โชดดีนะครับ</p>


<p>Related posts:<ol><li><a href='http://www.ayarafun.com/2011/02/arduino-workshop-at-photawattanasenee-school/' rel='bookmark' title='สรุปโครงการและภาพบรรยากาศ Arduino Workshop ที่ราชบุรี'>สรุปโครงการและภาพบรรยากาศ Arduino Workshop ที่ราชบุรี</a></li>
<li><a href='http://www.ayarafun.com/2011/04/more-lufa-hacks-keyboard-mouse-and-midi/' rel='bookmark' title='LUFA &#8211; เปลี่ยน Arduino UNO ให้เป็นสรรพัด Device USB'>LUFA &#8211; เปลี่ยน Arduino UNO ให้เป็นสรรพัด Device USB</a></li>
</ol></p>
<p>Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.ayarafun.com/2008/11/wiring-part-3-port-to-arduino/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Wiring #2 ตอนกำเนิดบอร์ด wiring (DIY)</title>
		<link>http://www.ayarafun.com/2008/11/wiring-board-part-2/</link>
		<comments>http://www.ayarafun.com/2008/11/wiring-board-part-2/#comments</comments>
		<pubDate>Wed, 12 Nov 2008 13:41:27 +0000</pubDate>
		<dc:creator>chang</dc:creator>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[MyProject]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[avr]]></category>
		<category><![CDATA[wiring]]></category>

		<guid isPermaLink="false">http://www.ayarafun.com/?p=18</guid>
		<description><![CDATA[มาถึงตอนนี้หลายท่านเกิดอยากลอง wiring แต่ไม่รู้จะบอร์ดที่ไหนดี จะแนะนำให้ไปซื้อมาเลย มันคงจะไม่สนุกอะไร อย่างเราๆ นี้ต้องทำเองกับมือถึงจะดี ผมเลยได้ไอเดียว่าน่าจะลองทำเองก่อน ความจริงอยู่เมืองไทย มีดีหลายอย่าง เราสามารถหา อะไหล่อิเล็กทรอนิกส์ถูกๆ จากจีน และ taiwan ได้ และในกรุงเทพยังมีบริษัท ที่พัฒนาบอร์ดเพื่อการศึกษาอิเล็กทรอนิกส์และราคาไม่แพงมาก (ผมเห็นเพื่อนๆ หลายคนเอาไปขายใน ebay ทำกำไรได้มากมายเลย) ผมจึงคิดว่าเราน่าจะหาเลือกบอร์ดที่เหมาะสม มาดัดแปลงใช้งานได้ครับ เผื่อมันเวิร์ก จะได้ มีอะไหล่ใช้กันจนแก่ครับ (ฮ่าๆ เงินผมหายาก) เลยมาเป็นเนื้อให้ในตอนนี้ครับ ทำบอร์ด wiring ใช้เอง ขั้นตอนเตรียมอุปกรณ์ ก่อนอื่นเลย ควรจะเริ่มจากการศึกษาวงจรของทาง wiring ก่อน วงจรของ Wiring I/O สนใจคลิกที่นี่ครับ วงจรของ Wiring mini สนใจคลิกที่นี่ครับ Wiring ใช้ main mcu เป็น Atmega128 ซึ่งผมดูว่าจิงมันคล้ายกับ arduino ที่มี


No related posts.

Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>มาถึงตอนนี้หลายท่านเกิดอยากลอง wiring แต่ไม่รู้จะบอร์ดที่ไหนดี จะแนะนำให้ไปซื้อมาเลย มันคงจะไม่สนุกอะไร อย่างเราๆ นี้ต้องทำเองกับมือถึงจะดี ผมเลยได้ไอเดียว่าน่าจะลองทำเองก่อน<br />
ความจริงอยู่เมืองไทย มีดีหลายอย่าง เราสามารถหา อะไหล่อิเล็กทรอนิกส์ถูกๆ จากจีน และ taiwan ได้ และในกรุงเทพยังมีบริษัท ที่พัฒนาบอร์ดเพื่อการศึกษาอิเล็กทรอนิกส์และราคาไม่แพงมาก (ผมเห็นเพื่อนๆ หลายคนเอาไปขายใน ebay ทำกำไรได้มากมายเลย) ผมจึงคิดว่าเราน่าจะหาเลือกบอร์ดที่เหมาะสม มาดัดแปลงใช้งานได้ครับ เผื่อมันเวิร์ก จะได้ มีอะไหล่ใช้กันจนแก่ครับ (ฮ่าๆ เงินผมหายาก) เลยมาเป็นเนื้อให้ในตอนนี้ครับ ทำบอร์ด wiring ใช้เอง</p>
<h5><strong>ขั้นตอนเตรียมอุปกรณ์</strong></h5>
<p>ก่อนอื่นเลย ควรจะเริ่มจากการศึกษาวงจรของทาง wiring ก่อน</p>
<p>วงจรของ Wiring I/O <a href="http://www.wiring.org.co/download/WiringIOboard.pdf" target="_blank">สนใจคลิกที่นี่ครับ</a><br />
วงจรของ Wiring mini <a href="http://www.wiring.org.co/download/WiringMini.pdf" target="_blank">สนใจคลิกที่นี่ครับ</a></p>
<p style="text-align: justify;">Wiring ใช้ main mcu เป็น Atmega128 ซึ่งผมดูว่าจิงมันคล้ายกับ arduino ที่มี hardware พื้นฐานง่ายๆ มี main mcu , power, ส่วน uart และ คิดว่าน่าจะเอาบอร์ดสักบอร์ดที่หาได้ มาลองทำได้ล่ะ ตอนนี้อุปกรณ์ที่ผมมีอยู่เป็น Atmega 64 ของ ett-stamp ครับ ถ้าทำออกมาได้ เราจะได้มี wiring mini เพิ่มอีกอันล่ะมั่ง (ในไทยเราจะได้มีขายทั้งสองรุ่นเลย mini กับ รุ่น I/O</p>
<p style="text-align: justify;"><span id="more-18"></span></p>
<h5><span style="text-decoration: underline;"><strong>อุปกรณ์ที่ต้องมี</strong></span></h5>
<p>1. บอร์ดใดๆ atmega 128 (ส่วนของผมเป็น atmega64)<br />
2. โปรแกรม Wiring<br />
3. boot loader (ต้องมี svn ไว้ update source จาก web ด้วย)</p>
<h5><span style="text-decoration: underline;"><strong>เตรียม Boot loader</strong></span></h5>
<p>อันนี้ให้กลับไปอ่านจาก <a title="เล่นไมโครฯ ไม่ง้อเครื่อง burn กันดีกว่า" href="http://www.ayarafun.com/2008/10/making-boot-loader-in-ett-stamp/" target="_blank">http://www.ayarafun.com/2008/10/making-boot-loader-in-ett-stamp/</a></p>
<p style="text-align: left;">หลังจากที่เล่นกับ arduino มาสักพัก จึงเข้าใจว่าส่วน hardware ของ wiring มีลักษณะเหมือน arduino ล่ะ ผมจึงหันไปสนใจ ส่วนอื่นที่ยังไม่แน่ใจก่อน จึงไปเริ่มดู software ของ wiring ก่อนครับ ตัวพัฒนาโปรแกรมของ wiring จะเหมือน arduino ทุกประการครับ <strong>แต่อันนี้สำคัญตัวโปรแกรม wiring จะไม่มีเมนู burn bootloader</strong> ซึ่งถ้าสนใจคงทำเองนะครับ</p>
<p>เข้าไปโหลด bootloader ต้องใช้ svn นะครับ-&gt;<br />
<a href="http://wiring.uniandes.edu.co/source/trunk/wiring/" target="_blank"></a><a href="http://wiring.uniandes.edu.co/source/trunk/wiring/bootloader/" target="_blank">http://wiring.uniandes.edu.co/source/trunk/wiring/bootloader/</a></p>
<p style="text-align: left;"><span style="text-decoration: underline;"><strong>เตรียมบอร์ด และการโมดิฟาย Ett-stamp ให้เป็น Wiring</strong></span><br />
ถ้าท่านเอา AVR มาตัวเปล่า แล้วใส่ boot-loader เข้าไป จะทำให้ภายใน AVR เหมือนมีเครื่องโปรแกรมอยู่ภายใน (STK-500 v2)  และ สามารถใช้โปรแกรม avr-dude ,avr-studio flash firmware ได้ทันที</p>
<p style="text-align: left;">แต่ถ้าท่านจะเอาไปใช้กับโปรแกรม wiring ท่านเอาบอร์ดใดๆ ก้อได้ แต่ต้องใช้ Atmega128 มานะครับ ตัวโปรแกรมเอง ยังไม่สามารถใช้กับ avr series อื่นๆได้ และ<span style="color: #ff0000;"><strong>ต้องมีอุปกรณ์เพิ่มเติม crystal 32.687kHz เข้าไปด้วย</strong></span> ถึงจะสามารถใช้งานได้สมบูรณ์ ดังรูปนะครับ</p>
<p style="text-align: center;"><img class="aligncenter" src="http://images.ayarafun.multiply.com/image/2/photos/10/500x500/15/diagram-wiring.png?et=Rygg1e66U36b%2BBer%2BZwFbw&amp;nmid=121042026" border="0" alt="" /></p>
<p><em>ขา PXX อันนี้เป็น option นะครับ เอาไว้ช่วยในการ upload ,PXX ขาใดซึ่งเราดูได้จากใน source code ของ bootloader</em></p>
<p>ซึ่งเมื่อตอนอุปกรณ์ทั้งหมด สำเร็จเป็นดังรูปครับ ผมทำทดลองบนบอร์ดทดลองนะครับ จะเพิ่ม LED และ Switch ไว้</p>
<p><img class="aligncenter" title="Wiring on Ett-stamp" src="http://lh4.ggpht.com/_Yf5JCo_hjfM/SSRIO6XIYeI/AAAAAAAAAG4/8pnIb8wCN5E/s720/P1200139.JPG" alt="" width="386" height="289" /></p>
<p>มาถึงตอนนี้ หลังจากที่่ได้เตรียมอุปกรณ์ ทุกอย่างเรียบร้อย ก้อเปิดโปรแกรม wiring ขึ้นมา เข้าเมนู setup -&gt; firmware version กับ เลือก serial port ท่านสามารถใช้งานได้แล้วครับ</p>
<h5><strong>เลือก Firmware Version ให้เลือก version 2.2</strong></h5>
<p style="text-align: left;"><img class="aligncenter" src="http://images.ayarafun.multiply.com/image/2/photos/10/500x500/11/Wiring-setup-2.jpg?et=O%2BNL9XDmOH7Hwb0WFk7XLw&amp;nmid=121042026" border="0" alt="" width="316" height="402" /></p>
<h5><strong>เลือก Serial Port ตาม serial ที่ต่อกับ wiring</strong></h5>
<p style="text-align: left;"><img class="aligncenter" src="http://images.ayarafun.multiply.com/image/2/photos/10/500x500/10/wiring-setup-1.jpg?et=oy%2BdRaymKqiOojnlgMQ9Uw&amp;nmid=121042026" border="0" alt="" width="305" height="324" /></p>
<p>สรุปในตอนนี้ถ้าท่านใช้ atmega128 จะสามารถใช้งานได้เลยครับ โดย reset บอร์ด แล้ว upload ไฟล์ sketch ก้อใช้งานได้</p>
<p style="text-align: left;">ส่วนทางผมยังใช้งานไม่ได้ครับ ผมดันไปใช้ atmega64 แสนเศร้า เพราะว่า โปรแกรม wiring ไม่สามารถใช้กับ AVR ตัวอื่นได้ ในตัว core จะมีแค่ library .o ถึงจะเปลี่ยนเป็น mega128 -&gt; mega64 ก้อคอมไพล์ไม่ได้ มันไม่เหมือน arduino ที่เราจะเลือกได้ว่า board เราเป็น รุ่นไหน form factor แบบไหน ฉะนั้น ก้อหาวิธีใช้ต่อไป ในตอนต่อไป โปรเจค open-source ก้อสนุกอย่างนี้ล่ะครับ ต้องหาทางไปต่อได้เรื่อยๆ</p>
<p>ถ้าสนใจ เกี่ยวกับสร้างบอร์ด เข้าไป ลิงค์นี้ต่อครับ ทางโน่นก้อมีอยู่บ้าง<br />
<a href="http://wiring.org.co/cgi-bin/yabb/YaBB.pl?board=How_to" target="_blank">http://wiring.org.co/cgi-bin/yabb/YaBB.pl?board=How_to</a></p>
<p>ถ้าใครสนใจอยากศึกษาโปรแกรมบน wiring เข้าไปศึกษาต่อได้ที่นี้ครับ<br />
<a href="http://www.wiring.org.co/learning/index.html" target="_blank">http://www.wiring.org.co/learning/index.html</a><br />
<a href="http://www.wiring.org.co/learning/reference/index.html" target="_blank">http://www.wiring.org.co/learning/reference/index.html</a></p>


<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.ayarafun.com/2008/11/wiring-board-part-2/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Wiring #1 ตอนรู้จักกับ Wiring</title>
		<link>http://www.ayarafun.com/2008/11/introductionwiring-part-1/</link>
		<comments>http://www.ayarafun.com/2008/11/introductionwiring-part-1/#comments</comments>
		<pubDate>Wed, 12 Nov 2008 12:30:38 +0000</pubDate>
		<dc:creator>chang</dc:creator>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[MyProject]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[avr]]></category>
		<category><![CDATA[wiring]]></category>

		<guid isPermaLink="false">http://www.ayarafun.com/?p=14</guid>
		<description><![CDATA[หลังจากปลุกกระแสให้ทุกคนรู้จัก arduino ไปบ้างแล้ว มาตอนนี้มารู้จักพี่ใหญ่ของ arduino กันบ้างครับ วันนี้จะแนะนำให้รู้จัก Wiring กันบ้างครับ ผมเชื่อว่าหลายคนได้ยินคำว่า wiring ก้อต้องคิดว่า เดินสายไฟ ใช่ป่าวจิงแล้วมันก้อยังไม่ใช่นะครับ เป็น โปรเจค Hardware open-source อีกอันครับ เขาเปิดให้เราสามารถใช้งานไมโคร คอนโทรลเลอร์ และโปรแกรมด้วยภาษาง่ายๆ ได้ Wiring คืออะไร Wiring เป็น open source programming (ระบบพัฒนาโปรแกรมแบบเปิด แปลเป็นไทย แล้วเข้าใจยาก) และบอร์ด i/o อิเล็กทรอนิกส์ สำหรับใช้ในงาน ทางด้านศิลปะ เกี่ยวกับ interactice art ,การเรียนรู้เกี่ยวกับ computer programming และ ทำโปรเจคอิเล็กทรอนิกส์ต้นแบบ Wiring เป็น open-source โปรเจคอีกอันหนึ่งนะครับ คือทำให้เราใช้ mcu ได้ง่ายขึ้น ให้เราพัฒนาในส่วน High


No related posts.

Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">หลังจากปลุกกระแสให้ทุกคนรู้จัก arduino ไปบ้างแล้ว มาตอนนี้มารู้จักพี่ใหญ่ของ arduino กันบ้างครับ วันนี้จะแนะนำให้รู้จัก Wiring กันบ้างครับ ผมเชื่อว่าหลายคนได้ยินคำว่า wiring ก้อต้องคิดว่า เดินสายไฟ ใช่ป่าวจิงแล้วมันก้อยังไม่ใช่นะครับ เป็น โปรเจค Hardware open-source อีกอันครับ เขาเปิดให้เราสามารถใช้งานไมโคร คอนโทรลเลอร์ และโปรแกรมด้วยภาษาง่ายๆ ได้</p>
<p style="text-align: justify;">
<p><strong><br />
</strong></p>
<p><strong>Wiring คืออะไร</strong><br />
Wiring เป็น open source programming (ระบบพัฒนาโปรแกรมแบบเปิด แปลเป็นไทย แล้วเข้าใจยาก) และบอร์ด i/o อิเล็กทรอนิกส์ สำหรับใช้ในงาน ทางด้านศิลปะ เกี่ยวกับ interactice art ,การเรียนรู้เกี่ยวกับ computer programming และ ทำโปรเจคอิเล็กทรอนิกส์ต้นแบบ</p>
<p>Wiring เป็น open-source โปรเจคอีกอันหนึ่งนะครับ คือทำให้เราใช้ mcu ได้ง่ายขึ้น ให้เราพัฒนาในส่วน High level ส่วน Low-level เราอาจจะไปศึกษาเพิ่มเติมภายหลังครับ</p>
<p><strong>หน้าตา โปรแกรมของ wiring</strong><br />
<img src="http://www.wiring.org.co/learning/environment/images/ide.gif" border="0" alt="" /><br />
จาก <a href="http://www.wiring.org.co/" target="_blank">www.wiring.org.co</a></p>
<p>ใครได้ลอง wiring กับ Arduino แล้วจะต้องสงสัยว่าทำไม มันน่าตาเหมือนกันจัง คือจิงมันตัวเดียวล่ะครับ พัฒนาต่อมาจาก processing (มีตัวละคร มาเพิ่มอีกแล้ว) อีกโปรแกรมที่ทำให้เขียนโปรแกรมง่ายๆ บน PC ,ทุกโปรเจคจะมี concept เดียวกัน ใช้งานง่าย รันได้ทุก platform (mac os x,liunux ,windows) ตัวโปรแกรมเริ่มต้นพัฒนาจาก media labs MIT นะครับ</p>
<p>โดยตัวของ wiring จะใช้กับบอร์ด AVR ซึ่งทาง wiring.org.co ออกแบบไว้ และเปิดให้เราเอาไปใช้งานได้  คล้ายกับ arduino ที่ผมแนะนำไป ในเวปจะมีข้อมูล ตัวอย่างต่างๆ มีวิธีการต่อใช้งาน ที่ละเอียดมากๆ  สนใจข้อมูลเพิ่มเติมเข้าไปดูในนี้ต่อครับ <a href="http://www.wiring.org.co/" target="_blank">www.wiring.org.co</a><br />
<span style="text-decoration: underline;"><br />
<strong>หน้าตาบอร์ด Wiring</strong></span><br />
โดยลักษณะบอร์ด (ส่วน Hardware) Wiring จะใช้ Atmega128 เป็น main mcu หลักนะครับ โดยตัว arduino ก้อเอาตัว wiring  นี้ล่ะ มาเปลี่ยน core ให้ใช้กับ Atmega 168 และ mega8 สรุปว่า wiring นี้ เกิดก่อนนะครับ</p>
<p>จากการที่ wiring ใช้ mega128 เป็น main mcu จึงทำให้ ถึง 53  Io pins เพิ่มขึ้น มหาศาล มีทั้ง 8 x ExtInt ,6x PWM ,8 x Analog input ,2x UART ,Flash 128kByte ใช้กันอย่างไง ก้อไม่หมด</p>
<p style="text-align: center;"><img src="http://farm3.static.flickr.com/2399/2242296984_8dc8641baf.jpg?v=0" border="0" alt="" width="472" height="353" /><br />
รูปบอร์ด Wiring กับ Arduino (รูปจาก flickr wiring)</p>
<p>อยากรู้ความแตกต่างของบอร์ด เข้าไปดูได้ที่นี้ครับ<br />
<a href="http://www.wiring.org.co/hardware/compare.html" target="_blank">http://www.wiring.org.co/hardware/compare.html</a></p>
<p>ตอนนี้อยู่ไทยจะเอาบอร์ด จะเอามาได้บ้าง ตอนแรก ผมไม่ก้อไม่รู้มาก่อนว่า จิงๆ ก้อมี inex มีขายอยู่ Jx-mega128 ทางเราอาจจะยังไม่รู้จักมากนัก จนกระทั้งผมไปมหาลัย แล้วน้องเอาบอร์ดมาให้ดู ถ้าใครสนใจบอร์ด wiring ไปดูที่นี้ครับ</p>
<p>JX-Mega128 (inex) เห็นว่าของหมด อดเลย ฮ่า</p>
<p style="text-align: center;"><img src="http://www.inex.co.th/images/JX-Mega128.gif" border="0" alt="" width="382" height="246" /></p>
<p>ส่วนใครสนใจอยากทำ wiring board เอง  เดียวติดตามกันต่อครับ</p>


<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.ayarafun.com/2008/11/introductionwiring-part-1/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>สร้างบอร์ด Arduino ด้วยตัวเองง่ายยยย นิดเดียว (เอกสาร workshop)</title>
		<link>http://www.ayarafun.com/2008/11/workshop-introduction-arduino/</link>
		<comments>http://www.ayarafun.com/2008/11/workshop-introduction-arduino/#comments</comments>
		<pubDate>Sat, 08 Nov 2008 14:53:50 +0000</pubDate>
		<dc:creator>chang</dc:creator>
				<category><![CDATA[Arduino-Tutorial]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[avr]]></category>
		<category><![CDATA[workshop]]></category>

		<guid isPermaLink="false">http://www.ayarafun.com/?p=20</guid>
		<description><![CDATA[บทความนี้ รวบรวมสไลด์ที่ ทำขึ้นมาใช้อบรมน้องๆ ใช้งานบอร์ด arduino ครับ


Related posts:<ol><li><a href='http://www.ayarafun.com/2011/05/sciguy14-arduino-tutorial-11-sd-cards-and-datalogging/' rel='bookmark' title='[Sciguy14] Arduino Tutorial 11: SD Cards and Datalogging'>[Sciguy14] Arduino Tutorial 11: SD Cards and Datalogging</a></li>
</ol>

Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>หลังจากที่ผมลองเล่น arduino มาสักพัก ผมเริ่มจะติดที่ความง่ายๆ โครงสร้างยืดหยุ่นสูง ผมจึงอยากจะแนะนำการใช้งานเบื้องต้น สำหรับ ช่วยให้พี่ๆ น้องๆ ที่อยากเริ่มต้นสร้างงานอิเล็กทรอนิกส์ ออกมาได้ มันอาจจะเป็นจุดเริ่มต้นเล็กๆ แต่เป็นจุดเริ่มต้นช่วยให้พี่ๆ น้องๆ สามารถสร้างงานซับซ้อนไปกว่านี้ จึงได้จัด workshop เล็กๆ ลองให้น้องๆที่มหาลัย ทำดูก่อน จะประกอบไปด้วย</p>
<ol>
<li>แนะนำไมโครคอนโทรลเลอร์กับการใช้งาน arduino</li>
<li>การประกอบบอร์ด arduino เวอร์ชั่น single side</li>
<li>การติดตั้งโปรแกรม และ การลง bootloader</li>
<li>วิธีการเขียนโปรแกรมบน arduino และการทดสอบไฟกระพริบ</li>
</ol>
<p>ใน workshop แรก Introduction Micro controller with Arduino (1-2 ชั่วโมง) โดยเอกสารที่ใช้ใน workshop ครับ จะเป็นรูปแบบ สไลด์ online ทำขึ้นมาจาก google doc ดูกันได้ทุกที่บนโลกไปเลย</p>
<h5>1. แนะนำไมโครคอนโทรลเลอร์กับการใช้งาน arduino</h5>
<p><center><br />
<iframe src='http://docs.google.com/EmbedSlideshow?docid=dk2qpvk_32f5qtjhb' frameborder='0' width='410' height='342'></iframe><br />
</center></p>
<h5>2. วิธีการประกอบบอร์ด arduino เวอร์ชั่น single side </h5>
<p> รายละเอียด</p>
<ul>
<li>วิธีการใช้ลงอุปกรณ์</li>
<li>รู้จักวงจรไฟฟ้าพื้นฐานๆ</li>
<li>ทดสอบวงจร</li>
</ul>
<p><center><br />
<iframe src='http://docs.google.com/EmbedSlideshow?docid=dk2qpvk_173dnmvqffv' frameborder='0' width='410' height='342'></iframe><br />
</center></p>
<h5>3. การติดตั้งโปรแกรม และ การลง bootloader ด้วยตัวเอง</h5>
<p> รายละเอียด</p>
<ul>
<li>การใช้งานโปรแกรมของ arduino การติดตั้ง การใช้งาน</li>
<li>รู้จัก bootloader</li>
<li>การใช้งาน bootloader</li>
</ul>
<p><center><br />
<iframe src='http://docs.google.com/EmbedSlideshow?docid=dk2qpvk_497dqfxm7gk' frameborder='0' width='410' height='342'></iframe><br />
</center></p>
<h5>4. หลังจากประกอบบอร์ดแล้ว มาถึงการใช้งานบ้าง ตามตัวอย่าง</h5>
<p><strong> skectch 1 ไฟกระพริบ</strong><br />
<center><br />
<iframe src='http://docs.google.com/EmbedSlideshow?docid=dk2qpvk_325fzctqngr' frameborder='0' width='410' height='342'></iframe><br />
</center><br />
เอาล่ะครับ ท่านได้ลองอ่าน สามสไลด์ของผม หวังว่าจะพอจับทาง การใช้งาน arduino แล้วแก้ไขปัญหาด้วยตัวเองได้นะครับ ขอให้สนุกกับ arduino แล้วมีโปรเจคอะไรมาอวดกันบ้าง</p>


<p>Related posts:<ol><li><a href='http://www.ayarafun.com/2011/05/sciguy14-arduino-tutorial-11-sd-cards-and-datalogging/' rel='bookmark' title='[Sciguy14] Arduino Tutorial 11: SD Cards and Datalogging'>[Sciguy14] Arduino Tutorial 11: SD Cards and Datalogging</a></li>
</ol></p>
<p>Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.ayarafun.com/2008/11/workshop-introduction-arduino/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>เล่น AVR-ETT-Stamp ไม่ต้องง้อเครื่อง burn กันดีกว่า</title>
		<link>http://www.ayarafun.com/2008/10/making-boot-loader-in-ett-stamp/</link>
		<comments>http://www.ayarafun.com/2008/10/making-boot-loader-in-ett-stamp/#comments</comments>
		<pubDate>Fri, 10 Oct 2008 13:10:22 +0000</pubDate>
		<dc:creator>chang</dc:creator>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[MyProject]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[avr]]></category>
		<category><![CDATA[bootloader]]></category>

		<guid isPermaLink="false">http://www.ayarafun.com/?p=9</guid>
		<description><![CDATA[ไมโครคอนโทรลเลอร์ เป็นอุปกรณ์ควบคุม ที่นิยมใช้กันมากๆ ซึ่งนับวันจะเล็กลงไปทุกวัน แต่การเรียนรู้ที่จะใช้ มักจะต้องลงทุน พอสมควร ถึงแม้ตอนนี้จะถูกลงกว่าแต่ก่อนแล้วก้อเถอะ ในตอนนี้ ผมจะมาแนะนำเทคนิคที่น่าสนใจอีกอัน วิธีติดตั้ง boot-loader ซึ่งถ้าท่านใช้ AVR Studio ท่านจะได้ไม่ต้องเปลี่ยนโปรแกรมเลย และยังประหยัด ไม่ต้องใช้ เครื่องโปรแกรม อีกแล้ว เหมาะมากกับ class หรือ workshop จะได้ไม่ต้องมีเยอะ ประหยัดเงิน ไว้ทำซื้ออย่างอื่นดีกว่า ช่วยชาติครับ Boot loader เป็น firmware ส่วนมากจะทำหน้าที่ ช่วย upload data เข้าไปใน flash หรือ eeprom หรือเรียกให้ง่าย ทำให้ mirco-controller burn ตัวมันเองได้ (เผาตัวเองได้) bootloader มีกันหลายแบบ มีทั้ง upload ผ่าน mmc card ได้ upload


No related posts.

Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>ไมโครคอนโทรลเลอร์ เป็นอุปกรณ์ควบคุม ที่นิยมใช้กันมากๆ ซึ่งนับวันจะเล็กลงไปทุกวัน แต่การเรียนรู้ที่จะใช้ มักจะต้องลงทุน พอสมควร ถึงแม้ตอนนี้จะถูกลงกว่าแต่ก่อนแล้วก้อเถอะ</p>
<p>ในตอนนี้ ผมจะมาแนะนำเทคนิคที่น่าสนใจอีกอัน วิธีติดตั้ง boot-loader ซึ่งถ้าท่านใช้ <strong><span style="color: #ff0000;">AVR Studio</span></strong> ท่านจะได้ไม่ต้องเปลี่ยนโปรแกรมเลย และยังประหยัด ไม่ต้องใช้ เครื่องโปรแกรม อีกแล้ว เหมาะมากกับ class หรือ  workshop  จะได้ไม่ต้องมีเยอะ ประหยัดเงิน ไว้ทำซื้ออย่างอื่นดีกว่า ช่วยชาติครับ</p>
<p><img class="aligncenter" title="burn ett-stmap without programming tools" src="http://lh3.ggpht.com/_Yf5JCo_hjfM/SSRH02ZPESI/AAAAAAAAAGw/4gjMBJ-uekM/s720/P1200137.JPG" alt="" width="366" height="274" /></p>
<p><span id="more-9"></span>Boot loader เป็น firmware ส่วนมากจะทำหน้าที่ ช่วย upload data เข้าไปใน flash หรือ eeprom หรือเรียกให้ง่าย ทำให้ mirco-controller  burn ตัวมันเองได้ (เผาตัวเองได้)</p>
<p>bootloader มีกันหลายแบบ มีทั้ง upload ผ่าน mmc  card ได้ upload ผ่าน lan อย่างพวก Embeded linux ส่วนอันที่ผมจะมาแนะนำ upload ผ่านสาย serial ครับ หรือจะใช้ usb2serial ก้อได้ notebook เหมาะมาก</p>
<p>วิธีทำก้อไม่ยากครับ  แต่ขอแนะนำว่า ผู้ใช้คุ้นเคยกับ AVR มาพอสมควรนะครับ ไม่เหมาะกับมือใหม่มากๆๆ</p>
<p><span style="color: #0000ff;"><strong>ส่วน bootloader ผมได้มาจากที่เขาพัฒนา bootloader ไว้แล้วอีกที่ อันนี้ที่ผม เอามาใช้ มาจาก <a href="http://www.avride.com/article/wiring/" target="_blank">http://www.avride.com/article/wiring/</a> ของคุณ Worapoht Kornkaewwattanakul พัฒนาเพิ่มเติมไว้</strong></span></p>
<p>ซึ่งใน wiring ก้อเป็นอีกอันคุ้นๆ กัน<br />
<a href="http://wiring.uniandes.edu.co/source/trunk/wiring/bootloader/" target="_blank">http://wiring.uniandes.edu.co/source/trunk/wiring/bootloader/</a></p>
<p>ผมขออุณญาตินำมาใช้ และ ขออนุญาติ เอามาเผยแพร่ความรู้ ให้สมาชิกในเวปด้วยนะครับ ส่วนของ bootloader ส่วนนี้จะทำให้ ATmega มี Protocol สื่อสาร แบบเดียวกับ เครื่องโปรแกรม STK-500v2 ของ ATmel ซึ่งทำให้ ท่าน burn เข้า mcu โดยไม่ต้องมีเครื่องโปรแกรมได้</p>
<p>ซึ่งจาก source code เขาไว้ใช้งานกับ <strong>ATmega128</strong> ในส่วนใน src เขาได้ทดสอบกับ  ATmega8, ATmega16 ,ATmega32 ,ATmega8515 ,ATmega8535, ATmega162, ATmega128 ซึ่งยังไม่มี ATmega64 ผมเลยพยายามเพิ่มเติมส่วนที่จำเป็น</p>
<p>ผมมีบอร์ด <strong>ETT-ATmega64</strong> อยู่นานแล้ว ยังไม่ผ่านจ่ายไฟ เข้า VCC  ซึ่งถ้าท่านใช้ ATmega ตัวอื่นๆ ลองทำต่อวิธีผม น่าจะทำให้นำไปใช้งานได้เลย</p>
<p style="text-align: center;"><img class="aligncenter" src="http://images.ayarafun.multiply.com/image/1/photos/upload/300x300/SPy-XgoKCGUAAFQUYAY1/board-ett.jpg?et=QMHvB8y3VbfHARjfTGDdGA&amp;nmid=0" border="0" alt="" /></p>
<p>วิธีการแก้ไขให้ src  ใช้ ATmega64 ได้นะครับ ต้องแก้ไข file ส่วนของ Makefile กับ stk500boot.c</p>
<p>ใน Makefile</p>
<p>เลือก MCU ใหม่</p>
<blockquote>
<div class="editbg" style="overflow: auto;">เปลี่ยน<br />
MCU = atmega128เป็น<br />
MCU = atmega64</div>
</blockquote>
<p>ในส่วน Bootloader Address ครับ ตำแหน่ง start ของ bootloader (ขอบคุณท่าน DEV-Zone ที่วันนั้นแนะนำในเวปบอร์ด)</p>
<pre lang="cpp"># Bootloader
# Please adjust if using a different AVR
# 0x0e00*2=0x1C00 for ATmega8  512 words Boot Size
# 0xFC00*2=0x1F800 for ATmega128  1024 words Boot Size
# 0x7C00*2=0x0F800 for ATmega64  1024 words Boot Size
#BOOTLOADER_ADDRESS = 1F800
BOOTLOADER_ADDRESS = 0F800</pre>
<p>ผมได้เปลี่ยนจาก</p>
<pre lang="cpp">BOOTLOADER_ADDRESS = 1F800</pre>
<p>เป็น<br />
<strong>BOOTLOADER_ADDRESS = 0F800</strong></p>
<p>ตัวเลขได้มาจากใน datasheet Atmel64 ส่วนของ bootloader support<br />
หัวข้อ ตาราง Boot Size Configuration ขึ้นอยู่กันขนาด bootloader ที่ทำขึ้นมา ซึ่ง firmware นี้ขนาดไม่เกิน 1024 words</p>
<p><strong>boot reset address</strong> อยู่ที่ 0x7C00 ซึ่งเปลี่ยน word ทำกันคูณสอง ได้ 0xF800</p>
<div>
<table id="n7gy" style="height: 168px;" border="1" cellspacing="0" cellpadding="3" width="649" bgcolor="#ead1dc" bordercolor="#000000">
<tbody>
<tr bgcolor="#444444">
<td style="text-align: center; color: #ffffff;" width="14%"><strong>BOOTSZ1</strong></td>
<td style="text-align: center; color: #ffffff;" width="14%"><strong>BOOTSZ0</strong></td>
<td style="text-align: center; color: #ffffff;" width="14%"><strong>Boot Size</strong></td>
<td style="text-align: center; color: #ffffff;" width="14%"><strong>Application</strong><strong><br />
Flash Section</strong></td>
<td style="text-align: center; color: #ffffff;" width="14%"><strong>BootLoader</strong><strong><br />
Flash Section</strong></td>
<td style="text-align: center; color: #ffffff;" width="14%"><strong> </strong><strong>EndApp<br />
</strong><strong>Section Address</strong></td>
<td style="text-align: center; color: #ffffff;" width="14%"><strong>BootReset<br />
</strong><strong>Address</strong></td>
</tr>
<tr>
<td style="text-align: center;" width="14%">1</td>
<td style="text-align: center;" width="14%">1</td>
<td style="text-align: center;" width="14%">512</td>
<td style="text-align: center;" width="14%">0?0000-0?7DFF</td>
<td style="text-align: center;" width="14%">0?7E00-0?7FFF</td>
<td style="text-align: center;" width="14%">0?7DFF</td>
<td style="text-align: center;" width="14%">0?7E00</td>
</tr>
<tr>
<td style="text-align: center;" width="14%">1</td>
<td style="text-align: center;" width="14%">0</td>
<td style="text-align: center;" width="14%">1024</td>
<td style="text-align: center;" width="14%">0?0000-0?7BFF</td>
<td style="text-align: center;" width="14%">0?7C00-0?7FFF</td>
<td style="text-align: center;" width="14%">0?7BFF</td>
<td style="text-align: center;" width="14%">0?7C00</td>
</tr>
<tr>
<td style="text-align: center;" width="14%">0</td>
<td style="text-align: center;" width="14%">1</td>
<td style="text-align: center;" width="14%">2048</td>
<td style="text-align: center;" width="14%">0?0000-0?77FF</td>
<td style="text-align: center;" width="14%">0?7800-0?7FFF</td>
<td style="text-align: center;" width="14%">0?77FF</td>
<td style="text-align: center;" width="14%">0?7800</td>
</tr>
<tr>
<td style="text-align: center;" width="14%">0</td>
<td style="text-align: center;" width="14%">0</td>
<td style="text-align: center;" width="14%">4096</td>
<td style="text-align: center;" width="14%">0?0000-0?6FFF</td>
<td style="text-align: center;" width="14%">0?7000-0?7FFF</td>
<td style="text-align: center;" width="14%">0?6FFF</td>
<td style="text-align: center;" width="14%">0?7000</td>
</tr>
</tbody>
</table>
</div>
<div style="text-align: right;">(คัดลอกจาก datasheet ของ ATmega64)</div>
<p>และในส่วนของ source code stk500boot.c</p>
<blockquote><p>เพิ่ม <strong>Signature Bytes</strong> ของ Atmega64 เข้าไป<br />
<strong>#define SIGNATURE_BYTES 0x1E9602</strong></p></blockquote>
<p>ซึ่งดูได้จากใน datasheet อีกเช่นกันครับ</p>
<p>นอกนั้นไม่จำเป็นต้องแก้ไขอะไรครับ ในขั้นนี้ ท่านจะสามารถ compile source ได้แล้ว<br />
compile โดยพิมพ์ make ที่ ไดเร็กทรอรีนั้น  ซึ่งไม่มี error เกิดขึ้นก้อใช้งานได้ครับ</p>
<p>ส่วนใน รายละเอียด bootloader จาก src ทำอะไรบ้างให้ท่านศึกษาด้วยตัวเองนะครับ มันละเอียดมาก</p>
<p>โดยสรุปหลักๆ bootloader จะมี LED แสดงผลเมื่อเข้าทำงานในส่วน และการใช้งานbootloader มีสองแบบ</p>
<p><strong>- แบบแรก</strong> start bootloader ตั้งแต่แรก ที่ จ่ายไฟ ให้ mcu แล้วกลับไปทำงานปกติ ถ้าไม่มีการใช้ภายเวลาที่กำหนด<br />
<strong>- แบบที่สอง</strong> start bootloader เมื่อ pin ที่กำหนด active low</p>
<p>ซึ่งในบางส่วน ท่านอาจจะต้องเพิ่ม hardware LED เพื่อแสดงสถานนะของ mcu หรือ เพื่อ Switch เพื่อ เข้า bootloader</p>
<p>โดย default bootloader นี้ จะใช้ switch กับ LED ผมทดสอบต่อแบบ defalut ก่อนครับ</p>
<p>ท่านอยากแก้ไขอะไร ผมจะตัวอย่างให้ เช่น อยากให้มี LED แสดง ท่านไป comment</p>
<pre lang="cpp">//#define REMOVE_BOOTLOADER_LED            // no LED to show active bootloader</pre>
<p>แล้วกำหนด led อยู่ pin ไหน ท่านแก้ไขได้ที่ ส่วนนี้ของไฟล์</p>
<pre lang="cpp">/*
* LED on pin "PROGLED_PIN" on port "PROGLED_PORT"
* indicates that bootloader is active
* PG2 -&amp;gt; LED on Wiring board
*/

#define PROGLED_PORT PORTG
#define PROGLED_DDR  DDRG
#define PROGLED_PIN  PING2</pre>
<p>อันนี้กำหนดว่า LED อยู่ port G,pin2 ครับ</p>
<p>นี้เป็นการยกตัวอย่างให้ดูนะครับ จริงๆ เอาละเอียด มันจะเยอะมาก ก้อให้ท่านไปศึกษา ดูกันต่อเอง</p>
<p>ตัวอย่างที่ต่อบน บอร์ดผม <strong>Atmega64</strong> เพิ่ม Switch ที่ช่อง E2 กับเพิ่ม LED ที่ช่อง G2 ตามวงจรของ WiringIO ครับ</p>
<p><strong>หลังจากนั้น compile ได้แล้ว ท่านก้อ flash เข้าไปครับ</strong><br />
และกำหนด <strong>fusebit </strong>ดังนี้ครับ<br />
- กำหนดขนาด firmware อันนี้กำหนด 1kWords  (program BOOTSZ01)<br />
- เลือกให้เข้า BOOT Reset Vector (program BOOTRST)<br />
- Lock Mode 3 ป้องกันเขียนในโปรแกรมส่วน bootloader  (program BootLock 11 and BootLock 12)</p>
<p>เข้าไปดูที่ <a href="http://www.avride.com/article/wiring/" target="_blank">http://www.avride.com/article/wiring/</a></p>
<p style="text-align: center;">ถ้าท่านใช้ pony-prog จะ fusebit ดังรูปครับ<br />
<img class="aligncenter" src="http://images.ayarafun.multiply.com/image/2/photos/10/300x300/9/wiringIO.jpg?et=Xm,myzIw9hmc9axl36xG2Q&amp;nmid=121042026" border="0" alt="" /></p>
<p style="text-align: center;">หรือใช้ avr-dude ใช้ fuse-bit แบบนี้นะครับ<br />
<img class="aligncenter" src="http://images.ayarafun.multiply.com/image/3/photos/10/300x300/6/avrdude.jpg?et=dMPw0nMyWOM,Smg0ivE,Vw&amp;nmid=121042026" border="0" alt="" /><br />
(โปรแกรม คำนวณ fuse-bit ส่วนตัว)</p>
<blockquote><p><strong>Atmega64</strong><br />
High-Byte=0x2c<br />
Low-Byte=0ef<br />
Ext-Byte ใส่ตอนหลังได้</p></blockquote>
<p><strong><span style="font-size: 12px;">- ทดสอบการใช้งาน</span></strong><br />
ท่าน ต้องทดสอบก่อน compile มาแล้วใช้ได้หรือ ป่าว บาง avr-gcc มันมีปัญหาแปลก อย่าง คอมไฟล์เลอร์ คนล่ะเวอร์ชั่น คอมไฟล์ไฟล์เดียวกันทำงานไม่ได้ ถ้าไม่ได้ อันนี้ ผมเสียใจด้วยนะครับ ผมคงอธิบายทั้งหมดไม่ได้ทั้งหมด มันจะเยอะมาก ต้องพยายามแก้ๆ ไปครับ</p>
<p>ทดสอบแรก ถ้าท่านต่อวงจร ถูกต้อง ให้ท่านกด switch prog กับ reset ถ้าไฟ led ติด ก้อ bootloader ทำงานแล้ว<br />
หรือ ท่านใช้แบบ ไม่มีสวิตซ์ ไฟจะกระพริบ สองที่ แสดงว่า bootloader ทำงานแล้วเช่นกัน ดังรูปครับ ไฟ led ติด (สีแดงเล็กๆ) แผ่นวงจรผม อาจจะดูยุ่งๆหน่อยครับ พื้นที่มีจำกัด</p>
<p style="text-align: center;"><img class="aligncenter" src="http://images.ayarafun.multiply.com/image/1/photos/upload/300x300/SPzBuAoKCGUAABTLMGA1/bootloader-run.jpg?et=h46YE1p3ew11mxC9PKLyqg&amp;nmid=0" border="0" alt="" /></p>
<p><span style="font-size: 12px;"><strong>ทดสอบใช้งานกับ AVR-Studio</strong></span></p>
<p style="text-align: center;"><img class="aligncenter" src="http://images.ayarafun.multiply.com/image/2/photos/10/300x300/7/Capture-5.jpg?et=I71V0LV+wqkpWgklHaKx8Q&amp;nmid=121042026" border="0" alt="" /></p>
<p>อันแรกต้อง config comport ก่อนครับ เลือก AUTO ก้อได้ครับ<br />
จากนั้น เรียก AVRISP ขึ้นมา ถ้าเข้ามาถึงหน้าต่างนี้ ท่านประสบความสำเร็จแล้ว (ฮ่าๆ ยึดครองโลก)  <img title="Grin" src="http://www.electoday.com/yabbfiles/Templates/Forum/default/grin.gif" border="0" alt="Grin" /> <img title="Grin" src="http://www.electoday.com/yabbfiles/Templates/Forum/default/grin.gif" border="0" alt="Grin" /> <img title="Grin" src="http://www.electoday.com/yabbfiles/Templates/Forum/default/grin.gif" border="0" alt="Grin" /></p>
<p style="text-align: center;"><img class="aligncenter" src="http://images.ayarafun.multiply.com/image/1/photos/upload/300x300/SPy9NQoKCGUAACF7QCE1/Capture-7.jpg?et=DpAfIG0XPW5NMkog1XLfgw&amp;nmid=0" border="0" alt="" /></p>
<p>ตอน นี้ท่านก้อสามารถ flash โปรแกรม หรือ เปลี่ยน fuse-bit ก้อได้ครับ (เปลี่ยนได้บางตัวนะครับ) ส่วน erase chip ไม่ทำงานนะครับ แต่ทุกครั้งที่ flash ใหม่ ที่ตัว firmware  จะลบเองครับ</p>
<p>*** ทุกครั้งก่อนจะ connect ท่านต้องเข้า bootloader mode ก่อน ไม่งั้น โปรแกรม AVRISP หาไม่เจอ และต้องปิดหน้าต่าง AVRISP ถึงจะสามารถใช้ serial port ได้เหมือนเดิม</p>
<p>เขียนโปรแกรมง่าย ทดสอบกันไฟกระพริบเทพก่อน (ตอนนี้ผมสามารถทำไฟกระพริบได้กับทุก MCU แล้ว)</p>
<pre class="brush:cpp">#include &lt;avr/io.h&gt;
#include &lt;util/delay.h&gt;

void delay_ms(unsigned int time)
{
    while (time --&gt;0)
    {
      _delay_ms(1.0);
    }
}

int main(void)
{
   PORTB=0x00;                          // PB7..0 = 0
   DDRB=0x01;                             // PB0    = Output

   while (1)
   {
      PORTB = 0x00;
      delay_ms(200);
      PORTB = 0xFF;
      delay_ms(200);
   }

return 0;
}</pre>
<p style="text-align: left;">จากนั้นกด <strong>flash to current settings</strong> ที่เมนูของ avr-studio ได้ไฟกระพริบแล้ว (สวยงาม)</p>
<p style="text-align: center;"><strong>ไฟดับ</strong><br />
<img class="aligncenter" src="http://images.ayarafun.multiply.com/image/1/photos/upload/300x300/SPy@2goKCGUAAEXbqks1/blinking-test2.jpg?et=sPqCNCuPs3vqh%2BmOE2eG3Q&amp;nmid=0" border="0" alt="" /><br />
<strong><br />
ไฟติด</strong><br />
<img src="http://images.ayarafun.multiply.com/image/1/photos/upload/300x300/SPy@NAoKCGUAADuZ3sM1/blinking-test1.jpg?et=xoUQBjaR4Y4G6PurkfAjUQ&amp;nmid=0" border="0" alt="" /></p>
<p style="text-align: left;">เอาล่ะครับ ยาวมากๆ หวังว่าคงจะมีประโยชน์กับเพื่อน สมาชิกบ้างนะครับ เอาไว้เจอกันใหม่ในโปรแกรมหน้า สวัสดีครับ</p>


<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.ayarafun.com/2008/10/making-boot-loader-in-ett-stamp/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>

