フォーラムへの返信
-
投稿者投稿
-
いつも大変お世話になっております。
その後こちらでも原因解析した結果、以下の通り状況が変わりましたので、ご連絡致します。①TZ2がHighからLowになった時にPWM出力がHighのままで次の周期でPWM出力が丸々Lowとなる
→自己解決致しました。
(EPwm3Regs.TZCTL.bit.TZA=0b10;を加えたところ、TZ2がHighからLow時にPWMがHighからLowになりました。)②TZ2がHighからLowになった時にTZ2割り込みが毎回入らず、稀に入った時もHighからLowになってから7usの遅延の後、割り込みが入る
→TZ割り込みが入ったことを確認するための目印が違っていました。大変申し訳ございません。
目印を直して、割り込みクリアレジスタを見直したところ、TZ2がHighからLowになった時に毎回TZ2割り込みが入るようになりました。しかし、以下の問題が残っております。③割り込みが2回入ってしまう。
④割り込み発生までに遅延がある。なお、最新のコードは以下の通りとなります。
TZ_init(){
GpioCtrlRegs.GPAMUX2.bit.GPIO16=3;
GpioCtrlRegs.GPADIR.bit.GPIO16=0;//TZ割り込み設定 ch3
EPwm3Regs.DCTRIPSEL.bit.DCALCOMPSEL=0b0001;
EPwm3Regs.TZDCSEL.bit.DCAEVT2=0b011;
EPwm3Regs.TZCTL.bit.DCAEVT2=0b10; // EVT2発生時にEPwm3AをLowレベルとする。
EPwm3Regs.TZCTL.bit.TZA=0b10; // EVT2発生時にEPwm3AをLowレベルとする。
EPwm3Regs.TZEINT.bit.CBC=1; // EVT2発生時にTZEINT割り込みをイネーブルにする。
EPwm3Regs.TZSEL.bit.DCAEVT2=1; // EVT2のパルスバイパルストリップをEPwm3_TZINのイベントソースとしてイネーブルにする。
EPwm3Regs.DCFCTL.bit.PULSESEL=0b01; // 周期の最初でマスク開始
EPwm3Regs.DCFOFFSET=0; // マスクのオフセット期間は0
EPwm3Regs.DCFWINDOW=15; // 600:10us = x:240ns(マスク期間)より、 x = 14.4 ≒ 15
EPwm3Regs.TZCLR.bit.DCAEVT2=1;
EPwm3Regs.TZCLR.bit.CBC=1; // DCAEVT2の状態をクリア(TRM P253)
EPwm3Regs.DCACTL.bit.EVT2SRCSEL=0; // とりあえずフィルターは使用しない
EPwm3Regs.TZFLG.bit.DCAEVT2=0;
PieCtrlRegs.PIEIER2.bit.INTx3=1; // PIEペリフェラルレベルのイネーブル設定 EPwm3_TZINTはINT2.3
}
// INT2.3
interrupt void EPWM3_TZINT_ISR(void) // EPWM-3
{
DINT; //グローバル割り込み禁止
EALLOW; //書き込み保護解除
EPwm3Regs.TZCLR.all=0x007F;
PieCtrlRegs.PIEACK.all|=PIEACK_GROUP2; // PIEグループ2のPIE→CPUへの通知を許可
//デバッグコード
GpioDataRegs.GPACLEAR.bit.GPIO18=1;
GpioDataRegs.GPASET.bit.GPIO18=1;
//ここまでデバッグコード
IER|=M_INT2;
EDIS; //書き込み保護設定
EINT; //グローバル割り込み許可
}また、具体的な波形は添付の通りとなります。
大変恐縮ではございますが、ご対応何卒宜しくお願い致します。
- この返信は5 年、 6 ヶ月前に amatsu1 さんが編集しました。
Attachments:
いつも大変お世話になっております。
早急なご対応、誠にありがとうございます。
GPAMUX2.bit.GPIO16 = 3; としたところ、TZ2割り込みに入るようになりました。
ありがとうございました。ただし、以下の問題が解消されませんでした。
①TZ2がHighからLowになった時にPWM出力がHighのままで次の周期でPWM出力が丸々Lowとなる
②TZ2がHighからLowになった時にTZ2割り込みが毎回入らず、稀に入った時もHighからLowになってから7usの遅延の後、割り込みが入る以上、ご対応何卒宜しくお願い致します。
- この返信は5 年、 6 ヶ月前に amatsu1 さんが編集しました。
いつも大変お世話になっております。
ご教示いただいた内容より、基板改造中に起きたマイコンの故障と結論付けることができました。早急なご対応、誠にありがとうございました。
ご質問の件、回答させていただきます。
・問題はTI社の評価ボード(LaunchpadやcontrolCARD)でも発生しますでしょうか。⇒TIボードではないですが、弊社の同じ基板で手付かずのものではソフト書き込み・デバッグが可能です。
・TMS320F28027への電源供給(電圧など)は安定しておりますでしょうか。⇒できております。
・クロックは正常に出力されて、TMS320F28027へ供給できておりますでしょうか。→他のご質問がクリアになってから確認致します。
・Boot ModeをSCI-Boot modeまたはWait Modeに変更してから電源を投入し、その後デバッガを起動できますでしょうか。
→Waitモードに変更する為、弊社基板上で、TRST端子を外付けされているプルダウン抵抗のショートによりGnd接続・GPIO34をGnd接続としてWaitモードにしましたが、「その後デバッカを起動」とは具体的にはどのようなことを指しておりますでしょうか。
・デバッガ起動時に、TMS320F28027のTRSTは正しく動作しておりますでしょうか。(LowまたはHighに張り付いていないでしょうか)→デバッカ起動時とは”CCS上でF11を押した際”という認識でよろしいでしょうか。。
・デバッガ起動時または未起動時にXRS信号はどのような挙動になっていますでしょうか。→上記と同じご質問です。内容承知致しました。
早急なご対応、誠にありがとうございました。早急なご対応、誠にありがとうございました。
①について
早速、実施したところ、3.7us→3.0usとなり、かなり改善されました。
ありがとうございました。
ちなみに、演算速度を速める他の方法として、変数のIQ型のグローバル宣言の部分について、
16bitシフトした値をlong型で宣言した方が速くなるような気がしているのですが、
それに関しまして見解をご教示願います。②について
内容承知致しました。ありがとうございました。以上、宜しくお願い致します。
いつも大変お世話になっております。
TMS320F28027を使用し、実際に動かす段階に入りました。
その中で不明点が出てきましたので、お手数ですがご教授願います。①デバッグ時にHRPWMのキャリブレーション部分でフリーズしてしまうのですが何故でしょうか。
なお、本部分をコメントアウトするとHRPWMが正常に動作します。
また、HRPWMを動作させてからキャリブレーションをするよう順序を変更してもフリーズは起きてしまいました。
while(HR_Calib_status==SFO_INCOMPLETE){
HR_Calib_status=SFO();
}②PieVectTable.XINT1 =”自分でつけた命令名”;
としておいてから、
interrupt void “自分でつけた命令名”(void){}
を定義しておりますが、本割り込みに入らずに、
DSP2802x_common/sorce/DSP2802x_Default.cのinterrupt void XINT1_ISR(void)
{}に入ってしまいます。何故でしょうか。③ブレイクポイントの数ですが、1つ以上打つとエラーが出てしまいます。増やせないでしょうか。
④リンカコマンドファイルとしてF28027.cmdを指定している状態で、
#pragma CODE_SECTION(Xint1Isr,”.TI.ramfunc”);としてから、
memcpy(&RamfuncsRunStart,&RamfuncsLoadStart,(Uint32)&RamfuncsLoadSize);
とたところ、RamfuncsLoad Sizeが外部で宣言されてないというようなエラーが出た為、
以下のように変えました。
extern Uint16 RamfuncsLoadEnd;→Uint16 RamfuncsLoadSize;
エラーが出ずに、正常に動作しているように見えるのですが、問題ないでしょうか。
なお、CCS8.2を使用しております。⑤GPIOの内部プルアップ抵抗値 及び内部プルアップ抵抗周りの具体的なIC内部回路図などございますでしょうか。
以上、宜しくお願い致します。
- この返信は5 年、 7 ヶ月前に amatsu1 さんが編集しました。
お世話になります。
ご対応いただき、誠にありがとうございます。
参考にさせていただきます。以上、宜しくお願い致します。
お世話になります。
早急なご対応、誠にありがとうございます。内容確認させていただきます。
以上、宜しくお願い致します。
お世話になります。
お手数ですが、TM320F28027について以下の6点について追加でご教示願います。①>TMS320F28027のTUEについては、
TUEとは何でしょうか?②>起動時に一度Device_cal関数を実行した場合では、±45.0LSBとなります。リファレンス入力も含めて周期的なキャリブレーションを実施いただくことで、±9.2LSBとなります。
TRM(テクニカルリファレンスマニュアル)を拝見しますと、P54の中ほどにDevice_calはBoot時と通常動作時に自動的に呼び出されるとございます。すなわち、特に何もせずとも±9.2LSBを実現できると考えて宜しいでしょうか?③HRPWM使用時、PCLKCR0のHRPWMENCLKは1にしなくても良いのでしょうか?
④VSSAとVSSが接続かつVDDAとVDDIOが接続の状態でADを使用するとき、internal reference voltageとexternal reference voltageのどちらが良いでしょうか。
⑤TRM P143,144のPIE MUXed Perpheral Interrupt Vector Tableにて、ADCINT1,2が違うアドレスで2箇所あるのは何故でしょうか。
⑥TRM P333にはHRPWMの使用推奨条件が250kHz以上と記載がありますが、ソフトウェア開発入門 P126には60kHz以上と記載があります。どちらが正しいでしょうか。
以上、宜しくお願い致します。
お世話になります。
ご対応いただき、誠にありがとうございます。Q1.ご教示いただき、ありがとうございました。勘違いの部分もあり、ご迷惑をお掛けして申し訳ありませんでした。
ご教示いただいた内容を踏まえますと、Ccmpに流れる電流については添付のような認識で宜しいでしょうか?
また、普通のアンプではなく、gmアンプを使われている理由につきましてもご教示願います。Q2.承知致しました。ありがとうございました。
以上、宜しくお願い致します。
Attachments:
お世話になります。
回答いただき、誠にありがとうございました。
参考にさせていただきます。残件につきましてもお手数ですが、ご対応の程、何卒宜しくお願い致します。
以上、宜しくお願い致します。
お世話になります。
TI様へご確認いただき、ありがとうございます。
>IS端子は外付けNMOSFETに流れ込む電流値をモニターするのに使われます。
IS端子は確かにOCPとしての機能もありますが、OCPではなく、「Vcmpとの比較としてIsを使った理由」についてお聞きしております。
言い換えますと、
「Vcmpとの比較に単純な三角波ではなくIsを使った理由」をご教示いただきたいです。ご説明不足な点もあり申し訳ありませんが、ご対応の程、宜しくお願い致します。
いつもお世話になっております。
■以前回答いただいた内容に関するご質問
1.Isを使っている理由について、スロープ補償の為との回答をいただきましたが、
スロープ補償は添付の通り、T_offの区間に補償してやるものと存じおり、
LM3424もそうであると推測されます。
Isを使っている理由が本当にスロープ補償なのか今一度ご確認を宜しくお願い致します。2.Error amp(誤差アンプ)のソース電流とのことですが、gmアンプの-,+間の電位差や、
トランスコンダクタンス20mA/Vを使っていないのが不可解に感じてしまいます。
こちらも今一度ご確認をお願い致します。■新規のご質問
①LM3424にはTon_MINはデータシートに記載がありますが、Ton_MAXは記載がありません。
100%まで可能でしょうか。また、Ton_MAXを設けない理由は何でしょうか。以上、お手数ですが、何卒宜しくお願い致します。
Attachments:
内容承知致しました。
ご対応、ありがとうございました。 -
投稿者投稿