2020年9月20日日曜日

デジタルポテンショメータ(MCP41010)のチェック

ここんとこ、パーツ収集に励んでま~す^^;

ある時、AliExpressを散歩してると、
デジタルポテンショメータなるものを見つけました。
これは買ってません^^;
AliExpress.com Product - 5pcs X9C103P DIP8 X9C103 DIP-8 9C103P DIP X9C103PIZ

この可変抵抗器をシリアル制御にしたようなものですが、
上のRENESAS X9C103は、100段階で、ちと少ないですね~
100段階でもいいのなら、1個20円程度と安価です。

で、8bitの分解能のがないかな~と探すと、ありました!
MCP41010:Single 10KΩ、SPI I/Fです。
ICに刻印がないですが、ここが安かったもので^^;
US$ 0.82(6% OFF、送料 $0.27)(3個では、送料 $0.37でした)
AliExpress.com Product - YUXINYUAN 1pcs MCP41010-I/P MCP41010 DIP DIP-8 new original Can be purchased directly

実物は、これ
まともなやつが届いております。

Datasheetは、このPDF
Single/Dual で10K、50K、100KΩの6種類あります。
Dualは、ステレオ等の音量調節用途とかが主流だと思います。

では、届いたのでチェックします。
ちょっとGoogle先生に尋ねて~

GitHubのここにMCP41010ライブラリがありますが、
ちょっとチェックだけなのでExampleの中を理解するのが面倒ですね~

なので、こっちにしました。
ライブラリも使ってなく、LEDを光らせて、実態配線図もあるので
素早くチェックするには丁度いいかなと^^;

スケッチそのままで、Arduino NANOで動作させて、
無事にLEDの輝度が変化してチェックが終わりました。

が、終わった後、Datasheet眺めてると
ワイパー電流定格が±1mAだ~(・o・)
ワイパーとはLEDを繋いでる摺動子に相当する端子で
LED ~ 220Ω ~ GND と接続されてるので
最大20mA位流れてしまって、完全に定格オーバーです(T_T)
作者さんには悪いけど、この回路は動かしてはいけないですね~
幸い壊れませんでしたが...
特にワイパーがVCCやGND側に近い時は、
入出力電流に気をつける必要がありますね~

ポテンショメータ部分は電気的に分離されてないので
2.7~5.5Vの範囲で使う必要があります。
5.5Vで10KΩだと、3mW程度、極小の可変抵抗器というところです。

SPIは、CS、SI、CLKの3本です。
Singleタイプ(MCP41xxx)は、8pin DIPで端子が足りんのですね~
DualのにはSOがあってデイジーチェーン接続できます。
DatsheetのBlock DiagramをSingle用に編集しました。
Wiper Register部とControl部は、絶縁されてません。

マーティーが入手した「MCP41010」
Singleタイプのピンアサインです。

Datasheetに2種類の使い方MODEが載ってます。
<RHEOSTAT MODE>
可変抵抗器として
特に抵抗値が低い場合、電流定格±1mAに注意が必要です。

<POTENTIOMETER MODE>
電圧分圧器として(所謂、ポテンショメーターです)
これは、V1:2.7~5.5Vを守れば、電流定格は超えないですね。

では、先の参考サイトのスケッチをちょっと変えて
抵抗値の変化を観ます。
このスケッチでは、void loop内の
・v=0 の時、A~W間抵抗値が最大(B~W間は最小)
・v=255 の時、 A~W間抵抗が最小(B~W間は最大)
になりました。
*********
int csPin = 2;                      // Chip Select on pin 2 of Arduino
int sckPin = 4;                     // Serial Clock on pin 4 of Arduino
int sdiPin = 5;                    // Serial Data Input on pin 5 of Arduino
byte address = B00010001;            // Command byte // 17
//byte address = 0x11;  // 17

void potify(byte val)
{
    digitalWrite (csPin, LOW); 
    spi_transfer(address);
    spi_transfer(val);
    digitalWrite(csPin, HIGH); 
}

void spi_transfer(byte bb)
{
    byte mask;
    for (int i = 7; i >= 0; i--)
    {
        mask = 0x01 << i;
        int v = !!(bb&mask);
        digitalWrite(sdiPin, v);
        digitalWrite (sckPin,HIGH);
        digitalWrite(sckPin, LOW);
    }
}

void setup() 
{
    pinMode(csPin, OUTPUT);
    pinMode(sckPin, OUTPUT);
    pinMode(sdiPin, OUTPUT);

    Serial.begin(9600);
    Serial.println("Ready!");
}

void loop() 
{
    for (int i = 0; i <= 255; i++)
    {
        int v = i;
        Serial.print("v: ");Serial.print(v);Serial.println();
        potify(v);
        if (i==255)
          delay(2000);  //抵抗値最小の時、テスターの針を落ち着かせたいので
        else  
          delay(30);
    }
}
*********

実体配線図です。
Arduino NANOを使います^^;
抵抗値はアナログテスター(SANWA ZX-505)で!
 [NANO]・・・[MCP41010]
       D2    ・・・ 1pin:nCS
       D4    ・・・ 2pin:SCK
       D5    ・・・ 3pin:SI
       5V    ・・・ 4pin
      GND  ・・・ 8pin
5pin:PA0 ~ 6pin:PW0 間を観測します。
7pin:PB0・・・OPENです。

実際はこんな感じで・・・

ちなみに、テスターに付けてるテストクリップは、これです。
クリップにしては高いですが、細かい所にも届いて重宝します。
US$ 3.49(30% OFF、送料 $0.29)
AliExpress.com Product - Cleqee P1511B 2mm Female Plug to Internal Spring Test Hook Probe AWG Test Lead Kit Can connect the Digital Multimeter Probe

では、動画で!
テスター:x100レンジなので、抵抗目盛の100が、10KΩです。
これ以上速くするとテスターが追従できません(T_T)
昔~し使ってたCdsとLEDのアナログフォトカプラ思い出しました^^;

Codeと抵抗値の特性グラフがDatasheetに載ってます。
なかなかリニアに変化してくれるんですね。
マーティーが観たのは、RWAの方です。

先のスケッチで書込値「v」(上のグラフのCode)を固定してみます。
PA0~PW0間を測定してます。PB0:OPENです。
v=255
*********
~~~前略~~~
void loop() 
{
    for (int i = 0; i <= 255; i++)
    {
        // int v = i;
        int v = 255;
~~~後ろ略~~~
*********

x100レンジで、100Ω

x1レンジで、95Ωってとこかな。

v=127
*********
~~~前略~~~
void loop() 
{
    for (int i = 0; i <= 255; i++)
    {
        // int v = i;
        int v = 127;
~~~後ろ略~~~
*********

x100レンジで、4.8KΩ、10KΩのほぼ1/2です。

v=0
*********
~~~前略~~~
void loop() 
{
    for (int i = 0; i <= 255; i++)
    {
        // int v = i;
        int v = 0;
~~~後ろ略~~~
*********

x100レンジで、9.5KΩ

MCP41010とArduino NANOは、
PCのUSBで給電していますが、電源OFFすると

ちょっと期待してたんですが、
抵抗値(Registerポジション)は記憶してないですね~(T_T)
4.8KΩと読めるので、10KΩのほぼ中央値で
上の「v=127」の時と同じ値です。

しかも、これがちと不思議で
アナログテスターで測るとレンジによって値が変わるんです(-_-;)
x10レンジ、1.2KΩ

x1Kレンジ、32KΩ
たぶん、Register部のMOS-FETがテスターの電圧で
微妙な動作をしてるのだと思います。
回路によっては、電源ON/OFFの過渡時も要注意かな?

Datasheetによると
動作状態でもVDDによりこんなに抵抗値が変化するようです。
これは、Code=00hなので、ほぼワイパー(摺動子部)だけの特性です。

もうちょっとDatasheetを眺めてると
抵抗器として使う時、温度係数が800ppm/℃
ん!? 1ppm=0.0001%なので~ 800ppm=0.08%
まあマーティー工房の工作では、大丈夫そうですね~^^;
ちなみに、ここに、
「炭素皮膜抵抗は一般的に-200ppm/℃~-800ppm/℃程度」
「金属皮膜抵抗は高精度品で±5ppm/℃、汎用品でも±100ppm/℃未満」だと。
可変抵抗器の温度係数は、なかなか見つかりませんね~
金属被膜の多回転トリマで±100~150ppm/℃辺りのようです。

5~50℃でみると、10KΩに対して500Ω程の変化かな。

これは、抵抗器モードで、
マーティーが観たRWAと逆のRWBですが、
抵抗値が小さくなると、温度係数が急に悪化してます。
1000ppm/℃=0.1%/℃、10℃差で1%、50℃差で5%
低抵抗でワイパー抵抗(摺動子の接触抵抗に相当)の影響が大きいです。
用途にもよりますが、気に留めておいた方がいいかな?
まあ、大抵は、下のポテンショメーター・モードで使うので...

そのポテンショメーター・モードでは、かなり小さい温度係数です。
Code:128のセンターで温度係数 0ppm/℃に調整されてるようです。

実は、具体的な使用先は決まってません(-_-;)
デジタルポテンショメータを見つけた時に、
最初に思いついたのがこれなので、10KΩにしてました。
この電源は、0~48V 10Aの可変で、
電圧調整を10KΩの可変抵抗器でやってるのです。
デジタルポテンショメータ(MCP41010)に置き換えて
PWM制御じゃなくて、SPI制御でDCのまま可変できるかな~?と^^;
US$ 32.29(50% OFF)

MCP41010の使用条件があるので、両端電圧を確認してみます。
外付け用のVRが付属しているので、付け替えて
オシロのプローブ当てましたが、赤が低圧側とは!(´-﹏-`;)

VRの両端電圧は、
左:出力0V時、≒4.8V
右:出力50.9V時、≒4.8V
きれいなDCで5Vに近いし、ポテンショメーター・モードになるので、
MCP41010の使用場所としてはドンピシャです!
約50Vで256stepなので、1step:0.2Vってことになります。
まあモーター制御だと電圧固定でPWM制御するのとどっちがいいか?
ということで、すぐにやる予定はないのですが...^^;

Datasheetの応用例の
こうゆうアンプも面白そうですね~

SPI制御で0.1~10倍の連続可変できるようです。
何に使えるかな~^^;

最近はこういう具合でパーツコレクションしてますが、
チェックの方が追いついてません(T_T)
使ったことないパーツを試すのは楽しいですね~^^;

お店の忘備録です。後で別のが必要になるかもなので...(-_-;)
価格は執筆時点の2020年9月調べです。

1個入り、Single 50KΩ:MCP41050は、ここが安そう。
US$ 2.49/2個(送料 $0.53)
AliExpress.com Product - 2pcs MCP41050-I/P DIP-8 MCP41050 DIP8 41050 DIP


Single 100KΩ:MCP41100 DIPタイプは、2軒だけのようで、
送料入れると1個で$3以上で高いです。
SOPの方が1/5の価格です。
US$ 2.77/5個(10% OFF、送料無料)
AliExpress.com Product - (5piece)100% New MCP41100 MCP41100-I 41100I sop-8 Chipset

DIP 2個とSOP 5個が同じ位の価格なので
この様な変換基板を使うのも手ですね~
US$ 0.18/10枚(10% OFF、送料 $0.52)
10枚つながってるので、手で折って切り離します。
ピンヘッダーが別途必要ですが...
AliExpress.com Product - 10pcs SOP8 turn DIP8 adapter plate SMD adapter plate

2個入りのDualタイプは、SO端子があるのでデイジーチェーン接続ができます。
Dual 10K:MCP42010のDIP
Dual 100KΩ:MCP42100のDIP
は、多くの店があったのでリンクしなくても大丈夫でしょう。

Dual 50K:MCP42050のDIPは、数店しかなく、ここが最安かな?

0 件のコメント: