2009年11月18日

AVRに関する雑記

いまは、作った基板で遊ぶのに忙しく、当面他のものには手を出さないつもりなのだが、ちょっとメモ。

P板.com関係



P板.com ではアナウンスしていないのだが、アマゾンで、【P板.com】オーダーメイドプリント基板(120.0 × 120.0 mm寸法)ワークサイズパッケージ!という製品がある。

ゆきさんのつれづれ日記を通してで知ったわけだが、基板を作ったときのアンケートで、”通常価格では無理。キャンペーンに期待している。”みたいなことを書いたら、教えてくれたので、秘密にしている .. というほどではないみたい。

いまの基板はバグがあるので、一通り使ったら、ちゃんとしたのに作り直したい。面付けは ルータなら 3面までだが、Vカットなら 5 本なので、1/2 C 基板に統一すれば 面数は稼げるような気がする。

そのときは是非これで作りたい。

XMEGA



一年以上前に XMEGA はそろそろかなんて記事を書いたのだが、全然買えなかった。

最近気が付いたのだが、ぼちぼち A3/A4 が買えるようになってきた。メモを ↑の記事に追記していこうと思う。

作った基板が片付いたら次は XMEGA で なにか作りたい。

0.5 mm ピッチしかも 100 pin の A1 は私には無理。0.8mm ピッチの A3 か A4を使うつもり。

HERO'S Download にある、AVRxmega.ZIPとかもぼちぼち見ているのだが、zip に含まれる AVR1003.pdf を見ると、クロック周りは(も)格段に進化しているようだ。

内部 RC 発振器には、2MHz と 32MHz があるが、PLL で 1-31 倍にできるらしい。そして 内部 RC 発振器 に自動校正機能(DFLL) があって、32.768 KHz の RTC 用 CLOCK に同期することが出来るらしい。

32MHz までが仕様だが 50MHz まで動いたという情報もあるし、結構楽しめそう。

AT90USB162



dfu-programmer (0.5.2) をビルドしたは良いものの、ブートローダを 消去してしまったりするのが怖くて 使えてなかった。

どうも プログラムで、シグネチャーとかヒューズとかが読めるらしいので、まずは確認。


    uint8_t read_fuse(uint16_t addr) {
    SPMCSR |= (1<<SPMEN) | (1<<BLBSET);
    return __LPM(addr);
    }

    uint8_t read_signature(uint16_t addr) {
    SPMCSR |= (1<<SPMEN) | (1<<SIGRD);
    return __LPM(addr);
    }

    :
    :

    usbcdc_put_pstr(PSTR("signature:"));
    usbcdc_put_hex(read_signature(0));
    usbcdc_putc(' ');
    usbcdc_put_hex(read_signature(2));
    usbcdc_putc(' ');
    usbcdc_put_hex(read_signature(4));
    usbcdc_putc(' ');
    usbcdc_put_hex(read_signature(1)); // CALIB
    usbcdc_put_pstr(PSTR("\r\n"));

    usbcdc_put_pstr(PSTR("fuses:"));
    usbcdc_put_hex(read_fuse(1)); // Lock bit
    usbcdc_putc(' ');
    usbcdc_put_hex(read_fuse(0)); // FUSE Lower
    usbcdc_putc(' ');
    usbcdc_put_hex(read_fuse(3)); // FUSE upper
    usbcdc_putc(' ');
    usbcdc_put_hex(read_fuse(2)); // FUSE ext
    usbcdc_put_pstr(PSTR("\r\n"));


こんなコードでちゃんと読めた。データシート通りだった。

それはともかく、このページを見て

    # dfu-programmer at90usb162 erase
    # dfu-programmer at90usb162 flash test5.hex


とすることで問題なく書けた。

シリアルフラッシュ



A25L080の使い方の記事で書いたが、ミニフォトフレームからの取り外し品の A25L080 と AT26DF081A しか考えてなかったが、M25P80 とかも 同じコマンド体系だった。

ただし、4KB 消去 (0x20) コマンド と シグネチャーを読み出す RDID (0x9f) コマンドがない。

4KB 単位の消去をしても FAT ではうまく使えないみたいだし、64KB 単位の消去に変更することにして、RDID で 判らなかったら RES コマンドを使うようにすれば、まぁサポートできそう。

posted by すz at 20:55| Comment(0) | TrackBack(0) | 日記
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス: [必須入力]

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/33719151
※ブログオーナーが承認したトラックバックのみ表示されます。

この記事へのトラックバック