« 2025年3月 | トップページ | 2025年5月 »

2025年4月

2025年4月28日 (月)

Arduino UNO R3のクロック精度を1MHzパルスで確かめる

ラジオペンチさんが、
Arduinoのmicros()を使ったLチカでCPUのクロック精度を測定 
という記事を書かれていたんで、別のアプローチで迎撃してみます。
こんなスケッチ。

・16ビットタイマーをCTCモードにしてOC1A(PB1:D9)にジャスト
 1MHzの方形波を出力。
   このパルス出力はATmega328Pのハードが出してくれるので
   ジッターは無し。
・おまけで、
   loopの毎サイクルでLEDポート(D13)をトグル。
   millis()値の変化でD8ポートをトグル。

//  Arduino UNO R3 発振周波数確認
// PB1:OC1A(D9)に1MHz方形波を出力
// 16MHz / 8 / 2 で1MHz
// PB0(D8) millis()で1msをチェックして方形波出力
// PB5(D13) LEDポート loopで方形波出力
/***** セットアップ *****/
void setup()
{
pinMode( 9, OUTPUT); // PB1 OC1A 1MHz出力
pinMode( 8, OUTPUT); // PB0 1msごとにトグル出力
pinMode(13, OUTPUT); // PB5 LED loopでトグル出力
// タイマー1 16MHz/8 COM1Aトグル出力
TCCR1A = 0b01000000;
// |||| ++--- WGM OCR1AでCTC
// ||++------- COM1B
// ++--------- COM1A トグル出力
TCCR1B = 0b00001001;
// || ||+++--- CS 16MHz入力
// || ++------ WGM OCR1AでCTC
// |+--------- ICES1
// |---------- ICNC1
TIMSK1 = 0b00000000; // 割り込みオフ
// | ||+--- TOIE1
// | |+---- OCIE1A
// | +----- OCIE1B
// +-------- ICIE1
OCR1A = 8 - 1; // 16MHz/8 2MHz, OC1Aトグルで1MHzに
}

/***** LOOP *****/
void loop()
{
uint32_t ms , a;
ms = millis(); // 現1ms値
while(1){
PINB |= (1 << PB5); // LEDポートトグル
a = millis();
if(ms != a){ // 1ms変化?
PINB |= (1 << PB0); // PB0 (D8)ポートトグル
ms = a; // 次の1msを待つ
}
}
}

これで、
(a) PB1の周波数を読めば、クロックの誤差がわかる。
(b) millis()値の変化は1msサイクルじゃないことがわかる。
(c) タイマー0割り込みの処理時間がわかる。
というのを確かめられるかと。

この命令、
  PINB |= (1 << PB5); // LEDポートトグル
AVRマイコンデータシートのポート解説のところを見てください。
 「PINxnへの論理1書き込みはDDRxnの値によらず
  PORTxnの値を反転切り替えします。」
となっていて、SBI命令ひとつで出力ビットの反転操作が
できるのです。

BLINKの応用で、LEDを点滅させることが
あるかと思いますが、
  現在のon/offを判断
  digitalWriteでon/offを設定
なんてまどろっこしいことをしなくても
最短の時間、最小の命令バイト数でポートを
トグルできるのです。

どうか、覚えておいてください。

※関連
2020年2月4日:Arduinoのタイマー OCRレジスタは「n」じゃなく「n - 1」の値を設定せよ


*追記:Raspberry Pi Picoだと

//  ラズパイピコの周波数確認
// GP2 1MHz方形波 PWMで出力
// GP4 LOOPでトグル出力
// GP6 millisによる1msごとにトグル(500Hz)
#define GP2 2 // PWM出力
#define SN2 (GP2 / 2) // PWMスライスナンバー
/***** SETUP *****/
void setup(){
pinMode(25, OUTPUT); // LED
pinMode( 4, OUTPUT); // loopで反転
pinMode( 6, OUTPUT); // 1msで反転
// PWMの設定
gpio_set_function(GP2, GPIO_FUNC_PWM); // GP2をPWM出力に
pwm_set_clkdiv(SN2, 12.5); // 125MHz / 12.5 = 10MHz
pwm_set_wrap(SN2, 10 - 1); // PWM 分解能
pwm_set_chan_level(SN2, GP2 & 1, 5); // ch-A PWM値
pwm_set_enabled(SN2, 1); // PWMスタート
}

/***** LOOP *****/
void loop(){
uint32_t ms, a;
byte f_xLED = 0; // LEDポート反転フラグ
byte f_xGP6 = 0; // GP6ポート反転フラグ
ms = millis(); // ms現在値
while(1){
f_xLED ^= 1; // LEDポートトグル
gpio_put(25, f_xLED); // LED出力
gpio_put( 4, f_xLED); // GP4出力
a = millis();
if(ms != a){ // 1ms変化?
f_xGP6 ^= 1; // GP6ポートトグル
gpio_put( 6, f_xGP6); // GP6出力
ms = a; // 次の1msを待つ
}
}
}

GP2ポートをPWM出力にして1MHzを出すようにしてみました。
こちらも搭載マイコンRP2040のハードウェアを使って
パルスを出していますんで、走っているソフトの影響で
パルスが遅れるとか進むとかはありません。

  ※RP2040のPWMユニットの分周器、n・m/16で
   設定できるのが面白い。
   主クロックの125MHzを1/12.5とすれば10MHzが
   出てきます。

| | コメント (0)

2025年4月26日 (土)

CQ ham radio 5月号に「14年ぶりに改正されたJIS規格」の記事

本屋のある都会(環状線の内側だぁ)に出かけたので
ひさしぶりにCQ ham radio誌を買いました。
  布施に行けばヒバリヤ書店があるんですが、
  ご近所の本屋さんがどんどん廃業してしまい
  本を手に取って買うということがなくなりました。

というのは、「14年ぶりに改正されたJIS規格」ということで
JIS C0617(電気用図記号)の改正とその概要』という
記事が出ているぞっというのをネットで見たからです。
最後にCQ誌を買ったのはいつだろう。
ほんとにひさしぶり。
  奇しくもこの4月がJH3DBOの再免許(5年ごと)。
  1970年開局で55年目です。
C21_20250426105201
C22_20250426105201
C23_20250426105201

「電気用図記号のJIS規格制定の歴史」という章が興味
深かったです。

しかし・・・こんな解説も。
  IEC60617やJIS C0617の制定が検討
  された
およそ30年前、回路図の機械作図は、
  プロッターにセットしたペン描画で行わ
  れていました。
  ギザギザの抵抗器の図記号は、ペンを動か
  すストロークを減らして描画時間を短縮
  するために矩形にしたといわれています。
  半導体ダイオードは、矢頭をペンで塗り
  つぶす時間を節約するために現在の図形
  になったといわれています。
  またコイルも、クルクルの代わりに半円
  の繰り返しになりました。

ちょっと待てぃ!!!
 おいおい!
  これが現JISの図になった発端だとすれば、
  「どアホっ」の技術史です。

昔々、方眼紙にシャーペン、ドラフタにテンプレートを
使って描いていた手書きの回路図でも、ダイオードや
トランジスタの矢印を塗りつぶすのは、面倒でもなん
でもありませんでしたぜ。
機械化(スピードアップ?!)のために分かりにくくした
なんて、アホです。

トラ技が昔の回路記号を使い続けているのは
ありがたいことです。

※関連
2021年12月27日:JIS、IECの論理回路記号
2022年9月6日:んっ? ボリュームの記号が!
2015年09月28日:「子供の科学」の回路図記号
2015年09月30日:「電子工作」のキホン
2016年04月08日:パワーMOSFETの回路記号:MOSFETの矢印
2015年09月11日:1982年の手書き回路図

| | コメント (0)

2025年4月25日 (金)

インターフェース誌の発売日(25日)で思い出す

25日といえばCQ出版インターフェースの発売日。

昔は、トラ技もインターフェースも、本屋さんで、
毎号取り置きしてもらっていました。
その本屋さんは、近鉄今里駅前商店街の「天狗書房」 さん。
   (今はもう無い)

20年前の4月25日。
昼休み、毎月のルーチンワークでインターフェースを
引き取りにこの本屋さんへ寄ったら、お店のおばちゃんが
映していたテレビを指さして
 「尼崎でエラいこっちゃで
と。
しばらくの間、お店でテレビに釘付けだったことを
思い出します。

ブラウン管のアナログテレビでした。

| | コメント (0)

2025年4月24日 (木)

オムロンのタイマー「H7ET-FBV」のGATE入力回路はどうなっているの?

2025年4月21日:PCパーツを整理していたら オムロンのタイムカウンタ 
この「H7ET-FBV」、ゲート入力のスペックが
  AC24V~240V
   DC6~240V
フリー電圧入力になっています。

F21_20250424131901

で、ちょこっと調査。
まず、RESET入力から。
  開放電圧:0.86V
  短絡電流:3.3μA
でした。
  (いつリセットするのかのスレッシまでは見てない)
他につながるところもないし、内部回路がそのまま
(ノイズ対策などして)出ているのでしょう。

問題はゲート入力。
低い電圧から240VまでOKとなると、単純には行きません。
まずは、その特性。
電圧を上げながらゲート入力に流れる電流を
調べてみました。

12_20250424132001
200Vまで上げても3.5mAほど。
DCだと6V~200Vで変動は1mAほど。
おそらく・・・フォトカプラで主回路とは絶縁している
でしょう。

この電流特性を得る回路、どうなっているのでしょうか?

「定電流ダイオード」かもっと思うんですが、耐電圧と
許容電力が問題になります。

過電圧、過電流保護ということなら「PTCサーミスタ」が
使えそうですが、一定電流に制御となると、はてさて。

何か良いデバイスというか回路、思いつきますか?

 

| | コメント (0)

2025年4月21日 (月)

PCパーツを整理していたら オムロンのタイムカウンタ

PCの通電時間を表示していたオムロンの
H7ET-FBV」が出てきました。

通電すると(AC24~240V、DC6~240Vのフリー入力)
計時を始めます。
最大が「99999.9時間」。つまり4166日弱。およそ11年
リセットは背面にある端子の短絡で、パネル側からは
リセット操作できません。

でも、電池切れで表示はブランク。
いつ頃から使っていたのかは不明ですが、きっとDOS/Vの
時代からPCにパネルに付けていたという記憶があります。
  ※今となってはHDDの通電時間を見ればPCの通電時間も
   分かるというものですが・・・

H1_20250421101301 
PCの電源ケーブルにつなぐようにして、通電しているときだけ
計時が進みます。

2007年08月06日の記事  ではWin機に取り付けていますが、
もっと前から使っていました。
使わなくなったこのマシンから取り外してストックしていた
わけです。

さっそく解体。
H2_20250421101301
H3_20250421101401

松下の「BR-2/3A」リチウム電池が使われていました。
電圧は0.1V以下ですっからかん。

部本箱から手持ちのリチウム電池を探すと・・・
使いさしのマクセルのとMade in Franceのが出てきました。
H4_20250421101701
未使用のフランス製のをハンダ付け。
H5
通電すると、無事、計時を始めました。
H6

どなたか、これ、いりますか?
  クリックポストでお送りできるかと。


2011年06月28日:これは同形状のカウンタ

| | コメント (0)

2025年4月16日 (水)

失敗は成功の母<第3回>: 同じ型名なのに内部回路が違う!?

トラ技編集部に送った原稿、紙にプリントして置いてあった
のを整理(廃棄)していたら、
  「こんな話を載せてもらったなぁ」
っと読み返してしまって、作業が前に進みません。

「そやそや こんなこともあった」がこれ。
失敗談を載せてもらった、トラ技の記事
失敗は成功の母』。

Ss11_20250416153701

2005年4月号が第1回で2007年9月号がいちおうの最終回。
そして、2010年1月号から再開して2011年11月号が最後。
  (載せてもらったのは第3回と第6回、第23回の3号)

この第3回に、記事のタイトルでCMOS「4013」と「4001
での体験を書きました。
  20年前の投稿記事だぁ。

4013」はこの話↓の元。
2021年9月11日:単安定マルチバイブレータ 74123、74423、4538(TC4013を追記)

「4001もあったなぁ」ということで、原稿(一部)を
拾い出してきて置いておきます。


~~~~~~~~~~~~~~~~~~~~~~~~~
 もう一つ、入れ替え部品で罠にはまりました。
バッファ・タイプとアンバッファ・タイプの差です。
元回路で「B」タイプが使われていたのでそのまま
新ICに替えたところ、動作していた部分が動かなくな
りました。
回路を追いかけてみるとそのIC(4001:NORゲート)の
入力に微分回路が付いています。
 元回路のBタイプCMOSは出力だけバッファされた
ゲートICだったのでしょう、買ってきた新ICは入力に
もバッファが入っているタイプで、それが原因で微分
パルスにヒゲが出たのです。
 アンバッファ・タイプのゲートIC(4001UB)に交換
して解決です。
無駄があったとはいえICの全数交換は正解だったかと
思います。
 結局、なにが悪いか決定的な原因は不明なままです。
複数の不具合が関連していたのでしょう。
それにしても、回路図の無い修理は手間がかかります。

※4001入力段の構造の違いで、修理回路が動かなかった。

Ss12_20250416153701
~~~~~~~~~~~~~~~~~~~~~~~~~

CMOS ICをアナログ的用途(発振回路など)で使うときは
アンバッファ・タイプを選ばなければなりません。
このトラブルでは微分回路。
微分してパルスを出したいときはシュミット入力ゲートを
使いたいところです。

| | コメント (0)

2025年4月11日 (金)

西澤のメータをあきらめてAliExpressでメータを買う

2025年4月3日:超好感度なテスター 西澤の「5230-01」
で、HELPを出した100μAの直流電流計、MK-38。
結局、西澤はあきらめて、安直に、AliExpressで
見つけた「91C4」型にしました。

Ht31

送料を入れても700円ほど。

AliExpのメーター、パネルへの取り付けビスは
下部に2本だけ。
MK-38相当品は四隅に取り付けビスが付いてます。
Ht33
そして、ネジの太さ、MK-38相当品はM2.3でしたが
91C4はM3のビスが出てます。
  M3未満の小ネジの寸法がややこしい。
    M2、M2.3、M2.5、M2.6
  あなたはどれを使う?

ビスの間隔もMK-38が32mmで91C4は34mm。
しゃぁないなぁっと丸ヤスリでパネル(樹脂)を
ゴリゴリ。

とりあえず、無事に修理完了。


電流計のチェックはこれで↓
2023年1月13日:Arduino UNOで0.00~40.00mA定電流負荷回路
これで設定できる最小桁が10μA。
フルスケール、リニアリティとも問題ありませんでした。

これ↓みたいにとんでもないメーターだったら・・・
2020年4月18日:秋月のアナログテスター「7007」その後
2020年4月28日:秋月のアナログテスター「7007」、可動コイル式メーターは発電機だった!
心配してたんですが、大丈夫でした。

| | コメント (0)

2025年4月 9日 (水)

宮内 悠介 著『ラウリ・クースクを探して』

宮内 悠介さんの「ペイル・ブルー・ドット」に続いて、図書館で
借りてきたのが『ラウリ・クースクを探して』

Ra1

人捜しのロードムービー本かと思いきや・・・
主役は「MSX」! (中味は、そうZ80)

ソ連に持ち込まれたMSX(ココム規制で高性能マイコンが
持ち込めなかった)であるYAMAHA KUVT(Ямаха КУВТ)
が主役(・・・もちろん人が主役なんですが)。
MSXにこんな話があるなんて知りませんでした。

この他の小物が「水晶」。
それも発振子としての水晶
こんな会話が。
  「もっとも、いまは水晶発振器もMEMS
   置き換わりつつあるがな」
  「水晶がなくなっていくのか。それは寂しいな」

そして、Z80がらみでは、
  КУВТは乗算ができず、やろうとしても時間がかかる。
  これがプログラマたちの頭痛の種で、皆、それぞれに工夫した
  自前の乗算ルーチンを持っていた。
  ラウリが実装したのは「本当に速い」乗算であった。
  簡単に言うと、
     ab = ((a+b)^2 - (a-b)^2)/4
  であること利用し、あらかじめ二乗の計算結果を持っておく。
  この計算結果のテーブルが、1キロバイトほど。
  このように小さなテーブルを持つだけで、高速な乗算ができる
  というわけだ。

8bit×8bitの乗算をテーブルでとは知りませんでした。
(a+b)あるいは(a-b)ですんで、16bitで出てくる乗算の答えの
テーブル数は255+255の510ワード。
ほんとに「1キロバイトほど」です。

「z80 高速乗算」で検索 するとあれこれ出てきます。


※宮内 悠介さんは、「トランジスタ技術の圧縮」の人!


MSXでの製作物(おもちゃ)で残っているのは「大声コンテスト」。
MSXのROMを抜き去って、アセンブラで書いたプログラムを
ほうりこんでます。

ADC部はこんな回路。
  1999年と日付が入ってます。
Msx_koe
せっかくですんでソースファイルも。
   ・ダウンロード - koe2.zip

アセンブラも入れてますんで、コマンドプロンプトから
アセンブル操作ができるかと。

この中で使っている乗除算ルーチンは、普通にシフトで。

まだ現物が動いてます。
年に一度、小学校での「夏のつどい」で。
どっかに写真があったはず。

待機時、小学校の校歌がメロディーとして流れるのですが
中川小学校→大池小学校となって、校歌が変わってし
まいました。


| | コメント (0)

2025年4月 7日 (月)

「LM386N-8」って・・・

修理案件でオーディオアンプLM386が使われていました。

確か手持ちがあったはずと部品箱を探しますと、ありました。
この手持ち部品を使って修理完了。
いつからあるのか分からない部品が役立つと、なかなか
うれしいものです。

で、探索した部品箱(ジャンクボックスではない!)から
出てきたのはズバリの型番「LM386N-1」と、サフィックスが
異なる「LM386N-8」の2種類。

Lm31
  ※故障品は足をぶっちぎって基板から取り外し

「-1」「-8」でどう違うのとデータシートを探しますと、
「-8」が出てきません。
このように「-1、-3、-4」は出てきます。
Lm32

「-4」だと使用電圧範囲が上の方に行ってます。
しかし、「-8」が不明。

とりあえず置いておきますが、はてさてどうしたものか。


※見間違いだぁ・・・
コメントを参照(笑) ちょいと恥ずかしいぞ。

TI:LM386
TI:LM380

| | コメント (5)

2025年4月 3日 (木)

超好感度なテスター 西澤の「5230-01」

修理案件で38型(パネル丸穴の径)の直流電流計を
探していて「西澤電機計器製作所」のホームページを
見ていたら・・・
 ・西澤電機計器製作所:電気計測器

テスターの紹介のところ「5230-01」。
  「DC1μA、10mVの超好感度」っと。

Ns1

感度は感度なんですが、テスターの性能表現に
好感度」とは・・・

「これ、エエでっ」ということで好感度なんでしょうね。
今では珍しいキットテスター「5220」 と似たような感じ
なんですが、スペックがちょっと違うようです。

「5230-01」、長野県坂城町のふるさと納税の対象品
なっています。


20世紀ならどこでも売ってた電流計、見つかりません。
問い合わせた一社はダメ。(納期がぁ)
現在、西澤に問い合わせ中です。

  ・欲しいのは直流100μAの電流計
   西澤 MK-38 と同一形状。
   パネル加工ができないので同じ形状のものが必要。
   目盛板は0~100でok。

| | コメント (2)

2025年4月 2日 (水)

アイリスオーヤマ BIGCAPA単3 BCR-R3MH 950mAh

友人からニッ水電池がもう一種類やってきました。
ネットの買い物のポイントが溜まったんで、
「もらった=支払いなし」っと。

アイリスオーヤマの「BCR-R3MH」950mAh
Ir11

「日本製」っと白抜き文字が光ってます。
  「BIGCAPA Recharge」は商品名称なのでしょう。

Ir12

「約5000回くり返し使える」と。
  このときの測定条件は「JIS C8708:2013(7.5.1.3)」

Ir13

そして、「容量:min.950mAh」では
  「JIS C8708:2019(7.5.2.2)の充放電条件に基づく」っと。

「どっちやねん」っと言いたくなりますが、笑っておきましょう。

製作した充放電実験回路は3台。
現在、
 ・東芝インパルス 単3 TNH-3LE 950mAh
 ・FDKの長寿命電池「HR-AAULT」(1000mAh)
 ・「Pool」2150mAh
3種の充放電実験を続けてますんで、この3つのうち
どれかの寿命が来ないと、今回のアイリスオーヤマの
電池を試すことができません。
東芝とFDKもまだまだ行きそうです。
とりあえずそのまま保管しておきます。

※追記
パナのeneloop lite(BK-3LCD)
これが1050mAh、新JISで1500回をうたっています。
 スタンダードの新旧比が600回:2100回
 プロの新旧比が150回:500回
 と3.5倍、3.3倍なんで、liteだと
 1500回:5000回あたりになるでしょか。

このあたりの差は「72分で放電停止したらどうだ?」の実験で
現れてきます。
例えば、
パナソニックeneloopスタンダード単3「BK-3MCC」60%(72分)放電 2800回で終了
Amazonベーシック単3(2000mAh) 60%(72分)放電 1200回で終了
東芝インパルス TNH-3A(2400mAh) 60%(72分)放電で
エネループ・プロ(BK-3HCD:2500mAh) 60%放電での実験終了
これらの結果が参考になるでしょう。
60%放電で延命にはなりますが、実験装置だからできる管理で
実使用ではなかなかむつかしいです。

ちょっとだけ使って充電したら・・・充電器がスカタン
(満充電の検出をミスる)したら充電し過ぎになるかも
しれません。
電池電圧で管理できるリチウム・イオン電池と違って
ニッ水電池の充電処理、なかなか難しいです。
  製作した実験装置での-ΔV検出は、1.0Vへの放電後
  にしてるから、うまく検出できてます。
    偽の-ΔVなどという異常事態にも
    対処できました。
  これが、どんな放電状態からでも
  「満充電を検出せよ」となると、電圧の監視だけじゃ
  なく電池の温度上昇を見るとかを入れなければなりません。

| | コメント (0)

2025年4月 1日 (火)

ムクドリ

我が家の庭にやってくる鳥、毎日来るのがスズメとヒヨドリ。
そして、季節によりたまにメジロ。
先週の土曜日、咲き始めの桜の木にいっぱい集まってきてたん
ですが、見慣れないのが混じってました。
大きさはいつものヒヨドリくらい。
でも、容姿が違います。

M01

M02

クチバシと足が黄色い!
調べますと、ムクドリとのこと。

2014年10月26日:つんつん頭のヒヨドリ
Img20141027082759986

| | コメント (0)

« 2025年3月 | トップページ | 2025年5月 »