2415032_ja-JP

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

2415032_ja-JP

2415032_ja-JP

FRDM-K64F PITの異なるRevボード

こんにちは、

私はNRF23L01トランシーバを搭載した6枚のFRDM-K64Fボードを使った無線ネットワークの実験を行っています。

1秒を10のタイムスロットに分割しています。つまり、スロット1の送信はタイムスロット2で繰り返され、タイムスロット2はタイムスロット3に繰り返される、という中継の目的です。

PITを使って100ms間隔で割り込みを発生させており、スコープで確認しています。

リビジョンC、F、Fの3枚の基板では正常に動作しており、データが無線で繰り返し送信されているのを確認しています。しかし、3つのリビジョンF1ボードでは、送信ルーチンがタイムスロット1が回ってくるのを待ってハングアップしてしまいます。割り込みが発生しません!

例えば、Rev FとRev F1の間で何が変わったことで、このような挙動が引き起こされたのか、ご存知の方はいらっしゃいますか?

これが私の初期化ルーチンです。


SIM->SCGC6 |= SIM_SCGC6_PIT_MASK; // PIT のクロックをオンにするPIT- > MCR = 0x1; // PIT タイマーを有効にする

PIT>チャネル[0]。LDVAL = 5999999; リロード値を100mSに設定

PIT->チャネル[0].TCTRL = 0x03; // Turn PIT timer 0 on, interrupts on

そして主な内容は:

NVIC_EnableIRQ(PIT0_IRQn); // PIタイマー、ch 0割り込みを有効にする

そしてISR:


void PIT0_IRQHandler ( void )

{

/* 割り込みフラグをクリアする */

ピット・>チャネル[0]。TFLG = PIT_TFLG_TIF_MASK;

NVIC_ClearPendingIRQ( PIT0_IRQn ); // 保留中のPIタイマー、 ch 0割り込みをクリアします

//scope_trigger();

time_lot +=1;

if (time_slot > 10) time_slot = 0;

__DSB(); ARM の訂正 838869を追加し、Cortex-M4に影響します

}


どんな助けでもありがたいです!

乾杯

ナイジェル



Kinetis KシリーズMCURe: FRDM-K64F PIT on different Rev boards

ああ!ありがとうございます。はい、そのマスクは3つのチップすべてに付いています。これまでとても役に立ったあなたのAIエンジンがそれを出さなかったのは驚きです!何か代替策はありますか?遅延か、それとも失敗か?はい、 PIT->MCR = 0x1; は別の行にあるべきで、 は切り取りと貼り付けの際に抜け落ちてしまったのでしょう。

Re: FRDM-K64F PIT on different Rev boards

こんにちは、 @ve3id さん。

投稿ありがとうございます!

e7914があなたのMCUに適用されているか確認してください:Kinetis_K_1N83J.pdf

FRDM-K64F REV F1でテストしましたが動作しました。SDK 2.11.0とMCUXpresso IDE 25.06を使っていました。

また、共有したコードの中で「PIT->MCR = 0x1;」がSCGC6のイネーブルメントにコメントとして含まれているのに気づきましたが、投稿中のタイプミスかどうか確認したいだけです


Re: FRDM-K64F PIT on different Rev boards遅延時間を100秒に変更しても、PITアクションは発生しませんでした。Re: FRDM-K64F PIT on different Rev boardsイニットコードをこのように変えましたが、同じ問題が続いています:
遅延(10);
揮発性uint32_t PIT_MCR_read = PIT->MCR;1N83Jマスクセットの問題を克服するために 2026-09-22 NWJ
PIT->MCR = 0x1;PITタイマーを有効にする
ピット>チャネル[0]。LDVAL = 5999999;リロード値を100mSに設定
PIT->CHANNEL[0]。TCTRL = 0x03;PITタイマー0をオンにし、割り込みをオンにします

Re: FRDM-K64F PIT on different Rev boards

こんにちは、 @ve3id さん。

正誤表に記載されている回避策は、PIT_MCRレジスタに書き込む前に、そのレジスタを読み取ることです。

私はPITのSDK例をベースにして、FRDM REV F1で何をしているかをテストしています。以下のように修正しました

carlos_o_0-1790096350978.pngcarlos_o_0-1790096350978.png

問題なく動作します。


タグ(1)
評価なし
バージョン履歴
最終更新日:
水曜日
更新者: