フォーラムへの返信
-
投稿者投稿
-
ご確認のほど、よろしくお願いいたします。
なお、はじめに投稿いただいたフォーラムは、インタフェース関連のデバイスフォーラムとなっております。
先程、こちらのスレッドを、マイコン->C2000のフォーラムに移動いたしました。
以上、よろしくお願いいたします。
お問い合わせいただきました件ですが、以下の点をご確認いただけますでしょうか。
1.パワーONおよびOFF時のXRS信号について
TMS320F28335のパワーONおよびOFF時のXRS信号の制御について、以下の記載がございます。
TMS320F28335データシート(SPRS439) 5.9.2 Power SequencingThere are some requirements on the XRS pin:
- During power up, the XRS pin must be held low for tw(RSL1) after the input clock is stable (see Table 5-7). This is to enable the entire device to start from a known condition.
- During power down, the XRS pin must be pulled low at least 8 μs prior to VDD reaching 1.5 V. Meeting this requirement is important to help prevent unintended flash program or erase.
こちらの条件は満たしておりますでしょうか。
2.電源ON後のXINTF設定に関するErrata
TMS320F28335のエラッタ(SPRZ272)に電源ON後のXINTFモジュールの初期化時にCPUがハングアップするという問題点が記載されております。
Advisory Memory: Possible Incorrect Operation of XINTF Module After Power Up
こちらのワークアラウンドは対応頂いておりますでしょうか。
ご確認のほど、よろしくお願いいたします。
dengensekkeiGTさん
ご確認ありがとうございます。
ご認識の通りで、間違いはございません。
以上、よろしくお願いします。
dengensekkeiGTさん
C2000では、GPIO端子の入力から直接割り込みを発生させることが可能です。
TMS320F28027では、GPIO0からGPIO31のうち、3つを割り込みトリガとして使用できます。
下図は、TMS320F2802xのSystem Control and Interrupt Reference Guide(SPRUFN3)に記載されるGPIOブロック図になります。(p.68 Figure 45. GPIO0 to GPIO31 Multiplexing Diagram)
この図の赤枠が、GPIOから割り込みを発生させるブロックになります。
GPIOXINTnSELレジスタ(n=1,2,3)の設定により、XINT1/XINT2/XINT3の割り込みソースを指定できます。
XINTnCRレジスタ(n=1,2,3)でGPIOのエッジ選択(立ち上がり、立ち下がり、両エッジ)と、GPIO割り込みの有効化を設定します。(XINTnCRレジスタはPIEの機能になります)TZ端子による割り込みですが、PWM機能にトリップが発生したときの割り込みになりますので、GPIO端子の割り込みとして使用することは、おすすめいたしません。
Caputure機能はご認識の通り、端子のパルス間隔を測定する機能ですので、IO割り込みとしては使用することはできません。
以上を参考に、設計を行っていただければと思います。
edokkさん
大変申し訳ありませんが、添付いただいたLogファイルがシステム上のエラーによりアップロードできておりませんでした。お手数ではございますが、拡張子を.logから.pdfへ変更していただき、再度アップロードしていただけないでしょうか。
また、インストールに関しまして、何点か確認させてください。
- 今回インストール時に実行いただいた実行ファイルは Online Installer / Offline Installer のどちらをお使いでしょうか。
セキュリティソフトやファイアウォールの影響があるため、Offline Installserをおすすめしております。
ダウンロードに時間はかかりますが、インストール実行時間は、Offlineのほうが早くできます。 - インストール先のフォルダ名に全角文字および’$’が含まれていないでしょうか。
含まれている場合は、含まれないフォルダ(できれば、デフォルトの”C:\ti”)でインストールをお願いいたします。 - CCSのProxyはデフォルトではOSに設定されている内容が反映されるようになっております。
マニュアル設定が必要な環境なのでしょうか。
よろしくお願いします。
回答が遅くなり、大変申し訳ありませんでした。
ご確認いただいている手順は、FLASHに格納されるRAMで実行するプログラムコードを、RAMにコピーするための方法になります。
RAM実行で検証されているプログラムをFLASHからの実行(FLASHへの書き込み)を行うためには、以下の手順が必要となります。
●リンカコマンドファイルの変更
プログラムを配置は、リンカコマンドファイルというメモリ配置を定義したファイル(拡張子 .cmd)の内容に従い行われます。C2000wareでは、RAM実行用のコマンドファイルと、FLASH実行用のコマンドファイルが以下のフォルダに用意されております。
C:\ti\c2000\C2000Ware_1_00_05_00\device_support\f2837xs\common\cmd
今お使いのリンカコマンドファイルと対になるFLASH用のリンカコマンドファイルをプロジェクトから指定してください。
例えば、”2837xS_Generic_RAM_link.cmd”をお使いの場合は、”2837xS_Generic_FLASH_link.cmd”が対象となります。リンカコマンドファイルの指定方法には以下のいづれかの方法があります。以下の方法を複数指定するとリンクエラーとなりますので、ご注意ください。
- プロジェクトのGeneralプロパティから指定
プロジェクトのプロパティ画面にて、General設定の「Linker command file」にコマンドファイルを指定します。
- プロジェクトのLinkerプロパティから指定
プロジェクトのプロパティにて、Build – C2000 Linker – File Search Path画面の「Include library file or command file as input」リストにコマンドファイルを指定します。
- プロジェクトのファイル一覧に追加
プロジェクトのソースコードと同じように、プロジェクトの中にリンカコマンドファイルをコピーすることで、そのコマンドファイルが参照されます。複数存在する場合、使用しないファイルは右クリックメニュー → Resource Configurations → Exclude from Build..から参照しなくすることができます。
こちらの設定を行ってBuildしたオブジェクトで、デバッグを実行していただきますと、デバッグ開始時にFLASHへ書き込みを実行します。
なお、ご参照頂いております、JAJA230aの記載につきましては、古いコンパイラを対象としており、最新のコンパイラでは、
#pragma CODE_SECTION(CpuTimer0ISR, “.TI.ramfunc”);
として頂く必要があります。ツール(CCS)およびF2837xxの使い方につきましては、英語版になりますが以下のサイトにトレーニング資料が用意されておりますので、こちらも合わせてご利用いただければと思います。
http://processors.wiki.ti.com/index.php/C2000_Multi-Day_Workshopトリップ信号(/TZ)端子につきましては、VIL (Low-level input voltage:max 0.8V)以下になると、PWMがOFFになります。
PWMを停止するときのPWM端子の状態につきましては、ePWMモジュールのTrip-Zoneサブモジュールの設定にて、以下の設定が可能です。
– High固定
– Low固定
– ハイインピーダンス
この状態設定は、ePWMモジュール単位で制御するEPWMxA, EPWMxBそれぞれに設定可能です。また、トリップの復帰につきましては、PWM周期で復帰(Cycle-by-Cycle) と、ソフトウェア設定で復帰 (One-shot)のどちらかを設定できます。
Cycle-by-Cycleを設定されている場合、復帰タイミングで/TZ信号がActive(Low)の場合は継続してトリップ状態を維持します。トリップ機能の詳細につきましては、テクニカルリファレンスマニュアル(SPRUH18)の「3.2.7 Trip-Zone (TZ) Submodule」に記載されておりますので、ご確認いただければと思います。
satoshiさん
こんにちは。XDS110 JTAGデバッグプローブのTI14ピン アダプタのコネクタにつきましては、以下のサイトに纏められております。
形状につきましては、上記サイトに記載される各コネクタメーカのサイトよりご確認いただけます。
以上、よろしくお願いいたします。
1点目はPiccolo F28035からPiccolo F28004xに切り替える際は容易に出来るのでしょうか。
Piccolo F28035とPiccolo F28004xはポート設定等の変更はあるとは思いますが
Piccolo F28035とPiccolo F28004xは互換性があると考えています。Poiccolo F28035とPiccolo F28004xとの差分につきましては、以下の資料にまとめられていますので、ご一読いただけますでしょうか。
The TMS320F28004x Microcontroller: A Comparison to the TMS320F2806x and TMS320F2803x Microcontrollers
http://www.tij.co.jp/jp/lit/an/sprt731a/sprt731a.pdf差分が同資料の「Table 1. Device Matrix」にあります。
代表的な差分としては、以下のものになります。
・ADC
F28035 : 2つの sample / hold 回路を持つモジュールを1つ搭載
F28004x : 1つの sample / hold 回路を持つモジュールを3つ搭載・Analog comparator
F28035 : 1つのコンパレータ(アナログ入力)に対し、比較回路が1つ搭載
F28004x : 1つのコンパレータ(アナログ入力)に対し、比較回路が2つ搭載・GPIO
F28004x:Trip用信号、割り込み用信号を内部で接続先を変更できます(X-BAR機能)上記3点については、互換性がありませんので、切替時には修正が必要となります。
PWMも変更されていますが、F28035からF28004xへは互換性がありますので、基本的にはそのままお使いいただけます。
2点目に今回このキットをベースにインバータ回路を追加して動作させたいと考えております。
私が確認した限りだと、PWM出力やADポートは余っていると思ったのですが相違ないでしょうか。
(PFCのプログラムにインバータプログラムを追加したいと考えております。)PFC機能で使用するPWM出力、ADポート以外にも使用可能なPWM/ADピンはありますので、インバータ回路を追加いただいて、同じICで制御いただくことは可能です。
TMDSILPFCKITの他にも、TMDSHVMTRPFCKITというキットがありまして、このキットでは、PFC回路とインバータ回路が一つに収められており、TMS320F28035で両方の回路を制御・評価可能になっています。
http://www.tij.co.jp/tool/jp/TMDSHVMTRPFCKITcontrolSUITEにも、C:\ti\controlSUITE\development_kits\HVMotorCtrl+PfcKit_v2.1にPFC+インバータ(ACIセンサーレス制御)のサンプルコードがありますので、参考にしていただけるかと思います。
ご確認のほど、お願いいたします。
7B-20.000MEEQ-Tのデータシートを確認しましたが、標準的な負荷容量は10pFですが、10pFに限定しているものではないと考えております。
TMS320F280049のデータシートにありますように、発振子メーカーにアプリケーションボードにて調整していただくことを推奨しております。
その結果、メーカー推奨ではない15pFが使用されております。
本デバイス向けのクロックについて、推奨品はございません。参考デザインとして、次の評価ボードがございます。
C2000 リアルタイム制御開発キット向け F280049M 検証用キット
このボードでは、次のクロックが使用されております。
TXC社製 7B-20.000MEEQ-T
C2000wareに回路図・BOMリストなど収録されておりますので、ご確認ください。
ご確認いただいておりますTechnical Reference Manual(TRM)のバージョンが古いようですので、最新版(Rev.D / Literature Number: SPRUHM9D October 2014–Revised September 2017)をご参照ください。以下、Rev.Dをベースに回答します。
TMS320F28075では、TRIPのソース信号をフレキシブルに設定できる機能として、EPWM X-BAR機能が追加されました。EPWM X-BAR機能の詳細につきましては、TRMのp.1012 7.2.1 ePWM X-BARに記載されております。
EPwm1Regs.DCTRIPSEL.bit.DCAHCOMPSEL = TRIPIN4; とするならば
コンパレータ1と接続するには、以下のような解釈でよいのでしょうか、
EPwmXbarRegs.TRIP4MUX0to15CFG.bit.MUX0 = 1; /* MUX0を有効 */
EPwmXbarRegs.TRIP4MUXENABLE.bit.MUX0 = 00;
/* 4種類の信号から選択 Table 12-13. ePWM X-BAR Mux Configuration Table */
/* 00は 選択種別の1なのでCMPSS1.CTRIPOUTH コンパレータの正論理出力 */コンパレータ1をPWMのトリップ信号として使用する場合は、ご提示いただいた設計で基本的に問題ありません。ただし、ご提示いただいたレジスタに一部誤りがあるようですので、以下の通りの設定をお願いいたします。
・MUX0を有効にする
EPwmXbarRegs.TRIP4MUXENABLE.bit.MUX0 = 1;
TRIP4信号出力に、MUX0を有効にするには、TRIP4MUXENABLEレジスタのMUX0ビットを1に設定します・TRIP4のMUX0にコンパレータ1出力を設定する
EPwmXbarRegs.TRIP4MUX0to15CFG.bit.MUX0 = 0;
MUX0に、Table 7-2. ePWM X-BAR Mux Configuration Table よりコンパレータのCTRIPHを使用します。なお、TMS320F28075のコンパレータ機能(CMPSS)では、1モジュールにつき2つのDACが搭載されており、一つのアナログ入力に対し、2つの比較を同時に実行します。この機能によりヒステリシス機能を提供しております。このCMPSSの2つの出力がそれぞれCTRIPOUTH, CTRIPOUTLとなります。これらの信号は正論理・負論理ではありませんので、ご注意ください。
コンパレータ機能もTMS320F28069より高機能となっていますので、CMPSS機能の説明についてもご一読ください。コンパイラの標準インクルードパスが、CCSのインストールパスと異なった定義がされているために、このエラーが発生しているものと思われます。
-include_path=”C:/ti/ccsv8/tools/compiler/ti-cgt-c2000_18.1.1.LTS/include”
-include_path=”C:/ti/ccsv6/tools/compiler/ti-cgt-c2000_6.4.6/include”プロジェクトのプロパティより、インクルードパスの設定をご確認ください。
●インクルードパスの確認方法
- プロジェクトの右クリックメニューから”Properties”を選択して、プロジェクトのプロパティ画面を表示します
- 左側のリストから、”Build” – “C2000 Compiler” – “Include Options”を選択して、インクルードパスの設定画面を表示します
- 「Add dir to #include search path」を確認します
ここで、「Add dir to #include search path」の中から、次の2点を確認ください。
- ”ti-cgt-c2000_6.4.6”へのインクルードパスは削除してください。
- ”ti-cgt-c2000_18.1.1.LTS”へのインクルードパスについては、パスを記述されている場合は、CCSのインストールパスに合わせて修正してください。環境変数($CG_TOOL_ROOT)を使用して指定されている場合は、プロパティのLinked Resource画面より$CG_TOOL_ROOTの設定を確認のうえ、異なっている場合は、修正してください。
ご確認のほど、よろしくお願いします。
C2000wareの最新版v1.00.04.00での動作確認を進めておりましたが、フラッシュ書き込みファームウェア(flashapi_ex2_sci_kernel.txt)およびアプリケーション(led_ex1_blinky.txt)に修正を行わないと正しくSCIブートが終了できません。お手数ですが、以下の修正を加えていただき、ご確認ください。
flashapi_ex2_sci_kernel.txtとled_ex1_blinky.txtをバイナリエディタで開いていただき、2バイト目に0x0Dを挿入してください。
修正前) 02 0A AA 08 ….
修正後) 02 0D 0A AA 08 ….※既に、ファイルの先頭のデータが、02 0D 0Aとなっている場合は、修正の必要はありません。
ご確認のほど、よろしくお願いいたします。
serial_flash_programmerはコンソールアプリケーションとなっていますので、コマンドプロンプトを起動して、serial_flash_programmerのディレクトリに移動後に、アプリケーションを実行してください。
実行時のパラメータとして、以下を使用してください。
serial_flash_programmer -d f28004x -k f28004x_fw_upgrade_example\flashapi_ex2_sci_kernel.txt -a f28004x_fw_upgrade_example\led_ex1_blinky.txt -p COM35 -v
パラメータの内容については、以下の通りとなります。
- -d f28004x
TMS320F28004xシリーズのデバイスを指定します - -k f28004x_fw_upgrade_example\flashapi_ex2_sci_kernel.txt
フラッシュ書き込みファームウェアを指定します。起動後このファイルを転送します。 - -a f28004x_fw_upgrade_example\led_ex1_blinky.txt
フラッシュメモリへ書き込むファームウェアを指定します。このファイルは、hex2000ユーティリティによりシリアルブートローダ用フォーマットで出力されている必要があります - -p COM35
シリアル通信で使用するCOM番号を指定します。デバイスマネージャを参照して、通信を行うCOMポート番号を指定してください。 - -v
エラー発生時のメッセージを出力します。評価時にはこのパラメータを指定してください。
最初のフラッシュ書き込みファームウェアの転送が終わると以下のメッセージとメニューリストが表示されます
What operation do you want to perform?
1-DFU
2-Erase
3-Verify
4-Unlock Zone 1
5-Unlock Zone 2
6-Run
7-Reset
8-Live DFU
0-DONEまず、2を入力してフラッシュメモリを消去します。(番号を入力後、Enterキーで確定させてください)
消去するセクタ番号が聞かれますので、全セクタ消去の ALLを入力してください。(ALLのあと、Enterキーで入力を確定させてください)
消去が完了すると、以下のメッセージが表示され、再度メニューリストが表示されます。SUCCESS of Command
続いて、1を入力して、コマンドパラメータで指定したファイルを書き込みます。
ベリファイも行われ、書き込みに成功すると SUCCESS of Command のメッセージと、メニューリストが表示されます。最後に、ブートモード(SW1)をBoot from flashに変更して、電源を入れ直すか、コンソールに7を入力すると、フラッシュメモリに書き込まれたプログラムが実行します。
ご確認のほど、よろしくお願いします。
-
投稿者投稿