1: 2021-05-16 (日) 15:17:16 yuji Deleted an attach file: eeprom.txt at 2021-05-18 (火) 09:32:44, Deleted an attach file: rm102.ino at 2021-05-18 (火) 09:35:50, Deleted an attach file: dt132a.ino at 2021-05-18 (火) 09:36:38 |
2: 2021-05-18 (火) 10:10:30 yuji Deleted an attach file: eeprom.txt at 2021-05-18 (火) 10:13:48, Deleted an attach file: rm102.ino at 2021-05-18 (火) 10:22:15 at 2021-05-18 (火) 12:00:43 at 2021-05-18 (火) 14:24:35, Deleted an attach file: dt132a.ino at 2021-05-18 (火) 14:26:24 at 2021-05-18 (火) 14:55:16 at 2021-05-19 (水) 10:16:53 at 2021-05-19 (水) 10:17:02 at 2021-05-19 (水) 10:25:11 at 2021-05-19 (水) 10:47:05 |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | * DT132Aスペック [#lfac4870] | + | * AstroAI DT132A スペック [#lfac4870] |
AstoAI DT132Aの主なスペック。~ | AstoAI DT132Aの主なスペック。~ | ||
- | 安価な割に多機能。ACの実効値測定はTrue RMS。 | + | ACの実効値測定はTrue RMS。 |
|モデル|AstroAI DT132A| | |モデル|AstroAI DT132A| | ||
|カウント数|4000カウント| | |カウント数|4000カウント| | ||
Line 26: | Line 26: | ||
|表示|バックライト付LCD 55 x 31mm| | |表示|バックライト付LCD 55 x 31mm| | ||
|電源|1.5V AAAバッテリー x3, 自動電源OFF| | |電源|1.5V AAAバッテリー x3, 自動電源OFF| | ||
- | |サイズ|145 x 70 x 35mm| | + | |サイズ|155 x 77 x 31mm(カバー)| |
|重量|157g| | |重量|157g| | ||
|付属品|テストリード 1ペア&br;TP01K熱電対ケーブル&br;携帯ポーチ&br;英文マニュアル| | |付属品|テストリード 1ペア&br;TP01K熱電対ケーブル&br;携帯ポーチ&br;英文マニュアル| | ||
Line 33: | Line 33: | ||
* ハードウェア [#p1e2fb9b] | * ハードウェア [#p1e2fb9b] | ||
- | 使われているASICは,RICHMETERS RM102で使われているDream Tech International社のDTM0660Lに近い機能(DTM0660Lとピン互換)を持ったDM1106ENかも。 | + | 使われているASICは,RICHMETERS RM102で使われているDream Tech International社のDTM0660Lのピン互換チップのDM1106ENと思われる。 |
このチップの特徴は,構成可能な設定やキャリブレーションデータを外部のEEPROM(24C02A)に保存して利用している。~ | このチップの特徴は,構成可能な設定やキャリブレーションデータを外部のEEPROM(24C02A)に保存して利用している。~ | ||
これにより,ハードウェアを変更することなくEEPROMのデータを変更することで,特定の機能を有効にしたりすることが出来る。~ | これにより,ハードウェアを変更することなくEEPROMのデータを変更することで,特定の機能を有効にしたりすることが出来る。~ | ||
+ | |||
+ | ASICも9999カウントまで対応してそうなので,6000カウントの設定にできるか試してみた。 | ||
** EEPROMの読み書き [#v19dace1] | ** EEPROMの読み書き [#v19dace1] | ||
使用されているEEPROMは24C02Aが実装されている。この24C02Aのインターフェースは,I2Cバス。~ | 使用されているEEPROMは24C02Aが実装されている。この24C02Aのインターフェースは,I2Cバス。~ | ||
- | WPピンはプルアップされているので,通常ではWriteプロテクトされている。~ | + | WPピンはプルアップされているので,アドレス0x80-0xFFはWriteプロテクトされている。~ |
|ピン|機能|説明 |h | |ピン|機能|説明 |h | ||
- | |1 |E0 |enable0 | | + | |1 |A0 |Chip Address0 | |
- | |2 |E1 |enable1 | | + | |2 |A1 |Chip Address1 | |
- | |3 |E2 |enable3 | | + | |3 |A2 |Chip Address3 | |
- | |4 |GND |GND | | + | |4 |VSS |GND | |
- | |5 |SDA |Serial Data In/Out| | + | |5 |SDA |Serial Data I/O | |
|6 |SCL |Serial Clock | | |6 |SCL |Serial Clock | | ||
|7 |WP |Write Protect | | |7 |WP |Write Protect | | ||
|8 |VCC |VCC | | |8 |VCC |VCC | | ||
- | VCCは,3.3Vになっている。 | + | DT132Aでは,VCCは3.3Vになっている。 |
''DTA132Aの電源ON後,ASICの出力により24C02AのSCLがlowになったままになっている。このため24C02Aが基板に実装されたままだと,読み書きがうまく出来ない。''~ | ''DTA132Aの電源ON後,ASICの出力により24C02AのSCLがlowになったままになっている。このため24C02Aが基板に実装されたままだと,読み書きがうまく出来ない。''~ | ||
- | ASICのRESETピン(55番pin)を''low''にすることにより,ASICをRESET状態にすればうまくいく。 | + | ASICのRESETピン(55番)を''low''にする(C8をジャンパー)ことにより,ASICをRESET状態にすればうまくいく。 |
今回は,基板から24C02Aを剥がしてチップ単体で読み書きした後,基板に再実装することにした。 | 今回は,基板から24C02Aを剥がしてチップ単体で読み書きした後,基板に再実装することにした。 | ||
Line 61: | Line 63: | ||
EEPROMをarduinoを使って読み書きする場合は, | EEPROMをarduinoを使って読み書きする場合は, | ||
- | |arduino|24C02A |h | + | |arduino |24C02A |h |
- | |AD4/SDA|SDA | | + | |GND |1 A0 | |
- | |AD5/SCL|SCL | | + | |GND |2 A1 | |
- | |GND |GND | | + | |GND |3 A2 | |
- | のように接続する。E0,E1,E2,WPは何も接続しないで試した。24C02A単体なので電源等も5VレベルでOK。 | + | |GND |4 VSS | |
+ | |AD4/SDA |5 SDA | | ||
+ | |AD5/SCL |6 SCL | | ||
+ | |GND |7 WP | | ||
+ | |+5V or+3.3V|8 VCC | | ||
+ | のように接続する。 | ||
以下のプログラムで先頭から256byteを読み書きした。~ | 以下のプログラムで先頭から256byteを読み書きした。~ | ||
- | #ref(rm102.ino) | + | #ref(dt132a.ino) |
#code(C,nonumber){{ | #code(C,nonumber){{ | ||
// AstroAI DT132A EEPROM dump | // AstroAI DT132A EEPROM dump | ||
Line 86: | Line 93: | ||
dumpEEPROM(); // EEPROMをdumpする | dumpEEPROM(); // EEPROMをdumpする | ||
- | enableUART(); // UARTを使えるようにする | ||
//set4000Count(); // 4000カウントに設定 | //set4000Count(); // 4000カウントに設定 | ||
set6000Count(); // 6000カウントに設定 | set6000Count(); // 6000カウントに設定 | ||
+ | //set8000Count(); // 8000カウントに設定 | ||
setBacklight(); // バックライトを120sに設定 | setBacklight(); // バックライトを120sに設定 | ||
+ | setMiliACV(); // ACmVを使えるようにする | ||
+ | enableUART(); // UARTを使えるようにする | ||
+ | |||
dumpEEPROM(); // 再度EEPROMをdumpする | dumpEEPROM(); // 再度EEPROMをdumpする | ||
} | } | ||
Line 101: | Line 111: | ||
byte data; | byte data; | ||
+ | delay(500); | ||
Serial.println("\nDT132A EEROM dump..."); | Serial.println("\nDT132A EEROM dump..."); | ||
Serial.println("-- : 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F"); // output header | Serial.println("-- : 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F"); // output header | ||
Line 189: | Line 200: | ||
// レンジ変更加減の変更(0x12,0x13: 0x0244) | // レンジ変更加減の変更(0x12,0x13: 0x0244) | ||
writeByte(I2CADDR, 0x14, (byte) 0x44); // set 0x0244 - 580 | writeByte(I2CADDR, 0x14, (byte) 0x44); // set 0x0244 - 580 | ||
+ | writeByte(I2CADDR, 0x15, (byte) 0x02); // | ||
+ | Serial.println("Done"); | ||
+ | } | ||
+ | |||
+ | // 8000カウントに設定する | ||
+ | void set8000Count() { | ||
+ | Serial.println("Set 8000Count..."); | ||
+ | // カウント数の変更(0x10,0x11: 0x1F40) | ||
+ | writeByte(I2CADDR, 0x10, (byte) 0x40); // set 0x1F40 - 8000 | ||
+ | writeByte(I2CADDR, 0x11, (byte) 0x1F); // | ||
+ | |||
+ | // レンジ変更上限の変更(0x12,0x13: 0x2008) | ||
+ | writeByte(I2CADDR, 0x12, (byte) 0x08); // set 0x2008 - 8200 | ||
+ | writeByte(I2CADDR, 0x13, (byte) 0x20); // | ||
+ | |||
+ | // レンジ変更加減の変更(0x12,0x13: 0x02EE) | ||
+ | writeByte(I2CADDR, 0x14, (byte) 0xEE); // set 0x02EE - 750 | ||
writeByte(I2CADDR, 0x15, (byte) 0x02); // | writeByte(I2CADDR, 0x15, (byte) 0x02); // | ||
Serial.println("Done"); | Serial.println("Done"); | ||
Line 198: | Line 226: | ||
// バックライト持続時間の変更(0xFC: 0x0F -> 0x78) | // バックライト持続時間の変更(0xFC: 0x0F -> 0x78) | ||
writeByte(I2CADDR, 0xFC, (byte) 0x78); // set 0x78 - 1200s | writeByte(I2CADDR, 0xFC, (byte) 0x78); // set 0x78 - 1200s | ||
+ | Serial.println("Done"); | ||
+ | } | ||
+ | |||
+ | // mVACを使えるようにする設定 | ||
+ | void setMiliACV() { | ||
+ | Serial.println("set mVAC..."); | ||
+ | // ACVにmVから測定出来るようにする(0x8E: 0x04 -> 0x06) | ||
+ | writeByte(I2CADDR, 0x8E, (byte) 0x06); // set 0x06 - mVACV | ||
Serial.println("Done"); | Serial.println("Done"); | ||
} | } | ||
Line 206: | Line 242: | ||
#code(TEXT,nonumber,eeprom.txt) | #code(TEXT,nonumber,eeprom.txt) | ||
- | 改造箇所は, | + | 変更箇所は, |
- 6000カウントに書き換えた。 | - 6000カウントに書き換えた。 | ||
- | - UART通信が出来るように,アドレス0xFAを0xFCから0xFEに書き換えた。 | ||
- バックライトの持続時間を,15秒から120秒に書き換えた。 | - バックライトの持続時間を,15秒から120秒に書き換えた。 | ||
+ | - ACVをmVから測定できるように書き換えた。 | ||
+ | - UART通信が出来るように,アドレス0xFAを0xFCから0xFEに書き換えた。 | ||
書き換えたEEPROM 24C02AをDT132Aに実装し直して,バックライトが120秒になったことを確認した。~ | 書き換えたEEPROM 24C02AをDT132Aに実装し直して,バックライトが120秒になったことを確認した。~ | ||
- | UART通信は出来るのかどうかは,まだチェックしていない。Relativeボタンの長押しには,なにも反応しない。Selectボタンの長押しに反応している気がする・・・ | + | Relativeボタンの長押しには,なにも反応しない。UART通信は,ASICのプログラムに実装されてない気がする。 |
** EEPROMによるカスタマイズ [#vf18558d] | ** EEPROMによるカスタマイズ [#vf18558d] | ||
Line 288: | Line 325: | ||
バックライトは,15秒で自動的に消える設定になっている。 | バックライトは,15秒で自動的に消える設定になっている。 | ||
- | 0xFAを0xFEに書き換えて有効にできるUART通信は,使用する時には,''Select''ボタンSWを2秒長押ししてONにするんだと思う。(未確認)~ | + | 0xFAを0xFEに書き換えて有効にできるUART通信は,''Relative''ボタンを2秒長押ししても反応しない。おそらくASICプログラムでUART通信が使えないようになったんだと思う。~ |
** 測定機能の選択 [#u960aa7f] | ** 測定機能の選択 [#u960aa7f] | ||
Line 308: | Line 345: | ||
|mA |1 |1 |0 |0 |0x8C&br;(0x0E)|0x9C&br;(0x0F)|0xAC&br;(0x00)|0xBC&br;(0x00)| | |mA |1 |1 |0 |0 |0x8C&br;(0x0E)|0x9C&br;(0x0F)|0xAC&br;(0x00)|0xBC&br;(0x00)| | ||
|Ω |1 |1 |0 |1 |0x8D&br;(0x07)|0x9D&br;(0x09)|0xAD&br;(0x0A)|0xBD&br;(0x0B)| | |Ω |1 |1 |0 |1 |0x8D&br;(0x07)|0x9D&br;(0x09)|0xAD&br;(0x0A)|0xBD&br;(0x0B)| | ||
- | |ACV |1 |1 |1 |0 |0x8E&br;(0x04)|0x9E&br;(0x00)|0xAE&br;(0x00)|0xBE&br;(0x00)| | + | |ACV |1 |1 |1 |0 |0x8E&br;(0x04 -> 0x06)|0x9E&br;(0x00)|0xAE&br;(0x00)|0xBE&br;(0x00)| |
- | |DCV |1 |1 |1 |1 |0x8F&br;(0x05)|0x9F&br;(0x00)|0xAF&br;(0x00)|0xBF&br;(0x00)| | + | |DCV |1 |1 |1 |1 |0x8F&br;(0x05)|0x9F&br;(0x00 )|0xAF&br;(0x00)|0xBF&br;(0x00)| |
+ | |||
+ | ACVをmVレンジからのレンジに変更。(DCmV/ACmVの機能を使いたいが,J1A/J1Bの切り替えがロータリースイッチで出来ないため諦める。) | ||
*** 測定機能(0x80~0xBFに割り当てる) [#wb114b88] | *** 測定機能(0x80~0xBFに割り当てる) [#wb114b88] | ||
Line 318: | Line 357: | ||
|0x03 |X |DCV(Without mV):4.000V/40.00V/400.0V/600V | | |0x03 |X |DCV(Without mV):4.000V/40.00V/400.0V/600V | | ||
|0x04 |X |ACV(Without mV):4.000V/40.00V/400.0V/600V | | |0x04 |X |ACV(Without mV):4.000V/40.00V/400.0V/600V | | ||
- | |0x05 |X |DCVmV(With mV):400.0mV/4.000V/40.00V/400.0V/600V | | + | |0x05 |X |DCV(With mV):400.0mV/4.000V/40.00V/400.0V/600V | |
- | |0x06 |X |ACVmV(With mV):400.0mV/4.000V/40.00V/400.0V/600V | | + | |0x06 |X |ACV(With mV):400.0mV/4.000V/40.00V/400.0V/600V | |
|0x07 |J1A,J1B |400.0Ω/4.000kΩ/40.00kΩ/400.0kΩ/4.000MΩ/40.00MΩ | | |0x07 |J1A,J1B |400.0Ω/4.000kΩ/40.00kΩ/400.0kΩ/4.000MΩ/40.00MΩ | | ||
|0x08 |ー |ー | | |0x08 |ー |ー | |