カテゴリー
電子技術

実験用電源の作製16

 トランジスタを使ったレールスプリッターが上手く動かなかったので電源トランスを使うかスイッチング電源を使うか迷っていたところ豊澄電源機器のいくつかの製品が2021年8月で製造中止になることを知りました。

 しばらくは流通在庫があるので入手できると思いますがせっかくの機会なので買いました。

HTR-121
HTR-121
HTR-201
HTR-201

 よく使いそうな電圧のトランスを二つ手に入れました。これで整流すれば直ぐに直流電源として使えます。トランスなのでマイナス電源も作り易いです。両方とも重さが1kg位あるのが少し難点ですが持ち運ぶことはないので実験用電源はこれで作ろうと思います。

 実際の電源は全てインバーターになってしまいましたが古い部品であれやこれやするならば電源もトランスの方が良いかもしれません。

カテゴリー
電子技術

実験用電源の作製15

レールスプリッター発熱
レールスプリッター発熱

 7805や7812には放熱を施していたのですがレールスプリッターのトランジスタはそのままでした。

 実験用なのであれこれ繋いでいるうちにショートしていたようです。ブレッドボードが溶けていました。

 これでは危なくて使えません。作り直しですね。

カテゴリー
電子技術

自作ROMライター そのA

クロック
クロック
シリアルデータ
シリアルデータ
リセット信号
リセット信号
ライト信号
ライト信号

 クロックやシリアルデータはデジタル化まで意図通りにできています。カウンターを作っておいてよかったです。ちゃんと山の数を数えることができています。

 しかし制御信号側の動作がおかしいです。Audacityでは見れない高調波が出ているようでカウンターがチカチカアップしてしまいます。制御信号側がどこかおかしいです。

 前途多難です。

カテゴリー
Free

8n-Bit Computer 05

 次に設計するのは最も難しい命令デコーダです。いきなり図が書けないので仕様を整理していきます。

リセット後、ROMの0000Hから実行される。

RAMにもプログラムを置けるので命令レジスタにロードする時に切り替えがある。

クロックごとにカウンターがアップされ次の命令が実行される。

命令長は8ビットまたは16ビットがあるのでメモリから読み出した後命令かデータか区別しなければならない。

なので

リセット

初期状態なので命令はROMからロードする

ROMの0000Hから命令レジスタにコマンドをロード

8ビット命令か16ビット命令か判定する

8ビット命令の時、次のクロックに移る

16ビット命令の時、次のクロックはデータとして処理し、その次は命令とする

カテゴリー
Free

8n-Bit Computer 04

InAndOut
InAndOut

InA,B
OutA,B
RegisterA,B,C,D,E,F
ROM Page,Address Register,ROM
RAM Page,Address Register,RAM
Status Register
Command Register

カテゴリー
Free

8n-Bit Computer 03

ALU
ALU

 最初にALUを設計します。4to16のデコーダが一つで済むように16個の演算を切り替えて使います。
Pass
And
Nand
Or
Nor
Xor
Not
Adder
Subtract
Multiply
Division
Shift Left
Shift Right
Increment
Decrement
Comparator


カテゴリー
Free

8n-Bit Computer 02

SN74LS181N
SN74LS181N

 CPUを作るといっても個人のできる範囲でとなりますので再小規模で手作りします。現実的な方法としてロジックICで作ります。ネットで検索するとリレーやトランジスタで作っている人もいますが費用と手間を考えるととても真似できません。また、74LS181などのALUも使いません。命令の体系が一つのICに依存させると将来の制限に繋がるような気がするからです。

HD74LS154P
HD74LS154P

 CPUの中枢がALUという人もいますが個性が発揮されるのはやはり命令デコーダになります。命令デコーダの設計によってそのシステムの個性が決まります。

 部品数をなるべく減らしたいので出来る限り単純な命令デコーダを設計しようと思います。74LS154は4to16なのでこの範囲に収まるようにしていきます。

カテゴリー
Free

8n-Bit Computer 01

Microcontroller
Microcontroller

 最近、益々人工知能と名打ったものやことが増えてきました。当然ながらそれを支えるテクノロジー分野でも人工知能を生みながら自らへの応用も盛んに行われているでしょう。

 ならばソフトウェア開発も人工知能にお任せの時代がもうきているかもしれません。人類がソフトウェア開発から解放される日はいつなのでしょうか。

 人工知能でソフトウェア開発できるようになったらCPUごとに異なるソフトウェアを開発しなくても良くなると思います。アーキテクチャが異なればそれに合わせてソフトウェアを作らなくても良く、きっと多様なCPUが普及していくでしょう。

 そこで気が早いですが今から新しいCPUを作ってみます。人工知能でソフトウェア開発ができるようになる時代を見据えて新しい概念でできたら嬉しいです。

 タイトルに付けた8n-Bit Computerとは最小構成が8bitなのですが利用環境に合わせて16bitでも32bitでも64bitでも128bitでもそれ以上でも使えるコンピュータです。途中で頓挫するかもしれませんがチャレンジしてみます。

カテゴリー
Free

コンピュータの仕組み26

最小コンピュータ その3
最小コンピュータ その3

 前回の 0と1の列を8桁に揃えて16進数に置き換えてみました。そうするとマシン語と呼ばれているものになります。

出力:1000,0000 = 80
演算:0011,1000 = 38
入力:0111,1000 = 78

出力:1011,0000 = B0
演算:0000,1000 = 08
入力:0111,1000 = 78

 桁は減りましたがまだただの数字なので覚え難いです。一目見てわかるような文字列に置き換えてみます。

80:OUTR
38:PASS
78:IN
B0:OUTA
08:AND
78:IN
命令のようになったので処理の流れが読めるようになってきました。

OUTR出力をレジスタにする
PASS入力をそのまま出力する
IN入力を外部入力とする
OUTA出力をAとする
ANDAND演算する
IN入力を外部入力とする
ここまできたらアセンブラだ

 実際にROMに書き込むときはOUTRを逆に1000,0000に戻せば良いです。人間でもわかる単語で命令を順に記述し、それを2進数に置き換え、0は電圧をLowに、1は電圧をHighにしてROMに書き込みます。これこそがソフトウェアですね。

カテゴリー
電子技術

TC428CPA

TC428CPA
TC428CPA

ChatGPTに聞いてみた。

User
TC428CPAは何ですか。

ChatGPT
TC428CPAは、パワーモスフェットやIGBT(絶縁ゲートバイポーラトランジスタ)のドライバICです。このICは、高速でパワーデバイスを制御するための信号増幅や電流駆動機能を提供します。

TC428CPAは、シングルチャンネルのドライバであり、入力信号を増幅し、高電流でパワーデバイスを駆動する能力を持っています。また、ドライバの出力は高速でスイッチングされるため、パワーデバイスの効率的な制御を可能にします。

TC428CPAは、DCモーター制御、リレー駆動、電源スイッチング、LED駆動など、様々なアプリケーションで使用されます。特に、高速スイッチングや高電流制御が必要な場合に適しています。

カテゴリー
電子技術

SN74LS283N

SN74LS283N
SN74LS283N

ChatGPTに聞いてみた。

User
SN74LS283Nは何ですか。

ChatGPT
SN74LS283Nは、4ビットの並列二進加算器(全加算器)ICです。このICは、2つの4ビット入力(A0〜A3、B0〜B3)および1つのキャリー入力(C0)を持ちます。それぞれのビット位置において、入力された2つのビットと前のビット位置からのキャリーを加算し、結果とキャリーを出力します。4つの出力(S0〜S3)は、ビットごとの加算結果を表します。また、1つのキャリー出力(C4)も提供されます。

SN74LS283Nは、複数ビットの二進数の加算に使用されます。特に、算術演算やデータ処理などのデジタル回路において、数値の加算を行う際に使用されます。TTL(トランジスタ・トランジスタ・ロジック)ファミリーのICであり、高速で信頼性のある加算機能を提供します。

カテゴリー
電子技術

SN74LS325N

SN74LS325N
SN74LS325N

ChatGPTに聞いてみた。

User
SN74LS325Nは何ですか。

ChatGPT
SN74LS325Nは、4ビットシフトレジスタ/パラレルロードレジスタICです。このICは、4つのデータ入力(D0〜D3)、クロック入力(CLK)、ロード入力(LD)、シフト/ロード制御入力(SL/RL)を持ちます。データ入力をクロックの立ち上がりエッジでシフトするか、ロード入力をアクティブにすることでパラレルにデータをロードすることができます。

SN74LS325Nは、4つのビットデータを直列にシフトしたり、パラレルにロードしたりするために使用されます。特に、データのシリアル送信やパラレル入力データの一時的な保存などのアプリケーションで活用されます。このICはTTL(トランジスタ・トランジスタ・ロジック)ファミリーの一部であり、デジタルデータ処理やシーケンシャル制御回路などのデジタル回路設計に使用されます。

カテゴリー
電子技術

SN74LS327N

SN74LS327N
SN74LS327N

ChatGPTに聞いてみた。

User
SN74LS327Nは何ですか。

ChatGPT
SN74LS327Nは、3ラインから8ラインのデコーダ/デマルチプレクサICです。このICは、3つの入力ライン(A, B, C)と8つの出力ライン(Y0〜Y7)を持ちます。デコーダとして動作する場合、3つの入力の組み合わせに応じて、対応する出力がアクティブになります。デマルチプレクサとして動作する場合、特定の出力を選択し、それに対応する入力にデータを転送することができます。SN74LS327Nは、TTL(トランジスタ・トランジスタ・ロジック)ファミリーのICであり、データのデコーディングやデマルチプレクションなど、多くのデジタル回路で使用されます。

カテゴリー
Free

コンピュータの仕組み25

最小コンピュータ その3
最小コンピュータ その3

 上図は最低限の機能を備えたコンピュータと思ってください。これでソフトウェアとは何かを考えてみます。

 左側にあるInの状態をRegisterに写してみます。Inは8本のラインでそれぞれがHighかLowになります。

 出力をRegisterにするためにはDemultiplexerCの出力がQ0になるようS0-2を000にします。

 演算は必要ないのでDeMultiplexerA,BとMultiplexerCの出力をQ7にするためS0-2を111にします。

 入力をInにするためにはMultiplexerAのI7がQに出てくるようにS 0-2を111にします。

 これで出力先、演算方法、入力元を選択できました。
出力:000
演算:111
入力:111
となります。

 出力、演算、入力に対する指示を切り替えているのはDemultiplexerEです。S0-1が
00:演算に対する命令
01:入力に対する命令
10:出力に対する命令
となります。

 従って命令の切り替えると命令を合わせると、
出力:10,000
演算:00,111
入力:01,111
となります。

 この要領でInとRegisterのAndをOutAに出力してみます。
出力:10,110
演算:00,001
入力:01,111,000
入力はAとBがあるので命令が長くなります。

 このように 0と1の列をROMに書き込んでおいて順番に実行していけば様々な演算ができます。どのような列がどのように動作するかは上図の有り様によって決定されます。CPUが変わればそれにあった 0と1の列ではないと動作しないことがよくわかりました。

 

カテゴリー
Free

コンピュータの仕組み24

最小コンピュータ その2
最小コンピュータ その2

 前回から更に拡張して、8ビットCPUを目指してみます。

入力
 Register, RAM Address Register, RAM Page Register, RAM, ROM Address Register, ROM Page Register, ROM, In

出力
 Register, RAM Address Register, RAM Page Register, RAM, ROM Address Register, ROM Page Register, Out A, Out B

演算
 Adder, And, Or, Nand, Nor, Xor, Not, Pass

 入力Aが8ライン、入力Bが8ライン、出力も8ライン、演算も8ラインの選択肢があります。

 ROMから読み出された8ビットの命令がDeMultiplexerを通してCommand Registerに保存されます。この保存された命令のビット列に従い各MultiplexerやDeMultiplexerのライン切り替えが行われてプログラムされた演算を繰り返します。

 だんだんCPUらしくなってきているようですが命令デコーダ部分が怪しげなのでもっと改良します。

カテゴリー
電子技術

TC74HC4049P

TC74HC4049P
TC74HC4049P

ChatGPTに聞いてみた。

User
TC74HC4049Pは何ですか。

ChatGPT
TC74HC4049Pは、シリアルイン/パラレルアウトの非反転6個入力バッファ/コンバータ(ヘキサインバータ)ICです。このICは、CMOSテクノロジを使用しており、低消費電力で動作します。TC74HC4049Pは、6つの入力ピンを持ち、各入力ピンに対応する非反転の出力ピンがあります。このICは、入力信号のレベルを変換し、出力信号を生成するために使用されます。特に、TC74HC4049Pは、デジタル信号のレベル変換やインタフェース回路の設計に使用されることがあります。

カテゴリー
電子技術

HD74LS154P

HD74LS154P
HD74LS154P

ChatGPTに聞いてみた。

User
HD74LS154Pは何ですか。

ChatGPT
HD74LS154Pは、2進数入力を4行16列のマトリックススイッチとしてデコードすることができるデコーダ/デマルチプレクサICです。1つの入力に対して、16個の出力があります。また、4つの入力を持ち、それぞれに4つの出力があります。このICは、データセレクション、マトリックススイッチ、データマルチプレクシングなど、さまざまなアプリケーションに使用されます。

カテゴリー
電子技術

M5L8216P

M5L8216P
M5L8216P

ChatGPTに聞いてみた。

User
三菱製のM5L8216Pは何ですか。

ChatGPT
M5L8216Pは、8ビットマイクロプロセッサの1つで、1980年代に三菱電機が製造していた製品です。M5Lシリーズは三菱電機が開発したマイクロプロセッサの一連の製品で、M5L8216Pはその中でも特に高性能なものの1つでした。M5L8216Pは、最大2.5MHzのクロック周波数で動作し、56種類の命令を持っていました。また、4つの8ビット汎用レジスタや、2つの16ビットカウンタ/タイマー、割り込み制御回路、および入出力ポートが備わっています。M5L8216Pは、産業制御、計測機器、家電製品、および通信機器などの様々なアプリケーションに使用されていました。

User
プロセッサではなくその周辺ICだと思います。

ChatGPT
その通りです。M5L8216Pは、1980年代に三菱電機が製造した8ビットCMOSシリコンゲートマイクロコントローラ(マイコン)の周辺ICの1つです。M5L8216Pは、4つの8ビット入力ポート、4つの8ビット出力ポート、3つのタイマー/カウンタ、16ビットパルス幅モジュレーション(PWM)モジュレータ、およびシリアル通信インタフェースを備えています。M5L8216Pは、当時の制御システムやオフィス機器、家庭用機器など、幅広い分野で使用されました。

User
双方向バスドライバーだと思いますがいかがですか。

ChatGPT
申し訳ありません、誤解が生じました。M5L8216Pは、実際には双方向データバスドライバーとして機能するICです。データバスドライバーは、マイクロプロセッサと外部デバイスとの間でデータの双方向転送を可能にするための回路です。M5L8216Pは、8ビットデータバスの制御に使用され、バス上のデータの送信および受信を制御します。これにより、マイクロプロセッサと他のデバイス間でのデータのやり取りが行われます。双方向バスドライバーとしてのM5L8216Pは、デジタルシステムにおいてデータの双方向通信を可能にする重要な役割を果たします。おっしゃる通り、M5L8216Pは双方向バスドライバーとして使用されることが多いです。お詫び申し上げます。

カテゴリー
電子技術

SN74LS83N

SN74LS83N
SN74LS83N

ChatGPTに聞いてみた。

User
SN74LS83Nは何ですか。

ChatGPT
SN74LS83Nは、4ビットの2進数加算器ICです。このICには、2つの4ビットの入力(A、B)と1つのキャリー入力(CIN)があり、2つの4ビットの出力(SUM、COUT)があります。入力に2つの2進数を与えると、SUM出力にその和が、COUT出力にはキャリー(桁上がり)が生成されます。SN74LS83NはTTL(論理トランジスタ)ファミリーのICで、一般的には4ビットの加算器として使用されます。

カテゴリー
電子技術

SN74LS348N

SN74LS348N
SN74LS348N

ChatGPTに聞いてみた。

User
SN74LS348Nは何ですか。

ChatGPT
SN74LS348Nは、8つのアナログスイッチを持つICで、オンチップのデコーダによって選択されたスイッチをオンまたはオフにすることができます。これは、アナログ信号を切り替えたり、デジタル信号を複数の回路間で切り替えたりするために使用されます。また、入力レベルがTTLに互換性があるため、古いTTL回路との互換性があります。