ブログの練習

ブログを書く練習です。
最近はレトロな計算機(電卓、マイコン、パソコンなど)
に関することを書き始めました。

冬休みの作文

2020-01-11 11:39:59 | 電卓
実家の押し入れから、小1の冬に書いた作文を発掘しました。
おもちゃよりも計算機が欲しかったらしいです。2枚目に資産運用について書いてあるのも興味深いです。三つ子(6歳ですが)の魂百までとはよく言ったものです。
ちなみに、静岡に住んでいた18年間で雪が降ったのは3回、うち1回は物心つく前だったので、記憶に残っているのは2回だけです。

たのしかったふゆやすみ
ぼくは ふゆやすみに ゆきがふらなかったのでがっかり しま した。
そのかわり たくさんおしょう月におとしだまをもらいました。
おとしだまはぜんぶで いちまん円いじょう もらいました。
それでいろいろかって 一まんえんちょ金をしました。
それで、ぼくはけいさんきをかおうとしたけど たかすぎるので おもちゃにしました。

でも 一年ちょ金をするとそれが 二ばいになるから たくさんちょ金をしてもそんはしません。
たくさんちょ金をすると するほどおかねが たくさんになります。
だからちょ金をするととくです。
でもちょ金をおろすのは六ヶ月 いじょうおいておかなければ おろせません。
だからぼくはらい年のぼくのたんじょう日におろす ことに しま した。
それでそのおかねでけいさんきを かうことにしました。
だからけいさんきを かうのはやめたのです。
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

昔のマイコン雑誌

2020-01-06 20:54:52 | マイコン
実家から回収してきた古いマイコン雑誌。帰省するたびに、捨てていいかと聞かれていたのですが、捨てずに取っておいて良かったです。
昨年はオークション等にはまっていて、当時持っていなかったApple II, TRS-80, Lkit-16, H68/TR等を入手、一度捨ててしまったTK-80BS、PC-8001等を再入手しました。
昨年は入手することに終始してしまったので、今年はいろいろ動かしてみようと思います。
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

ZK-80(TK-80互換機)のLED改装

2020-01-05 18:43:35 | マイコン


ZK-80というTK-80互換機のキットがあったので作ってみました。小型版のZK-80ポケットというものもあり、こちらはLEDの輝度やセーブロード機能あたりが若干改良されています。
LEDが本物と全然違うのが残念だったので、本物に近いSN713B(本物はSN713A)に改装してみました。

まず,ZK-80で試してみたのですが,ZK-80はI/Oを節約するためにかなりトリッキーなことをしており,アノードコモンとカソードコモンを混在させている上に,キーボード入力にも同じポートを使うということをしています.
SEG_A-HとDIG_0-7を論理値として取り出すことはできたのですが,キー入力時に乱れてしまい,うまく動かないのであきらめ,ZK-80ポケットを入手して試してみました.

ZK-80Pの方は素直な作りになっているので,MAX7219の出力をトランジスタアレイに食わせてカソードコモンをアノードコモン(コモン側がソースでセグメント側がシンク)に変換できました.
シンク側はTBD62083,ソース側はTBD62783を使い,ソース側の入力は7404で反転させました.
TBD62785(もしくは62786)という負論理の石が入手できれば7404は不要なのですが,秋月や千石で売ってなかったのでそのようにしました.
(【2020/6/12補足】データシートの入力電圧を見たら62786は使えないような気がしてきました。)
(【2020/6/19補足】秋月でTBD62785が買えるようになったようです。)

MAX7219の基板の上に、本来のLEDと置き換えられるように作ったので、4段重ねになっています。



本物(といっても実はMK-80という互換機)と比べるとこんな感じ。



こちらの互換機は基板のパターンはTK-80と同じで、マニュアルもNECの純正品が付属という完コピ機です。小学生の頃にお年玉で買って組み立てたものなのですが、最近40年ぐらいぶりに電源を入れたところちゃんと動作してくれました。



写真だとわかりにくいですが、思ったより暗いので原因を調べたところ,各LEDのコモンの信号が1/8(8桁なので)のさらに1/6の幅しかアクティブになっていないようでした.(800Hz, パルス幅約26μs(DT比1/48))

ファームウェアのソースを見ると輝度10輝度2(10はレジスタ番号で値は2でした)という設定がされており,おそらくそれによるものと思われ,そこをいじれば良さそうではあります.

【2020/1/11 追記】
ファームウェアをいじってみました。以下、やったことのまとめ。

PICの開発環境をインストール。最新版はMPLAB X v5.30らしい。
microchip.co.jpの開発環境のページがリンク切れでエラー。microchip.comから取ってくる。
コンパイラは MPLAB XC32/32++ Compiler v2.30
デバッガ/プログラマは MPLAB Snap

plib.hが無いと言われる。どうやらlegacy libraryという位置付けになっているらしく、
PIC32 Legacy Peripheral Libraries - Windows を取ってきてインストール。
デフォルトだと1.40のフォルダにインストールされるようなのでインストール先を選ぶときに2.30に変更。
最初これに気づかずにハマってました。

新規プロジェクトを作成してデバイスにPIC32MX170F256Bを選択。空のプロジェクトができるので、
Header FilesとSource Filesに"Add existing item"でコピー。

ソースは、picosoftのZK-80のページから取ってきたファームウェア
2018-05-13-_ver023.zip
ZK-80Pのページ
ファームウェア差分
を上書きしたものを使用。

legacy periferal libraryがらみのwarningがうるさいので
main.hで
#define _SUPPRESS_PLIB_WARNING として抑制。
Max7219.cのfor文の中で変数宣言しているところでエラーが出たので修正。

peripheral.hでnvm.hが無いと言われたのでちょっと乱暴だけどコメントアウト。
最新版の開発環境でペリフェラルの機能を使うためにはHarmonyなるフレームワークを使うのが正攻法らしいのだが、
いまいち使い方がわからなかったので暫定対処。

割り込みの初期化をinit_LED()の前に入れないとタイマー割り込みでリセットに飛ばされるので、
main.cの
INTEnableSystemSingleVectoredInt()
INTEnableSystemMultiVectoredInt()
をinit_LED()の前に移動。
led.cにあるinit_LED()の中のIEC0bits.T1IE=1;が原因っぽい。(これは変更せずそのまま)
これを見つけるのに苦労しました。

以上で正常に動くものがビルド出来たので、最後にMax7219.cのsetIntensity(2)を8に変更。
コモンのパルス幅がDT比1/8*1/2ぐらいになってかなり明るくなりました。
(周囲の明るさが前回と違うので、この写真だと違いがわからないですが。)



【2020/7/4追記】
基板を作りました。
OGPイメージ

ZK-80P用LED表示盤完成 - ブログの練習

修正版の基板が届きました。10枚注文で12枚入っているのでラッキー!っと思ったら、傷ありが1枚。不良品混在を見越して余分に入っているのでしょ...

ZK-80P用LED表示盤完成 - ブログの練習

 

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