まったり アイマス2

アイドルマスター2 超ライトユーザーのプレイ日記

4273. 液晶表示器3、続き^5

2023年11月30日 | 日記

 昨日、240×64ドット白黒LCDグラフィック表示器が届きました。しかし、5V系なのと-9Vが必要で、そのためのレベル変換ICと逆電圧発生ICはまだ届いていません。フラットケーブルとコネクタも。
 届いてからコンデンサなどの普通の部品は通勤途中の駅から少しの所にある電子部品小売店に行って買うつもりです。
 今のところ、5本の信号線の内、2本はRX621のSPI端子に接続し、他の3本は普通のパラルポートでソフトで対応する予定です。割り込みを使って、ほぼ自動送信になります。
 RAM上にイメージが必要で、256×64ドット、つまり2048バイトのメモリ領域からの転送を毎秒30回程度行います。容量が少ないのでCPUへの負荷はほとんど無いと思います。

 これとは別の、320×240ドットカラーLCDグラフィック表示器は、SPI接続と説明書には書かれているのですが、やや特殊な信号線が別に必要で、どうやらArduinoなどへの接続例では普通のパラレルポートを使って、ごくゆっくりと送信しているようです。こちらは画像メモリ内蔵なので、それで構いません。見積もりでは、(マイコンの)CPUが全力を出すと1秒間に5回程度の全体表示切り替えが可能で、普段は1文字分などの小さな長方形領域の書き換えとなる予定です。
 3.3V系なので、結線は単に繋ぐだけで簡単です。上述のディスプレイは動くはずだと思っていますが、失敗した時にはこちらがバックアップになります。

 カラーの方が接続が容易で画面が細かくて綺麗ならばこちらだけでも何とかなりそうですが、画面が小さくてたくさん文字を表示すると多分、読みにくくなると思います。ビットマップデータの大きさは230KBにもなり、RX621の内蔵RAM(96KB)に入らないし。
 なので、今も前者の240×64ドットの方をメインにしたい訳。届いた実物を見ても、何とか使いたくなる不思議な魅力があります。

コメント
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

4272. 液晶表示器3、続き^4

2023年11月28日 | 日記

 何だか日曜電子工作の実況みたいになってきました。まだ肝心の240×64ドット白黒LCDグラフィック表示器は来ていません。私の頭の中だけの存在です。

 どうやらクロック同期シリアル通信回路は、その表示器とは信号のタイミングが合わないみたいです。成功例の使っていたSPI通信で無いと対応できません。やれやれ、今までに書いた考察の一部は破棄しないといけません。申し訳ないです。文章を遡って改めるかどうかは、表示が成功してから考えます。まだ最終的に正しいかどうか確かめていませんので。

 SPI通信はマイコンではよく使われていて、しかし動作はなかなか分かりにくく、とにかく一度でもなんとか成功していないと先に進めません。実は、ここは私は突破しています。
 次に、本マイコンのSPI通信はRAMとROMの拡大と、カラー表示器(320×240ドット)に使うつもりだったので、もう1回路が使えるのかで、私が誤解していたのはICのピンの都合で使えないと思い込んでいたことでした。計2回路とも使えるようです。

 なので、RX62のSPI回路の解説を改めて見てみました。豪華なこと。10年以上前に使ったマイコンよりもずっと進化しています。
 8bitのデータ交換(同時送受)が基本なのは変わりません。しかし今は32bitが一気に読み書きできて、連続8回までのシーケンス動作というのが可能で、つまり256bitの連続転送が可能です。表示器の横ドットが偶然にも1bitデータで240ドットですから、1行の転送が1回のCPUによるキックでできそうです。DMA(DMACA)と組み合わせると、おそらく32bitずつのデータ投入が自動となり、途中の割り込み処理ルーチンすら不要となります。(1行終了、つまりシーケンス終了時には別の割り込み要因が発生するので、垂直・水平同期信号はここで発生させるつもり)

 まあ、現代のマイコンの良くできていること。CPU本体も素晴らしいですが、周辺機器(入出力など)が優秀なこと。問題点は、うまく適合するまでマニュアルを隅から隅まで読まないといけないことくらいです。

コメント
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

4271. ちひろの誕生日

2023年11月27日 | 日記

 明日、11月28日はPS4の最新アイマスゲーム、スターリットシーズンに出てくる仮想事務員、千川ちひろ(シンデレラガールズ)の誕生日だそうです。いつものようにスターリットシーズンのPV新着欄で有志Pがお祝いのPVを上げるはずです。

コメント
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

4270. 液晶表示器3、続き^3

2023年11月27日 | 日記

 本日は普通の月曜日で、通勤途中の風景も相変わらず。昼休みに行った職場近所のショッピングモールに隣接する大型書店で、天文年鑑2024を見たので購入。データ集なのでこれを面白いと思う人とそうでない人に二分されそうです。何か面白そうな話題が書いてあったら本ブログで紹介すると思います。

 ジャンク品扱いの240×64ドット白黒グラフィック液晶表示器はまだ謎の部分が少々あって、実物で確かめないと予想だけでは分からないです。まあ多分、動きはするでしょう。もちろん、コントローラICの入ったタイプの方がずっと使いやすいので、当初の予定通り、そちらを先に接続しようかなと考えています。
 垂直・水平同期信号発生のためのワンショットマルチバイブレータがRX621のタイマで組めるかどうか調べていて、web検索したら同じ要求のあった人がいたようで、しっかりと解説されていました。

 というのも、マイコンの内蔵タイマは普通は自走してしまって、パルスは周期的に出てくるのが普通です。もちろんそれが役立つからそうなっています。しかし、1回だけのパルスを作りたいこともあり、今回その問題に遭遇したと言うこと。
 そのweb解説ではパルスが終わったら割り込み信号が出るので、割り込み処理ルーチンでタイマを止めて下さい、とのこと。1ライン表示ごとの割り込みはいずれにしろ必要なので、思いっきり長周期にすれば、まあいいか、の感じで対応予定です。これで1ラインのデータ書き込みも、垂直・水平同期信号もハードを設定してスタートさせるだけでCPUから見ても自動処理されます。

 元の成功記事ではパルスを作るのにポートに1を書いたらディレイ関数で待って、ポートに0を書きます。確実ですが、ディレイは空ループ処理なのでその間CPUは何もできません。表示器のテストにはOKでも実際には使いにくいと思います。

 ふう、それにしても現代のマイコンはタイマ一つとってもずいぶん工夫されています。マニュアルを読むだけでも大変で、プログラミングに必要な箇所は分散して数カ所にあります。Z80の時代だったらA4用紙1枚くらいの解説だったでしょう。いや、今の方がずっと便利です。

コメント
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

4269. 液晶表示器3、続き^2

2023年11月25日 | 日記

 ちょっとはしゃぎすぎたか。もしかしてマイコンに興味があって、この手の小型液晶表示器に興味のある方がいらっしゃるかもしれないのでヒントを書いておきます。購入した製品の型番などは表示がしっかり成功してから明かします。でないと無責任な感じがしますから。

 横240ドット×縦64ドットの白黒液晶グラフィック表示器です。LEDによるバックライト付きで、その電源は別に供給する必要があり、しかし表示には直接関係が無いので以下省略します。感じとして電流制限素子が入っているので単に5V (0.2A程度か)を加えるだけです。
 表示エリアは横127mm、縦34mmほどで、ドットピッチ0.53mmの正方画素のようです。このあたりのドットの大きさが英数字表示(5×7ドット)などには最も分かりやすいと思います。もちろんいわゆるドット感は大いにあります。
 私の世代だとポケコン最盛期の表示を思い出します。代表例としてカシオのPB-1000という機種には192×32ドットの白黒液晶画面がありました。1987年に発売だそうです。

 今回購入した(まだ届いてない)液晶グラフィック表示器のドライバICは東芝製のT6A40とT6A39です。webで出てきたマニュアル(1997年)は英文ですが、内容はすぐに分かります。T6A40が行担当で1個、T6A39が列担当で3個採用されています。電圧や電流や信号のタイミングはこれで分かります。ただし、後述するように表示器の説明書とは端子の名前がややずれています。
 表示器の回路は公開されておらず、しかし本来のコントローラであるT6963Cのマニュアル(英文)はすぐに手に入り、その37ページに載っている推奨接続例がそのまま採用されているようです。
 まず、T6A40のDUAL端子はL(0V/VSS)に接続され、DIRとTSWはH(5V/VDD)に接続されています。T6A39ではDUAL/DIR/DF1/DF2/DI1/DI2/DI3がLに接続されています。これでドライバICがどのモードで動いているかが分かります。

 T6963Cからは5本の信号線がドライバICに接続されています。表示器の説明書の信号名と微妙に違っているので、一覧表にします。
 (表示器の説明書の)FLM = (T6963CのCDATA) → T6A40のDIO1
 LP = (LP) → T6A40のSCP → 最初のT6A39のEIO1とすべてのT6A39のLP
 M = (FR) → FR → FR
 CP = (HSCP) →→ SCP
 DI = (ED) →→ DI4
 です。つまりドットデータ(DI)はすべてのT6A39に行っていて、しかしEIO1からのLPパルス(データラッチ)の伝搬で採用するかどうかが決まり、結果として1ライン分240個のCPパルス(ドットデータ取り込みクロック)で各T6A39の内部シフトレジスタに適切なデータが揃います(T6A39のマニュアル、4ページと5ページの図)。
 LPパルスがHになるとT6A39のシフトレジスタから行ラッチにデータが転送され、これはそのまま表示されます。つまり1行が完成した合図ですから、縦担当のT6A40のクロック(SCP。マニュアルでLPと同じと分かる)になっていて、表示器の電圧制御が1ライン次に行きます。1行目のLPパルスの時には普段はLのFLM(垂直同期信号)をHにして先頭行の合図にします(T6A40のマニュアル、5ページの図)。
 Mは液晶に加える電圧の正逆を制御する信号で、マニュアルでは1フレームごとに逆転しています。先に挙げた成功例では非同期で1kHz程度で任意のタイミングで切り替えています。

 以上はロジック、つまり制御用のICの話でした。画面の液晶に加える電圧はまた別です。参考文献は、

 トランジスタ技術編集部。グラフィック表示モジュール応用製作集。CQ出版、2012年

 です。多数の応用例が載っていて、コントローラICのあるものもあれば、ドライバICだけの表示器の取り扱い方もあります。
 ドライバICが(自動で)液晶に加える電圧切り替えのタイミング図は241ページに表示されていて、ただし上端がVDD(+5V)で下端がVEE(-9V)なのは共通ですが、行(Com)と列(Seg)の中間の2電圧は縦と横で異なります。つまりVDDとVEE以外に中間4電圧の電源が必要となります。この中間電圧発生にはレギュレータやコンバータでは無く、opアンプが用いられるようです。
 具体的回路は122ページに表示されています。opアンプはTL064というこの界隈ではよく知られたポピュラーなものです。この回路では30V(V0)と0V(GND)が上下端で4電圧(V1~V4)は(比率がV0に対して)固定です。コントラスト調節にはこの回路ではV0の電圧を調節しています。

 中間電圧はopアンプで作るので、外から供給するのは上記のV0だけです。この文献では単体のMOSFETとコイルでDC/DCコンバータを作っています。これに相当するのが、前述の成功例ではLTC1144と呼ばれるマイナス電源発生用ICです。ここを安い従来品で済まそう、というのが私の計画です。
 ついでながら、123ページの写真ではフレキシブルフラットケーブルとフラットカラーケーブルの変換にLSI用のピッチ変換基板を用いていて、残念なことにこの方法は今回購入したLCDモジュールでは使えません。専用の変換基板はありますが、比較的に高価です。

コメント
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

4268. 液晶表示器3、続き

2023年11月24日 | 日記

 余りに安かったから思わずポチってしまった240×64ドットの液晶グラフィック表示器。操縦のための信号をどう組むかはおそらく完全に解決しました。残るは電源とケーブルの問題。

 5V系なのはいわゆるロジック部分だけで、液晶に印加する電圧はその+5Vと-9Vの14V電位差のようです。ですから-9Vを何とかして確保しないといけません。ドットマトリクス液晶にはその他に中間の4電圧が必要ですが、そちらは基板内部で作り出しているようです。

 成功記事では9VのACアダプタから電圧コンバータ(DC/DCコンバータ)で負の9Vを作り出していて、+5Vは普通の電圧レギュレータICで確保しています。その電圧コンバータICは1個500円以上もします。スイッチト・キャパシタと呼ばれる仕掛けで、初めて知った時にはおお、そんな方法もあるのかと感心したものです。ただ感じとして電圧の反転と2倍の昇圧以外は外付けの部品が増えて行くようです。PWMタイプというもう少し柔軟な電圧コンバータもあり、しかしこちらはコイルが必要と思います。
 耐圧が低くて良いのなら安価なスイッチト・キャパシタICはあり、正電源と同じ負電源が作れるのですから、その負電源を0Vとしてさらに(元の0Vの)負電源を作ると2倍の負電圧、つまり元が5Vだと-10Vの電圧が得られます。
 最初見た時はまともに動作するのか冗談かと思いましたよ。しかし一応、公式のマニュアルに書かれている回路なので、推奨の範囲内のようです。液晶なのでおそらく2mAも電流が確保できたらOKなので採用予定です。

 -9Vが指定なのに-10Vで大丈夫なのかというと、おそらく中間の4電圧はopアンプの出力で作っているみたいなので、そのopアンプの電源のはずですから14Vか15Vかは些細な問題だと思います。コントラスト調整のために参照電圧を入力するのですが、こちらはそのopアンプの入力になっているはずです。今のところ私の想像なので、液晶表示器が届いてから4回路入りのopアンプのICが確認できたらおそらくそうに違いない、と思います。

 1mmピッチのフレキシブルフラットケーブル(FFC)の扱いはアマチュアにとっては難物で、その成功例でも経営する(?)電子回路教室での使用を断念した理由になっています。ネットではFFC自体も手に入りますし、コネクタも手に入ります。
 今のところ、コネクタからは短いリード線が出ているので、これを交互に倒すと2mm間隔になり、(禁断の)空中配線でフラットカラーケーブルに半田付けしたら何とかなりそうだと判断しています。

 さて、取らぬ狸の皮算用は完成したことになります。まだ製作過程にはちっっとも進んでいませんが。
 やれやれ。目標とは全然異なる、私の液晶ディスプレイの原理の理解がかなり深まったと思います。喜んで良いのやらどうだか。

コメント
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

4267. 液晶表示器3

2023年11月23日 | 日記

 RX621マイコンボードの外部記憶としてSPI接続のEEPROMを狙っていて、別の電子部品小売店の通信販売ページで配線しやすいDIP間隔への変換ボード付きが売られていたので、これ幸いとポチってしまいました。ついでに止せば良いのに240×64ドットの白黒LCD表示器が特売されていたのでこちらも購入。ものすごく安かったからです。

 で、よく見たら液晶のドライバICは配線されているものの、コントローラICが無いので、VGA信号みたいに1ドットずつの1/0データと、ドットクロック信号、水平同期信号、垂直同期信号を実時間で送らないといけないみたいです。さらに電源が5V以外に-9Vが必要で、さらにコネクタが1mmピッチのフレキシブルフラットケーブルです。
 一瞬、途方に暮れましたが、何と、これをArduinoで光らすことに成功した記事がネットに載っていました。いやいや、これには助けられたです。以下若干、文句を言っているように思えるかもしれませんが、単に私の思考過程です。ただただ感謝しています。
 細かな話に入るので、若干退屈を感じられる方がおられると思います。日曜大工の設計なので、あまり重要な話でもないし。

 いわゆるジャンク品扱いで、簡単な説明書しか同梱されていません。説明書があるだけまだまし、の品物です。型番をネット検索しても出てくるのはその小売店と上述の成功例だけ。ドライバICの型番は分かっていてこちらはもちろんすぐにPDFが手に入りましたが、製品の配線図は無いので中身は想像するしか有りません。

 まず、信号の解析から。ドットクロックごとにドットデータを送るのにSPI回路を使用しているようですが、おそらく普通の同期シリアル通信回路で十分ですし、こちらはDMAという連続自動送信が可能なはずです。つまり横240ドットはCPUはキックするだけでOKとなりそうです。シリアル通信回路はその昔のRS-232Cというかパソコンネットで使われた回路で、とても伝統があり、その分今では細かな使い方ができるようになっています。

 ドライバICは行担当が3個直列に接続され、列担当が1個の4個で構成されています。
 行を担当するドライバICは画像データがリレー式に順次送られます。1行240ドットのデータを送ったら、水平同期信号に相当するLPと呼ばれるパルス信号を入れます。するとデータが液晶に繋がるレジスタに一気に転送され、表示が始まります。
 列担当ICにとってはLP信号が処理単位となり、次の行の処理に移行したことが分かります。すべての行が表示されたら垂直同期信号に相当するFLMパルスを送ります。あと、液晶は直流電流を嫌うので、1画面(フレーム)送ったら電圧の反転を指示するMと呼ばれる信号線の1/0を反転します。
 まあ、ここまでは昔のアナログテレビも今のHDMIも似たようなことをしています。

 で、ネットでLCD表示器の型番を検索すると、似たようなこちらの製品はいかがですか、の表示も出ます。試しにクリックすると、そちらはコントローラICが入っているものばかりで、当然、そちらの方が使いやすい(メモリに表示データをセットするだけ)です。だからこちらはジャンク扱いになったようです。そのコントローラICのマニュアルはすぐに検索できて、その中に推奨配線図が載っていて、やっとドライバICがどう接続されているのか理解できました。おそらく、その推奨配線図通りの配線と思います。すべてつじつまが合います。ここまでで約半日経過。

 これで安心して5本のデータ・制御信号が組めます。5V系でフルスイングの1/0が必要みたいで、3.3V系とはレベル変換ICが必要な感じです。残る難題は-9Vの液晶用電源確保と、接続のためのフラットケーブルとマイコンボードをどう接続するかです。

 ちなみに、フレームレートを60Hzにすると、単純計算でラインは3840Hz、ドットクロックは921.6kHzとなります。シリアル通信回路からの割り込みは1ラインごとを想定しているので、それほどCPUの負荷にはならないはずですし、この手のマイコンはバスが多重化されているはずなので、メモリのボトルネックにならないと予想します。

コメント
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

4266. 美希の誕生日

2023年11月22日 | 日記

 明日、11月23日はPS4の最新アイマスゲーム、スターリットシーズンに出てくる仮想アイドル、星井美希(オリジナル765)の誕生日だそうです。いつものようにスターリットシーズンのPV新着欄で有志Pがお祝いのPVを上げるはずです。

コメント
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

4265. マイコンボード2

2023年11月21日 | 日記

 注文していたRX62Nの試作用マイコンボードが届きました。が、何となく怪しい雰囲気がします。もの自体は良いようです。見た目ですがセオリー通りの部品配置で、おそらくメーカーの設計が元になっている感じ。しかし、マニュアルに書いてあるホームページは明らかに他社のもの。JTAGという接続規格でプログラムするよう指示されていて、しかし回路図を見れば前述のRX621ボードと同様の手順でPCからUSB経由で完結できそうです。できるかどうか、後日試します。もちろん、アマチュアの電子工作には十分だと思います。

 まあとにかくイーサネット対応のRXな訳で、経験上限られた範囲では接続は簡単です。インターネットというかTCP/IP対応は大がかりで、しかしそんなのを使わなくてもMACアドレスだけでLAN内の通信はできるはずです(スイッチングハブは越えるがルータは越えない)。ってか、MACアドレスの下位4桁みたいなのがボード上にマジックの手書きで書かれているのですが、一部がシールで見えないです、大丈夫かな。

 それにしても、8080やMC6800の発売からもう50年も経っています。RXのような堅実なマイコンでもずっと豪華で、DOS/Vの80386から80486の時代の感激を想起しました。
 Windows NT系が普及する少し前で、しかしWindows 3.0/3.1はとても良好なOSだと思います。現在の感じのワープロや表計算ソフトのスタイルはこの時代に確立したと思います。いまよりずっと素朴でしたが、実用性は普通にありました。

 言語処理系というか開発系も進んで、MS-DOS 2.0時代でも大したものだと思っていましたが、ぐっと便利になったと思います。今手にしているマイコンボードのRXはCPUの能力で言えばウィンドウシステムには十分で、しかしチップ内蔵のRAMは当然ながら全く足りません。ですから高速のMS-DOSパソコンのような感じになると思います。ウィンドウシステムの私的開発はあまり実りあるものとは思えず、おそらく初期のMacにあったハイパーカードの簡易版みたいなところに落ち着くと思います。今の感覚で言うと、画面の大きさがモニター大で固定されたwebページのようなものです。

コメント
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

4264. 月曜日

2023年11月20日 | 日記

 本日は週明けで普通の勤務日。通勤途中も特に変わり無し。
 報道では我が国の株価が近年に無く上昇しているそうです。円安は一服したようです。
 これでもまだ新型コロナ感染症の直前に戻っただけで、最近の投資ブームの効果はまだ現れていないはずです。

 先週の今頃は米中首脳会談の直前だったためか我が国とその周辺で若干の緊張状態が有ったようです。週半ばから落ち着きを取り戻したような気がします。ええ、私がそう思うだけです。
 我が社もおかげさまで業績が回復基調らしく、上層部は大忙しの感じです。今後のことを考えるとここで一つ地固めが必要と思うのですが、それを考えている暇がなかなか取れない感じです。年末・年始はやや落ち着くはずなので、何か起こるかもしれません。

コメント
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

4263. 言語設計、続き

2023年11月19日 | 日記

 RX621マイコンボードについては、PS/2キーボードと白黒128×64ドットLCDディスプレイに接続するための、3.3V系 ⇔ 5V系の信号変換用ICを電子部品小売店の通販で注文しました。ついでに、イーサネット対応のRX62Nのボードもあるみたいなのでそれも注文。CPUについてはほとんど同様のようです。
 後は細かな部品で、通勤途中の駅から寄り道したところに電子部品の小売店があるので実物を見て購入するつもりです。組み立てには困難は伴わないはずですが、いずれにしろ気力と時間が必要です。

 C言語のswitch/caseは多分岐用の構文です。動作はif i==p1 then e1 else if i==p2 then e2 else if ... else e0; と同等ですが、分岐先が数個よりも多い場合はハッシュ表などを使って高速化が図られるのが普通のはずです。
 初期のFORTRANの割当て形go toや計算形go toに相当すると思います。初期のパソコンBASICではon <式> goto 行番号, 行番号... でしょう。
 B言語の段階ですでにswitch/caseがあり、PASCALにはcase文があります。面白いのは東大版tiny BASICではgoto <式>なので、実質的に計算形go toと同じ使い方ができます。前述したμPlanにはありません。

 本物のハッシュ表はやや高度なアルゴリズムなので、私なら代用として二分探索表を使います。分岐先が数十くらいならほとんど見劣りはしないと思います。
 素朴なWindowsプログラミングではメッセージの分析にこのswitch/caseを使い、普通は分岐先は10とか20程度の感じです。

 このswitch/caseと定数の定義(#defineやconst int)はプログラムの大きさが100行程度以上になると欲しくなります。ハッシュ表や2分探索表はいわゆる連想配列を実現する仕掛けです。普通の配列、

 aa(i) → "abc"

 の入出力が反対方向の、

 AA("abc") → i

 の感じのもの(疎配列)を線形探索よりもずっと高速化する仕掛けです。これがあると、言語設計に自由度がぐっと増えます。実際、初期のC言語の標準ライブラリにもクイックソートと二分探索表の関数が用意されています。

 tiny BASICから出発したので線形探索でどこまで粘れるかと考察していましたが、switch/caseが欲しいと思った途端にやはり二分探索表くらいは用意しておくほうが良かろうと思うようになりました。これがあると例えば変数をわざわざA~Zとか(gotoの飛び先の)ラベルを01~26に限る必要は無くなります。ということでマイコンボードの初期言語設計はほぼやり直しになってしまいそうです。

コメント
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

4262. 言語設計

2023年11月18日 | 日記

 本日は土曜日で私は休日です。今週も普通に忙しくてなかなか他の時間が取れず、本日もいつものように家事の他はゆっくり休憩になってしまいました。

 1970年代のマイコンの、パソコン方向の使い方については前述しました。今はどうなっているのかというと、少し前に買った本、

 Nisan N, Shocken S. 斎藤康毅 訳。コンピュータシステムの理論と実装 ― モダンなコンピュータの作り方。オライリー・ジャパン、2015

 と、最近買った、

 Nystrom R. 吉川邦夫 訳。インタプリタの作り方 ― 言語設計 / 開発の基本と2つの方式による実装 ―。インプレス、2023

 が役に立つと思います。どちらも訳本ですが、この手の話題の日本語ネイティブの本はいくつかあるはずです。特に前者はハード設計からやっていて、日本語付録に本の内容をトレースしたWindowsアプリが載っていますが、本来はFPGAで組むべきでしょう。
 以下、多少批判的な響きがすると思いますが、アマチュアの独り言と受け取って下さい。

 どちらも良くできていて、勉強になります。ただ感じとして教科書風のコンピュータで、現実とは少し異なる部分があります。異なる部分はハードでは割り込みが無いこと、計算機言語としてはC言語のswitch/caseに相当する構文が無いこと。面白いことに両書ともオブジェクト指向を積極的に扱っています。
 オブジェクト指向は新しいデータ型を作る書き方です。構造体に関数を含めた外見をしていて、継承と関数・演算子のオーバーライド(上書き)が特徴です。定義はクラスと呼ばれ、newキーワードで実行時にその型のデータがメモリ上に生成(インスタンス)されます。関数の実行時には第一引数の型に合わせた適切な関数が選ばれて実行される、そんな感じです。
 この動作をオブジェクト(インスタンス)にメッセージを送る、と表現します。メッセージと言ってもあらかじめ定義された関数実行の命令です。すぐに後述するマルチタスクのメッセージとは別物です。
 C++が有名で、うかつに使うと開発現場に大変な混乱を引き起こすので、便利に使うには多少のコツがあるようです。ちなみに、C言語はオブジェクト指向では無く、しかしライブラリが適切に対応していればプログラミングで困ることはありません。

 割り込みは入出力装置やCPU内蔵のタイマからの処理依頼の信号です。この信号を受けるとCPUはできる限り早期のタイミングで通常処理を中断し、再開情報を記録してから外部装置に対応する処理(サブルーチンの形をしている)を行います。中断なのでできるだけ早く処理して通常業務に復帰しないといけなくて、通常は最低限の手続きを行い、残りはマルチタスクのメッセージ(依頼)として残して終了します。
 これは(擬似的)並列処理の一種で、特に(一定時間ごとの)タイマ割り込みはマルチタスクOSでは基本です。組み込みマイコンでも、CPU処理には時間の概念がないので、通常の意味のタイマ(炊飯器のおはようタイマ(オンディレイタイマ)を想起すれば良い)を作る際に使います。

 8080やMC6800などの1970年頃の初期のマイコンにも割り込みはあって、CPUをステートマシンとして理解するのに役立つと思います。無くても理論的には何とかなりそうですが、現実がそうなってはいません。
 ARMもそうですが、RX62などの最近のマイコンは割り込み関連の仕組みが充実していて、ハードマニュアルの多くは入出力回路の説明で、割り込みは普通に使います。

 switch/caseについては機会があれば説明します。

コメント
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

4261. 中の人の誕生日、続き

2023年11月18日 | 日記

 明日、11月19日はPS4の最新アイマスゲーム、スターリットシーズンに出てくる仮想アイドル、白石紬(ミリオンライブ)の声優、南早紀さんの誕生日だそうです。いつものようにスターリットシーズンのPV新着欄で精鋭Pがお祝いのPVを上げるはずです。

コメント
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

4260. 中の人の誕生日

2023年11月17日 | 日記

 明日、11月18日はPS4の最新アイマスゲーム、スターリットシーズンに出てくる仮想アイドル、玲音(961プロ)の声優、茅原実里さんの誕生日だそうです。
 明後日、11月19日は同仮想アイドル、天海春香(オリジナル765)の声優、中村繪里子さんの誕生日だそうです。
 いつものようにスターリットシーズンのPV新着欄で精鋭Pがお祝いのPVを上げるはずです。

コメント
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

4259. 木曜日

2023年11月16日 | 日記

 本日は内勤で普通にお仕事の日でした。昼食時に職場近所の量販店に行くと、PS5のリモート端末、プレイステーション・ポータルは取り寄せですが手に入るみたいです。ネット販売でも同様の感じです。

 必要な人にはものすごく便利な装置で、しかし普通にはそれほどでもないからでしょう。まずまずの値段がしますし。
 今は家の中で使っていますが、旅先から自宅のPS5にアクセスすることがあったら使い心地を本ブログで報告すると思います。その量販店にはいくつかのアクセサリが発売されていました。
 欲しかったのは旅行用のハードケースで、適当なのを見つけないといけません。

コメント
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする