デバイス(STM8)
- SPIの通信データをCRCでチェックできますか?
- SPIには独立したCRC生成/検査機能があります。その生成多項式は転送データ長に合ったCRC-8が使えます。CRC-8が固定の製品もありますが、STM8Lシリーズなどでは、ユーザが任意の生成多項式を設定できます。
- 内蔵温度センサーを使って、マイコンの周辺温度を測定することはできますか?
- STM8Lシリーズには、温度センサーが内蔵されています。シリコン上の温度を電圧に変換して、内蔵ADCで測定することが可能です。あくまで、シリコン上の温度を測定するものです。マイコン内部のシリコン上の温度と周辺温度は様々な要因で1対1に対応しませんので、マイコンの周辺温度の測定には適しません。したがって、マイコン周辺温度の測定に用いることは、お勧めしていません。使用例としては、マイコンの動作温度をチェックするような用途でお使いいただけます。
- VDDA(Vref+)の電圧値をチェックする良い方法はありますか?
- STM8Lシリーズだけですが、1.2VのVREFINT電圧があります。ADCの入力チャネルに割り当てられている1.2VのVREFINT電圧は、ADCの参照基準電圧ではありません。ADCの測定値の検証用または調整用に使用するために内蔵されています。これを使うと、VDDA(Vref+)の電圧を確認することができます。VREFINTの1.2VはBGRを使って生成していますのでVDDA(Vref+)の影響を受けずに常に1.2Vです。もし、VDDA(Vref+)の電圧が減少した時に、この1.2Vを測定すると、通常の時よりも大きな変換値が出てきます。その変換値と1.2Vの比を計算してVDDA(Vref+)の電圧値を計算することが出来ます。
- 発熱計算は、どのようにすればいいのでしょうか?
- マイコンは消費する電力で発熱します。消費電力から、どのくらい発熱し、マイコンの周辺温度からジャンクション温度が何度になるかの計算式は、各製品のデータシートの「Thermal characteristics」の章に記載されています。発熱に関する熱抵抗の値はパッケージ毎に異なります。具体的な値は「Thermal characteristics」の表に記載されています。周辺温度の最大値TAmaxとジャンクション温度の最大値TJmaxのスペックは、「General operating conditions」の表に記載されていますので、このスペック内でご使用ください。
- 発振回路LSE用の水晶振動子の仕様に条件はありますか?また、推奨振動子はありますか?
- LSE用の水晶振動子は等価直列抵抗 (ESR:Equivalent Series Resistance) が小さい製品をお使いください。ESRが大きいと、損失が大きくなり、発振特性が安定しない発振不良につながります。ESRの値は、各水晶振動子のカタログに記載されております。各水晶振動子メーカ殿にSTM8用としてマッチングを確認していただいた水晶振動子がいくつかあります。アプリケーションノートAN2867の「Some recommended crystals for STM8AF/AL/S microcontrollers」に記載されていますので、参考にしてください。ただし、発振特性はプリント板の寄生容量や抵抗にも依存しますので、お客様のプリント板にマイコンと水晶振動子を付けた状態で、水晶振動子メーカにマッチング評価を依頼する事をお勧めいたします。
- GPIOが未使用の場合の処理は、どうすれば良いですか?
- 未使用のGPIOは電位を固定し、ノイズ等で端子の電位が変動しないようにしてください。
方法としてはいくつかあります。
①入力ハイインピーダンスに設定して、10kΩ~100kΩ程度のプルアップ抵抗やプルダウン抵抗で 電位を固定しておく
②プルアップ抵抗やプルダウン抵抗が内蔵されているGPIOもあります。 これらを利用してプルアップやプルダウンを行う。
③出力端子に設定して、”High”または”Low”を出力しても電位は固定できますが、万が一、事故等で端子が電源と短絡したときに大電流が流れて、マイコンが破壊することが考えられますので、抵抗を介することをお勧めします。 この他に、GPIOの入力バッファをOFFして、ノイズ等による端子電位の変動が、マイコン内部に入ることを防ぐことも出来ます。
④アナログ端子と兼用になっているGPIOはアナログ端子に切り替えます。するとGPIOの入力バッファは OFF(入力信号を遮断)します。
- GPIOの立ち上がり、立下りスピードを変更することはできますか?
- 可能です。例えばSTM8L15xの場合、2MHz / 10MHz相当の傾きに設定可能です。
- LCDドライバー(Lシリーズに搭載)の駆動能力を調整することはできますか?
- STM8Lには、LCD電源用に内蔵ブースターを搭載していますので、ユーザが外部電源を準備する必要はありません。もちろん、外部電源も使用可能です。また、分圧用の内蔵抵抗を搭載していますので、VLCDに印加された電圧を直接分圧できます。内蔵抵抗には抵抗値の大きなRHと小さいRLと2種類があるので、LCDパネルの大きさ(負荷電流)によって抵抗値を選択することができます。
- WFI/WFE命令で低消費電力モードに入りますが、WFIとWFEで何が違うのでしょうか?
- WFIはWait For Interrupt(割り込み待ち)の略です。WFEは、Wait For Event(イベント待ち)の略です。WFIの場合、マイコンが低消費電力モードから復帰する際に、割込みが認識されて、割り込み処理が始まります。WFEの場合は低消費電力モードからから復帰する際に、、割り込み処理が行われずに、低消費電力モードからの復帰だけが行われます。したがって、低消費電力モードから復帰するときに、WFIを使うかWFEを使うかを、低消費電力モードに入る際に、ユーザーがコントロールする必要があります。
- ウォッチドッグタイマを電源投入と同時にスタートすることはできますか?
- STM8シリーズには基本的に2種類のウォッチドッグタイマが搭載されています。独立型ウォッチドッグタイマ(IWDG)とウインドウウォッチドッグタイマ(WWDG)です。IWDGは低速の内蔵発振回路LSIをクロック源とし、WWDGはシステムクロックをクロック源とします。どちらもFlashのオプションバイト(ハードウエア)で電源投入と同時にスタートできます。また、ソフトウエアでスタートすることもできます。
- タイマ1の出力信号を、ソフトウエアで強制的にHigh/Lowにすることはできますか?
- 出力モード(TIM1_CCMRi レジスタの CCiS ビット=00)では、出力比較レジスタとカウンタの比較とは関係なく、ソフトウェアによって直接、各出力比較信号を強制的にハイまたはローレベルにできます。出力比較信号を強制的にアクティブレベルにするには、対応する TIM1_CCMRi レジスタの OCiMビットに 101 を書き込みます。OCiREF は強制的にハイになり(OCiREF は常にアクティブハイ)、OCi 出力は CCiP の極性ビットに応じて強制的にハイまたはローになります。たとえば、CCiP = 0(OCi アクティブハイ)の場合、OCi は強制的にハイになります。OCiREF 信号は、TIMx_CCMRx レジスタの OCiM ビットに 100 を書き込むことによって、強制的にローにできます。
- タイマのPWM信号を出力している最中に、Duty比を変更できますか?
- タイマのPWM出力の周期は自動再ロードレジスタで決まり、Duty比はキャプチャ/コンペアレジスタ(CCRx:xはch番号)で決まります。CCRxは一旦設定して、PWM出力が始まった後でも、ソフトウエアで変更可能で、変更した値は即有効になります。書き変わった後、新しいCCRxの値とカウンタの値が一致したときに、PWMの値が(H⇔L)変化します。したがって、PWM出力の最中でもCCRxを書き換えることによってDuty比をソフトウエアで自由に変更することできます。
- リセット端子に外部リセットICを接続したら、正常に動作しなくなりました。原因は何が考えられますか?
- STM8のリセット端子(NRST)は、内部リセットの出力信号も兼ねていますので、NMOSオープンドレイン構造になっています(各製品のマニュアル参照)。そのため、外部にリセットICをつないで、CMOSプッシュプルでドライブすると、NRST端子がリセットICのPMOSでドライブされて、内部リセットの際にNRST端子がLowにならず、リセットがかからない場合が発生します。外部リセットICをお使いの際は、NMOSオープンドレイン出力でNRSTをドライブするようにしてください。
- 消費電流(STM8の実際の値)を簡単に測るボードはありますか?
- STMにはDiscovery8というスターターキットが準備されています。 サンプルプログラムをWebからダウンロードして、これらのスターターキットに書き込めば、マイコンはご希望のモードで動作します。Discoveryには電流測定用のピンが設けられていますので、このピンに電流計をつなげば、簡単に電流値が測定できます。
- 消費電流を容易に計算できるツールはありますか?
- STM8CubeMXは、PC上で動作するSTM8の設定ツールで、設定レポートを生成できるグラフィカル・ツールです。その機能のひとつに消費電流を計算できるシミュレーション機能も含まれます。STM8CubeMXを開けていただき、デバイスを指定して次に進みます。「Pinout」タブの同じ並びにある「Power Consumption Calculator」タブを選択します。左側に使用環境(電源電圧、動作温度等)、電源の種類(電池の種類、容量)を入力し、メイン画面で、動作周波数、使用する周辺機能等を入力すると、自動的に消費電流を計算します。各低電力モードにも対応しています。さらに、電池の容量にしたがって、電池の寿命計算も可能です。低電力アプリケーションには非常に便利な機能ですので、是非ご活用ください。
- 電源のデカップリング(バイパス)コンデンサは、どのように選定すればよいですか?
- マニュアルやデータシート、アプリケーションノートの中に、電源のデカップリングコンデンサの種類、 装着箇所、静電容量について記載されています。これらの説明にしたがって選定してください。 基本的に、コンデンサの種類としては、小型で周波数特性に優れ、かつインピーダンスも低いセラミック コンデンサやタンタル電解コンデンサが適しています。配置位置は極力マイコンの電源端子に近い場所を 選んでください。
- 発振回路HSIのデータシートに記載されている周波数誤差は、製品にマイコンを実装した後でも変わりませんか?
- データシートに記載されているHSIの周波数誤差は、デバイスの出荷時にキャリブレーションされた値です。ご使用の際、実装時のリフロー等で、熱ストレスや機械的ストレスがデバイスにかかった場合、また、温度や電源電圧でもHSIの周波数は変化いたします。HSIの周波数精度が必要な用途では、ソフトウエアで随時キャリブレーションを行ってください。