フォーラムへの返信
-
投稿者投稿
-
ttkkttkkさん
GPIOのMUX設定はCPU1で設定いただければ、CPU使用権をCPU2へ設定しなくても、EPWM機能として使用可能です。
設定の最初に、EPWM4-6のCPU使用権をCPU2へ設定されていますので、使用権が設定されていれば、CPU2から設定されたEPWM設定は実行されます。EPWMのCPU使用権のレジスタ(DevCfg.CPUSEL0)はEALLOW命令で保護の解除が必要ですが、実行されておりますでしょうか。
また、CPU2で設定されているEPWM設定内容ですが、CPU1単体で動作させても動作する設定内容となっておりますでしょうか。
ご確認のほど、よろしくお願いいたします。
ttkkttkkさん
お問い合わせありがとうございます。
GPIO設定において、GPIOのCPU使用権(GPACSELx)をCPU2へ設定されたあとに、GPIOのMUX設定が行われております。
そのため、設定内容が反映されていないものと推測いたします。
MUX設定の後、GPIOのCPU使用権を設定いただくように順番を入れ替えてお試しいただけますでしょうか。
ご確認のほど、よろしくお願いいたします。
ttkkttkkさん
CPU1はCPU1のみ、CPU2はCPU2のみしかプログラム書き換えができない
という意味でよかったでしょうか?はい、ご認識のとおりです。
以前教授頂いた、F2837xD_Sci_flash_kernelsのサンプルに
DCSM機能で書込み禁止エリアを設定すれば、ローダープログラムを書き込み禁止エリアにして
一部の機能のみプログラム入れ替えをすることは可能でしょうか?FlashROMの書き込み・消去を行う処理は、FlashROM以外から行う必要があります。
Flash APIライブラリのコードと、APIを呼び出す関数はRAMから実行することになります。これらの関数については、ローダープログラムとともに書き込み禁止エリアに仮置し、実行前にRAMにコピーするという制御が必要となります。
F2837xD_Sci_flash_kernelsサンプルと同フォルダに、”flash_programming”があります。
こちらのプロジェクトを参考に、組み込んでいただけますでしょうか。このサンプルプロジェクトでは、以下のことを行っています。
- ソースコード”flash_programming.c”のExample_CallFlashAPI関数を「#pragma CODE_SECTION」でramFuncSectionセクションに割り当てます
- ramFuncSectionは、Fapi_UserDefinedFunction.hで”.TI.ramfunc”と定義しています
- CMDファイルにて、”.TI.ramfunc”セクションに関して
実行アドレスをRAMLS03、配置アドレスをFLASHD
に設定します - main関数から実行されるInitSysCtrl()で”.TI.ramfunc”セクションをFLASHDからRAMLS03へコピーします
3番めのCMDファイル設定を行うことで、ビルド時に”.TI.ramfunc”セクションの実行アドレスはRAMLS03空間に配置されますが、コード自体はFLASHDに配置されます。サンプルプログラムでは、main関数でコピーしていますが、ローダープログラム実行前にコピーしていただければ、問題はありません。
InitSysCtrl()でコピーしない場合は、セクション名を”.TI.ramfunc”から変更していただき、変更したセクション名で、CMDファイルに追記していただくことができます。
以上、ご確認のほど、よろしくお願いいたします。
ttkkttkkさん
FlashROMの書き換えを行うためには、RAM領域にプログラムをコピーしてそのプログラムを実行する必要があります。その際に、コア間でプログラムを転送するための領域も確保するとなると、CPUのアクセス権を含めて、メモリ配置をしっかりと定義してすることが重要です。
これを「メモリ配置の工夫」と記載しておりました。
不明瞭な文言を使用してしまい、申し訳ありません。貼付いただいたファイルを確認いたしましたが、コア2(CPU2)のFlashROMに対し、コア1(CPU1)側で制御を行うと記載されていますが、本ICではCPU1からはCPU2のFlashROMへアクセス(消去・書き込み)が行えません。
CPU1とCPU2それぞれにローダープログラムを作成・組み込んで頂く必要がありますので、ご注意いただければと思います。以上、ご確認のほど、よろしくお願いいたします。
ttkkttkkさん
お問い合わせいただき、ありがとうございます。
CPU1(コア1)、CPU2(コア2)と別れておりますが
コア間でGSRAMを使い、プログラム書き換えを行うことは可能でしょうか?コア2上でコア1用のプログラムをあらかじめ保存しておき、
起動時にコア1に転送する、、等はい、可能です。
書き換えデータをGSRAMにより転送するサンプルは用意されておりませんが、
メモリ配置を工夫いただくことで、実現可能です。また、セクションを切るなどして、
プログラム書き換え禁止領域を作ることは可能でしょうか?TMS320F2837xDには、FlashROM自体の書き込み・消去の禁止設定はありません。
セクションごとの書き換えを抑制する機能として、DCSM機能をご利用いただくことになります。
DCSM機能では、2つのゾーンによるセキュリティ機能が提供されており、ゾーン毎にFlashのセクタを指定できます。セキュリティを設定されたセクタに対しては、同じゾーンからの要求かセキュリティを解除しないと、Flashの書き換えはできない仕様になっています。
セキュリティを設定していないセクタに対しては、通常通り書き換えは可能です。
DCSM機能の設定方法につきましては、テクニカルリファレンスマニュアルのp.153 <span style=”text-decoration: underline;”>3.13 Dual Code Security Module (DCSM)</span> に記載されておりますので、ご確認ください。なお、セキュリティ設定後でも、CCSのFlash設定を行うことで、セキュリティを解除した状態でデバッグは可能となっております。
ご確認のほど、よろしくお願いいたします。
zerozeroさん
お問い合わせいただき、ありがとうございます。
いただきましたご質問につきまして、以下に回答いたします。
1.IPCドライバとdriverlibが最初からセットになっている空もしくは空に近いプロジェクトはありますか?
(空でなくてもサンプルプログラムの内容に関するドキュメントがあれば可です。)申し訳ありませんが、IPCドライバ(F2837xD_Ipc_Driver.c)とdrviverlibを同時に使用するサンプルの用意がありません。device_supportのサンプルとdriverlibでは設計思想が異なっており、同時使用はサポートされておりません。
– device_support : レジスタアクセスを構造体に定義された変数に対して行います
– driverlib : レジスタアクセスは関数を通じて行いますIPCドライバをご利用の際は、device_supportフォルダ以下に定義されるファイルの範囲での開発をお願いいたします。
2.開発に必要なドキュメントで日本語になっているものはありませんか?
(特にTechnical Reference Manualで,別のトピックにあったTMS320C2000:Piccolo MCUのソフトウェア開発入門は確認しています。)申し訳ありませんが、Piccolo MCUのソフトウェア開発入門以外の日本語ドキュメントは用意がございません。
3.最初の周辺機能の構築までお金を支払ってでも教えていただける会社等はありませんか?
こちらに関しましては、直接メールにて連絡させていただきます。
以上、ご確認のほど、よろしくお願いいたします。
ETさん
TI社の動作保証としましては、CL1/CL2は12pF~24pFとなっておりますので、
この範囲を超える場合の動作についてはコメントすることができません。この範囲に収まる設計を行っていただくことをお勧めしております。
ご確認のほど、よろしくお願いいたします。
ETさん
お問い合わせいただき、ありがとうございます。
下限の10MHz品の振動子を用いていただいても問題ありません。
振動子の誤差により10MHzを下回る場合があるかもしれませんが、振動子の誤差が一般的なものであればICの故障を起こすことは考えにくいです。
しかしながら、ここを気にされる設計者(会社)もいらっしゃいます。
そのようなお客様は独自に設計基準を設けられており、振動子の誤差を含めて下限を下回らず、さらに一定のマージンを設けて選定されています。マージンはお客様の品質方針によりますので、貴社の品質方針に応じて決定いただければと存じます。ご確認のほど、よろしくお願いいたします。
Tsysdesさん
お問い合わせありがとうございます。
ご使用いただいているプロジェクトは、OAD(Over the Air Download)を使用するものになります。
このサンプルプロジェクトでは、別途BIM(Boot Image Manager)から起動されることを前提としており、BIMプロジェクトと同時に書き込まれている必要があります。
詳しくは、BLE5-Stack User’s Guide の Over-the-Air Download (OAD)章に記載されておりますので、ご確認いただけますでしょうか。
CCSを使用したデバッグ時は、BIMを使用しなくても、アプリケーションのスタートポイントから実行できるようになっております。そのため、デバッグ時はプログラムが動作し、単独実行では動作しないものと推測いたします。もし、OAD機能をご利用になられない場合は、BIMを必要としないサンプルが用意されておりますので、そちらをご使用いただけますでしょうか。
プロジェクト名: simple_peripheral以上、ご確認のほど、よろしくお願いいたします。
ttkkttkkさん
お問い合わせありがとうございます。
CPU間の通信(IPC: Inter Processor Communication) には、これらのレジスタの他に、メッセージ用RAMがCPU1→CPU2、CPU2→CPU1それぞれ2kバイトずつ用意されています。レジスタとメッセージ用RAMとの組み合わせでCPU間のデータ送受信を行うことになります。
TMS320F2837xDでは、C2000wareにIPC機能を活用いただくためのドライバが用意されております。サンプルとして、device_support\f2837xd\example\dual\cpu1_to_cpu2_ipcdrivers など用意されております。
詳しくは、IPCドライバのドキュメントが以下フォルダにありますので、ご確認いただければと思います。<C2000ware>\device_support\f2837xd\docs\F2837xD_IPC_Driver_UG.pdf
ご確認のほど、よろしくお願いいたします。
ETさん
IBISモデルのビューワーですが、以下のサイトにてフリーのビューワーが提供されております。
(IBISオープンフォーラムより)こちらをご利用いただけますでしょうか。
端子によって内部モデルが異なりますので、対象ピンと内部モデルをご確認いただくことをおすすめいたします。
ご確認のほど、よろしくお願いいたします。
ETさん
お問い合わせありがとうございます。
GPIO/PWM端子の出力インピーダンスにつきましては、データシートへの記載はございません。
TMS320F28375SはIBISモデルが提供されておりますので、IBISモデルより端子毎の出力インピーダンスをご確認いただけますでしょうか。IBISモデル:
http://www.tij.co.jp/product/jp/TMS320F28375S/toolssoftware
ページ下部に、IBISモデルのダウンロードリンクが用意されております。ご利用のパッケージのモデルをダウンロードください。参考:IBISモデルからインピーダンスの算出について
https://www.macnica.co.jp/business/semiconductor/articles/basic/110485/
こちらのページを参考にしていただけると思います。
ご確認のほど、よろしくお願いいたします。
wednesday24さん
お問い合わせありがとうございます。
一度、CCSから書き込みを実施されると、書き込んだプログラムが動作するとのことですので、CCFG(Customer Configuration)の未書き込みの可能性が高いです。
以下、ご確認いただけますでしょうか。
- Flash Programmer2で書き込みを実施される.outファイルには、CCFG (Customer Configuration)領域のデータが含まれておりますでしょうか。
- Flash Programmer2のImage Overrides(※)内のCustomer Config・「Keep CCFG」にチェックが入っていないことをご確認ください。
※Image Overridesが表示されていない場合、Actionsの「Show options>>>」をクリックしてください
ご確認のほど、よろしくお願いいたします。
ETさん
>GPIOとPWMは同じとなります。
GPIOとPWMポートを合わせた出力電流の上限が-20~+20 mAとの認識で相違ないでしょうか。はい、ご認識で問題ございません。
この場合、
・尖頭値は上限を超えても問題ない
・実効値は上限を超えてはいけない
との認識で相違ないでしょうか。はい、ご認識のとおりですが、上限(-20mA, 20mA)を超える場合、瞬間的でもICにダメージや寿命に影響を与える可能性がありますので、可能な限り尖頭値も超えないように設計をお願いいたします。
これはAとBのどちらの解釈が正しいでしょうか。
A: 1回のパルス幅がmsecやusec単位と短かくても、繰り返し印加時間が数秒間を超える場合はNG
B: 1回のパルス幅が数秒間を超える場合はNGAとB両方になります。上にも記載いたしましたが、可能な限り上限を超えない設計をお願いいたします。
よろしくお願いいたします。
データシートの記載としては、Digital Input/Digital Outputとして定義されておりますので、GPIOとPWMは同じとなります。
また、この上限値につきましては、過渡値も含まれます。瞬間的なもの(msec単位)であれば問題ないのですが、瞬間的なものでも数秒間の上限を超える電流が繰り返されることは、故障の原因となるとのことです。
なお、JEDECで定義されたESDテストは、許容範囲で問題ないとのことです。上記の瞬間的の時間につきましては、定義されておらず、さらに明記することはできないとのことです。
ご確認のほど、よろしくお願いいたします。
-
投稿者投稿