いい加減CPLDも使おうかと、iMPACT用のダウンロードケーブルを作りました。 といっても、とりあえずブレッドボード上に実装です。 ただ、CPLDはパッケージがPLCCなので、ソケットに挿してもブレッドボードには合いません。 そのため、CPLD部分のみは別の基板に入れました。 この辺、AVRと違...
February 2009アーカイブ
Ethernetの実現に関して、最近興味津々なWIZnetのW5100。 ハードワイヤードでTCP/IPスタックを組み込んだEthernet controllerです。 軽量な組み込みEthernetというと、AVR(ATmega168)+ENC28J60が有名ですが、W5100はAVRにもちょっ...
SDカードインタフェースはほぼ期待通りに動作しています。 ハードを設計して、作って、ソフトを設計して、作ってというのは結構長い道のりですが、動いたときはうれしいものですね。 いつもはソフトしか作らないので、またこれも格別なものがあります。 とはいっても、今回は西田さんにもかなり助けられていますが。 ...
なかなか苦しんでいたAVR版SDカードインタフェースですが、ファイルのデータ読み込みまで動作させることに成功しました。 結局outの割り込み(INT1)の最後でペンディングしているin割り込み(INT0)を解除し、かつステータスデータをINT0割り込みで出すようにすることでタイミングが取れるようにな...
AVRでは、割り込み処理中にも割り込み"要求"自体が禁止されていなければ、外部からの割り込みに対して要求が発生するようです。 コメントにもあるように、その割り込みは保留(pending)され、現在処理中の割り込み処理が終了した後で処理されるようなのです。 このあたりが情報源です。 概念として、「割...
日経新聞を読んでいたら、「頭脳海外流出 変わらず」という記事がありました。 日本の大学は定年があるので、定年がなく優秀な人材獲得に熱心なシンガポールなどに移動してしまうそうな。 東大の数物連携宇宙研究機構では、優秀な研究者には総長に匹敵する待遇を与えたり、来日する家族に仕事の斡旋までしてるのに、そ...
SDカードインタフェースのハードウェアが出来上がったので、早速実際のSDカード入出力を作り始めています。 まずは、試しにディレクトリ情報を読み出しています。 今回は、AVR側にFATシステムを入れることにより、高速化を狙っていますが、1ポートのインタフェースで通信するのはなかなか難しいことがわかり...
PC-6001をいろいろと拡張すると、拡張スロットが足りなくなります。 拡張スロット自身はパラレル結線のみで拡張できるので自作可能ですが、スロットごとに50本の結線をするのはなかなか骨です。 プリント基板を作れれば問題ないんですけどね。 そこで思いついたのですが、RS-232C用のコネクタが使える...
スタンバイ時の消費電力が「完全に0W」になるPC、ESPRIMO GreenをドイツのFujitsu-Siemensが発表しました。 記事によると、スタンバイモード時の消費電力は0Wになり、この場合でも技術者が管理することができるそうです。 意外にも、未だにスタンバイ時の電力が0WになるPCという...
いろいろトライ&エラーで、最適化の方法がだんだんわかってきました。 一番簡単なのは、「出力信号ごとにプロセスを分ける」ということです。 たとえば、昨日の例なら、次のようにします。 process (ATOB, G) begin if G = '0' and ATOB = '...
CPLDの設計を始めて、とたんに壁にぶつかりました。 マクロセルの消費量が予想より多く、手持ちのXC9536XLでは足りなさそうなのです。 ロジックはそれほど難しいものではないのですが、2つの8ビットレジスタ(ラッチ)と、2つの3ステートバッファを使っています。 これがどうもマクロセルを喰うようで...
西田さんの作られた基板を送っていただいているので(感謝!)、到着するまでの間、CPLDを使った実装について考え始めています。 まず、手持ちのCPLDがXC9536XL-PC44なので、それでどこまでできるか考えてみました。 結果、次のような課題が明らかになりました。 このチップは外部I/Oが34ピ...
インドで開発されているという$20ラップトップSakshat、 実際にはこんなものでした。 これを「ラップトップ」と強弁するのはどうかと思うのですが。 Engadgetの要約によると、以下のようになっています。 インドで昨日、いわゆる「発表」された$10のラップトップに、何が欠けていたかわかりま...
西田さんからのコメントがあったので、ROMレスシステムについて考えてみました。 基本的な考えは、 SRAMをROM領域(0x4000-0x7fff)に確保しておく (実際には32kB分のSRAMを0x4000-0xbfffに配置してRAM拡張を兼ねる) 起動時にSRAMにブートアップ用のプログラムを...