CPU実験室

誰も見向きもしない古いCPUをいじって動かしてみようというプロジェクトです

基板設計

このトランスが載るドライブ回路を基板化してみます。トランス部分は巻線構成、巻線比で変更してもドライブ回路は共通なのでシンボルはブラックボックス化しておきます。 パタンは非常に単純。自作でもいけそうです サイズが30×40mmしかないので他の回路と寄…

コア検討(2)

トロイダルコアもいいんですが、とにかくコイルを巻きにくい、基板への実装が面倒そう(リード線がどこに出てくるか予想つかない)のでEEコア付のボビンを買ってみました。 10個セット(Eコア×20個とボビン×10個)で送料込み¥900で結構安いです。 これ注文…

コア検討

磁気飽和させないためにはギャップを設けられるEIコアやEEコアが良いようです。コイルも巻き易いですし。ただ軽負荷では問題はなさそうだしそれより巻数や巻数比はもう少し検討した方がよさそうです。 手持ちのトロイダルコアがまだあるので新たに巻いてみる…

磁気飽和

この回路でヒータ出力の波形を観察してみました。 3次巻線(ヒータ出力)定抵抗負荷80Ω 上から2次負荷:無負荷、50mA、100mA(5V/div) やはり2次負荷が軽いときは3次出力も小さいですが適度な負荷50mA(DUTY=50%)ではきれいな波形になっています。さらに負…

特性比較

最初の回路:1次2次単巻でFET-ON時にエネルギー移動(フォワード型)と、今回の回路:1次2次逆相でFET-OFF時にエネルギー移動(フライバック型)の出力特性を比べてみました。 負荷に対する出力電圧の安定性でいうとフライバック型が多少良さそうです 2次出…

トランス変更

巻線比調整のためトランスを巻きなおしました。2次巻線はいままで1次巻線と単巻き構成でしたがこれを独立させ巻数を135Tとしています。3次巻線も半減して8T×2になります 2次巻線を独立させたのはフライバック動作を試すためで、ドライブする1次側は同じです…

PWM波形

PICからのPWM出力が、負荷を変化させたときどう変化するか見てみました。 PIC5ピンPWM出力(2V/div) 上から2次出力無負荷、50mA負荷、100mA負荷 無負荷では非常に細いパルス、100mAも負荷をかけてもDUTYは40%くらいにしかなりません。 これによって3次巻線…

出力特性

電子負荷で取り出す電流を自由に可変できるようになったので早速測定してみました。配線がぐちゃぐちゃですが。 内部設定値VOUT=436としたFWを書き込み起動。負荷をかけていくと100mAまで1V以内の降下でかなり安定しています。VFDに必要な電流は10~20mA程度…

電子負荷

VFD電源がどれくらいの負荷までいけるか、ざっくり抵抗では確認していましたがもう少し詳細にみておきます。抵抗だと離散的な値(今のところ2.4kΩ1本(10mA)と2本パラの1.2kΩ(20mA))でやってますが、電圧降下すると電流も下がってしまうし、小電力とはいえ抵…

フィードバック制御

出力電圧をADCで読取りDUTYを変える制御を組み込んでみました。 目標値VOUTに対して出力電圧が高い場合はpwm値をデクリメントしてDUTYを下げ低いときはpwm値をインクリメントしてDUTYを上げるという単純な処理です。pwm値は有効な制御ができる2~600の間に収…

PWM出力

PICによるパルス出力ですが、手持ちがあったPIC12F675でやってみたのですがデジタル汎用出力をON/OFFでパタパタやるので数kHzしか得られません。さらにこのループにAD変換結果によるモジュレーションを組み込むとますます遅くなって数100Hzとなり全く使い物…

ドライブ回路

このトランスをドライブするドライブ回路を作ってみました。8ピンPICでパルスを発生させMOSFETによるメインスイッチQ2を駆動します。Q1,C3,R4は1次コイルの逆起電圧を吸収するスナバですが、Q1は内蔵ダイオードしか使ってないので単体のショットキダイオード…

コイル巻き終わり

使ったコアですが買ったときの袋にはこれしか説明が無く・・ もういちどアミドンのカタログを調べてみると寸法的にはほぼこれと同じではないかとおもわれます。ただし同じ形状でも材質で#61,#43,#67,#68,#75,#77とシリーズ化されていてそのどれかはわかりま…

トランス構成

今回作ろうとしているトランスの構成です。1-2間はドライブ巻線で5Vのパルスを印加します。2-3間は高圧のアノード電圧を発生する2次巻線ですがここは単巻で1-3間を一気に巻いてしまいます。ドライブ巻線をとりあえず25T(0.2V/turn)とした時、高圧端に損失…

VFD電源見直し

LD8118蛍光表示管の明るさがいまいちなので昇圧回路を作り直してみようとしてます。せっかくVFD用トランスを入手したのですがどうも管の特性と合わなかっらたしくもういっそトランスを巻きなおしてみようかと。 DCDCコンバータ用のトランスは厳密に設計する…

ライブラリ化

1文字入出力などの汎用処理を切り出してライブラリ化しました。 作った関数はまだ少ないですがヘッダファイルはこんな感じ。 c92lib.h 統合環境cmpldrvにもCコンパイルの環境を登録。ライブラリ関数を使ってLチカを書き直しました。 コンパイル結果はこのよ…

プロジェクト完了

CPU内モジュールのすべての機能を確認したわけではないですが、おそらく動作するであろうということでボードとしての開発は完了。応用は別途考えます。 汎用的に使えるように技術資料はぼちぼち整備しておきましょう。部配図とパタンとか コネクタのピンアサ…

Cコーディング

CC900コンパイラに付属している標準ライブラリには文字列処理is~、str~、mem~、printf系関数やsin/cosなど数学関数、malloc/freeといったヒープ操作も含まれているのであとはハードウェアに依存した入出力関数などをちょこちょこっと作ってやればそれで全…

CでLチカ

環境が整ったのでCでプログラムしてみます まずはソースファイル。内蔵パラレルポートP7を定義するためにヘッダファイルio900h1.hをインクルードしていますが、 ソース本体はアセンブラ言語でのLチカテストとほぼ同じになっています ソースファイル:TEST.C …

ファイルカスタマイズ

Cで書いたプログラムはそれを動作させるためにある程度のお膳立てが必要でそのためのサンプルコードが付属していました。これをそれぞれの環境に合わせてカスタマイズしろ、ということです まず必要なのがスタートアップルーチン。スタックの設定、静的変数…

Cコンパイラ

TLCS-900ボードのプログラムはアセンブリ言語でちょこっと書いてASでアセンブル、実行はできていますが、ボード上のI/Oがport7のbit3につないだLED1個だけ。あまり面白い動きをさせることもできないのでちょっと放置していました。 アセンブラによるLチカ例…

コーデックでLチカ

コーデック本来の機能であるA/D、D/A部分の確認が先にできてしまったのですがおまけ機能の汎用出力ピンでLチカも一応やっておきます 汎用出力ピンXCTL0/1の制御はインデックスアドレス#10:pin control regに割り付けられています ループバックプログラ…

ループバック実行

コーデックへの初期化コマンドチェインの内容はこうなっています。コントロールワードに含まれるインデックスでポイントされる13個の8ビットレジスタにデータをセットしていきます。コード上はプログラムメモリ領域に埋め込まれるので24ビット幅データですが…

ソケット交換

ターゲットROMを差すところを32ピンZIFソケットに置き換えました。こうするとツールとしてきれいにまとまって見えます。PLCCアダプタもこの上に載せればOK。 ところでこのZIFソケット。草色のボディ、レバーの形状といい3MのTEXTOOL(tm)そのも…

コーデック初期化

下準備ができてやっとAD1847の初期化になりますが、前述の通りバッファにコマンドワードを書き込むと勝手に送信されてしまいます。初期化コマンドチェインinit_cmds[14]を割込みごとに1ワードづつ送るために初期化のためだけの割込みルーチンframe_intの中…

コーデックアクセス

つづいてコーデックAD1847の初期化になりますが、これはシリアルで接続されているのでシリアルポートSPORT0からコントロールワードを送出することになります。いままでざっくりマニュアルを読んで理解したのは 「DSP側のメモリ上にバッファ領域を設け、autob…

DSP初期化

コーデックがバスマスタになるのでコーデック側に送受信データがあるときフレーム同期をつかってDSPへ割込みをかけることになりますが、それに応答してDSP側で送受信プログラムを起動するのではなく、ハードウェアで循環バッファとの入出力を自動でやってく…

設定移植

ADSP-2181のコードをADSP-2101用に変更していますが割込み要因が変更になっているため関連する内蔵レジスタも意味付けが変わっています 以下の2個のレジスタはSPORT0 Rxのビット位置が変わってしまったためセットするデータを修正しておきました IMASK(Inte…

割込みベクタ

最後まで残っていたΦ3.5イヤホンジャックを取り付けて部品実装は全て完了しました。 サンプルコードのリストを読んでコーデックの使い方を勉強しています。アセンブルはノーエラーで通ったのですが細かい修正は要りそうです。 まずサンプルコードはADSP-2181…

ソースアセンブル

アプリケーションノートに書かれているサンプルコードをそのままコピペしてきました。単純なループバック(入力されたアナログ信号をA/DしたものをそのままD/Aに書き込んでアナログ信号を出力)なんですがコメント含めて約350行もあります。ただそのほと…