ATtinyのデータシートに「1/1023」が出現
ArduinoのA/D変換値(10bitなら0~1023)から
入力電圧を求めるときは「1/1024」でっせを
何度も言ってきました。
トラ技にも書いたし。
ところが・・・
8ピンのAVRマイコン「ATtiny402」のデータシート
を見ていたら「1/1023」になっていたのです。
まずこれがArduino UNO R3のマイコンATmega328Pの
データシートでの記述。
正しく「1/1024」です。
それがATtiny402(202~406まとめての)のデータシート
では「1/1023」と示されているのです。
追跡しきってはいませんが、「アトメル」時代からあるチップは
正しく「1/1024」と。
「マイクロチップ」になってからできたチップが「1/1023」と
なっているような感じかと。
※追記 3・1/2桁電圧計IC(モトローラのMC14433)の資料から
大昔のデータシートを引っ張ってきました。
モトローラの3・1/2桁電圧計IC、BCDでの表示出力が±1999。
※関連
・1/2桁とは
・1/2桁とは 「セグメント説」
基準電圧が2.000Vだと±1.999Vがフルスケール。
0.2000Vだと±フルスケールは1999mVになります。
このあたりの関係、データシートではこのように
表現されています。
ごくあたりまえですが、このVref=2.000Vで
1.000Vが入力されたら
表示出力は1.000Vになります。
(1.000V ÷ 1.999) × Vref = 1.00050V
ではありません。
出力桁外になる0.00050VがこのICで
どういう挙動になるかは別問題。
(1.000V ÷ 2.000) × Vref = 1.000V
がまっとうな計算。
Vrefがジャスト2.000Vじゃないとき、
入力電圧に対して何Vが表示されるか
の検証計算。
| 固定リンク
「AVRマイコン」カテゴリの記事
- ATtinyのデータシートに「1/1023」が出現(2025.09.26)
- ATtiny402サンプル:"Wire.h"を使わずI2Cで液晶表示 AQM1602だと(2025.09.09)
- ATtiny402サンプル:I2Cで液晶表示 SCL周波数を設定できるようにしたら(2025.09.09)
- ATtiny402マイコン サンプル:I2Cで液晶表示(Wire.hを使わないで)(2025.09.08)
- ATtiny402マイコン サンプル:I2Cで液晶表示(2025.09.05)
「1023 vs 1024」カテゴリの記事
- ATtinyのデータシートに「1/1023」が出現(2025.09.26)
- Arduino、analogWriteは捨てちゃえ。ちゃんとしたPWMの例(2025.03.22)
- 1023 vs 1024:AVRマイコンとPICマイコンのデータシートより(2025.03.19)
- 1/1023監視団 活動中!(2025.03.10)
- おっと。map関数の計算桁に注意(2024.10.06)
「ATtiny」カテゴリの記事
- ブザー報知周波数でマイコンの動作クロックを探る#2(2025.12.04)
- ブザー報知周波数でマイコンの動作クロックを探る(2025.10.31)
- ADCの機能差 ATtiny402とATtiny1614(2025.10.20)
- ATtiny1614につないだ32kHz水晶発振子、隣のピンの影響を受けるみたい(2025.10.06)
- ATtiny1614で周波数カウンタ:キャプチャタイミング(2025.10.04)


コメント
単なる妄想ですがこれって、昔のチップのバグのような仕様により切りのいい数字だと内部で最上位ビットが抜け落ちて0で除算な誤動作を起こすから、暫定回避として1引いたみたいなどうしようもない理由が始まりの気がします。
投稿: enaka | 2025年9月27日 (土) 23時09分
大昔の3・1.2桁ADC、MC14433のデータシートを使ってあれこれ追記しました。
投稿: 居酒屋ガレージ店主(JH3DBO) | 2025年9月28日 (日) 17時02分