« 2024年1月 | トップページ | 2024年3月 »

2024年2月

2024年2月29日 (木)

37年前の6303用デバッグ・モニタ

日立8bit マイコン 64pin SDIP HD63C03YP
が、出て行ってしまったということで、
 「せやせや。どこかにあったはず・・・」と、ハードディスクの
 中をちょっと発掘作業。
631

プロセッサ」誌に掲載してもらった6301、6303CPU関連の
原稿テキストが発掘できました。
  でも、回路図などの図表は不明。

1988年5月号 GP-IBデータ・モニタと6303用デバッグ・モニタの製作(上)
1988年7月号 GP-IBデータ・モニタと6303用デバッグ・モニタの製作(下)

  ・ダウンロード - mon63.zip

プロセッサ編集部へ送った原稿文、それと6303デバッグモニタの
ソースファイルです。
CP/M時代のものですんでとうぜんアセンブラ。

圧縮ファイルの中の「プロセッサ原稿.txt」の中ほどに
 ■ 6303用デバッグ・モニター解説
というところから、デバッグ・モニターの使用方法解説が
始まります。
   それまではGP-IBモニタの解説
「MON63-1.txt」はモニタを動かした時の様子です。

アセンブル、逆アセンブル機能など「CP/MのDDT」を
目指して作ったのです。

10進、16進計算できるコマンドも装備してました。
8000>Hex calc=12*34,\1111+\2345,ABCD-\1111,8901/33
03A8 = \00936
0D80 = \03456  「\」記号前置が10進を示す
A776 = \42870  0~9,A~Fは16進
02AF = \00687

トレースコマンドはこの3つ。
 Trace   「プログラム・トレース」(表示あり)
 U-Trace 「プログラム・トレース」(表示なし)
 N-Trace 「プログラム・トレース」(サブルーチン内表示なし)
RAM上のプログラムを指定したステップ数、実行します。

リセットのタイミングでモニタを入れたROMのアドレスが
リセットベクトルになるようにして、その後はRAMに
切り替わるようにして、ターゲットプログラムを
ロードできるようにしています。
回路図が見つかっていないでの詳細は不明ですが、
雰囲気は分かりますよね。

「必要なメモリー・サイズは、ROMが約6.2kバイト、
 RAMが280バイトです。」と記しています。

※関連
2023年4月10日:「8085用デバッグモニター」を褒めていただいたので

※さらなる発掘
アドレスマップアドレスデコードの説明が出てきました。
  (クリックで拡大↓)
1_20240304083201
・アドレスデコード回路
  ほんとは最上位になるRAMをリセットで禁止。
  リセットで最上位がROMになる。
  てっぺんにあるリセットベクトルをROMから読み出す。
  モニターに制御が移る。
  ROM領域にデータを書く(振りだけ)とリセットjumpを
  解除。
  最上位がRAMになる。
  てっぺんに集まっているベクトルエリアを含めて
  ユーザープログラムはRAM上で試運転できる。
1_20240304083301
こんなシーケンスでモニターが立ち上がります。


※さらに追記
フォルダ WCC_A63 の中にある「A63.EXE」で
アセンブルできるよう、モニターのソースを
いじりました。

  ・ダウンロード - mon63a.zip

A63.EXEは「William C. Colley, III」さん作の
クロスアセンブラ。
MS-DOS上で動きます。 (Windowsのコマンドプロンプト)

日立の6301ニーモニックとはちょっと違うところがあり
ますが、手を加えればアセンブル可能です。
先日のMON63.ASMをこれでアセンブルできるように
したのがMON63a.ASM。
出てくるHEXファイルをバイナリに変換して比較したら
全部一致してたんで間違いないかと。

| | コメント (2)

2024年2月28日 (水)

「加湿器」修理

女房の勤め先(歯医者)からの修理依頼。
 ・加湿器が動かなくなった
 ・電源がオンしない
 ・ツマミを回したらカチッと音がして
  動き始めるはずなんだがカチッ音が無くなった
という症状の告知。
故障原因、
  スイッチ付きボリュームのスイッチ部の故障
と推定。

底板を外したら中が見えます。
K21_20240228144801
右端のACコードの固定にこいつ:おにぎりネジが
使われてました。 これ、大嫌い。
K24_20240228144901
こんなネジを使っても、開けたいときはなんとしても開けるん
ですから、まったく無意味です。

制御部
K22_20240228144901
左の黒いのはファン。
中央のスピーカーみたいなのが振動板かと。

このボリュームに付いているスイッチがアウト。
K23_20240228145001
「カチッ」がしません。
基板から外して振ったら音がしました。

ボリューム裏側のツメ(4本あった)をおこして、裏板を外します。
左側の可変抵抗本体とスイッチon/off機構、
そして右側のスイッチ部が見えるようになります。
K26
接触子(左側のに映っている逆「し」の字状金物)が
外れてました。
K27
スイッチ部の接点にはめ込んでおしまい。
パーツクリーナーで洗浄しておきました。

電源オンで怪しく光ります。
K28
修理できなかったら、箱に穴を開けてトグルスイッチを増設し
てと思ってましたが、無事に作業完了。

嫌いなおにぎりネジはプラス頭のタッピングビスに変えました。


| | コメント (0)

2024年2月19日 (月)

Arduino UNO R4のDACサンプルに出てくるmap関数

Arduino UNO R4 Minima Digital-to-Analog Converter (DAC)

この中のサンプルプログラムに
  freq = map(analogRead(A5), 0, 1024, 0, 10000);
というma関数を使った変換式が出てきます。

トラ技の著者でもあるjh4vajさんが、ブログで
1024じゃなくて1023だと思うが」と書かれています。
これにちょっと反論を。
  ※jh4vajさんのブログにうまくコメントできないので
   ここに記しておきます。
Arduino UNO R4 MinimaのDAC ~ analogWaveクラス編

mapの1023・1024問題、これは
  10bit→8bitの変換にmap(a, 0, 1023, 0, 255)
とするからおかしいのであって、(本来は1/4するだけ)
  map(a, 0, 1024, 0, 10000)
「そういう変換」だからこれでかまいません。

1024の時に10000になるよ」あるいは
なったよ」を表現しているわけです。
10bitのADCだとフルスケールが1023で
規制されるのでおかしな感じになりますが、
  半値の512だと5000だし、
  2倍の2048なら20000になり、
ADCの分解能を上げ下げしても線形補間の傾きは同じです。
  ※a=1023だと9990.234に

ですので、当然
  map(a, 0, 1023, 0, 10000)
も、okなわけです。
1023の時は10000でっせ」の変換式です。

10bit→8bit変換での1023・1024問題とは関係なくて、
これは正しい使い方です。

※関連
トランジスタ技術2024年3月号に記事が載りました
Arduino なんとかして誤用を正したい:A/Dの1/1023とmap関数
   map(x, 0,1023, 0,255)  ・・・これが正しい例を紹介




| | コメント (4)

2024年2月16日 (金)

重力波望遠鏡KAGRAがえらいことになってた

能登半島地震で「重力波望遠鏡KAGRA」が損傷とのニュースが。

・2024 年1月1日能登半島地震による KAGRA の被災状況について
   東京大学宇宙線研究所(2024年2月5日)
https://www.icrr.u-tokyo.ac.jp/prwps/wp-content/uploads/20240205_ICRR_press_2.pdf

鏡を吊るす懸架装置の一部が壊れたと。
  点検や修理、装置が真空状態になっているんで
  たいへんとのこと。

| | コメント (0)

2024年2月15日 (木)

八重洲の2m FMトランシーバ FT-203 がやってきた

ガレージ仲間が・・・『こんな出てきた!』っと持ってきて
くれました。
八重洲 144MHz帯 FMトランシーバ 「FT-203」が2台。
  物置の奥から発掘と。
    (昔、これでPチャンを聞いていたらしい)
Y11
電池ボックス、若干の液漏れ痕がありましたが
許容範囲。 単3電池が6本。
しかし・・・電池を入れてスイッチをオンしても、
受信はせず。
小さい音で「サー」が聞こえてます。
スケルチを回しても変化無し。
オーディオ段のどこかがおかしくなっているようです。
Y12_20240215114501
でも・・・
  PTTボタンには反応。 (1台は不安定だけど)
ダイヤルを「500」に合わせたら「144.9994MHz」の
電波が出ました。 (変調は未確認)

これ、どなたかいりますか?
「送料+お駄賃」をビール券にしていただければお送りします。
早い者勝ちで。

  ※リクエストはこの記事にコメントを。
   メールを記入して。

※2月19日
  1台、残っています!

 

| | コメント (4)

2024年2月13日 (火)

ひさしぶりに買ったシャーペン

先日、クリスタ長堀を通った時に寄り道した本屋さん。
文房具を置いてたんで眺めていたら使いやすそうな
シャープペンシルを発見。
太いのを2本買っちゃいました。
Pe1
コクヨのPS-PE107と109 (0.7mm芯と0.9mm芯)。

こりゃエエやんというのが・・・まず、軽い!
そして、芯先の保持がしっかりしてる。

ノック部に外れるキャップはありません。
中央に穴があって、ここから芯を投入します。
Pe2

転がり止めは結束バンド

コクヨのページを見ますと・・・こんな広告
  ・鉛筆のようにシンプルなシャープペンシル

シャーペンに関してはこんな記事を書いてました。
  ・2014年03月06日:太芯のシャープペンシル

※ドラフタでの図面描きで使っていたシャーペンたち
Img20140306103752461

| | コメント (2)

トラ技のArduino Uno R4特集でも1/1023

Arduino Uno R4を知っておこうと
トランジスタ技術2024年1月号
パラパラめくりしていたら・・・
1/1023」を発見。

場所はp.106。
R42
記事のタイトルは
  Uno R4低消費電力の実力!
   家庭菜園用バッテリ動作2ch温度ロガー

その中の「R3からR4への乗り換え時の注意!
という章。
P.107の【図5】にはこんなものさしの絵も。
R43
1023と10進じゃなく0x03FFと16進表記にして
半値やら1/4値、3/4値を入れ込むと目盛がはっき
りするかと。

こちらでの「ものさし」表記。
Ss12

・1cmを1mm分解能で
Ss2_20221126092001
※こんな解説かな
・絵の縮尺の関係で、1cm位置が実際は5.0mやった。
・mmでの測定値a (0~9の範囲)から実際の長さを
 求める式は・・・
   a × (5.0 ÷ 10) が答え (単位はm)
          [ ÷9ではない ]

※参照
1023 vs 1024 、255 vs 256 なんでみなさん「2^n-1」が好きなの?

| | コメント (0)

2024年2月10日 (土)

delayMicroseconds(50000)をオシロで確認

トランジスタ技術2024年3月号に掲載してもらった
  ・『実はワナだらけ…確実に動かすArduino Uno R3』
この記事の中の『時間待ちのワナ』、これの実際の様子を
オシロ波形で見てもらいましょう。

Dm11_20240210085601

ch1がオシロトリガ用の波形。
  1サイクル回るごとにPB4をトグルしています。
ch2がdelayMicroseconds時間確認のための波形。
  1msのH/L
  50msのH/L  ←のつもり
を出力して回っています。
しかし実際は・・・
  delayMicroseconds(50000)が0.85msほどに
  なっています。

こんなスケッチを使って見ています。

#define PB5_H       (PORTB |=  (1 << PB5))  // LED on
#define PB5_L (PORTB &= ~(1 << PB5)) // LED off
#define PB4_X (PINB |= (1 << PB4)) // PB4トグル

void setup() {
pinMode(13, OUTPUT); // PB5 基板上LED
pinMode(12, OUTPUT); // PB4 トグル出力(オシロのトリガ用)
}

void loop() {
cli(); // 割り込み禁止でloopを回る
while(1){
PB4_X; // PB4トグル
PB5_H;
delayMicroseconds(1000); // 1ms H
PB5_L;
delayMicroseconds(1000); // 1ms L
PB5_H;
delayMicroseconds(50000); // 50ms(???)
PB5_L;
delayMicroseconds(50000); // 実際は0.85msほど
}
}


※元記事/関連記事
Arduino-UNOでのdelayMicrosecondsの設定は16383までだ!
Arduinoから「タイマー0」を取り上げる(ユーザーが使う)

| | コメント (1)

2024年2月 7日 (水)

トランジスタ技術2024年3月号に記事が載りました

トランジスタ技術2024年3月号 、年間予約されてたら
そろそろ手元に届く頃でしょうか。

トラ技Jr.コーナ」に
  『実はワナだらけ…確実に動かすArduino Uno R3
というタイトルで、重箱の隅をほじくった記事を
載せてもらいました。

間違っていても動いちゃう危険…ひとこと言わせて!
がサブタイトル。

  ※校正原稿の段階では
   『教科書では教えてくれない…
    確実に動かすArduino Uno R3使いこなし術』
   というタイトルでした。
「1023 vs 1024」でウダウダ言っていたのを投稿した
のです。
  ※ページ数の関係で、トラ技に掲載されたのは
   面白いところだけになってしまいました。


本誌ではこんな章タイトルになっています。
~~~~~~~~~~~~~~~~~~~~~~~
便利だけれどもミスが潜んでいるのがArduino

A-D変換のワナ
  analogReadの基準電圧値と1/1023問題
線形補間のワナ
  map関数の使い方問題
PWM出力のワナ
  analogWriteでのPWM出力問題
やっぱり気になる放置ポート
  ポートほったらかしで電流増加問題
時間待ちのワナ
  delayMicrosecondsの最大値問題
サーミスタを使った温度測定のワナ
  ゼロ除算問題
wordデータのワナ
  割り込み処理問題
~~~~~~~~~~~~~~~~~~~~~~~

こちらから出した提出原稿の章タイトルはこん
なのでした。
◆サンプルスケッチを信じて良いのか
 1. analogReadでA-D値を読む
 1-1. 極端に2bitのADCで考えると
 2. analogReadしたA-D値をPWM出力
 2-1. 3bit→2bit変換にmapを使うと
◆回路図を見ておこう
 3. D13(PB5ポート)に注意
 3-1. 起動時のD13
 3-2. D13の衝突を避ける
◆データシートを読もう
 4. analogWriteのデューティー比が微妙にズレる
 4-1. タイマー0のPWM出力
 4-2. タイマー1,2のPWM出力
 4-3. analogWriteは誤差を持つ
 4-4. D-Aコンバータとして使えるPWM出力
 5. 方形波を出力したけれど周波数に誤差が出る
 5-1. このミスに気付かない原因の推測
 6. やっぱり気になる放置ポート
 6-1. 入力電圧が変化した時の電源電流の変化
 6-2. アナログ入力ポートでは
 7. AnalogReadとAREFピン、衝突でチップを壊してしまう?!
 7-1. 壊れるという話が出た原因
◆こんな落とし穴も
 8 delayMicrosecondsで待てるのは16383μ秒まで
 8-1. 50ms待ちを試すと
 9. 温湿度センサ用ライブラリで氷点下の温度をミスる
 10. サーミスタを使った温度測定にも落とし穴
 11. 割り込みで処理させるwordデータの扱い
 11-1. 1バイトデータでも割り込みと競合する
 12. 小さいことだけど不満を解消するヒント

タイトル「やっぱり気になる放置ポート」だけが、そのまま
残ったようです。

※関連
delayMicroseconds(50000)をオシロで確認

| | コメント (1)

2024年2月 5日 (月)

祝! "SLIM"月面着陸成功 でミニ展示

大阪市立東成図書館、"SLIM"月面着陸成功ということで、
月と宇宙探検の本』のミニ展示が行われていました。
Sl1
Sl11
東成図書館にある蔵書を集めたようです。
  (緑色のシールが貼り付けてある)
もちろん貸し出しOK。

| | コメント (0)

秋月電子で買った単3ニッ水GoldenPower 2100mAh、400サイクル達成できず

2023年12月3日にスタートした
秋月電子で買った単3ニッ水GoldenPower 2100mAh
この充放電実験。
Gg21
残念ながら充放電400サイクルを達成できませんでした。
50サイクルごとの0.2C放電グラフ、350サイクルまでは
それなりに描けました。
Cap013_20240205105601
しかし、300サイクルを越えたあたりから
0.5C放電と0.5C充電の繰り返し状態が悪くなり
368サイクル目で放電時間10分を切ってしま
いました。
Cap014_20240205105601

以降は、ちゃんと放電できないものだから
次サイクルの充電を失敗というのを繰り返し
はじめたので400サイクルになる前に実験を
中断しました。
内部抵抗は381mΩまで上がっていました。

 

| | コメント (0)

2024年2月 2日 (金)

赤外線リモコン受信モジュールの不思議

発端は、夏のイベントに向けての準備。
  校庭キャンプの「きもだめし」
    ・2023年9月4日:LEDドライバー、どうしよう

イメージ図として描きましたが、子供達の接近を
人感センサーで検知して、オバケ役を照らそうと
いう試みです。

現時点、すでに3セットできあがっています。
そんな中、せめて1セットだけでも、センサー回路
と照明回路の間をケーブルレスにできないかという
要望です。

H440
  ※現状は4~5mの電線を引っ張るように

そこで、リモコン用の赤外線受信モジュールを使って
試してみました。

回路的には、およそ、こんな雰囲気です。
H441
38kHzが赤外線LEDを駆動するキャリアの周波数。
それをおよそ600Hzの方形波(duty 50%)でon/off
します。

赤外線受信モジュールからは600Hzの信号が出て
くるのでトーンデテクタ(LM567 = NJM567)で判別
して、照明回路をon/offしようという構成です。

手持ちの赤外線受信モジュールを使い、バラックで
試していたときはOK。
38kHzキャリアの600Hzに素直に反応して出力が
オンします。
Ir41

ところが・・・アマゾンで「VS1838B」という赤外線
モジュールを買って入れ換えてみたら・・・
動作がおかしくなりました。
Ir42

38kHz+600Hzの信号を持続させても、およそ0.3秒たつ
と赤外線モジュールの出力がオフしてしまうのです。
信号をいったん切って再開すれば出力は出るのですが、
次も0.3秒でオフしちゃいます。
連続的な信号を受けてくれないのです。
断続しないといけないのです。
  ※手持ちのモジュールはそんなことにはならない

何かヒントはないかといろんなモジュールのデータを
探してみました。
「おお。さすが秋月やん」と出てきたのがこれ。
   ・赤外線リモコン受信モジュール PL-IRM0101
簡単なタイミング図ですが、
  データ区間100msが最大で休止25ms
にしろと書かれていたのです。
Ir31

それに倣って断続させてみましたが、まだ不安定です。
「100ms + 25ms」を続けると、2秒ほど経過で受けなく
なってしまいます。
休止期間の問題かと、もうちょっと「50ms」まで
長くすると安定に受けてくれるようになりました。

  ・こんなとき、デューティ比を自由に設定できる
   パルスジェネレータが役立ちます。

38kHzのキャリアに600Hzの信号を乗せて、
それを100ms間オン、 50ms間オフを繰り返す
ことになりました。

他の赤外線リモコン受信モジュールだとどうな
るかは不明です。

手持ちのリモコンでは、断続のことは何も考えずに
動きましたんで。

※追記 VS1838B のおかしな動作

500ms駆動しているのに出力が250msほどで
切れてしまう。
連続出力できない。
Image001_20240203105901
  ※センサー出力は600Hzのパルス。

100msオン+25msオフで繰り返すと・・・
出力に抜けが生じる。
Image005

100msオン+50msオフだと正常に出力。
Image006


| | コメント (0)

秋月のツマミ付き半固定抵抗・・・ン?

秋月で扱っている半固定抵抗、『TSR-3386』
V11_20240202160501

マイナスドライバーでも回せるし指先でも回せるんで
便利なんですが、注意点は端子の位置。

  ※このブログでの初出はここ↓
   ・2017年2月8日:初めてのパーツは要注意!

で、部品箱をゴソゴソしてたら、こんなのが出てきました。
V12_20240202160701

左が『3386T』 で、上から見て左から「3・2・1」の順。
ツマミを右に(CW方向)回すと「左端の3と中央の2」が
つながりますんで、感覚的にあれれとなります。

でも右のは「1・2・3」と普通の並びに(普通はコレ)
なっています。
  ・右の型番が 『3386K』
裏から見ると三角状に1.778mmピッチ。(右側の)
V13_20240202160801

2.54mmピッチの穴が開いたユニバーサル基板には
45度傾けると挿さります。

これ、なぜ部品箱にあったのかが不明。
間違って買ったのかなぁ。
それとも何かに混じって、どこかからやってきたのかなぁ。

| | コメント (0)

« 2024年1月 | トップページ | 2024年3月 »