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」カテゴリの記事
- トラ技2026年6月号 サーミスタの温度測定で(2026.05.14)
- tinyAVR2系のデータシートは「4096」「256」で(2025.12.26)
- ATtinyのデータシートに「1/1023」が出現(2025.09.26)
- Arduino、analogWriteは捨てちゃえ。ちゃんとしたPWMの例(2025.03.22)
- 1023 vs 1024:AVRマイコンとPICマイコンのデータシートより(2025.03.19)
「ATtiny」カテゴリの記事
- tinyAVRマイコン 内蔵ペリフェラルもう一歩やなぁ(2026.07.01)
- 電源周波数の変動はひょっとしてレコード再生に影響が出る(2026.06.28)
- ATtiny1614で屋根裏収納スペースの温度を記録する #2(2026.06.12)
- ATtiny1614で屋根裏収納スペースの温度を記録する(2026.06.08)
- tinyAVR1の12bitタイマTCD0で2相パルス出力(2026.06.03)


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