フォーラムへの返信
-
投稿者投稿
-
ETさん
お問い合わせいただき、ありがとうございます。
データシートのTable 5-5に電源電圧安定からリセット解除までの時間が
tw(RSL1)として記載されているかと思います。
この間にマイコン内部の発振が安定すると考えて良いでしょうか。はい、ご認識いただいているとおりです。
また、外部水晶振動子を用いる場合、水晶振動子の安定化を考慮した上で
リセット時間を決定した方が良いのでしょうか。
指針等ございましたらご教授願います。外部水晶振動子を用いる場合、その設定はユーザーコードで実施されます。
そのため、リセットの解除から tw(RS1):100us と th(boot-mode):1.5ms 経過までは外部水晶振動子は使用されませんので、この間に水晶振動子が安定すれば、動作に問題はございません。
これより安定に時間がかかる場合は、リセットICなどで、リセット解除を遅延させる必要があります。なお、tw(RS1)は、IC内部のリセット回路でドライブしている時間ですので、上記の時間内に振動子が安定する場合は、リセット回路は必要ありません。
ご確認のほど、よろしくお願いいたします。
=====
この回答でご解決いただけましたら、右上の「最もいい回答」ボタンのクリックをお願いいたします。ttkkttkkさん
お問い合わせありがとうございます。
ご指摘の動作(受信波形をそのまま送信している現象)につきましては、SPI通信の仕様通りの動作と考えます。
SPIのデータの流れですが、Technical Reference Manual (SPRUHM8)の”Figure 18-4″および”Figure 18-6″、「18.3.3 Slave Mode」をご確認ください。
まず、スレーブモードにおけるSPIの送信データですが、Shift Register(SPIDAT)に格納されているデータがSPICLKに合わせてSPISOMIへシフトアウトします。SPIDATへは、SPISIMOからSPICLKに合わせてシフトインされます。
CPUからSPIDATまたはSPITXBUFへの書き込みを行わない場合は、SPIDATは常にSPISIMOの入力を転送いたします。SPIDATまたはSPITXBUFへ書き込みがありますと、SPISIMOからシフトインされたデータは、書き込まれたデータで上書きされます。
つまり、スレーブ側で送信するデータがない場合、明示的にSPIDATまたはSPITXBUFへダミーデータの書き込みを行わないと、受信波形をそのままSOMIへ出力いたします。
SPI通信は、デイジーチェーンを想定して設計されておりますので、このようなデータの流れになります。SPICCRのSPILBKビットにつきましては、セルフテストのための設定で、このループバックとはSPISOMIとSPISIMOを折り返すことで、送信したデータをそのまま受信させ、SPI通信機能に問題がないことを確認する設定になります。通常時はループバックはDisableでご利用いただきます。
ご確認のほど、よろしくお願いいたします。
=====
この回答でご解決いただけましたら、右上の「最もいい回答」ボタンのクリックをお願いいたします。VIHの定義につきましては、しきい値ではなく、電圧範囲としてmin/maxで表記されています。
したがいまして、ご認識いただいている内容で問題ございません。
ご確認のほど、よろしくお願いします。
=====
この回答でご解決いただけましたら、右上の「最もいい回答」ボタンのクリックをお願いいたします。ETさん
お問い合わせいただき、ありがとうございます。
はい、ご認識の通り、min値以上の電圧印加でHと認識いたします。
また、XRSピンにつきましても、All other pinsの定義になります。
ご確認のほど、よろしくお願いします。
=====
この回答でご解決いただけましたら、右上の「最もいい回答」ボタンのクリックをお願いいたします。ETさん
お問い合わせいただき、ありがとうございます。
ご確認いただいた方法につきましては、想定された使用方法ではございませんので、おすすめいたしません。
IOの機能としては、100pinに規定さていないポートのため、実際のポートからピン入出力端子側への処理が定義されておりません。また、ご確認いただいた方法ですと、いくつか追加の回路を経由いたしますので、遅れや信号品質の劣化が起こることがあるかもしれません。
メーカでは、このような使用方法は想定しておりませんので、動作検証されていない設定になりますこと、ご理解いただければと思います。
申し訳ありませんが、EPWM5が必要の場合は、176pinをご検討いただけないでしょうか。
ご確認のほど、よろしくお願いいたします。
=====
この回答でご解決いただけましたら、右上の「最もいい回答」ボタンのクリックをお願いいたします。dues4aさん
お問い合わせありがとうございます。
(1) そもそもEMIF2をC28xCPUとCLAで同時に使用することは可能ですか?
GPxCSELnレジスタは、GPIO設定のレジスタ操作に関する選択ですので、EMIF機能によるメモリアクセスには制限はございません。
従いまして、EMIF2領域にC28xCPUとCLAが同時に使用可能となっております。(2) もし(1)が可能の場合、例えばC28xCPUがEMIF2を使用している最中にCLA側が
EMIF2を使用するとどのような動作となりますか?EMIFメモリ領域に対して、アービターがありますので、先にメモリアクセスが行われている場合は、後から要求されたアクセスは保留されます。
つまり、C28xCPUがEMIF2領域にアクセスしている間は、CLAのアクセスは保留され、C28xのアクセスが終了後にCLAの要求が実行されます。
同時にアクセスの要求があった場合は、Technical Reference Manualの6.4 CLA and CPU Arbitrationに記載されている優先順位で処理されます。
ご確認のほど、よろしくお願いいたします。
=====
この回答でご解決いただけましたら、右上の「最もいい回答」ボタンのクリックをお願いいたします。ETさん
電源の立ち上がりタイミングにつきましては、特に明記はなく、
5.9.1.2 VDDIO, VDDA, VDD3VFL, and VDDOSC Requirements、
5.9.1.3 VDD Requirements
に各電源が0.3Vに収まる、かつVDDはVDDIOより0.3Vを超えないことが記載されております。この範囲であれば、開始点は異なっていても問題はございません。
勾配については、ご認識のとおりです。
周波数ドリフトが生じた場合ですが、起動が遅くなる可能性はありますが、起動しないことはございません。
しかし、Requirementsに記載された範囲についての動作検証しかされておりませんので、これを超える場合の動作につきまして、明確にどう動作するかはお答えすることができません。ご確認のほど、よろしくお願いいたします。
=====
この回答でご解決いただけましたら、右上の「最もいい回答」ボタンのクリックをお願いいたします。ttkkttkkさん
デュアルコアで設定いただく使用権はレジスタのアクセス制御になります。
モジュールの内部構成はCPUの選択には依存しませんので、ご希望の動作は可能です。
ご確認のほど、よろしくお願いいたします。
=====
この回答でご解決いただけましたら、右上の「最もいい回答」ボタンのクリックをお願いいたします。ETさん
外部の水晶振動子を用いる場合でも、電源立ち上げ時は内蔵OSCを使用して動作いたします。
つきましては、Requirements通りに同時に立ち上げる設計を行っていただけますでしょうか。Errataに理由が記載されていますが、これ以外の異常動作となった場合でも、Requirementsに記載されている内容をお守りいただけていない場合、ICの動作を保証することはできませんので、Requirements通りの設計をお願いいたします。
ご確認のほど、よろしくお願いいたします。
=====
この回答でご解決いただけましたら、右上の「最もいい回答」ボタンのクリックをお願いいたします。- この返信は4 年、 8 ヶ月前に Yojiro さんが編集しました。
ttkkttkkさん
このプロジェクトで使用されているリンカコマンドファイル(拡張子:.cmd)の内容が、CCSでご利用いただいているコンパイラのバージョンに合っていないために発生します。
“.TI.ramfunc”セクションは、コンパイラ・リンカにてRAM実行の属性が割り当てられております。
RAM実行の属性が付与されているセクションが使用された場合、リンカコマンドファイルで配置先を明記する必要があります。ここで、リンカコマンドファイルに、そのセクション配置が明記されない場合に、今回のエラーが発生します。
C28xのコンパイラは、v15.9.0の前後でデフォルトのRAM実行属性のセクション名が変更されました。以前は”ramfuncs”でしたが、現在は”.TI.ramfunc”となっています。ランタイムライブラリやC2000Wareのドライバでも使用されている場合がありますので、RAM実行セクションは”.TI.ramfunc”に統一いただくことをおすすめいたします。
リンカコマンドファイルの記述につきましては、flash_programmingプロジェクトの内容を参考に、リンカコマンドファイルを定義いただけますでしょうか。ご確認のほど、よろしくお願いいたします。
zerozeroさん
本トピックにつきましては、オフラインで対応させていただいておりますので、一旦クローズとさせていただきます。
追加のご質問がある場合は、新規のトピックよりご投稿のほど、お願いいたします。ttkkttkkさん
先日ご案内いたしましたドキュメントに、手順書というものではありませんが、必要なライブラリファイルやインクルードファイルなど纏められております。
TMS320F2837xD Flash API Reference Guide
http://www.ti.com/lit/pdf/spnu629ご一読いただければと思います。
なお、本フォーラムでは、一つのトピックで一つのご質問をお願いしております。
今回、複数のご質問を、一つのトピックにご投稿いただきましたが、今後は新たなトピックでご投稿いただくように、ご協力のほど、お願いいたします。以上、ご確認のほど、よろしくお願いいたします。
ttkkttkkさん
自己解決のご連絡、ありがとうございます。
今後もご不明な点などございましたら、お気軽にご投稿いただければと存じます。
ttkkttkkさん
はい、誤認識の通り、CPU1から先に起動(初期設定)を行って頂く必要があります。
CPU1の初期設定により、EPWMのCPU使用権をCPU2へ変更しますので、この設定より前にCPU2が実行すると、EPWM設定が反映されません。
サンプルプロジェクトには、立ち上げシーケンスは含まれておりません。IPCのサンプルをご参照いただき、CPU1の初期設定が終わるまで、CPU2はWaitいただく処理を追加ください。
ご確認のほど、よろしくお願いします。
ttkkttkkさん
デバッガなしで起動する場合、CPU1は”CPU1_FLASH_STANDALONE”、CPU2は”CPU2_FLASH”をご利用ください。
”CPUx_RAM_DEBUG”を選択されますと、プログラムもRAMへ配置され、FlashROMには何も書かれません。
デバッガなしで起動すると、FlashROMのプログラムを起動しようとしますので、正しく動作することはできません。
ご確認のほど、よろしくお願いします。
-
投稿者投稿