2021年12月5日日曜日

NIPPON BOARD COMPUTER, INC. MODEL UA-1 の分解

電子機器の分解一覧



NIPPON BOARD COMPUTER, INC.  MODEL UA-1 の分解


謎装置を入手したので、分解してみます。






後1

後2






どうやら漢字ROMが入っていないプリンタに本器を接続して、漢字を印刷できるようにするものっぽいです。(詳細不明)


漢字ROMは、MB83256-023,MB83256-024,MB83256-025,MB83256-026が入っていました。16x16でJIS第一水準のようです。

CPUは、UPD780C-1(Z80)が使われています。


・回路図




・メインROM
メインROMには64KビットのUV-EPROMが使われています。









2021年9月28日火曜日

STM32CubeIDEの外部ツールからST-LINK_CLIで書き込みたい時の設定

 STM32CubeIDEの外部ツールからST-LINK_CLIで書き込みたい時の設定

STM32CubeIDEは特定の環境でST-LINKが認識せず書き込みやデバッグができない現象があります。ST-LINKのファームウェアを更新などを行っても一切認識せず、
「No ST-LINK detected! Please connect ST-link and restart the debug session.」
エラーが出ます。どうやら特定のPCのUSBハブ環境で起こる問題との噂があります。

ST-LINK utilityからでは正常に読み書きが出来る場合、STM32CubeIDEの外部ツールとして書き込みができます。


・ST-LINK utilityのインストール


まず、ST-LINK utilityが必要になるのでダウンロード&インストールします。

ST-LINK utilityのダウンロードにはmySTの会員登録が必要です。

ST-LINK utilityのインストールの際、インストール先のディレクトリを覚えておきます。

無事にST-LINK utilityのインストールが完了したらST-LINK utilityを起動させます。
ターゲットデバイスをST-LINKを介してPCに接続し、正常に認識することを確認します。






・STM32CubeIDEの外部ツールの設定


次にSTM32CubeIDEの外部ツールの設定を行います。

STM32CubeIDE 1.7.0 (日本語化パッチ当て済み)での設定


①STM32CubeIDEを起動後、メニューの「実行(R)」→「外部ツール(E)」→「外部ツール の構成(E)…」を押します。


②外部ツールの構成ウィンドウが出るので次のように設定します。

名前(N):(好きな名前にします。)
ST-LINK_CLI_write

ロケーション(L):
(ST-LINK utilityのインストール先にST-LINK_CLI.exeがあるので指定します。デフォルトのインストール先では下記のようになります。)
"C:\Program Files (x86)\STMicroelectronics\STM32 ST-LINK Utility\ST-LINK Utility\ST-LINK_CLI.exe"

引数(A):
(ST-LINK_CLIの引数「-P:書き込みたいbinファイルを指定、アドレス0x08000000から書く」「-V:ベリファイ」「-Rst:書き込み後リセット」)
"-P ${workspace_loc}\${project_name}\Debug\${project_name}.bin  0x08000000 -V -Rst"




「適用(Y)」を押し、このウィンドウを閉じます。

③プロジェクトのビルド後、メニューの「実行(R)」→「外部ツール(E)」から先ほど設定した「ST-LINK_CLI_write」を押します。
正常にマイコンに書き込み出来ていたら成功です。













2021年8月29日日曜日

Arduino(ATmega328p)でV-USBキーボードテスト

 Arduino(ATmega328p)でV-USBキーボードテスト

注意:この記事の内容を鵜呑みにし、事故や損失を招いた場合でも当方は一切の責任は負いかねます。自己責任でお願いします。

ATmega328p等のUSBコントローラが内蔵していないマイコンでUSBデバイスを作りたい場合には、通常、外付けのUSBコントローラICを使用します。

ですが、V-USBという、ソフトウェアでUSB1.1ロースピードモードデバイスを実現できるものがあります。


V-USB
無料で使用する場合は、GPL2.0ライセンスの下で利用できます。





今回はArduinoでV-USBを利用できるvusb-for-arduinoを使用します。

vusb-for-arduino




まず、上記vusb-for-arduinoで「Code」→「Download ZIP」でファイル一式をダウンロードします。

ZIPを解凍し、「vusb-for-arduino-master」→「libraries」内にある「UsbKeyboard」フォルダを

「C:\Users\???\Documents\Arduino\libraries」(※???は現在使用しているユーザー名)

へコピーします。


次にArdino IDE (Ardino IDE 1.8.9で確認済み)を起動し、「スケッチ例」→「カスタムライブラリのスケッチ例:UsbKeyboard」→「UsbKeyboardDemo1」を開きます。
使用ボードは、「Arduino/Genuino Uno」にセットします。
※水晶振動子は16MHzです。


マイコンボードを接続し書き込みボタンを押すとプログラムが書き込まれますが、Arduino IDEのバージョンや、vusb-for-arduinoのバージョンの違いによって、コンパイルが通らない場合があります。その時はエラー文にそって各自ヘッダファイル等を修正してください。
特に、古いバージョンのvusb-for-arduinoはPROGMEMにconst属性の付け忘れによるエラーがあります。

・回路

マイコンボードへの書き込みが成功したら、次は周辺回路を作成します。



--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

・USB1.1について

USB1.1は4本の端子があり、それぞれGND,D+,D-,5Vと割り当てられています。
GND,と5Vは電源、D+,D-はデータバスとなります。
USB1.1のデータバスD+,D-のHレベルは3.3Vなので注意が必要です。

ホスト側のデータバスD+,D-には15kΩのプルダウン抵抗が挿入されています。

USB1.1はフルスピードモード(12Mbps)とロースピードモード(1.5Mbps)があります。これらはホストに接続した端末側で設定します。
フルスピードモードの場合、端末側のD+を1.5kΩの抵抗で3.3Vへプルアップします。
ロースピードモードの場合、端末側のD-を1.5kΩの抵抗で3.3Vへプルアップします。

フルスピードモードで使用する場合はデータバスをツイストペアにし、シールドします。
ロースピードモードの場合はツイストペアやシールドは不要です。
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Arduino(ATmega328p)のポートのHレベル出力電圧は5Vなので、3.3Vへ変換する回路が必要です。
https://www.obdev.at/vusb/では、ダイオード2個分の電圧降下(約1.4V)で電源レベルを3.6Vにしているようです。V-USBはロースピードモードのみ対応しているため、データバスD-を1.5kΩでプルアップしています。

また、5V電源で使用する場合は、データバスは3.6Vのツェナーダイオードでクリップするようです。

これらを踏まえ、今回は次のような回路で実験しました。



データバスD-のプルアップ抵抗の先がArduinoのD5ピンへ接続されていますが、これは、Arduinoをリセットした時にUSBの接続を切るためのようです。
詳しくは「libraries」→「UsbKeyboard」内のArduinoNotes.txtを見てください。


上記回路を組み立て、PCのUSBポートへ接続すると、「HIDキーボードデバイス」として認識します。また、ArduinoのD12ピンへ接続したスイッチを押している間は「hello world」という文字列がキー入力されます。



安定性は悪く、ちょくちょくデバイスが認識されなくなります。
プログラム中の「UsbKeyboard.update()」または「usbPoll()」を50ms以内ごとに実行しないと、接続がタイムアウトしてしまうことが関係しているかもしれません。

「libraries」→「UsbKeyboard」内のヘッダファイル「UsbKeyboard.h」のメンバ関数「sendKeyStroke」内のwhile (!usbInterruptIsReady()){}で、50ms以上空いてしまい、接続断となってしまうのでしょうか?






















2021年6月19日土曜日

LCDドライバHD44102CHの使い方

 LCDドライバHD44102CHの使い方



ドットマトリクスLCDカラムドライバのHD44102CHはコモンドライバと併用することで、とても簡単にLCDの表示を制御することができます。


HD44102CH



カラムドライバHD44102CHはIC1つあたり50ドットまで出力でき、50 × 32ビットのRAMを持っています。

HD44105H



HD44102CHとペアで使用するコモンドライバには、HD44103CHやHD44105Hなどがあります。
HD44103CHはIC1つあたり20ドットまで、HD44105HはIC1つあたり32ドットまで出力できます。


また、カラムドライバは並列つなぎにして使用し、より大きなLCDを制御できるようです。

・HD44102CHとHD44105Hをそれぞれ1ずつ使うと50 × 32までのLCD
・HD44102CHを10個、HD44105Hを1個使うと500 × 32までのLCD
カラムドライバはRAMを持っており、また、コモンドライバ側で走査制御を行います。
マイコン側で走査制御をする必要がありません。
このカラムドライバの最大の魅力です。

コモンドライバも数珠つなぎにして使用できるようですが、画素のデータ保持はカラムドライバのみで行っているため、コモンドライバごとにカラムドライバRAMを書き換えが必要になります。
・HD44102CHを1個、HD44105Hを2個使うと50 × 64までのLCD
・HD44102CHを2個、HD44105Hを2個使うと100 × 64までのLCD
・HD44102CHを4個、HD44105Hを4個使うと200 × 128までのLCD
この構成の場合だとマイコン側は常にカラムドライバにデータを送り続けなければいけません。

そこで、コモンドライバを常に1つのみ使用し、カラムドライバの個数を増やすことで
より多くのドット数のLCDを駆動する手法も使われます。
・HD44102CHを2個、HD44105Hを1個使うと50 × 64までのLCD
・HD44102CHを4個、HD44105Hを1個使うと100 × 64までのLCD
・HD44102CHを16個、HD44105Hを1個使うと200 × 128までのLCD※
※カラムドライバを四段使いにするのはLCDの内部配線上、非現実的なので、
実用上は2段まででしょう。



ここまで読んでくれた方はピンときたでしょう。
基本的にコモンドライバはRAMを持っていないため、マイコンからの制御は必要ありません。
コモンドライバは発振回路を持っており、自動的にLCDのロウを順次選択し、カラムドライバへLCD出力要求信号をだします。
そのため、カラムドライバのみへ制御信号を与えてあげれば、LCDに好きな文字や絵などを描画できます。

なので今回はカラムドライバHD44102CHの制御方法に要点をあてていきます。
ほとんどの方は、HD44102CHが使われているLCDを制御したいということだと思うのでLCD周りの回路構成は説明しません。





・制御方法


HD44102CHは複数のレジスタを持っています。コマンドを与えることでレジスタの読み書きができます。

ドットデータを保持するRAM(ディスプレイデータRAM)は50 x 32ビットあります。
8 x 50 を一つのページとしたものが4つあります。
ページアドレス(0~3)とカラムアドレス(0~49)を指定して、8ビットのドットデータを送信します。


・端子の種類

ピン番号 端子名 入出力 機能 詳細
50~57 DB0~DB7 I/O データバス データバスです。
47 E I イネーブル R/WがLの時、この端子がH→Lなると、
データバスの状態がHD44102CHのレジスタへラッチされます。
また、R/WがHの時、この端子がHになると、
HD44102CHのレジスタの状態がデータバスへ
出力されます。
48 R/W I R/W選択 R/WがLの時、HD44102CHへ書き込み、
R/WがHの時、HD44102CHから読み込み
になります。
49 D/I I データ/
コントロール選択
D/IがLの時、コントロールレジスタへアクセス、
D/IがHの時、ディスプレイデータRAMへアクセス
になります。
44~46 CS1~CS3 I チップセレクト

CS1 CS2 CS3 機能
L L L 非チップセレクト
L L H 非チップセレクト
L H L 非チップセレクト
L H H 読み書き有効
H L L 書き有効
H L H R/W
H H L R/W
H H H 読み書き有効

43 RST I リセット RSTがLの時、リセットされます。
42 BS I バスセレクト
信号
BSがLの時、データバスは8ビットモードになり、
BSがHの時、データバスは4ビットモードになり
ます。(DB4~DB7を使用)





・レジスタ


次にHD44102CHのレジスタを見ていきましょう。

HD44102CHのレジスタは大まかに分けて2つの種類があります。

1つはドットデータを保持するディスプレイデータRAM、もう一つはHD44102CHの制御にかかわるコントロールレジスタです。

ディスプレイデータRAMの読み書きでは、コントロールレジスタで指定した
ページアドレス(0~3)とカラムアドレス(0~49)のデータを読み書きをします。

コントロールレジスタの場合は、読み書きでレジスタの意味合いが違うので注意が必要です。

・ディスプレイデータRAMの読み書き時
R/W D/I DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 機能
1 1 MSB LSB HD44102CHから読み込み
(
HD44102CH→MCU)
0 1 MSB LSB HD44102CHへ書き込み
(MCU→HD44102CH)


・コントロールレジスタから読み取り時


コントロールレジスタから読み取り命令があった時、HD44102CHは内部にもつステータスレジスタの内容をデータバスへ出力します。

ステータスレジスタはHD44102CHの状態を示すフラグレジスタであり、4つの種類があります。

R/W D/I D7 D6 D5 D4 D3 D2 D1 D0
1 0 BUSY UP/DOWN OFF/ON RESET 0 0 0 0
概要    
ビジーフラグです。

H:ビジー状態
L:スタンバイ

各種レジスタに
データを書き込む際、
このフラグ
チェックしてから
書き込まなければ
いけません。
アップダウン
ステータス
フラグです。

H:アップモード
L:ダウンモード

カラムアドレス
レジスタの
カウント方向です。
連続してドット
データを読み書き
する際に、
自動的に次に選択される
カラムアドレス
方向を示します。
ディスプレイのON/OFFの状態
を示します。

H:OFF
L:ON

リセットフラグです。

H:リセット状態
L:スタンバイ
0 0 0 0



・コントロールレジスタへ書き込み時


コントロールレジスタは4つの種類があります。

①ディスプレイデータRAMアドレスレジスタ(8bit)
②ディスプレイON/OFFレジスタ(1bit)
③カラムアドレスアップダウン指定レジスタ(1bit)
④ディスプレイスタートページ(2bit)

この4つうち、①と④は書き込み専用で読み取りは一切できません。

②と③は上記「コントロールレジスタから読み取り時」のフラグビットとして読み取りができます。

R/W D/I DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 機能
0 0 XA1 XA0 YA5 YA4 YA3 YA2 YA1 YA0 ページアドレス(XA0~XA1)とカラムアドレス(YA0~YA5)
をセットする。
YAは0(B000000)~49(B110001)までの数値でなければならない。

0 0 0 0 1 1 1 0 0 VB
ディスプレイON/OFF
VB=H:ON
VB=L:OFF
0 0 0 0 1 1 1 0 1 CB
ラムアドレスカウント方向
CB=H:アップモード
CB=L:ダウンモード
0 0 XA1 XA0 1 1 1 1 1 0 ページアドレスXA
をスタートページとしてセット
する。




・制御の流れ(レジスタの読み書き)

それでは具体的にどのようにHD44102CHへコマンドを渡すかを見ていきましょう。


まず、8ビットデータバスモードでのHD44102CHのレジスタを読み書きする手順を示します。

・読み込み(8ビットデータバスモード BS=L)
①CS1=L、CS2=HCS3=HR/W=H、D/I=[L:コントロールレジスタ,H:ディスプレイデータRAM]にセットする。
②E=Hにセットすると、データバスへデータが出力される。
E=Lセットし、データバスをハイインピーダンスにする。

読み込み(8ビットデータバスモード BS=L)



・書き込み(8ビットデータバスモード BS=L)
①CS1=L、CS2=HCS3=HR/W=L、D/I=[L:コントロールレジスタ,H:ディスプレイデータRAM]にセットする。
②E=Hセットする(何もおこらない)
③DB7~DB0=任意のデータをセットする
E=Lセットすると、データバスのデータがHD44102CHの内部レジスタへラッチされる。
書き込み(8ビットデータバスモード BS=L)
赤ラインの地点でHD44102CHの内部レジスタへラッチされます。





4bitデータバスモードでのコントロールの場合は、8ビットのデータを2回に分けて読み書きする必要があります。
ただし、コントロールレジスタの読み取り時のみ、1回分のデータ(4ビット)のみの読み取りで済みます。

・読み込み(4ビットデータバスモード BS=H)
①CS1=L、CS2=HCS3=HR/W=H、D/I=[L:コントロールレジスタ,H:ディスプレイデータRAM]にセットする。
②E=Hにセットすると、データバス[DB7~DB4]へデータ[D7~D4]が出力される。
E=Lセットし、データバスをハイインピーダンスにする。もし、D/I=L(コントロールレジスタ)が選択されていたらここで処理は終了。
E=Hにセットすると、データバス[DB7~DB4]へデータ[D3~D0]が出力される。
⑤E=Lセットし、データバスをハイインピーダンスにする。


・書き込み(4ビットデータバスモード BS=H)
①CS1=L、CS2=HCS3=HR/W=L、D/I=[L:コントロールレジスタ,H:ディスプレイデータRAM]にセットする。
②E=Hセットする(何もおこらない)
③DB7~DB4=任意のデータ[D7~D4]をセットする
E=Lセットする
⑤E=Hセットする(何もおこらない)
⑥DB7~DB4=任意のデータ[D3~D0]をセットする
⑦E=Lセットすると、データバスのデータがHD44102CHの内部レジスタへラッチされる。




・制御の流れ(LCDの表示)

ここまで来ればあとはHD44102CHへコマンドとデータを順番に送りつけるだけです。

では、具体的にLCDへの描画プロセスを追ってみましょう。
試しにLCDのページ1("B01")のカラム10("B001010")へデータ"B10000000"を描画してみます。
LCDは50 x 32 で、HD44102CHとHD44105Hをそれぞれ1ずつ使う構成とします。


ビジーフラグのチェック (コントロールレジスタの読み取りを行った際、D7=Lになるまでこの作業を繰り返します。)
ディスプレイOFF (コントロールレジスタにデータ"B00111000"を書き込む)
ビジーフラグのチェック
ページアドレスXAとカラムアドレスYAのセット 
(コントロールレジスタにデータ"B[XA1,XA0,YA5,YA4,YA3,YA2,YA1,YA0]"を書き込む。今回はページ1("B01")カラム10("B001010")を指定するので、"B01001010"を書き込めばよい)
ビジーフラグのチェック
⑥描画データをセット (ディスプレイデータRAMに今回描画したいデータ"B10000000"を書き込む)
⑦ビジーフラグのチェック
⑧スタートページアドレスXAのセット 
(コントロールレジスタにデータ"B[XA1,XA0,1,1,1,1,1,0]"を書き込む。基本的にスタートページアドレスは0でよいので、"B00111110"を書き込めばよい)
⑨ビジーフラグのチェック
⑩ディスプレイON (コントロールレジスタにデータ"B00111001"を書き込む)


これでめでたくLCDのページ1("B01")のカラム10("B01010")へデータ"B10010110"を描画
出来たかと思います。座標で言うと(X,Y)=(10,8)に点を描画したことになります。
※(X=0~49、Y=0~31)です。



ここでスタートページアドレスについて疑問に思われた方もいると思います。
スタートページアドレスとはいわばLCDの一番上に描画されるページ番号みたいなものです。
今回の場合だとスタートページアドレスはページ0を指定しているため、ページ1は上から2番目に表示されます。(上からP0→P1→P2→P3の順で表示)

もし、スタートページアドレスがページ1を指定した場合、ページ1は上から1番目に表示されます。(上からP1→P2→P3→P0の順で表示) 今回の例ですと、座標(X,Y)=(10,0)に点が描画されます。

このスタートページアドレスの指定機能は50 x 8 や、50 x 16 のLCDで本領を発揮できます。
表示しきれないRAM部分に描画データを保管・瞬時にページ切り替えができるため、別のパターンの描画の描画切り替えが楽に行えます。




・制御の流れ(描画データの連続転送)

ほとんどの場合、描画データは連続したアドレスで読み書きするでしょう。この時いちいちページアドレスとカラムアドレスのセットを行うのは処理コストがかかるので合理的ではないです。

そこで、HD44102CHは、ディスプレイデータRAMの読み書きが行われた際に自動的に次のカラムアドレスのセットが行われる機能が備わっています。
カラムアドレスがインクリメントするかデクリメントするかは、ラムアドレスカウント方向レジスタで指定します。



試しにLCDのページ1("B01")のカラム10("B001010")からカラム17("B010001")へデータ"B10000000"を描画してみます。
LCDは50 x 32 で、HD44102CHとHD44105Hをそれぞれ1ずつ使う構成とします。

ビジーフラグのチェック (コントロールレジスタの読み取りを行った際、D7=Lになるまでこの作業を繰り返します。)
ディスプレイOFF (コントロールレジスタにデータ"B00111000"を書き込む)
ビジーフラグのチェック
ラムアドレスカウント方向レジスタのセット
(コントロールレジスタにデータ"B0011101[CB]"を書き込む。今回はアップカウントモードで使用するので、"B00111011"を書き込めばよい)
ビジーフラグのチェック
⑥ページアドレスXAとカラムアドレスYAのセット 
(コントロールレジスタにデータ"B[XA1,XA0,YA5,YA4,YA3,YA2,YA1,YA0]"を書き込む。今回はページ1("B01")カラム10("B001010")を指定するので、"B01001010"を書き込めばよい)
⑦ビジーフラグのチェック
⑧描画データをセット (ディスプレイデータRAMに今回描画したいデータ"B10000000"を書き込む)
""と""をあと7回繰り返す。(ページアドレスXAとカラムアドレスYAのセットは不要)
⑨ビジーフラグのチェック
⑩スタートページアドレスXAのセット 
(コントロールレジスタにデータ"B[XA1,XA0,1,1,1,1,1,0]"を書き込む。基本的にスタートページアドレスは0でよいので、"B00111110"を書き込めばよい)
⑪ビジーフラグのチェック
⑫ディスプレイON (コントロールレジスタにデータ"B00111001"を書き込む)


・例

さて、それでは実物のLCDへ描画してみましょう。
今回使用するLCDモジュールはシャープの書院「WD-A30」に内蔵されているF5208SCです。

構成はD44102CHを6個、HD44105Hを1個となっています。
LCDドライバの構成上は300 × 32のLCDなのですが、実際には矢印や電池マークなどが入ったカスタムLCDとなっています。


このLCDはD44102CH  1つあたりのカラムアドレスが0~47までと、全部で50ラインあるはずが48ラインまでとなっています。2進数で表すと"B110000"ラインであり、わりときりが良い数になっています。おそらくMCUでの制御がしやすいように2ライン犠牲にしたのでしょう。

LCD側のカラムアドレスはHD44102CH側のカラムアドレスの2*Nずつで連続しています。

LCD表示縦ラインのアドレス(表示面を左から順番に数えたライン順)
[1],[2],[3],[4],[5],[6],…,[42],[43],[44],[45],[46],[47]

HD44102CH側
[1],[24],[2],[25],[3],[26],…,[21],[45],[22],[46],[23],[47]


ほかにもページの順番が変則的だったりしているので、これらを1つの図にまとめました。


図を見てもらえばわかりますが、このLCDをドットマトリクスLCDとして利用すると、288 × 31ドット分描画できます。




・ピンアサイン
ピン番号 端子名 入出力 機能 詳細
1 DB0 I/O データバス データバスです。
2 DB1 I/O データバス データバスです。
3 DB2 I/O データバス データバスです。
4 DB3 I/O データバス データバスです。
5 DB4 I/O データバス データバスです。
6 DB5 I/O データバス データバスです。
7 DB6 I/O データバス データバスです。
8 DB7 I/O データバス データバスです。
9 CS3_0 I チップセレクト0
IC0のチップセレクトです。画面左端
H:IC0選択
L:IC0未選択
10 CS3_1 I チップセレクト1
IC1のチップセレクトです。
H:IC1選択
L:IC1未選択
11 CS3_2 I チップセレクト2
IC2のチップセレクトです。
H:IC2選択
L:IC2未選択
12 CS3_3 I チップセレクト3
IC3のチップセレクトです。
H:IC3選択
L:IC3未選択
13 CS3_4 I チップセレクト4
IC4のチップセレクトです。
H:IC4選択
L:IC4未選択
14 CS3_5 I チップセレクト5
IC5のチップセレクトです。画面右端
H:IC5選択
L:IC5未選択
15 D/I I データ/
コントロール選択
D/IがLの時、コントロールレジスタへアクセス、
D/IがHの時、ディスプレイデータRAMへアクセス
になります。
16 R/W I R/W選択 R/WがLの時、HD44102CHへ書き込み、
R/WがHの時、HD44102CHから読み込み
になります。
17 RST I リセット RSTがLの時、リセットされます。
常時Hにしておきます。
18 E I イネーブル R/WがLの時、この端子がH→Lなると、
データバスの状態がHD44102CHのレジスタへラッチされます。
また、R/WがHの時、この端子がHになると、
HD44102CHのレジスタの状態がデータバスへ
出力されます。
19 VCC - 電源 電源です。
5V印加します。
20 GND - GND グランドです。
21 VEE - 液晶駆動電源 液晶を駆動させるための電源です。
-3.3V~-6.0V印加します。
電圧を変化させることでコントラストを調整します。


描画の流れはこんな感じです。

6つのHD44102CHのスタートページアドレスを0にセット
6つのHD44102CHのカラムアドレスカウンタをアップモードにセット
6つのHD44102CHのディスプレイOFF
④6つあるHD44102CHに1つずつ描画データを転送
6つのHD44102CHのディスプレイON
"③"へ


・プログラム
ArduinoでF5208SCを駆動するためのサンプルプログラムです。
文字の描画とライフゲームができます。

ATmega2560で描画することができます。(ATmega328pだとRAM容量の都合上、うまくいかないかも)












2021年6月5日土曜日

デジットセレクション ランダム部品箱 2021


デジットセレクション ランダム部品箱 2021

デジット移転セール「スーパーファイナルセール」でランダム部品箱が販売されたので、購入してみました。

1箱500円で1人2箱まで購入できるようです。
販売ページにはモザイクがかかっており、どんな部品が入っているかは買ってみないとわからないです。




箱のサイズは25x20x5cmくらいです。







中を開けると袋が3つ入っていました。
電解コンデンサメインの小袋が2つ、ランダムな部品が入っている大袋が1つです。



・大袋

まず初めに、大袋を開封してみます。
コネクタ系がぱっと見多く入っていて、半導体系が少なめです。





順番に見ていきましょう。

・抵抗-大袋

高精度ポテンショメータが入っており、もう500円以上の価値はありそうです。

- 1段目、左から

松下 500ΩB基板用ボリューム    5個

松下 2KΩB基板用ボリューム    1個

コパル CT-9 W501 500Ω トリマポテンショメータ18回転     1個
コパル CT-9 W202 2kΩ トリマポテンショメータ18回転     1個
コパル CT-9 W103 10kΩ トリマポテンショメータ18回転     1個
コパル CT-9 W503 50Ω トリマポテンショメータ18回転     1個
コパル CT-9 W104 100kΩ トリマポテンショメータ18回転     1個

BOURNS 3296W 20kΩ 高精度多回転ボリューム     1個

BOURNS 3296W 50kΩ 高精度多回転ボリューム     2個

TOCOS RJC07R J503 50kΩ トリマポテンショメータ     1個

- 2段目、左から

501 500Ω 半固定抵抗     16個

501 500Ω 半固定抵抗     14個

TOCOS GF06P 501 500Ω 半固定抵抗     2個

TOCOS GF06P 503 50kΩ 半固定抵抗     2個

多治見無線電機 BNC174-TP 50Ω 0.5W ターミネータ     1個

- 3段目、左から

ミツミ 100Ω 半固定抵抗     2個

ミツミ 150Ω 半固定抵抗     2個

ミツミ 33kΩ 半固定抵抗     1個

ミツミ 680kΩ 半固定抵抗     1個

220Ω 酸化金属か金属皮膜か不明  抵抗     7個


200kΩ 5% ソリッド抵抗?     1個
300kΩ 1% 1/4W 金属皮膜抵抗     1個

330kΩ 5% 1/8W 炭素皮膜抵抗     1個






・コンデンサ-大袋

セラミックコンデンサが多めです。

- 1段目、左から

日本ケミコン LXGシリーズ 35V 6800μF 105℃ 標準品 電解コンデンサ     1個

三洋 HWシリーズ? CE 50V 2200μF 85℃ 電解コンデンサ      2個

三洋 HWシリーズ? 50V 2.2μF 85℃ 電解コンデンサ      52個

- 2段目、左から

ルビコン CE Wシリーズ 50V 1μF 85℃ 標準品 電解コンデンサ      1個

ルビコン CE Wシリーズ 50V 4.7μF 85℃ 標準品 電解コンデンサ      1個

東信工業 16V 10μF 電解コンデンサ      1個

ルビコン CEシリーズ? 50V 1μF 85℃ 標準品 電解コンデンサ      1個

トリマコンデンサ 不明      1個

- 3段目、左から

松下 ECQ-EWシリーズ AC250V 0.1μF Xコン フィルムコンデンサ      1個

ニッセイ 103k250 250V 0.01μF 10% フィルムコンデンサ      2個

ヤマト科学 153J 0.015μF 5% フィルムコンデンサ      2個

村田製作所 104 0.1μF 積層セラミックコンデンサ      1個

村田製作所 104M 250V 0.1μF 20% セラミックコンデンサ      1個

KCK 473k 250V 0.047μF 10% セラミックコンデンサ      2個

不明 104 0.1μF セラミックコンデンサ      1個

- 4段目、左から

村田製作所 223Z 0.022μF -20%~80% セラミックコンデンサ      1個
村田製作所 103M 0.01μF 20% セラミックコンデンサ      2個

不明 103 0.01μF セラミックコンデンサ      2個

不明 222 2200pF セラミックコンデンサ      3個

村田製作所 681J 680pF 5% セラミックコンデンサ      1個

不明 75 75pF セラミックコンデンサ      1個

不明 8 8pF セラミックコンデンサ      1個



・スイッチ-大袋

普通に買うと結構値が張るパネルマウントスイッチが数個入っていました。
リレーも結構数があります。

- 1段目、左から

Sunmulon MUM-1 MU小型ライトスイッチ モーメンタリ 赤(ランプ無し)       1個

松下 AC21300 ライトスイッチ オルタネイト 緑(ランプ無し)       1個

FUJISOKU LP-27S 照光式押ボタンスイッチ オルタネイト 橙       2個

FUJISOKU LP-16S 照光式押ボタンスイッチ モーメンタリ 緑       1個

Sunmulon PH-M1 PH超小型押ボタンスイッチ モーメンタリ 黒       1個

MIYAMA DS-412 押ボタンスイッチ モーメンタリ 白       1個

- 2段目、左から

不明 大型タクトスイッチ 白       1個

不明 タクトスイッチ 白 緑色LED付き       2個

FUJISOKU 8G1016-Z トグルスイッチ 双投     1個

ALPS 518C スライドスイッチ     2個

オムロン A8CA-107-1 ロッカースイッチ 片切 黒      1個

オムロン A8CA-103-1 ロッカースイッチ 片切 緑      1個

- 3段目、左から
詳細不明 トグルスイッチ 文字板     1個

オムロン A6CV-16R ロータリスイッチ 16ポジション      10個

IDEC RY2S-U AC100V RY形ミニチュアリレー 3A 2極      1個

オムロン G2Q-187P-V 5VDC マイクロリレー 1極      1個

オムロン G5V-1 9VDC マイクロリレー 0.5A 1極      1個

TOWORD BTS-9-1C 9VDC マイクロリレー 30V 1A 1極      2個

TOWORD BTS-5-1C 5VDC マイクロリレー 30V 1A 1極      2個

CRST CRST23F-S-DC9V マイクロリレー 2A 1極      6個

Panasonic ATN239 TN2-H-5V   SLIM POLARIZED RELAY 2極      2個



・LED-大袋

特殊形状のものが多いです。

- 1段目、左から

スタンレー NAG143P アノードコモン7セグLED 緑色     1個


スタンレー MU07-2101 超高輝度バーLED 赤色     1個


シャープ GL105R8 5連LED 赤色     1個


四角形 赤色 詳細不明     3個


3mm 砲弾 赤色 詳細不明     3個


凸型 赤色 詳細不明     1個


△型 赤色 詳細不明     1個

- 2段目、左から

長方形 赤色 乳白色エポキシ 詳細不明     19個


5mm 砲弾 緑色 詳細不明     3個


5mm 砲弾 緑色 詳細不明     1個


凸型 緑色 乳白色エポキシ 詳細不明     5個


長方形 緑色 乳白色エポキシ 詳細不明     13個


円形凸形 緑色 乳白色エポキシ 詳細不明     2個

- 3段目、左から

四角形 緑色 詳細不明     25個


凸型 緑色 詳細不明     11個


△型 緑色 詳細不明     1個

3mm 緑色 詳細不明     1個


5mm 砲弾 赤色 自動点滅LED 詳細不明     5個






・半導体-大袋

TTLの74ロジックICが半分以上あります。

- 1段目、左から

富士通 MB74LS00 2入力NAND x4      1個


日立 HD74LS10P 3入力NAND x3      2個


東芝 74AC86P 2入力EXOR x4      1個


日立 HD74LS136P 2入力EXOR x4 オープンコレクタ      1個


TI SN74LS245 8bit双方向バストランシーバ      1個

- 2段目、左から

東芝 TC9148P 赤外線リモコン送信用コントローラ      1個
リモコンが作れるようです。


ローム BA728N オペアンプ 2回路入り      2個
BOSSのDS-1に使われていたらしいです。


東芝 TLP559 フォトカプラ      1個


ローム DAN401 カソードコモンダイオードアレイ      1個






・コネクタ

MILコネクタはそこそこ使えそうです。

- 1段目、左から

オムロン XG4A-5031 ロングロック付プラグ50P(直型)     1個

オムロン XG4A-5030 ケーブル圧接型ソケット50P    1個

オムロン XG4M-1630 ケーブル圧接型ソケット16P    10個

オムロン XG4C-1634 BOXプラグ16P(L型)     4個

DDK 57F-36 圧接タイプコネクタ 36P    1個

DDK 57LE-24 L形コネクタ 24P    1個

- 2段目、左から

D-sub RP-9P 基板用L型D-subコネクタプラグ インチネジ 9pin     1個

DIN 8P ソケット     1個

SATO PARTS PAT.P T-20 スピーカーケーブル用ターミナル     1個

SATO PARTS T-3025BK ジョンソンターミナル 黒     5個

SATO PARTS T-3025G ジョンソンターミナル 緑     3個

- 3段目、左から

1x16 ロープロファイルL字ピンヘッダ 16P     2個

JST B8P-SHF-1AA NHコネクタ ベース付ピン トップ型08P 2.5mmピッチ     24個

JST B2P-VH VHコネクタ ベース付ピン トップ型02P 3.96mmピッチ     13個

GS031-0830G 板バネICソケット 08pin     1個

SATO PARTS F-60-B タブ端子型ミニヒューズホルダー     2個

2.5mmモノラルジャック     2個

2.5mmモノラルジャック     2個

miniDIN 4P 延長アダプタ     1個

RCAP-BNCJ変換コネクタ     1個

ELPA PA-111 RCA延長アダプタ     1個

3.5mmモノラルプラグ 詳細不明     1個

ELPA PA-302 3.5mmL字アダプタ     1個

BU-3270-C コードストッパー大     1個




・その他-大袋


- 1段目、左から

1-810-685-11 5L05.-867 青色ELパネル     1枚
点灯させるとこんな感じです。



PWB10501 MEC0806 謎LCD バックライト付き     1個
LCDドライバはEPSONのSED1575が使われています。



サンハヤト HDS-W-103 ユニバーサル基板 C基板     1枚

温度センサ 詳細不明     1個

- 2段目、左から

L字プラスチックスペーサ? 詳細不明     5個

テイシン電機 SJE-319 絶縁POM(ポム)スペーサー 中空 M3×35mm     4個

24x25mm ヒートシンク 詳細不明     1個

IF:455KHz用 セラコン・・・・・・51pF セラロック・・3.64MHz セット¥200     4個

- 3段目、左から

B4043D 謎モジュール     1個
パワートランジスタやシャント抵抗がついているので電源系モジュールのようです。

30A ヒューズ     2個

250V 3.0A ヒューズ      1個

472J 4.2mH 5% ドラム型チョークコイル      1個

KDS 4.433614MHz 水晶発振子      1個

村田製作所 3.64F 3.64MHzセラミック発振子      1個


大袋は以上です。
コネクタやスイッチ類が大半を占めていました。



・小袋

次は電解コンデンサがメインの小袋です。
2つとも中身が同じような感じなので、2つ同時に開封します。



申し分程度にLEDなどが入っています。


・電解コンデンサ(低Z品)-小袋

まずは低インピーダンス品のコンデンサです。

- 1段目、左から

ルビコン ZLHシリーズ 105℃ 小型化 長寿命 低インピーダンス品
16V 3300μF      2個
16V 2200μF      1個
16V 470μF      4個
25V 330μF      4個
16V 2200μF      1個
16V 100μF      3個

ルビコン ZLシリーズ 105℃ 高リプル 低インピーダンス品
6.3V 330μF      5個

- 2段目、左から

ニチコン HWシリーズ 105℃ スイッチング電源用低インピーダンス品
10V 3300μF      1個

ニチコン HZシリーズ 105℃ PCマザーボード用超低インピーダンス品
10V 1000μF 細高      1個
10V 1000μF 太低      1個

ニチコン PJシリーズ 105℃ スイッチング電源用低インピーダンス品
16V 680μF      1個
25V 270μF      1個

日本ケミコン LXYシリーズ 105℃ 低インピーダンス品
25V 120μF      1個
35V 56μF      2個 





・電解コンデンサ(標準品)①-小袋

多種多様な電圧・容量で、電子工作する側としてはとてもありがたいです。

- 1段目、左から

ニチコン VZシリーズ 105℃ 広温度範囲品
350V 33μF      1個
50V 1000μF      3個
250V 33μF      2個
100V 47μF      4個
350V 4.7μF      1個
16V 470μF      4個
16V 330μF      2個
100V 33μF      2個
350V 2.2F      8個
10V 470μF      2個
63V 47μF      2個
10V 100μF      1個
50V 33μF      7個
27V 4.7μF      3個
50V 0.22μF      4個
100V 1μF      1個

ルビコン YXAシリーズ 105℃ 標準品
50V 1000μF      1個
35V 1000μF      2個
16V 1000μF      2個
10V 470μF      2個
25V 220μF      2個
50V 33μF      6個
10V 100μF      5個
50V 3.3μF      4
50V 2.2μF      6個
50V 0.22μF      2個

- 2段目、左から

松下 ED-Aシリーズ 105℃ 標準品
350V 47μF      1個

日本ケミコン KMGシリーズ 105℃ 標準品
100V 100μF      2個
350V 4.7μF      1個
100V 22μF      3個

ニチコン VRシリーズ 105℃ 広温度範囲品
100V 47μF      2個

マルコン CE-KD 85℃ 詳細不明
10V 100μF      4個

松下 Mシリーズ 85℃ 標準品
50V 47μF      1個

ルビコン CE Wシリーズ 85℃ 標準品
50V 1μF      2個
50V 4.7μF      10個(画像では9個ですが、後から1個見つけました)

ルビコン PKシリーズ 85℃ 標準品
50V 4.7μF      4個

SHOEI 148 85℃ 詳細不明
63V 1μF      11個

ルビコン CEシリーズ? 85℃ 標準品
50V 1μF      2個 



・電解コンデンサ(標準品)②-小袋

- 1段目、左から

東信工業 紫スリーブ 85℃ 詳細不明
50V 1000μF      2個
16V 1000μF      22個
50V 47μF      36個
35V 47μF      8個
50V 33μF      1個
50V 4.7μF      13個

- 2段目、左から

東信工業 黒スリーブ 105℃ 詳細不明
50V 470μF      4個

東信工業 黒スリーブ 85℃ 詳細不明
25V 22μF      3個

東信工業 水色スリーブ 無極性 85℃ 詳細不明
16V 10μF      36個

東信工業 黄緑色スリーブ  詳細不明
16V 10μF      1個 


・その他-小袋

- 1段目、左から

東芝 TR325 TLR325 アノードコモン2桁7セグLED 赤色     2個

スタンレー MU20-2101 角型LED 赤色     2個

四角形 緑色 LED 詳細不明     1個

長方形 赤色 LED 詳細不明     2個

長方形 緑色 LED 詳細不明     1個

ダイオード 1E 詳細不明     5個

Bourns MF-R030 ポリスイッチ 60V 300mA     1個

Littelfuse RXE030 ポリスイッチ 60V 300mA     1個

- 2段目、左から

東信工業 154K 0.15μF 10% フィルムコンデンサ      1個

東信工業 152K 1500pF 10% フィルムコンデンサ      2個

不明 152K 1000pF 10% フィルムコンデンサ      2個

不明 0.22 35 0.22μF 35V タンタルコンデンサ      3個

不明 681  680pF セラミックコンデンサ       6個

不明 101  100pF セラミックコンデンサ       1個

不明 51  51pF セラミックコンデンサ       3個

TDK TSL0709S-100K1R9-PF TLSシリーズ 電源回路用インダクタ 10μH 1.9A    1個

TDK TSL0709S-330K1R0-PF TLSシリーズ 電源回路用インダクタ 10μH 1.0A    2個



小袋は以上です。




・まとめ

部品の個数の内訳は、

大袋


抵抗類
23種
65個

コンデンサ
22+1種
81+4個

スイッチ
21種
41個

LED
18種
97個

半導体
9種
11個

コネクタ
24種
81個

その他
14種
25個



小袋

低Z電界コンデンサ
11種
28個

標準品電界コンデンサ
38+10種
122+126個

その他
17種
36個



大袋・小袋かぶりは、
電解コン4種

1箱の部品の合計は、
204種
717個
でした。

部品1個あたり、0.697円です。





入っていたコンデンサはすべて日本のメーカが作ったものなので、そこそこ使えそうです。
特に、スイッチング電源にも使えそうな低Z電解コンがまあまあ入っていたいたので良かったです。

ただ、半導体系が少なかったのが少し残念でした。

謎LCDは後日解析してみます。








おわり