フォーラムへの返信
-
投稿者投稿
-
micky様
お世話になっております。
いくつかご確認させていただきたく、
・Flashに書き込みが行われていること(エミュレータ接続時にはプログラムがSRAMに配置されていないか?)は確認できておりますでしょうか?
・動作確認時のGPIO68の電圧はHighになっておりますでしょうか。
スタンドアローンでBootさせる場合は、下記Technical Reference Manualの565ページに従ってBootが行われ、Flashに正常にプログラムが書き込まれている場合、Z1_BOOTCTRLの値を拝見すると、GPIO68がHighになっていればFlashからBootされる認識でおります。
https://www.tij.co.jp/jp/lit/ug/spruhm9f/spruhm9f.pdf
以上、参考になれば幸いです。
uchidaK
ttkkttkk様
お世話になっております。
GPIOは下記TRMの93ページに記載の通り、デフォルトでは入力状態となっております。
TMS320x2833x, TMS320x2823x Technical Reference Manual
https://www.tij.co.jp/jp/lit/ug/sprui07/sprui07.pdf
また、デフォルトのGPIOの状態は変更はできませんので、必要に応じて外部プルアップ・プルダウンをご検討いただければと思います。
以上、ご参考になれば幸いです。
uchidaK
ttkkttkk様
お世話になっております。
確認いたしましたが、CPU1TOCPU2RAMの書き込み中におけるロック機能は用意されておりませんでした。
Technical Reference Manualの883ページを参考に、IPCのレジスタを用いてコア間の通信をすることで、
コア同士のConflictは避けられるものと考えております。
以上、参考になれば幸いです。
uchidaK
ttkkttkk様
お世話になっております。
頂いた内容を確認しておりますので、今しばらくお待ちいただけますでしょうか。
uchidaK
ttkkttkk様
お世話になっております。
Build Configurationsは、使用するソースコード(Exclude from Buildの設定)や、
使用するコンパイラのバージョン等を含むプロジェクトプロパティまで
すべてBuild Configurationsで分けられる仕様になっております。
Build Configurationsを変えることによって、何かしらの差分が生じていると思われますので、
双方の設定をご確認いただければと思います。
また、下記ドキュメントの通り、Release Buildではサンプルプロジェクトなどで最適化設定が
行われていることが多く、必要な変数や処理がこちらの設定で失われている可能性がありますので、
合わせてご確認いただけますと幸いです。
※プロジェクトを右クリック→Properties→Build→ARM Compiler→Optimizationからご確認いただけます。
以上、参考になれば幸いです。
uchidaK
kitade様
お世話になっております。
頂いた内容の手順で、PA0を入力、プルアップに設定することができると考えます。
下記データシート640ページ10.3章にGPIOの設定手順が記載されておりますので、ご確認いただければと思います。
https://www.tij.co.jp/jp/lit/ds/symlink/tm4c1233h6pz.pdf
GPIOPadConfigSetの説明については、下記267ページに記載がございますので、ご確認いただければと思います。
https://www.tij.co.jp/jp/lit/ug/spmu298e/spmu298e.pdf
パッドで記述されたと通りに設定は行われるが、実際に影響するのはプルアップ/プルダウンなどの終端の設定のみとの記載がございます。
以上、よろしくお願いいたします。
uchidaK
kitade様
お世話になっております。
指定したペリフェラルのレジスタのリード・ライトに対して応答・動作しなくなります。
詳細は下記ドキュメントの509ページをご確認いただければと思います。
レジスタの操作に対してのDisableとなりますので、入力設定・プルアップ設定は別途必要なものと
考えます。
下記ソフトウェアからAPIのソースコードも確認いただければと思います。
TivaWare_C_Series-2.2.0.295\driverlib
こちらを確認しますと、RCGCGPIOレジスタの設定が行われているようです。
こちらのレジスタの詳細は下記327ページをご確認いただければと思います。
以上、参考になれば幸いです。
uchidaK
- この返信は4 年、 4 ヶ月前に uchidaK さんが編集しました。
ttkkttkk様
お世話になっております。
>SPIFFTXのTXFIFOをセットすればクリアできるのでしょうか?
→SPIFFTXレジスタのTXFIFOビットを0に設定すると、TX FIFOがリセットされます。TXFFSTビットが0(empty)となっているかどうかもご確認いただければと思います。
TX FIFOの後段にはTransmit Buffer、シフトレジスタと続いており、念のため、それらのデータの削除も
ご検討いただければと思います。
Transmit BufferはSPITXBUF、シフトレジスタはSPIDATレジスタにて直接データのクリアが可能です。
また、TX FIFOのクリアについてはFIFOモードのみケアが必要と考えます。
詳細はTechnical Reference Manual2228ページ 18.3.2章をご確認いただければと思います。
以上、よろしくお願いいたします。
uchidaK
ttkkttkk様
お世話になっております。
はい、可能と考えます。
下記Technical Reference Manualの952ページ8.1章~8.3章が参考になりますので、
ご確認いただければと思います。
uchidaK
ttkkttkk様
お世話になっております。
下記について、確認いただけますでしょうか。
・CPU1のみで同じ設定を行った場合はCMPAは更新され、PWMは正常に出力されますでしょうか。
・CMPCTL レジスタのSHDWAMODE ビット を 1 に設定した状態でも、同様の現象は発生しますでしょうか。
また、ウィンドウはExpressionsではなく、Registersウィンドウ上でも念のため確認いただけますと幸いです。
以上、よろしくお願いいたします。
uchidaK
ttkkttkk様
お世話になっております。
恐れ入りますが、現時点までの頂いた情報では、理由の判断は難しいと考えております。
動作するサンプルコードの差分はリンカーコマンドファイルのみでしょうか?
また、動作するサンプルコードから具体的にどこを変更すると現象が再現するかを、確認いただけませんでしょうか。
お手数をお掛けし申し訳ございませんが、よろしくお願いします。
uchidaK
ttkkttkk様
LCR命令はXARnレジスタの値を使用することができるようです。
下記の221ページに詳細の記載がありますので、こちらの使用をご検討いただければと思います。
http://www.ti.com/lit/ug/spru430f/spru430f.pdf?&ts=1589271318358
uchidaK
ttkkttkk様
ご連絡が遅くなり申し訳ございません。
記載いただいている内容自体は問題ないかと思います。
下記サンプルコードは動作しないということでしょうか?
動作は評価ボードで確認いただいておりますでしょうか?
C:\ti\c2000\C2000Ware_2_00_00_02\device_support\f2837xd\examples\dual\flash_programming\cpu01\flash_programming_cpu01.c
また、双方のサンプルコードの違いですが、”flash_programming_dcsm_cpu01″ は 名前の通りdcsm(dual core security module)を使用しております。
DCSMについての詳細は下記159ページから記載がございます。
https://www.tij.co.jp/jp/lit/ug/spruhm8i/spruhm8i.pdf?&ts=1589246105249
以上、参考になれば幸いです。
uchidaK
ttkkttkk様
お世話になっております。
“割り込みが入らない”とは、具体的にどのような現象が起こっているのか、確認いただけませんでしょうか。
プログラムが意図しないルーチンに入ってしまってしまい、レジスタ設定自体が行われていないのか、割り込みの有効化が行われており、IPCSETやPIEIFRレジスタがセットされているのにもかかわらず、割り込みルーチンが呼ばれていないのか等、デバッグして確認いただけますと幸いです。
後者の場合は、何かしらのハードウェアの差分により他の優先度の高い割り込みが発生し、保留となっている可能性も考えられます。
カスタムボードと評価ボードでレジスタ比較を行うことも参考になるかと思います。
割り込みの詳細につきましては、下記96ページ3.4章から記載がございますので、ご確認をお願いいたします。
https://www.tij.co.jp/jp/lit/ug/spruhm8i/spruhm8i.pdf?&ts=1589157956094
uchidaK
ttkkttkk様
お世話になっております。
Fapi_doBlankCheckについては、Fapi_Status_FsmReadyの戻り値は返さないAPIであるため、Fapi_doBlankCheck自体が実行されていない可能性が考えられます。
下記のサンプルコードでは、貴社が実施されているコードと同様の内容が実行されているかと思います。
こちらのサンプルコードでも同様の問題は発生しますでしょうか?
C2000Ware_x_xx_xx_xx\device_support\f2837xd\examples\cpu1\flash_programming_dcsm\cpu01
問題が発生しない場合、ソフトウェアとしてどのような差分があるかを確認いただくと、原因究明の参考になるものと考えます。
また、カスタムボードで動作を見られている場合は評価ボードと動作を比べていただき、問題が再現するかどうか、ハードウェアについて何か原因が考えられないか、という点についても確認いただけますと幸いです。
以上、参考になれば幸いです。
uchidaK
-
投稿者投稿