「PIC AVR 工作室」サイトの日記的なブログです。
サイトに挙げなかった他愛ないことを日記的に書き残してます。
PIC AVR 工作室 ブログ



simさんからSpartan-3EならSPI接続のEEPROMを
直接接続してconfigできると教わったので、色々
調べてみるとヒューマンデータのボードでこういうのが。

http://www.hdl.co.jp/XCM-010/index.html

>大容量SPIフラッシュROMを搭載(iMpactでISP可能)

ほう。SPIメモリにもiMpactでISP出来ちゃうんですか!
便利だな。


ヒューマンデータといえば、こういう面白いものが
ありました。
http://www.hdl.co.jp/oldrt/max_xosc.html

CPLD内部に2つのNOT回路を作っておいて、クリスタルを
発振させちゃおうっていう作戦。

なるほどねぇ…。これならオシレータじゃなくても
いいわけだし、便利だな。
ちゃんと安定して動くのかどうかだけが問題か…

FPGAだとこういう芸当は難しいかな?一度config
出来ちゃえば発振し始めるかもしれないけど、
configの最中って、AVRのISPとちがって発振して
いる必要は無いのかな?無いならFPGAでも使えるかも…


そうそう。おかもとシステムさんの例のconfig用デバイス。
http://www1.ocn.ne.jp/~oksys/page7.htm

tiny26用(イメージクラフト社C言語)のソースを眺めて
みました。

特別な処理はしてないし、特殊なペリフェラルも使って
無いので、もしかしたら同じ20ピンのTINY2313でも
バイナリ互換で動くんじゃないかな?

基本的にはI2C接続のEEPROMから1バイトずつデータを
読み出して、それを下位ビットから上位ビットに向かって
8ビットずつ吐き出すという感じの処理と読み取りました。

I2Cは直接1ピン1ピンを制御しながらポーリングだし、
FPGAとのやり取りもポーリング。TINY2313で動かない
理由は無さそう。

接続するEEPROMの前提は最大32KB(256Kb)ですが、
プログラムをちょこっと直せばもっと大きいのも使えそう。
あとは、EEPROMのスレーブアドレスが0b1010000x(0xA0)
固定なので、ここも必要があれば直せばok。

いずれにしても、処理自体はかなりわかりやすい感じ。
問題は、バイトブラスターの通信プロトコルは
存じないので、なぜこういう処理なのかは私には
理解不能。
メーカーにでも行けばこの辺のプロトコルなど
公開されているんだろうか…




コメント ( 2 )