60歳からの電子工作ノート

生涯学習として取り組んでいます。

FT260SとSLG47011を使用した熱電対の温度計測(ソフトウェア)

 ピン割り付けとモニタソフトについて書いてあります。

ピン割り付け

FT260Sのピン割り付け

図1. FT260Sの各ピン
SLG47011(I2Cアドレス=0x08)の各ピンとプログラム

CH0,CH1: 熱電対、CH3: サーミスタ、pin15:Vref

図2. SLG47011(I2Cアドレス=0x08)の各ピン

図3. SLG47011(I2Cアドレス=0x08)のプログラム
SLG47011(I2Cアドレス=0x20)の各ピンとプログラム

CH0,CH1: 熱電対

図4. SLG47011(I2Cアドレス=0x20)の各ピン

図5. SLG47011(I2Cアドレス=0x20)のプログラム
SLG47011(I2Cアドレス=0x28, 0x30)の各ピンとプログラム

「RL78/G16とSLG47011を使用したリフロー実験ボード( ソフトウェア 2/2 )」

(https://vabc.hatenadiary.jp/entry/2026/08/13/111935)の増設ボードと同一です。

モニタソフト

概要

WindowsのWPFアプリ(C#)です。グラフはScottPlotで作成しています。FTDIのDLL(LibFT260.dll)のAPIで、I2C通信を行います。読み出したA/D値から温度を求める処理は、「GreenPAK SLG47011 実験用ボードの試作(熱電対による温度測定)」(https://vabc.hatenadiary.jp/entry/2025/05/02/115751)と同じです。

I2Cデータ読み出し

 Writeで読み出しバッファアドレスを書き込み後、Readを発行し、バッファアドレスのデータを読み出します。

図6. DataBuffer0(0x2212)から読み出し(Write後、Read)(I2Cアドレス=0x08)

図7. 発行間隔とBuffer0,1,3読み出し時間

図8. SLG 4つの読み出し時間とプログラム
SLGのデータ

SLG 4個分のデータ(I2Cアドレス、各A/D値、熱起電力、温度)を扱うために、データのクラスを定義し、クラスを配列にしています。

図9. クラスの定義、配列化、I2Cアドレスの設定
画面

図10. モニタソフトの画面
実験

アルミ板付きPTCヒータを使用して、アルミ板の4点とプリント基板上の2点の温度を測定します。PTCヒータは常にON状態です。

図11. 実験装置

 アルミ板上の温度は、SSRに近い方が高い温度になっていました。基板上の温度はほぼ同じです。

図12. 実験結果
開発環境

Visual Studio 2026 Community Ver 18.10.3

WPFアプリケーション C#,  フレームワーク:  .Net 10.0

ScottPlot WPF 5.1

LibFT260.dll  v1.1.9  (x64 用) 

登録場所

 SLG47011:  https://github.com/vABCWork/ft260s_slg

モニタソフト:  https://github.com/vABCWork/ft260s_wpf

その他

従来までは同様なモニタソフトを、.NetFrameworkで作成していました。

今回の.Net10.0 では、デフォルトでShift-JISコードが有効でないため、Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); が必要でした。(この処理が無いと、履歴ファイル (CSV形式  Shift-JISコード)の読み出し時に例外発生となります。)

 

FT260SとSLG47011を使用した熱電対の温度計測(ハードウェア)

FTDI社製 FT260S(HID class I2C-USB 変換IC)とルネサスのSLG47011を使用して、熱電対(K-Type)で温度を計測する実験を行いました。

・資料:

資料1*1、資料2*2、資料3*3、資料4*4、資料5*5、資料6*6

図1. 構成図

増設ボードは、「RL78/G16とSLG47011を使用したリフロー実験ボード(2026-08-11)」(https://vabc.hatenadiary.jp/entry/2026/08/11/113519)と同じです。

FT260S-SLG47011ボード

図2. 回路図(1/2)

図3. 回路図(2/2)

図4. 部品レイアウトとパターン

図5. フットプリント

図6. 部品表

図7. 部品実装前

図8. 部品実装後

はんだ付け

SLG47011はリフロー、他は手はんだです。 USB-Type Cのコネクタの手はんだは、難しく、当初、USBケーブルを上下反転させると通信不可となりました。修正後、上下反転させても通信できるようになりました。(使用 こて先 PX-60RT-0.8D) 

図9. USB-TypeC はんだ付け(修正後)と配線パターン

 

 

*1:資料1 「FT260 Datasheet」 Ver1.6

*2:資料2 「AN_395  User Guide for LibFT260」

*3:資料3 「AN_438 FT260 I2C Example in C#」

*4:資料4「UMFT260EV1A Datasheet」Ver1.0

*5:資料5「AN_146 USB Hardware Design Guidelines for FTDI Ics」

*6:資料6 「SLG47011 Datasheet」

RL78/G16とSLG47011を使用したリフロー実験ボード( ソフトウェア 2/2 )

 リフロー制御、SLGのプログラム、モニタソフト、実験について書いてあります。

 

リフロー制御

SLGからのRUN信号でリフロー制御を開始します。

80℃まで昇温し、80℃近辺を60秒保持(soak)します。その後140℃まで昇温し、10秒保持します。その後、SV=20℃とします。

図1. リフローの動作

図2. 制御フロー

・PI制御の演算式は、「RX140を使用したDCモータ実験ボード(ソフトウェア 3/3)」(https://vabc.hatenadiary.jp/entry/2026/06/12/142525)と同じです。

SLG47011のプログラム

CPUボード上のSLG 
SLG47011(I2Cアドレス=0x08)

 CH0,CH1: 熱電対、CH3: サーミスタ、P15:Vref

図3. SLG47011 (I2Cアドレス = 0x08)
SLG47011(I2Cアドレス=0x20)

 CH0,CH1: 熱電対、PIN13 : RUN SW、PIN14 :STOP SW

図4. SLG47011 (I2Cアドレス=0x20)
増設ボード上のSLG
SLG47011(I2Cアドレス=0x28)

 CH0,CH1: 熱電対、CH3: サーミスタ、P15:Vref

図5. SLG47011(I2Cアドレス=0x28)
SLG47011(I2Cアドレス=0x30)

CH0,CH1: 熱電対

図6. SLG47011(I2Cアドレス=0x30)

モニタソフト

 PV,SV,MVと8chの熱電対の計測温度をモニタします。

図7. モニタソフト

登録場所

SLG47011:  https://github.com/vABCWork/reflow_slg

モニタソフト:  https://github.com/vABCWork/reflow_wpf

RL78/G16:  https://github.com/vABCWork/reflow_g16

・RL78/G16 10pin ファイル

図8. RL78/G16 ファイル一覧

実験

 今回実験に使用した、アルミパネル+PTCヒータ(400W, 200℃まで上がる)は、小さな出力でも急速に高温になりました。このため比例ゲイン(kg)を最小にして、積分時間(Ti)を長めにし、開始から少しずつMVを増加させています。SLG(I2Cアドレス=0x08)のCH0をPVとしています。

下図は、Kp=0.1, Ti=20[sec]の場合です。

図 9. リフローの実験(Kp=0.1, Ti=20[sec])

下図は、Kp=1.0, Ti=1[sec]の場合です。最初の出力(MV=100[%])で、120℃まで上がり、制御不良でした。

図10. リフローの実験(Kp=1.0.Ti=1.0[sec])

各SLG、全CHのモニタです。

図11. 全CHのモニタ

 

図12. 実験風景

 

RL78/G16とSLG47011を使用したリフロー実験ボード( ソフトウェア 1/2 )

機能とピン割り付け、  メインフロー、SLGとのIICA通信、タイマ、UARTについて書いてあります。

・資料

資料1*1、資料2*2

機能とピン割り付け

図1. CPU 機能とピン割り付け

図2. CPUボード上のSLG47011 I2Cアドレス=0x08

図3. CPUボード上のSLG47011   I2Cアドレス=0x20

図4. 拡張ボード上のSLG47011   I2Cアドレス=0x28

図5. 拡張ボード上のSLG47011   I2Cアドレス=0x30

CPUメモリマップとオプションバイト

図6. メモリマップとオプションバイト

スタートアップとメインフロー

ウオッチドックタイマ

オプションバイトで設定します。低速オンチップオシレータ (fIL )  = 15[KHz](typ)の場合、オーバフロー時間は、136[msec] となります。(資料1の、「表 10-3 オーバフロー時間とインターバル割り込み時間の設定」には、低速オンチップオシレータ(fIL )  = 17.25[KHz](max)の場合のオーバフロー時間 118[msec]が記載されています。)

図7. ウオッチドックタイマ
スタートアップとメインフロー

 

図8. スタートアップとメインフロー

SLG47011との通信

AD値読み出しと温度計算

RL78/G16のIICA(I2C)通信で、SLGのAD値を読み出し、熱電対で計測した温度を求めます。(SLGのADコンバータは14bit設定)

図9. 熱電対の温度計算(SLG A/D 14bit)

約25[msec]かかりました。

「RX140を使用したDCモータ実験ボード(ソフトウェア 2/3)」(https://vabc.hatenadiary.jp/entry/2026/06/12/142227)と同様な処理です。

テーブル参照で温度を求める方法もあります。(「ペルチェ制御用ボードの試作(熱電対による温度測定)」(https://vabc.hatenadiary.jp/entry/2022/01/22/165620)

IICA通信

I2Cのマスタ送受信 で、SLC47011から2byte 読み出します。

図10. SLGとのI2C通信(マスタ送受信)

 IICAの割り込み(INTIICA0)の発生条件は、

1)ストップコンディションの検出(SPIE0=1 設定)

2)9クロック(WTIM0=1)または8クロック(WTIM0=0)

   (データ受信時には8クロックにする。)

図11.  IICA割り込み発生タイミング

図12. IICA通信 フロー図(1/2)

図13. IICA通信フロー図(2/2)

図14. IICA通信 データ読みだし

図15. IICA通信 通信時間と間隔

タイマ・アレイ・ユニット

インターバルタイマモード

タイマ・カウンタ・レジスタ値は、初期値(タイマ・データ・レジスタ値)より、タイマ用クロック毎にカウント値が1減少、0になるとタイマ割り込みが発生します。

チャネル2を、1秒毎のインターバルタイマとして使用します。

(タイマ用クロック CK01 = 1.95 [KHz])

図16. インターバルタイマ
PWM機能

マスタチャンネル(ch0)でPWM周期、スレーブチャンネル(ch1)でDutyを設定します。

ダウンカウントにより、マスタチャンネルのカウント値が0になると、マスタの割り込み信号が発生し、タイマ出力端子はアクティブレベル(High)になります。スレーブチャンネルのカウント値=0になると、タイマ出力端子は、Lowになります。

図17 PWM波形の作成(1/2)

図18. PWM波形の作成(2/2)

12ビット・インターバル・タイマ

 200[msec]毎に割り込みが発生します。制御周期用です。

図19. 12ビットインターバルタイマ

シリアル通信

UART0(RXD0,TXD0)を使用しています。「RL78/G16 CPUボートの試作(静電容量式タッチセンサ)」(https://vabc.hatenadiary.jp/entry/2024/04/02/162725)と同じ処理です。(1M[bps],8bit,パリティ無し,1stop)

パソコン側からのコマンドに対してレスポンスを返します。

図20. モニタデータ読み出しコマンドとレスポンス

図21. パラメータ書き込みコマンドとレスポンス

 

*1:資料1「RL78/G16 ユーザーズマニュアル ハードウェア編」 Rev.1.30 2025.05

*2:資料2 「RL78/G12 シリアル・インタフェースIICA(マスタ送受信)」R01AN1371JJ0110 Rev. 1.10 2013.03.01

RL78/G16とSLG47011を使用したリフロー実験ボード(ハードウェア)

ルネサスのRL78/G16とSLG47011を使い、リフロー制御の実験を行いました。温度は8ch 熱電対(K型)でモニタします。

・資料

資料1*1、 資料2*2

 リフロー実験ボードは、CPUボードと増設ボードで構成されています。CPUボードには、RL78 G16(10ピン)とSLG47011(2つ)を取り付けています。1つのSLGは、熱電対 (2ch)で測定対象物の温度を測定し、サーミスタで基板上の温度を測定します。もう1つのSLGは、熱電対 (2ch)での温度測定と、スイッチの入力を行います。増設ボードは、SLGだけ取り付けています。熱電対が端子から抜けたり、断線した際には、各チャンネルに対応するALM LEDが点灯します。

SLGとCPUはI2Cで通信を行います。SLGからのAD値は、CPU側で温度に換算しリフロー制御を行います。USBシリアル変換ICを介して、パソコンで温度をモニタします。

(CPUボードと増設ボードは同一の基板で、増設ボードにはSLGだけつけています。)

図1. リフロー実験ボードの構成図

リフロー実験ボード

図2. 回路図(1/2)

図3. 回路図(2/2)

図4. 部品レイアウトとパターン

図5. フットプリント

フットプリントのJ2,J3,J4,J5は、フェニックスコンタクトの1725656用です。
支持用の突起物((ボス)があります。ここで使用している部品にはボスが無いので修正しています。

図6. 部品表

図7. 部品実装前(CPUボード、増設ボード 同一基板)

図8. 部品実装後(CPUボード)

図9. 部品実装後(増設ボード)

はんだ付け

SLG47011とFT234XDは、リフローです。

図10. SLG47011 リフロー前後

図11. FT234XD リフロー前後

顕微鏡で位置を確認してペーストします。SLG 2つの位置合わせが難しい。

図12. ステンシルと位置合わせ

プリント基板は10枚、表面処理はHASL(有鉛半田レベラー)、ステンシル、送料込みで約5000円でした。(Fusion PCB使用)

 

*1:資料1「RL78/G16 ユーザーズマニュアル ハードウェア編」 Rev.1.30 2025.05

*2:資料2「SLG47011 Datasheet」 R19DS0121EU0102, Rev. 1.02 Oct 30, 2025

RX140を使用したDCモータ実験ボード(ソフトウェア 3/3)

主にモータのPI制御、モニタソフト、実験について書いてあります。

 

制御

 動作モード

モータAの動作モードには、Run/Stop,Auto/Manualがあります。

2つのタッチキーで変更します。

モータBは、モードに関係なくボリュームBの操作で速度が変わります。

図1. モードと出力(モータA)
PID制御(PI制御)

・演算周期

制御演算周期は 1[msec], PWMの周期は、0.1[msec]。一般にモータ制御のPWM周波数は10[KHz]以上の様です。

・初期値

電源投入後、RUN,Autoモードにした場合、目標回転数(SV)= 2000[rpm]、ゲイン(Kp)= 0.5、積分時間(Ti)= 0.1[sec] としています。モータ制御モニタソフトにより変更可能です。

・ 実験装置の特性

モータAとモータBにプーリを取り付け、輪ゴムでつなげた状態で実験します。

Run,Manualモードで、ボリュームAを変化させて、速度を測定します。(モータBは停止状態。)モータAの印加電圧は12[V]です。

出力 MV[%]は、ボリュームAのA/D値に対応し、A/D値=4095ならば、MV=100%となり、 PWM周期=0.1[msec]の間、出力は常時ONとなります。

図2. 出力と回転速度

   実験装置の最高速度は4000[rpm](4000回転/1分)、1回転 15[msec]。

 レンジ 0~4000[rpm]の装置となります。制御演算する際に、目標値(SV)や現在値(PV)をレンジでスケーリングし、0.0~1.0の範囲で計算します。

・制御演算

速度型のPI制御(PIDのD動作無し)を行います。速度型PIDでは、制御演算毎に、変化分の出力を計算し、1演算周期前の出力に加算して、今回の出力にしています。

MVn = ΔMVn + MVn1 (今回の出力 = 変化分 + 前回の出力)

ΔMVn= Kp* ( ΔP_MVn + ΔI_MVn ) (変化分 = P動作の変化分 + I動作の変化分)

          = Kp* ( En - En1 ) + Kp* (1/ Ti )*En*Ts

 MVn1: 前回(1msec前)の出力, 

En:偏差(= SV – PV),

En1:前回の偏差,

Ts: 演算周期(=1msec),

Kp: 比例ゲイン ,

TI: 積分時間

 ManualからAutoに変更した際に、Manual時の出力(MVn1)を引き継ぐので、今回の偏差が小さければ、出力の変動も抑えられます。

(補足: 制御周期毎に、出力を偏差から直接計算する位置型PIDもあります。

MVn =  Kp{ En + 1/Ti*(En*Ts) + I_MVn1 }  ( I_MVn1: 1演算周期前のI動作による出力)

 https://vabc.hatenadiary.jp/entry/2022/02/15/163249  )

・速度型PID演算フロー

図3. 制御フロー(PI制御)

・積分時間
P制御の出力とI制御の出力を関連づけるため、積分時間を定義します。偏差 e での P動作出力 = Kp x e とすると、 Kp x e と同じ出力になるまでの時間を、積分時間(Ti)とします。

図4. 積分時間

モータ制御モニタソフトと実験

 モータ制御モニタソフトで、PI制御の実験を行います。

図5. モータ制御モニタソフト

・Vol1とVol2の動作

   Run- Manualモードで、Vol1によりモータAの速度を変更します。Vol2で負荷が変わります。

図6. 速度変更(Vol1)と負荷変更(Vol2) (Run-Manualモード)

・目標速度(SV)の変更

a) ゲイン(Kp)= 0.5, 積分時間(Ti)= 0.1[sec] の場合と、

b) ゲイン(Kp)= 0.5,積分時間(Ti)= 1[sec]を比較します。

Run-Manualモードで、PV=2000にして、パラメータ(SV等)を変更後、Run-Autoモードにします。

図7. 目標速度の変更

・負荷の変更

目標速度(SV)一定で、負荷を変更します。負荷が変動しても、PI制御で速度を維持します。Run-Autoモード、SV = 2000 設定。

図8. 負荷の変更

CTSUモニタソフト

CTSU計測値のモニタをするソフトです。

図9. CTSUモニタソフト

登録場所

RX140:     https://github.com/vABCWork/RX140_Motor

SLG47011:  https://github.com/vABCWork/RX140_SLG47011

モータ制御モニタ: https://github.com/vABCWork/RX140_Motor_WPF_Monitor

CTSUモニタ: https://github.com/vABCWork/RX140_CTSU_WPF_Monitor

ファイル一覧(RX140)

図10. ファイル一覧(RX130)

 (使用ROMは、7.8Kbyte、RAMは860byteでした。)

実験風景

図11. 実験風景

 

RX140を使用したDCモータ実験ボード(ソフトウェア 2/3)

RIIC通信、データトランスファーコントローラ、SCI通信、SLG47011のプログラムについて書いてあります。

 

SLG47011との通信

AD値読み出しと温度計算

RX140のRIIC(I2C)通信で、SLGのAD値を読み出し、熱電対で計測した温度を求めます。

「GreenPAK SLG47011 実験用ボードの試作(熱電対による温度測定)」(https://vabc.hatenadiary.jp/entry/2025/05/02/115751)ではパソコンで計算していましたが、今回は同じ処理をRX140で実施しました。計算時間は、80[usec]でした。

図1. SLGからのAD値読み出しと温度計算(A/D 12bit)
RIIC通信

I2Cのマスタ送受信 で、SLC47011から2byte 読み出します。

図2. SLGとのI2C通信コマンド

図3. RIIC通信フロー(1/4)

図4. RIIC通信フロー(2/4)

図5. RIIC通信フロー(3/4)

図6. RIIC通信フロー(4/4)

図7. RIIC通信の波形

データトランスファーコントローラ(DTCb)

 SCI通信の送受信に、データトランスファーコントローラ(DTC)を使用しています。

割り込み発生時に、CPUの代わりに専用のコントローラ(DTC)でデータ転送します。

データ転送用の情報が配置されたアドレスは、DTCベクタテーブル(ROM上)に書き込んでおきます。

受信データフル割り込み発生で、DTCはデータ転送の情報(転送元、転送先、サイズ等)読み出し、転送元のレシーブデータレジスタから転送先のRAM上の受信バッファへ転送します。1バイトの転送終了後、転送情報が更新されます。(ノーマル転送モード使用)

指定回数(ここでは 8byte固定)転送終了後、CPUの受信データフル割り込みが発生するように設定しています。

CPUの受信データフル割り込み処理では、DTC転送情報の再設定と、受信データのCRCのチェックを行います。

図8. DTCの流れ (受信データフル割り込み)

図9. DTCベクタテーブル

シリアルコミュニケーションインタフェース

パソコン側との通信用です。SCI1を使用しています。調歩同期、データ8ビット、パリティ無し、1-Stop、1.5Mbpsの設定です。

パソコン(PC)側からのコマンドに対してレスポンスを返します。

図10. モータモニタ用 コマンドとレスポンス

図11. モータモニタ パラメータ書き込み用

図12. タッチセンサモニタ用

図13. コマンドとレスポンス(CPU端子のRXD1,TXD1)

アラーム

アラームLEDは以下の条件で点灯します。

1) 独立ウオッチドックタイマのタイムアウトで、NMIに入った場合。

2) SCI通信の受信でCRCエラーの場合。

3) モータ電流の測定値が、300[mA]を超える場合。

4)熱電対の断線エラーが通知された場合。(SLG47011からのI/O出力)

SLG47011のプログラム

SLG47011側のプログラムです。GIOの入力処理(マイコンからの異常通知)は入っていません。

図14.  SLG47011のプログラム