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