<?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>コメを噛め &#187; AVR</title>
	<atom:link href="http://www.fumi2kick.com/komekame/archives/category/avr/feed" rel="self" type="application/rss+xml" />
	<link>http://www.fumi2kick.com/komekame</link>
	<description>rerofumi の電子工作メモ</description>
	<lastBuildDate>Thu, 09 Sep 2010 02:22:10 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>AVRのヒューズビットをリセットしたい</title>
		<link>http://www.fumi2kick.com/komekame/archives/921</link>
		<comments>http://www.fumi2kick.com/komekame/archives/921#comments</comments>
		<pubDate>Wed, 08 Sep 2010 18:39:12 +0000</pubDate>
		<dc:creator>rerofumi</dc:creator>
				<category><![CDATA[AVR]]></category>

		<guid isPermaLink="false">http://www.fumi2kick.com/komekame/?p=921</guid>
		<description><![CDATA[AVR初心者にとって取っつきにくいのがヒューズビットの設定。
チップ起動時の設定を焼き込むものなのだけれども、この設定をミスすると一般的な USBライタで読み書きできなくなったりしてしまう。まあ、設定ビット自体はPICにもあるし、普段はプロジェクトで隠蔽されているけれどもPSoCにもあるので概念としては難しくないのだけれども、うっかり変な値を書いて書き込みできなくなるというのが難しいところ。
書き込みできなくなるといっても簡素な手順であるシリアルでの書き込みができなくなるだけで、12Vの印可が必要になる高電圧書き込みだと書いたり消したりすることができる。
高電圧書き込みできるライターってのはちょいと大きかったり古かったりするので玄人さんでないとなかなか所持していないものだったりもする(偏見)。
追記：Dragonってそんなに大きくないのね、AVRスターターと混同してた
どうする、自分でそのライターを作ってみるか？データシートに手順は書いてあるからできなくもない。

考えを巡らせているうちに、ユニバーサルプログラマを持っているのを思い出した。ROMとかフラッシュとかを読み書きできるちょいと便利な機械。昔はドライバーに使っているUSBフレームワークがバージョン古くて、同じフレームワークを利用している他のアプリと喧嘩しまくり(そして案外使っているアプリがおおい)で不満たらたらだったけれども、最新版はそのへんが解消されていた。今なら9800円とかだしお買い得かも。
で、このプログラマだとPICやAVRの主要なチップを読み書きすることもできるのですな。全種類じゃないけれども。
なので、こいつを使ってヒューズビットやロックビットを間違えた AVR を全消去してしまえば万事解決なのでした。
このユニバーサルプログラマ、ソフトウェアの書き込み用に使えるかというと使えるのだけれども、普通にAVRライタを使った方が良いと思う。
で、このユニバーサルプログラマで対応しておらず、過去にヒューズ設定を間違えた AVR がまだほかにあるのです。

ATTiny85、8ピンの奴はなぜか対応していなかった。
通常 AVR の高電圧印可書き込みはパラレル方式なのだけれども、この8ピンのシリーズは足が足りないので高電圧印可シリアル書き込みという奇妙なモードを持っている。
データシートを見てみると 12V を印可しながらシリアルで手順を踏めば良いだけとわかる。んじゃ、ちょっと手作業でヒューズ消し作業をやってみますか。


ちょっと変態チックにもなかを使ってやってみよう。適当な定値を流し込むだけなのだからわざわざマイコンのファームを書く必要もないだろう、というお話。
ブレッドボードの端っこに付いているモジュールはチャージポンプで 5V→12V の昇圧をおこなう DCDCコンバータ。

流し込むシリアルデータとクロックを MIDI データとしてシーケンサで組み上げる。これがプログラム代わりww
これを演奏すると、もなかのピンから期待通りの波形が出てきて AVR のヒューズ書き込みができるというわけ。
理論上の話で、そんなとろとろ送って大丈夫なのかという疑問もあるだろうがこういうのは試してみるに限る。実際、成功したし。

書き込んだ後、低電圧シリアルライタで問題なくなっていることを確認。
無事ヒューズをリセットできたのでした。
Download: attiny85_fuse.zip
今回使った MIDI データを FLStudio のプロジェクトファイル形式で置いておく。誰得風味。
]]></description>
		<wfw:commentRss>http://www.fumi2kick.com/komekame/archives/921/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>もなかシールドの組み立て</title>
		<link>http://www.fumi2kick.com/komekame/archives/905</link>
		<comments>http://www.fumi2kick.com/komekame/archives/905#comments</comments>
		<pubDate>Mon, 06 Sep 2010 14:06:17 +0000</pubDate>
		<dc:creator>rerofumi</dc:creator>
				<category><![CDATA[AVR]]></category>

		<guid isPermaLink="false">http://www.fumi2kick.com/komekame/?p=905</guid>
		<description><![CDATA[
morecatさんが作成した「もなかシールド」をおわけして貰っていたのだけれども、後回し後回しになっていてやっとこさ組み立て。遅くなってごめんなさい。
Arduinoにピンを合わせた、Arduinoシールド互換な Ginger 基板といったところ。
(※個人的に「あかもなか」と呼びたい)
もなかは USB MIDI デバイスとして認識されるプラットフォーム基板。かなでの V-USB バージョンというか後継。

AVRマイコンを乗せて単体で簡潔するモードと、Arduinoに載せてV-USBシールドとして楽しめるモード、２種類の楽しみ方ができるのが特徴。
Arduinoに載せてV-USBシールド、というのがなかなかそそられる言葉なのだけれども今のところ bootloader を使って Arduino Sketch として開発ができるわけじゃなく、それらを潰して ISP で書き込む必要があるとか。なので、AVR を載せて単体動作させる方が今はメインっぽい。

Arduino に乗せるとこんな感じ。
従来の Ginger 使用のもなかと比べて、AVRチップが異なるのとクリスタルクロックが 16MHz なのとでファームウェアは別に作り直さないといけないらしい。
特に新しいファームが置いてあるわけでもなさそうなので、もなかのプロジェクトをいじくって作成してみた。monakaファームの 20100630 版(monaka-20100630.tgz)に Arduino 用パッチと HEXが入っているので、これを焼き込む形となる。んが、ちと失敗したのでファームに関してはまたこのつぎということで。
単体バージョンのほうでクリスタルを 12MHz のせちゃったり、ヒューズビットいじってたら失敗して DisableRST で書き込んじゃったりしていろいろしょんぼり。AVR は慣れていないのです。
しかし、V-USB でいろいろ実験してみたいという野望はあるし、そのために Ginger とか分けていただいているので是非とも進展させたいところ。
]]></description>
		<wfw:commentRss>http://www.fumi2kick.com/komekame/archives/905/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Gingerの基板</title>
		<link>http://www.fumi2kick.com/komekame/archives/607</link>
		<comments>http://www.fumi2kick.com/komekame/archives/607#comments</comments>
		<pubDate>Sun, 18 Oct 2009 09:30:36 +0000</pubDate>
		<dc:creator>rerofumi</dc:creator>
				<category><![CDATA[AVR]]></category>

		<guid isPermaLink="false">http://www.fumi2kick.com/komekame/?p=607</guid>
		<description><![CDATA[
More-Catさんが新しいGinger基板を使い切れないくらい作成したとのことでお裾分けしてもらった。
ちょいと検討していることがあったのでPepperでできそうな事について2～3質問していたら、Pepperの基板も送ってくれた。
献品御礼。 (←いっぺん言ってみたかった)

実験を検討していたところだったのでPepperの部品は一通り買いそろえてあった。写真は早速組んでみたところ。
実はなんかポカしたらしくまだ動いていなかったり。追って調査修正予定。
PepperのFuseはよっぽど必要でない限り Reset Disable にしない方が吉。
手が空いたらいじっていこう。
]]></description>
		<wfw:commentRss>http://www.fumi2kick.com/komekame/archives/607/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>「もなか」を作ってみる</title>
		<link>http://www.fumi2kick.com/komekame/archives/576</link>
		<comments>http://www.fumi2kick.com/komekame/archives/576#comments</comments>
		<pubDate>Thu, 06 Aug 2009 19:13:58 +0000</pubDate>
		<dc:creator>rerofumi</dc:creator>
				<category><![CDATA[AVR]]></category>
		<category><![CDATA[かなで]]></category>

		<guid isPermaLink="false">http://www.fumi2kick.com/komekame/?p=576</guid>
		<description><![CDATA[
もあさんが「奏」インスパイアなMIDIコントロールターミナルの「もなか」を公開開始したもよう。
同じくもあさんが作成している、GingerのファームをUSB-MIDIに置き換えて奏っぽくした代物。V-USB(旧AVR-USB)というAVRで動くUSBスタックを利用しているので、PCとはUSBで直接つないでつなげるという優れもの。このV-USBはObjective Development社が提供していてフリーで使えるUSBスタックなのだけれども、USBベンダーIDを ObDev 社が提供していて、アマチュアでも容易にベンダーIDとデバイスIDを付けることができるといったあたりがすばらしい。通常USBデバイスを作っても、USB Implementers Forum に数十万のお金を払ってベンダーIDを取得しないとそれを配布することはできない。なのでアマチュアがUSBデバイスを作ることができても、頒布することはまず無理なのだよな。V-USB はそのベンダーID部分を ObDev 社が肩代わりしてくれている。その代わり、5個以上配布するときはデバイスIDをコマーシャルライセンスで購入してね、といったビジネスモデル。
前書きが長くなったけれども、ようするに「もなか」はUSB接続できる「奏」なのですな。便利な。
インスパイア元としては一つ作ってみるしかないだろう。といっても、Gingerは持っていないので、適当に部品を買い集めてGingerクローンを自作することにした。

出力のピンソケットはGinger互換ではなく、奏互換で 10ピン×2 としてみたあたり。
単に部品箱に余っていたというのもあるけれども。

裏は相変わらずこきたない。
制作自体はさほど問題はなかったのだけれども、AVR慣れしていないのもあって動くまで4日くらいかかってしまったあたり。

最初は回路図でISPコネクタのRESETをAVRのRESETにつなぐというのを見落としていてプチはまり。考えてみりゃそうだよねえ、とか思いながら修正をする。
秋月で適当に「ATMega88おくれ」といって買ってきたけれども、今はATMega88P しかなくて、それが無印88とびみょうに違うのね。
最初はFUSEの事をすっかり忘れていて、クロックが発振していねえなぜだ！と騒いでみたり。そいやFUSE設定を忘れていたわと見てみたら、GingerのMakefileに書かれているFUSEと違っていて面食らう。

ATMega88PでのFUSE設定はこんな感じで。たいしたものではないけれども一応。
ようやくクロックも正常に 12MHz を発振していて、さてとと思ったところでUSB機器として認識されない状況に。こういう時何が原因かわかりにくいので困る。
うんうんと数日健闘していたのだけれども、結果としてこれは私の配線ミスだった。USBバスのpull-up抵抗を USB-2pin に仕込まないといけないのを 3pin の方に噛ましていたというオチ。
修正したら見事動き出す。ばんざい。
そんなこんなでうちのGingerクローン基板と「もなか」が完成。
みんなも作ってみては？
]]></description>
		<wfw:commentRss>http://www.fumi2kick.com/komekame/archives/576/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>初めてのAVRマイコン</title>
		<link>http://www.fumi2kick.com/komekame/archives/409</link>
		<comments>http://www.fumi2kick.com/komekame/archives/409#comments</comments>
		<pubDate>Sun, 05 Apr 2009 16:06:05 +0000</pubDate>
		<dc:creator>rerofumi</dc:creator>
				<category><![CDATA[AVR]]></category>
		<category><![CDATA[Tool]]></category>

		<guid isPermaLink="false">http://www.fumi2kick.com/komekame/?p=409</guid>
		<description><![CDATA[
ユニバーサルプログラマの TOP2005+ を手に入れてから、充実のROMライフ(なんじゃそりゃ)をおくっているわけです。
以前もちらっと書いたように、このプログラマはいくつかのマイコンにもプログラミングできるようになっている。そういや AVR のプログラマはこれまで持っていなかったのです(JTAGでできそうなのでそれ経由でいずれはとか思ってはいた)。
我が家に転がっているAVRはエレキジャックのマイコン特集付録の ATTINY2313v だけだけれども、一応はあるのでこれを TOP2005+ でプログラミングしてみようという。


まずは AVR Studio で適当に LED ちかちかのプログラムを(C言語で)書く。

これを TOP2005+ のソフトウェア、TOPWINで書き込む。

AVR のヒューズ設定も忘れずに。configタブの中にある。

無事書き込めて LED がちかちかできた。
ISP はおいておくとしても、AVRライタとして使えると言うことを確認。
そう考えると、結構良い買い物をした様に思えてくる。
]]></description>
		<wfw:commentRss>http://www.fumi2kick.com/komekame/archives/409/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
