Tip / ログイン to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
lock attach
Attachments are accessible only for community members.
Translation_Bot
Community Manager
Community Manager
Community Manager
100 likes received

こんにちは

MCMCAN_1_KIT_TC375_LKとADC_Single_Channel_1_TC375_LKの例から始めて、アナログチャネルから取得した値をCANメッセージで送信する必要があります。 これは私がそれを試みた方法です:

void transmitCanMessage(void)

{

/* デフォルト設定での RX メッセージの初期化 */

IfxCan_Can_initMessage(&g_mcmcan.rxMsg); @suppress("フィールドを解決できません")

 

/* RX メッセージデータ内容の無効化 */

memset((void *)(&g_mcmcan.rxData[0]), INVALID_RX_DATA_VALUE, MAXIMUM_CAN_DATA_PAYLOAD * sizeof(uint32)); @suppress("フィールドを解決できません")

 

/* デフォルト設定での TX メッセージの初期化 */

IfxCan_Can_initMessage(&g_mcmcan.txMsg); @suppress("フィールドを解決できません")

 

/* 送信するデータの内容を定義 */

g_mcmcan.txData[0] = TX_DATA_LOW_WORD;@suppress("フィールドを解決できません")

g_mcmcan.txData[1] = TX_DATA_HIGH_WORD;@suppress("フィールドを解決できません")

 

/* 送信するデータの内容を定義 */

g_mcmcan.txData[0] = (uint16)(g_result & 0xFFFF); @suppress("フィールドを解決できません")

g_mcmcan.txData[1] = (uint16)((g_result >> 16)& 0xFFFF); @suppress("フィールドを解決できません")

 

/* 受信受付フェーズで使用するメッセージIDを設定 */

g_mcmcan.txMsg.messageId = CAN_MESSAGE_ID; @suppress("フィールドを解決できません")

 

/* 以前に定義した TX メッセージの内容で CAN メッセージを送信する */

while( IfxCan_Status_notSentBusy ==

IfxCan_Can_sendMessage(&g_mcmcan.canNode, &g_mcmcan.txMsg, &g_mcmcan.txData[0]) ) ) @suppress("フィールドを解決できません")

{

}

}

 

しかし、それは機能しません。依存症では、グローバル変数g_resultがどこに格納されているのか理解できません。

私は非常に初心者レベルであり、これはスコラープロジェクトのためですが、誰かが私を助けてくれますか?

アドバイスのおかげで、アップロードセクションでファイル全体を共有します。

0 件の賞賛
1 解決策
Translation_Bot
Community Manager
Community Manager
Community Manager
100 likes received

こんにちは@mattep99

問題の説明と添付ファイルに基づいて、次のコメント/質問があります。

1)添付されたファイルを確認し、CAN機能に関連するコードを確認しました。 CANに関して実装しようとしているユースケースについて教えてください。

コードに従って、ID 0x777のCANメッセージを受信し、更新されたADCデータで同じメッセージを送信しようとしています。 この理解は正しいですか? 明確にしてください。

 

2) 下図のCANピン構成を試して、テストしてみませんか?

Kavya_B_0-1713867285555.png

 

3) デフォルト設定では、従来のCAN通信のボーレートは500kbpsに設定されています。 追加のボーレート設定なしで500kbpsでテストしてみて、観察結果を教えていただけますか?

 

4)スレッド https://community.infineon.com/t5/AURIX/TC387-CAN0-filter-configuration/td-p/687906 に添付されているサンプルコードを参照できます

添付の例は、Aurix TC375 Liteキットでテストされました。 関連するCANノードの構成については、これを参照してください。

 

感謝

カヴヤ

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/AURIX/How-to-transmit-data-with-CAN-message-TC375/m-p/745237

元の投稿で解決策を見る

0 件の賞賛
6 返答(返信)
Translation_Bot
Community Manager
Community Manager
Community Manager
100 likes received

こんにちは@mattep99

問題の説明と添付ファイルに基づいて、次のコメント/質問があります。

1)添付されたファイルを確認し、CAN機能に関連するコードを確認しました。 CANに関して実装しようとしているユースケースについて教えてください。

コードに従って、ID 0x777のCANメッセージを受信し、更新されたADCデータで同じメッセージを送信しようとしています。 この理解は正しいですか? 明確にしてください。

 

2) 下図のCANピン構成を試して、テストしてみませんか?

Kavya_B_0-1713867285555.png

 

3) デフォルト設定では、従来のCAN通信のボーレートは500kbpsに設定されています。 追加のボーレート設定なしで500kbpsでテストしてみて、観察結果を教えていただけますか?

 

4)スレッド https://community.infineon.com/t5/AURIX/TC387-CAN0-filter-configuration/td-p/687906 に添付されているサンプルコードを参照できます

添付の例は、Aurix TC375 Liteキットでテストされました。 関連するCANノードの構成については、これを参照してください。

 

感謝

カヴヤ

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/AURIX/How-to-transmit-data-with-CAN-message-TC375/m-p/745237

0 件の賞賛
Translation_Bot
Community Manager
Community Manager
Community Manager
100 likes received

こんにちは

私はそれを説明しようとしますが、私はAurix社の何人かの専門家によって与えられた解決策から始め、私たちは彼らの解決策を「ブラックボックス」として受け入れています。

1)はい、それは私がやろうとしていることです。 しかし、私はあなたのexamoleコードを見ています、そしておそらくこれはうまくいかないでしょう、私は送信と受信のために別のメッセージIDを使う必要がありますか?

2)新しい構成を試しましたが、改善されませんでした。

3)以前と同じです。 とにかく、送信が機能しているかどうかを確認するために別のボードが必要ですか、それともボードでLED1をオンにする必要がありますか?

0 件の賞賛
Translation_Bot
Community Manager
Community Manager
Community Manager
100 likes received

こんにちは@mattep99

1)RxとTx IDが異なる方が良いです。 それは物事をより簡単にするでしょう。

3) テスト用のCANアナライザはありますか? これにより、別のAurixボードを使用するよりもテストが簡単になり、時間もかかりません。

 

よろしく

カヴヤ

0 件の賞賛
Translation_Bot
Community Manager
Community Manager
Community Manager
100 likes received

スレッドの最後にある私の例を見てください...しかし、スレッドも読んでください

解決済み: Re: TC334 を使用した MCMCAN でのフィルタリング (フィルタは 1 つだけ) - Infineon Developer Community

(リンクがうまくいくことを願っています)

 

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/AURIX/How-to-transmit-data-with-CAN-message-TC375/m-p/745339

0 件の賞賛
Translation_Bot
Community Manager
Community Manager
Community Manager
100 likes received

こんにちは

どうもありがとう、とにかく私はいくつかの部分を理解していません。 なぜ 1 つのメッセージだけを送信し、3 つのメッセージを受信するのですか? また、送信したメッセージにデータを追加するにはどうすればよいですか? たとえば、私はこれを試しました:

g_mcmcan。txData[0] = g_result です。私は;LSBの

g_mcmcan。txData[1] = g_result です。U;MSBの

0 件の賞賛
Translation_Bot
Community Manager
Community Manager
Community Manager
100 likes received

g_mcmcan.txData[0] = .....  これは長さの単語です

だからやってみよう

uint8 TestArray[8] ;

 

TestArray[0] = (uint8)(AN0_Raw >> 😎 ; 0x00 ;

TestArray[1] = (uint8)(AN0_Raw ); 0x01 ;

TestArray[2] = (uint8)(AN1_Raw >> 😎 ; 0x02 ;

TestArray[3] = (uint8)(AN1_Raw ); 0x03 ;

TestArray[4] = 0x04 ;

TestArray[5] = 0x05 ;

TestArray[6] = 0x06 ;

TestArray[7] = 0x07 ;

 

//CANアナライザーでBIGエンディアンのように見えるようにデータを構築しようとしていた..

 

uint32 TestWord0 = 0x00000000 ; // それを初期化するためだけに

uint32 テストワード1 = 0x00000000 ; // それを初期化するためだけに

 

 

TestWord0 = ( (TestArray[3] << 24) + (TestArray[2] << 16 ) + (TestArray[1] << 😎 + TestArray[0] ) ;

 

TestWord1 = ( (TestArray[7] << 24) + (TestArray[6] << 16 ) + (TestArray[5] << 😎 + TestArray[4] ) ;

 

 

g_mcmcan。txData[0] = TestWord0;

g_mcmcan。txData[1] = テストワード1;

 

 

 

 

 

0 件の賞賛