--/--/--  --:--    スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
2010/09/24  00:34    AVR Dragon買ってみた
Digi-KeyでAVR Dragonを買ってみました。
P1020225s.jpg
噂では基板固定用の穴が無いと聞いていましたが、
届いたものはネットでみた画像の物と少し部品の配置や種類が変わっており、
ちゃんと固定穴が用意されていました。
不便な所がちゃんと修正されており、
地味ではありますがユーザーの声が届いていたのかなと思いました。
とりあえずPCに接続して認識してファームアップデートまではしましたが、
JTAG用の10PINケーブルをまだ用意していなかったので
実際にデバッグはまだしておりません。
またカンファの時に東京でケーブルを買ってこようと思います。

さて、前回いじっていたXMEGAボードですが、
UARTでの転送では時間がかかりすぎるため、SDをつないでデータを読み出してみました。
恥ずかしながら、今までSDを使った回路を作ったことがなかったため、
初めての試みとなりましたが、思ったよりはだいぶ簡単にできました。
もちろん、1から自分でプログラムを書くのは大変すぎるので、
有名なELM - ChaN氏のFatFsモジュールを用いました。
下位レイヤをXMEGA用に自分で書く必要がありましたが、
MEGA64でのサンプルが同ページにあるため、
参考にしながら下位レイヤの関数を書きました。
下位レイヤが正常に動けば、あとはプラットフォーム非依存な上位レイヤの関数を用いて
データをやり取りしてあげればOKです。
BMPデータのヘッダ情報へ構造体でアクセス出来るようにするモジュールを書いたので、
SDから一度SRAMへBMPデータを転送し、自作した関数でヘッダ情報を読みだしてから、
その情報を基に秋月液晶へ表示するというプログラムを書きました。
一応SDのルートに解像度が400*96かつ2・16・256色のBitmapファイルを入れておけば、
表示できるようにしました。タクトスイッチを使って次の画像へ切り替えることができます。
P1020230s.jpg
前の写真からmicroSDスロットとタクトスイッチが追加されただけですが・・・。
せっかくの機能も写真じゃ全然伝わりませんけど・・・。
今後の課題としては24bitBMPに対応したいですが、
RAM容量が不足しているため実装できない状態です。
今実装してあるSRAMは128KByteなので容量的には足りているのですが、
現状では64KByteにて使用しています。
64KByteを超えるアドレスへのアクセスにコンパイラが対応してくれれば
128KByteの領域を全部使用することができるのですが・・・。まぁ様子見ですね。


・追記
ふと思い立って、ATMELのEBIアプリケーションノートにある
サンプルプログラムを見てみたところ、
「GCCは24bitアクセスに対応してないから、
64KB境界を超えてアクセスするときには自分でRAMPZレジスタを書き換えてね」
と書いてありました・・・。
昔に実は、(シミュレータ上にて)自分でRAMPZレジスタを叩いて
無理やり0x10000にアクセスしたことがあったのですが、
実際にその方法が正しいやり方だったそうです。
なんかすっきりしないような・・・。
まぁ現状ではそれしか方法がないそうなので、また時間があったらやってみたいと思います。
Secret

TrackBackURL
→http://amenotiyukizora.blog76.fc2.com/tb.php/340-da22d6b5
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。