Multi Source Translation Content

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Multi Source Translation Content

Discussions

Sort by:
S32K344チップ、spdにeMCEM_1モジュールを追加した後、ブートローダーを使用してダウンロードに失敗しました。 ロジックを整理して書き直します。タイトルにあるように、アプリコードでeMCEM_1を有効にすると、公式ブートローダーを使用したアプリのダウンロードが失敗しました。チップを消去しなければ、再びブート画面に入ることができず、電源を入れ直しても問題は解決しなかった。電源を入れ直した後、起動プロセスでアプリが起動したものの、アプリが起動しなかったのではないかと推測しています。eMCEM_1を無効にすると、この問題は発生しません。eMCEM_1が有効になっているときに、Bootでアプリを書き換えるにはどうすればいいですか Re: S32K344 chip, failed to download using bootloader after adding eMCEM_1 module in spd こんにちは、 @XPW さん。 問題の説明が必ずしも明確ではない。 もしアプリケーションがブートローダーを通じてプログラムされている場合、アプリケーションに含まれるeMCEM_1設定はダウンロード中に実行されるわけではなく、単なるバイナリであるため、プログラミングプロセス自体に影響を与えることはありません。 ブートローダーがアプリケーションへの実行を転送した後にのみ、eMCEM/FCCU関連の設定が重要になり、その時点で以下の点を確認することが有用です。 FCCUステータス登録簿 DCMフラグ、MC_RGMフラグ。 また、アプリケーションが実際にmain()に到達するかどうかも重要です。 現在の説明からは、プログラミング操作が失敗するのか、プログラムが成功して問題がアプリケーションの実行開始時に起こるのかは不明です。 出来事の正確な順序を説明していただけますか? よろしくお願いいたします。 ダニエル
View full article
IMX8M+(BT+WiFiモジュール搭載)(AW-XB583MA-PUR)BTの初期化には50~60秒かかります。 NXPチームの皆様へ 当社はiMx8M+ベースのカスタムボードを使用しており、PCIeとUARTを介してそれぞれBTとWiFi(Azurawave製のモジュールAW-XB583MA-PUR)を使用しています。 BTの初期化中に問題が発生しており、UART経由で最初のHCIリセットコマンドを送信してから応答が得られるまでに約50~60秒(常に一定の時間)かかります。Azurawaveチームと確認・デバッグを行ったところ、NXP側にも確認するよう提案されました(彼らの見解では、これはNXP側の問題である可能性が高いとのことです)。 以下は、SoCとモジュール間の接続図です。 NXP: UART1_RXD <---> モジュール: UART TXD NXP: UART1_TXD <---> モジュール: UART RXD NXP: UART3_TXD <---> モジュール: UART RTS NXP: UART3_RXD <---> モジュール: UART CTS デバイスツリーの変更点: &uart1 { /* BT */ pinctrl-names = "default"; pinctrl-0 = <&pinctrl_uart1>; 割り当てられたクロック = <&clk IMX8MP_CLK_UART1>; 割り当てられたクロック親 = <&clk IMX8MP_SYS_PLL1_80M>; /*fsl,uart-has-rtscts;*/ ステータス = "正常"; }; pinctrl_uart1: uart1grp { fsl、pins = < MX8MP_IOMUXC_UART1_RXD__UART1_DCE_RX 0x140 MX8MP_IOMUXC_UART1_TXD__UART1_DCE_TX 0x140 MX8MP_IOMUXC_UART3_RXD__UART1_DCE_CTS 0x140 MX8MP_IOMUXC_UART3_TXD__UART1_DCE_RTS 0x140 >; }; i.MX 8M | i.MX 8M Mini | i.MX 8M Nano Linux Re: IMX8M+ w/ BT+WiFi module (AW-XB583MA-PUR) BT takes 50-60 seconds time to get initialized こんにちは、 @hiteshviradiya さん。 お元気でお過ごしのことと思います。 デバイスツリーの詳細を教えていただけますか?Pinmuxのコードしか見えません。 また、使用しているBSPのバージョンと、Wi-Fiモジュールへの接続に使用しているドライバの詳細も教えてください。 よろしくお願いいたします。 サラス。 Re: IMX8M+ w/ BT+WiFi module (AW-XB583MA-PUR) BT takes 50-60 seconds time to get initialized @Manuel_Salas様、 弊社では、カスタマイズされたBuildroot(バージョン2024.08)を使用しています。カーネルバージョン:6.6.36。以前、BT関連のデバイスツリーコードとPinmuxを共有しましたが、以下に改めて共有します。 &uart1 { /* BT */ pinctrl-names = "default"; pinctrl-0 = <&pinctrl_uart1>; 割り当てられたクロック = <&clk IMX8MP_CLK_UART1>; 割り当てられたクロック親 = <&clk IMX8MP_SYS_PLL1_80M>; fsl、uart-has-rtscts; ステータス = "正常"; }; pinctrl_uart1: uart1grp { fsl、pins = < MX8MP_IOMUXC_UART1_RXD__UART1_DCE_RX 0x140 MX8MP_IOMUXC_UART1_TXD__UART1_DCE_TX 0x140 MX8MP_IOMUXC_UART3_RXD__UART1_DCE_CTS 0x140 MX8MP_IOMUXC_UART3_TXD__UART1_DCE_RTS 0x140 >; }; 他に特定のデバイスツリーノードが必要な場合はお知らせください。 Re: IMX8M+ w/ BT+WiFi module (AW-XB583MA-PUR) BT takes 50-60 seconds time to get initialized こんにちは、 使用しているドライバを指定してください。 それは習慣ですか?当サイトのBSPではAW-XB583MAを直接サポートしていません。 よろしくお願いいたします。 サラス。
View full article
S32K358 EVKボードのCANが動作しません こんにちは、 S32K3x8EV8ボードのCAN0またはCAN1を使うコードを実行しようとしていますが、できません。しかしCANは全く動作せず、Waveshare USB-CAN-AでCANメッセージを読み取ろうとしています。 コードも貼り付けました。CAN設定のスクリーンショットを追加してください。 /* * 著作権 2019 NXP * * 無断転載を禁じます。 * * このソフトウェアはNXPによって「現状通り」および明示されたものまたは * 黙示の保証(黙示の保証を含むが、これに限定されない) * 商品性および特定目的への適合性に関する保証は一切いたしません。 * いかなる場合もNXPまたはその寄付者は、いかなる直接的な責任も負いません。 * 間接的、偶発的、特別、懲罰的、または結果的な損害 * (代替品の調達を含むがこれに限定されない) * サービス、使用不能、データ損失、利益損失、または事業中断) * 原因の如何を問わず、また契約に基づくか否かを問わず、いかなる責任理論に基づく場合であっても、 * 厳格責任、または不法行為(過失その他を含む)の発生 * 本ソフトウェアのいかなる形でも、たとえ助言されていても使用しないでください * そのような損害が発生する可能性。 */ /* ################################################################### ******************************************************************************** * ファイル: main.c * オーナー:ペトル・スタンチク * バージョン: 1.0 * 日付: 2024年10月22日 * 分類:一般ビジネス情報 * 概要:FlexCAN TX/RX ISRテスト * ******************************************************************************** ******************************************************************************** このデモアプリケーションの目的は、FlexCANモジュールの使い方を示すことです S32 RTD APIを用いてCAN FDを使用するよう設定されています。 - このデモアプリケーションは2枚のボード、またはCANツールに接続された1枚のボードを必要とします。 - CAN FDはビットレート500/2000 kbpsで有効です - FlexCAN0モジュールとそのトランシーバ(TJA1153)を構成します。 - MB0はCANFD標準IDの送信に使用されます。 MB1は任意の標準IDを受信するように構成されています。 - コールバック関数は、MBにおけるTXおよびRXプロセスを処理するためにも使用されます。受信したIDは 反響した。 - setupCanXCVR関数はInitに呼び出されTJA1153ボード上のFlexCAN0に接続されます。 トランシーバをバニラ状態にすることを期待し、TPLがすべてのstdおよびext IDを通過するように設定しています。 バスから届くメッセージを遮断しないでください。最後に設定モードを終了します 不揮発性メモリへの書き込みやトランシーバのロックなしに。 * * ------------------------------------------------------------------------------ * テスト用ハードウェア: S32K3X8EVB-Q289 rev B2 * MCU:P32K358HVS 0P14E * コンパイラ:S32DS。ARM.3.5 * SDK リリース:S32K3_RTD_4.0.0_D2311 * デバッガー: Lauterbach * 対象: internal_FLASH * ******************************************************************************** 変更履歴: 1.0 2024年10月22日Petr Stancik RTD FlexCAN_Ip_exampleに基づく初期バージョン *******************************************************************************/ /* 必要な設定ファイルを含めます。*/ #include "Mcal.h" #include "Clock_Ip.h" #include "FlexCAN_Ip.h" #include "IntCtrl_Ip.h" #include "Siul2_Port_Ip_Cfg.h" #include "Siul2_Dio_Ip_Cfg.h" #include "Siul2_Dio_Ip.h" #include "Siul2_Port_Ip.h" #include "OsIf.h" #define MSG_ID 20u #define RX_MB_IDX 1U #define TX_MB_IDX 0U volatile int exit_code = 0 ; /* ユーザーには */ が含まれています Flexcan_Ip_DataInfoType tx_info = { . msg_id_type = FLEXCAN_MSG_ID_STD 、 . data_length = 1 u 、 . fd_enable = FALSE 、 . fd_padding = FALSE 、 .enable_brs = FALSE 、​ . is_polling = FALSE 、 . is_remote = FALSE } ; Flexcan_Ip_DataInfoType rx_info = { . msg_id_type = FLEXCAN_MSG_ID_STD 、 . data_length = 1 u 、 . fd_enable = FALSE 、 . fd_padding = FALSE 、 .enable_brs = FALSE 、​ . is_polling = FALSE 、 . is_remote = FALSE } ; Flexcan_Ip_MsgBuffType rxData ; uint8 dummyData [ 8 ] ; volatile uint32 g_canErrorStatus = 0 ; /* デバッガ監視用のライブ ESR1 スナップショット */ volatile Flexcan_Ip_StatusType g_tja1153Status[3]; /* [0]=auto-baud, [1]=FEC whitelist, [2]=exit config */ /*! \brief プロジェクトの主な機能。 \details 起動時の初期化シーケンスは以下のとおりです。 * - スタートアップアセンブリルーチン * - 主要() */ extern void CAN0_ORED_0_31_MB_IRQHandler ( void ) ; void setupCanXCVR_TJA1153 ( void ) ; static void CAN_DelayMs ( uint32 ms ) { uint32 ticks = OsIf_MicrosToTicks ( ms * 1000 U , FLEXCAN_IP_SERVICE_TIMEOUT_TYPE ) ; uint32 start = OsIf_GetCounter ( FLEXCAN_IP_SERVICE_TIMEOUT_TYPE ) ; uint32 elapsed = 0 U ; while (経過時間< ticks ) { elapsed += OsIf_GetElapsed ( & start , FLEXCAN_IP_SERVICE_TIMEOUT_TYPE ) ; } } void flexcan0_Callback ( uint8 instance , Flexcan_Ip_EventType eventType , uint32 buffIdx , const Flexcan_Ip_StateType * flexcanState ) { ( void ) flexcanState ; ( void )インスタンス; switch(eventType) { CASE FLEXCAN_EVENT_RX_COMPLETE: dummyData [ 0 ] ++; if ( buffIdx == 1 ) // MB1 を受信 { FlexCAN_Ip_Send ( INST_FLEXCAN_0 、 TX_MB_IDX 、 & tx_info 、 rxData . msgId 、( uint8 * ) & dummyData ) ; FlexCAN_Ip_Receive ( INST_FLEXCAN_0 , RX_MB_IDX , & rxData , false ) ; } 壊す; CASE FLEXCAN_EVENT_RXFIFO_COMPLETE: 壊す; CASE FLEXCAN_EVENT_TX_COMPLETE: 壊す; CASE FLEXCAN_EVENT_ENHANCED_RXFIFO_COMPLETE: 壊す; CASE FLEXCAN_EVENT_ENHANCED_RXFIFO_WATERMARK: 壊す; デフォルト: 壊す; } } void setupCanXCVR_TJA1153 ( void ) { /** * TJA1153トランシーバは、ほとんどのCANトランシーバのようにすぐに使える状態ではない * 以前に設定されていない場合は、最初に設定モードに入ります。 * この初期状態では、追加のセキュリティを受ける準備ができています * 例えば、TPL/BBLのようなセットアップ。 * この例では、TPL はすべての標準 IDと外部ID を渡すように設定され、メッセージをブロックしません。 * バスから降りてきたところ。最後に、不揮発性メモリに書き込まずに設定モードを終了します。 * メモリもトランシーバのロックもしない。 * * 詳細については、NXP社のTJA1153データシートを参照してください。 * */ #define TJA1153_START_ID (uint32_t)(0x555u) #define TJA1153_CONFIG_ID (uint32_t)(0x18DA00F1u) uint8 sendData [ 8 ] = { 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 } ; uint32_tエラー; /* ローカルホストから TXD ピン経由で CAN0 トランシーバの設定を許可、STB = 0 (PTC20) */ Siul2_Dio_Ip_WritePin ( PTC_H_HALF , 4 , 0 U ) ; CAN_DelayMs ( 1000 ) ; 自動ビットレート検出 初期CANクラシックフレーム(ID 0x555 CAN0 */ tx_info.is_polling = TRUE ;​​ tx_info.msg_id_type = FLEXCAN_MSG_ID_STD ;​​ tx_info.data_length = 8 ;​​ g_tja1153Status [ 0 ] = FlexCAN_Ip_SendBlocking ( INST_FLEXCAN_0 , TX_MB_IDX , & tx_info , TJA1153_START_ID , sendData , 1000 ) ; /* 送信ホワイトリストを設定するためのフィルタ要素構成 (FEC) フレーム。 * 注: ID_TX は NXP リファレンス サンプルのプレースホルダー (0xC0FFEE) であり、MSG_ID ではありません。 * これは単一の拡張 ID のみをホワイトリストに登録します。まずこのベースラインが機能することを確認してください。 * 次に、TJA1153データシートに従って、実際のIDに合わせてID_TX/Extended_Filter_Configを調整してください。*/ { uint32_t ID_Stinger = TJA1153_CONFIG_ID ; uint32_t PAYLOAD_FEC [ 2 ] ; uint8_t COMMAND_BYTE_FEC = 0x10 ; uint8_t Filter_Element_Index_0 = 0 ; uint8_t Filter_Element_Type = 1 ; uint8_t Extended_Filter_Config = 3 ; /* TWLとBBLの両方 */ uint32_t ID_TX = 0xC0FFEE ; uint32_t Filter_Element_Contents = ( Extended_Filter_Config << 29 ) | ID_TX ; PAYLOAD_FEC [ 0 ] = ( COMMAND_BYTE_FEC << 24 ) | ( Filter_Element_Index_0 << 16 ) | ( Filter_Element_Type << 15 ) | ( Filter_Element_Contents >> 16 ) ; PAYLOAD_FEC [ 1 ] = ( Filter_Element_Contents & 0xFFFF ) << 16 ; sendData [ 0 ] = ( uint8 )(( PAYLOAD_FEC [ 0 ] >> 24 ) & 0xFF U ) ; sendData [ 1 ] = ( uint8 )(( PAYLOAD_FEC [ 0 ] >> 16 ) & 0xFF U ) ; sendData [ 2 ] = ( uint8 )(( PAYLOAD_FEC [ 0 ] >> 8 ) & 0xFF U ) ; sendData [ 3 ] = ( uint8 )( PAYLOAD_FEC [ 0 ] & 0xFF U ) ; sendData [ 4 ] = ( uint8 )(( PAYLOAD_FEC [ 1 ] >> 24 ) & 0xFF U ) ; sendData [ 5 ] = ( uint8 )(( PAYLOAD_FEC [ 1 ] >> 16 ) & 0xFF U ) ; tx_info.msg_id_type = FLEXCAN_MSG_ID_EXT ;​​ tx_info.data_length = 6 ;​​ g_tja1153Status [ 1 ] = FlexCAN_Ip_SendBlocking ( INST_FLEXCAN_0 , TX_MB_IDX , & tx_info , ID_Stinger , sendData , 1000 ) ; CAN_DelayMs ( 5 ) ; } /* 不揮発性メモリに書き込まずに構成モードを終了するための最後のコマンドフレーム * トランシーバをロックする、すなわち開発モード */ sendData [ 0 ] = 0x71 ; // コマンドバイト sendData [ 1 ] = 0x2 ; sendData [ 2 ] = 0x3 ; sendData [ 3 ] = 0x4 ; sendData [ 4 ] = 0x5 ; sendData [ 5 ] = 0x6 ; sendData [ 6 ] = 0x7 ; sendData [ 7 ] = 0x8 ; tx_info.msg_id_type = FLEXCAN_MSG_ID_EXT ;​​ tx_info.data_length = 8 ;​​ g_tja1153Status [ 2 ] = FlexCAN_Ip_SendBlocking ( INST_FLEXCAN_0 , TX_MB_IDX , & tx_info , TJA1153_CONFIG_ID , sendData , 1000 ) ; /* 最後のフレーム終了後、トランシーバは設定モードを終了し、スタンバイモードに入り、終了します * 通常動作モードへの切り替えは、CAN0トランシーバのSTBピンをHIGHに設定することで行われます(ピンは無効化) */ Siul2_Dio_Ip_WritePin ( PTC_H_HALF , 4 , 1 U ) ; CAN_DelayMs ( 1000 ) ; errors = FlexCAN_Ip_GetErrorStatus ( INST_FLEXCAN_0 ) ; FlexCAN_Ip_ClearErrorStatus ( INST_FLEXCAN_0 , errors ) ; } int main ( void ) { /* ここにコードを記述してください */ Clock_Ip_Init ( & Clock_Ip_aClockConfig [ 0 ]) ; Siul2_Port_Ip_Init ( NUM_OF_CONFIGURED_PINS0 , g_pin_mux_InitConfigArr0 ) ; IntCtrl_Ip_EnableIrq ( FlexCAN0_1_IRQn ) ; IntCtrl_Ip_InstallHandler ( FlexCAN0_1_IRQn , CAN0_ORED_0_31_MB_IRQHandler , NULL_PTR ) ; FlexCAN_Ip_Init ( INST_FLEXCAN_0 , & FlexCAN_State0 , & FlexCAN_Config0 ) ; FlexCAN_Ip_SetRxMaskType_Privileged ( INST_FLEXCAN_0 , FLEXCAN_RX_MASK_INDIVIDUAL ) ; FlexCAN_Ip_SetRxIndividualMask_Privileged ( INST_FLEXCAN_0 , RX_MB_IDX , 0x0 << 18 ) ; // マスクレジスタをクリアして、すべての標準IDを受信できるようにします FlexCAN_Ip_SetStartMode ( INST_FLEXCAN_0 ) ; setupCanXCVR_TJA1153 () ; tx_info.is_polling = FALSE ;​​ tx_info.msg_id_type = FLEXCAN_MSG_ID_STD ;​​ tx_info.data_length = 8 ;​​ tx_info.fd_enable = false ;​​ tx_info.enable_brs = false ;​​ FlexCAN_Ip_ConfigRxMb ( INST_FLEXCAN_0 , RX_MB_IDX , & rx_info , MSG_ID ) ; FlexCAN_Ip_Receive ( INST_FLEXCAN_0 , RX_MB_IDX , & rxData , false ) ; FlexCAN_Ip_Send ( INST_FLEXCAN_0 , TX_MB_IDX , & tx_info , MSG_ID , ( uint8 * ) & dummyData ) ; ( 1 )​ { g_canErrorStatus = FlexCAN_Ip_GetErrorStatus ( INST_FLEXCAN_0 ) ; } 0を返す; } /* メイン処理終了 */ /*! ** @} */ Re: S32K358 EVK board CAN not working こんにちは、@ Yash2530 添付ファイルには、RTDバージョン3.0.0で実施したテスト結果が含まれています。P07を参照してください。 Re: S32K358 EVK board CAN not working こんにちは 、Senlentさん。 Canの送信は動作しており、NXPからWaveshareのUSB CANデバイスへのデータ受信は可能ですが、RXは動作していないようです。 IDとして0x001、データとして01 01 01 01 01 01 01 01を送信します。 何か見落としている点があるのでしょうか、それとも提供されたコードはTX専用なのでしょうか。
View full article
S32K314 RTD (MCAL) - High Priority ISR Deadlock Caused by OsIf Critical Sections S32K314 RTD (MCAL) - High Priority ISR Deadlock Caused by OsIf Critical Sections Hello, I am developing an application on the following platform: MCU: NXP S32K314 RTD 7.0.0 (AUTOSAR MCAL) FreeRTOS 7.0.0 S32 Design Studio 3.6.4 During development, I encountered a deadlock related to high-priority interrupts and would like to ask whether my understanding is correct and whether there is a recommended solution. Background FreeRTOS specifies that ISRs with a priority higher than configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY must not call FreeRTOS APIs. However, I found that many RTD MCAL APIs internally execute FreeRTOS critical section APIs through the following call chain: MCAL API ↓ SchM_Enter_xxx() ↓ OsIf_SuspendAllInterrupts() ↓ SuspendAllInterrupts() ↓ OsIf_Interrupts_SuspendAllInterrupts() ↓ taskENTER_CRITICAL_FROM_ISR() and MCAL API ↓ SchM_Exit_xxx() ↓ OsIf_ResumeAllInterrupts() ↓ ResumeAllInterrupts() ↓ OsIf_Interrupts_ResumeAllInterrupts() ↓ taskEXIT_CRITICAL_FROM_ISR() This behavior exists even in APIs that only perform simple peripheral register accesses, such as DIO and GPT. Problem When a MCAL API is called from a high-priority ISR (priority higher than configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY), the internal call to taskENTER_CRITICAL_FROM_ISR() causes the FreeRTOS interrupt masking state to become inconsistent. As a result, after taskEXIT_CRITICAL_FROM_ISR() returns, BASEPRI is not restored correctly, causing lower-priority interrupts such as SysTick and PendSV to remain masked. The scheduler eventually stops because xPortSysTickHandler() is no longer executed. I was able to reproduce this issue using APIs such as: Dio_FlipChannel() GPT (PIT) interrupt processing Other MCAL APIs that use SchM exclusive areas Current Workaround To avoid modifying RTD-generated source code directly, I used the GNU linker --wrap option to wrap the following functions: OsIf_Interrupts_SuspendAllInterrupts() OsIf_Interrupts_ResumeAllInterrupts() The wrapper checks the current interrupt priority. Please refer to the attached WrapperExample.c. If the current ISR priority is higher than configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY, it skips the original function. Otherwise, it calls the original implementation. This workaround appears to resolve the deadlock while leaving the generated RTD source unchanged. Questions Is this behavior expected by design in the RTD MCAL? Is it recommended to call DIO, GPT, CAN, or other MCAL APIs from high-priority ISRs? Does NXP recommend implementing dedicated drivers (Complex Device Drivers) for high-priority real-time functions such as watchdog servicing or GPIO toggling? Is wrapping OsIf_Interrupts_SuspendAllInterrupts() and OsIf_Interrupts_ResumeAllInterrupts() using the GNU linker --wrap option an acceptable workaround? Is there an official or recommended solution for this problem that does not require modifying generated RTD source code? Any advice or recommendations would be greatly appreciated. Thank you. Re: S32K314 RTD (MCAL) - High Priority ISR Deadlock Caused by OsIf Critical Sections Hello @tobara, The case is currently pending input from the RTD development team. BR, Daniel Re: S32K314 RTD (MCAL) - High Priority ISR Deadlock Caused by OsIf Critical Sections Hi, please see below punctual answers to your question: Is this behavior expected by design in the RTD MCAL?Answer: yes, this happens because you are calling OS APIs from a CAT1 interrupt (aka interrupts with prio higher than MAX SYSCALL).  The purse of interrupts higher than MAX_SYSCALL is to do work with minimal latency also unhindered by the RTOS.If you need to avoid latency introduced by RTOS then you should not call APIs that in the end use the RTOS. Is it recommended to call DIO, GPT, CAN, or other MCAL APIs from high-priority ISRs? Answer:  no, not larger than MAX_SYSCAL, for the reason mentioned in first answer. Does NXP recommend implementing dedicated drivers (Complex Device Drivers) for high-priority real-time functions such as watchdog servicing or GPIO toggling? Answer: if you already can tolerate the latency introduced by the RTD SchM, OSIf APIs, RTOS then you can just use the existing drivers but just call them from the higher interrupt but lower than MAX_SYSCALL. You still get the priority boost but not the problems described in the ticket. Is wrapping OsIf_Interrupts_SuspendAllInterrupts() and OsIf_Interrupts_ResumeAllInterrupts() using the GNU linker --wrap option an acceptable workaround? Answer: No, a quick analysis points in the direction that this workaround protects in only one direction. It might avoid the deadlock but does not protect lower prio ISR that share registers / resources with higher prio ISR (> MAX_SYSCALL). This implementation can introduce race conditions on shared registers and global variables. Is there an official or recommended solution for this problem that does not require modifying generated RTD source code?Answer (but it needs to be confirmed by the RTD team): do not call RTD / RTOS APIs from IRQ > MAX_SYSCALL. If you can tolerate the current RTD->OSIF->RTOS latencies then just use a  higher prio IRQ but lower than MAX_SYSCALL. All answers need to be confirmed by the RTD team, I'm answering from a RTOS point of view.
View full article
S32K3の低電力ウェイクアップ問題 最近、S32K314の低消費電力ウェイクアップ機能をデバッグしていたところ、外部ウェイクアップ方法を使用してもスリープモードから復帰できないことがわかりました。 通常の状況下では、DIは外部刺激に反応するが、休眠状態に入ると全く反応しなくなる。 添付ファイルにコードが含まれています。この問題の原因は何でしょうか?また、どのように解決すればよいでしょうか? Re: S32K3 低功耗唤醒问题 こんにちは、ジュリアン あなたの提案に従ってみたところ、目が覚めるようになりました。これは、私が本当にスタンバイモードに入ったということでしょうか? もう一つ質問したいのですが、スタンバイモードに入った後、I/Oポートの状態は以前と同じままなのでしょうか? もう一つの疑問は、回路設計において、MCUから定期的にデータ供給を受ける必要があるハードウェアウォッチドッグが存在することです。これを低消費電力でどのように実現できるでしょうか? ありがとう、 Joker_Y Re: S32K3 低功耗唤醒问题 こんにちは、 @Joker_Y さん。 あなたが共有してくれたプロジェクトはかなり大規模なようですね。すべてを確認したわけではありませんが、あなたが対応するウェイクアップソースを有効にしていないのはわかります。以下の行がコメントアウトされています。 Wkpu_Ip_EnableInterrupt(0,Wkpu_Ip_ChannelConfig_PB[0].hwChannel); また、スタンバイモードに入る前に、Clock_Ip_Init() APIを使用してメインクロックをFIRCに変更してください。 低出力の例を参照できます;クロック設定の変更方法やWKPUチャネルの有効化方法が示されています。 S32K3の低消費電力管理ANとデモ [RTD600 MCAL & IP]S32K3 低消費パワーマネージメントANとデモ よろしくお願いします、 ジュリアン Re: S32K3 低功耗唤醒问题 こんにちは、 @Joker_Y さん。 1.スタンバイ中かどうかはMC_MEを見て確認できます。MODE_STAT[PREV_MODE]。これは、前回のモードがリセット(任意のリセット)だったか、スタンバイだったかを示します。 また、MCUの現在の消費電力を測定することもできます。典型的なスタンバイ値は、S32K3XXのデータシート第 6 章.7(供給電流)に記載されています。 2. すべてのピンは、スタンバイモード中も、実行モードで最後に設定された状態を保持します。ただし、リセットイベント後はすべてのピンがデフォルト状態に戻されます。パッドキーピングを有効にすると、ピンがウェイクアップから状態を保ち、ユーザーが再度初期化するまで保つことができます。 S32K3XXのリファレンスマニュアル にある 41.12パッドの記録 を参照してください。 3. これはデザインやアプリケーションによると思います。私の意見では、ウォッチドッグが対応している場合にしてスリープに設定するか、RTCやその他のウェイクアップでS32K3を継続的に起動させ、ウォッチドッグをサービスし、低消費電力に戻す方法があります。 よろしくお願いします、 ジュリアン
View full article
S32K358 EVK 板 CAN 总线无法工作 你好, 我尝试运行代码来使用 S32K3x8EV8 板的 CAN0 或 CAN1,但我无法做到。但是 CAN 完全不起作用,我正在尝试通过 Waveshare USB-CAN-A 读取 CAN 消息。 代码也粘贴好了,附上CAN配置截图 /* * 版权所有 2019 NXP * * ALL RIGHTS RESERVED. * * 本软件由 NXP“按原样”提供,且不提供任何明示或暗示的保证。 * 默示担保,包括但不限于默示担保 * 不保证其适销性和适用于特定用途。 * 在任何情况下,NXP 或其贡献者均不对任何直接、 * 间接的、附带的、特殊的、惩罚性的或后果性的损害赔偿 *(包括但不限于采购替代商品或 * 服务;使用损失、数据丢失或利润损失;或业务中断) 无论何种原因造成,也无论基于何种责任理论,无论是合同责任, * 严格责任或侵权行为(包括过失或其他) 即使已被告知,也不得以任何方式退出本软件的使用。 * 发生此类损害的可能性。 */ /* ################################################################### ******************************************************************************** 文件:main.c * 所有者:彼得·斯坦西克 * 版本:1.0 * 日期: 2024年10月22日 * 分类:一般商业信息 * 简介:FlexCAN TX/RX ISR 测试 * ******************************************************************************** ******************************************************************************** 此演示应用程序的目的是向您展示 FlexCAN 模块的用法。 配置为使用 S32 RTD API 的 CAN FD。 - 此演示应用程序需要两块板,或者使用 CAN 工具连接一块板。 - CAN FD 已启用,比特率为500/2000 kbps - 它配置 FlexCAN0 模块及其收发器 (TJA1153)。 - MB0 用于传输 CANFD STD. ID - MB1 配置为接收任何 STD ID - 回调函数也用于处理 MB 中的 TX 和 RX 过程。收到的 ID 为 回声响起。 - 调用 setupCanXCVR 函数初始化连接到板上 FlexCAN0 的 TJA1153。 它期望收发器处于 Vanilla 状态,并将 TPL 设置为传递所有STD和扩展ID。 不要屏蔽来自总线的任何消息。最后退出配置模式 无需写入非易失性存储器,也无需锁定收发器。 * * ------------------------------------------------------------------------------ * 测试硬件:S32K3X8EVB-Q289 rev B2 * MCU:P32K358HVS 0P14E * 编译器:S32DS.ARM.3.5 * SDK 版本:S32K3_RTD_4.0.0_D2311 * 调试器: Lauterbach * 目标:内部闪存 * ******************************************************************************** 修订记录: 1.0 2024年10月22日Petr Stancik初始版本,基于 RTD FlexCAN_Ip_example *******************************************************************************/ /* 包括必要的配置文件。*/ #include "Mcal.h" #include "Clock_Ip.h" #include "FlexCAN_Ip.h" #include "IntCtrl_Ip.h" #include "Siul2_Port_Ip_Cfg.h" #include "Siul2_Dio_Ip_Cfg.h" #include "Siul2_Dio_Ip.h" #include "Siul2_Port_Ip.h" #include "OsIf.h" #define MSG_ID 20u #define RX_MB_IDX 1U #define TX_MB_IDX 0U volatile int exit_code = 0 ; /* 用户包含 */ Flexcan_Ip_DataInfoType tx_info = { .msg_id_type = FLEXCAN_MSG_ID_STD ,​ . data_length = 1u ,​ .fd_enable = FALSE ,​ .fd_padding = FALSE ,​ .enable_brs = FALSE ,​ is_polling = FALSE ,​ is_remote = FALSE​ } ; Flexcan_Ip_DataInfoType rx_info = { .msg_id_type = FLEXCAN_MSG_ID_STD ,​ . data_length = 1u ,​ .fd_enable = FALSE ,​ .fd_padding = FALSE ,​ .enable_brs = FALSE ,​ is_polling = FALSE ,​ is_remote = FALSE​ } ; Flexcan_Ip_MsgBuffType rxData ; uint8 dummyData [ 8 ] ; volatile uint32 g_canErrorStatus = 0 ; /* 用于调试器监视的实时 ESR1 快照 */ volatile Flexcan_Ip_StatusType g_tja1153Status [ 3 ] ; /* [0]=自动波特率,[1]=FEC白名单,[2]=退出配置*/ /*! \brief 项目的主要功能。 详细信息:启动初始化顺序如下: * - 启动汇编例程 * - 主要的() */ extern void CAN0_ORED_0_31_MB_IRQHandler ( void ) ; void setupCanXCVR_TJA1153 ( void ) ; static void CAN_DelayMs ( uint32 ms ) { uint32 ticks = OsIf_MicrosToTicks ( ms * 1000 U , FLEXCAN_IP_SERVICE_TIMEOUT_TYPE ) ; uint32 start = OsIf_GetCounter ( FLEXCAN_IP_SERVICE_TIMEOUT_TYPE ) ; uint32 elapsed = 0 U ; 当(经过时间<刻度) { elapsed += OsIf_GetElapsed ( & start , FLEXCAN_IP_SERVICE_TIMEOUT_TYPE ) ; } } void flexcan0_Callback ( uint8 instance , Flexcan_Ip_EventType eventType , uint32 buffIdx , const Flexcan_Ip_StateType * flexcanState ) { ( void ) flexcanState ; ( void )实例; 切换(事件类型) { case FLEXCAN_EVENT_RX_COMPLETE : dummyData [ 0 ] ++; 如果( buffIdx == 1 ) // 已接收 MB1 { FlexCAN_Ip_Send ( INST_FLEXCAN_0 , TX_MB_IDX , & tx_info , rxData . msgId ,( uint8 * ) & dummyData ) ; FlexCAN_Ip_Receive ( INST_FLEXCAN_0 , RX_MB_IDX , & rxData , false ) ; } 休息; case FLEXCAN_EVENT_RXFIFO_COMPLETE : 休息; case FLEXCAN_EVENT_TX_COMPLETE : 休息; case FLEXCAN_EVENT_ENHANCED_RXFIFO_COMPLETE : 休息; case FLEXCAN_EVENT_ENHANCED_RXFIFO_WATERMARK : 休息; 默认: 休息; } } void setupCanXCVR_TJA1153 ( void ) { /** * 与大多数 CAN 收发器不同,TJA1153 收发器并非即插即用。 如果之前没有配置过,则初始时进入配置模式。 * 在此初始状态下,它已准备好接收额外的网络安全 例如 TPL/BBL 之类的装置。 * * 在此示例中,它将 TPL 设置为传递所有标准和扩展ID,并且不阻止任何消息。 * 下总线。最后退出配置模式,未写入非易失性数据。 * 既不锁定收发器,也不存储内存。 * * 有关更多详细信息,请参阅 NXP 的 TJA1153 数据手册。 * */ #define TJA1153_START_ID (uint32_t)(0x555u) #define TJA1153_CONFIG_ID (uint32_t)(0x18DA00F1u) uint8 sendData [ 8 ] = { 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 } ; uint32_t错误; /* 允许通过 TXD 引脚从本地主机配置 CAN0 收发器,STB = 0 (PTC20) */ Siul2_Dio_Ip_WritePin ( PTC_H_HALF , 4 , 0 U ) ; CAN_DelayMs ( 1000 ) ; /* 自动比特率检测初始 CAN Classic 帧,ID 为 0x555,适用于 CAN0 */ tx_info.is_polling = TRUE ;​​ tx_info.msg_id_type = FLEXCAN_MSG_ID_STD ;​​ tx_info.data_length = 8 ;​​ g_tja1153Status [ 0 ] = FlexCAN_Ip_SendBlocking ( INST_FLEXCAN_0 , TX_MB_IDX , & tx_info , TJA1153_START_ID , sendData , 1000 ) ; /* 用于设置传输白名单的滤波器元件配置 (FEC) 帧。 * 注意:ID_TX 是 NXP 参考示例的占位符 (0xC0FFEE),而不是 MSG_ID - * 此操作仅将该单个扩展 ID列入白名单。请先确认此基本方法有效。 然后根据 TJA1153数据手册,根据您的实际 ID 调整 ID_TX/Extended_Filter_Config。 { uint32_t ID_Stinger = TJA1153_CONFIG_ID ; uint32_t PAYLOAD_FEC [ 2 ] ; uint8_t COMMAND_BYTE_FEC = 0x10 ; uint8_t Filter_Element_Index_0 = 0 ; uint8_t Filter_Element_Type = 1 ; uint8_t Extended_Filter_Config = 3 ; /* TWL 和 BBL 都适用 */ uint32_t ID_TX = 0xC0FFEE ; uint32_t Filter_Element_Contents = ( Extended_Filter_Config << 29 ) | ID_TX ; PAYLOAD_FEC [ 0 ] = ( COMMAND_BYTE_FEC << 24 ) | ( Filter_Element_Index_0 << 16 ) | (筛选元素类型<< 15 ) | (筛选元素内容>> 16 ) PAYLOAD_FEC [ 1 ] = ( Filter_Element_Contents & 0xFFFF ) << 16 ; sendData [ 0 ] = ( uint8 )( ( PAYLOAD_FEC [ 0 ] >> 24 ) & 0xFFU ) ; sendData [ 1 ] = ( uint8 )( ( PAYLOAD_FEC [ 0 ] >> 16 ) & 0xFFU ) ; sendData [ 2 ] = ( uint8 )(( PAYLOAD_FEC [ 0 ] >> 8 ) & 0xFF U ) ; sendData [ 3 ] = ( uint8 ) ( PAYLOAD_FEC [ 0 ] & 0xFFU ) ; sendData [ 4 ] = ( uint8 )( ( PAYLOAD_FEC [ 1 ] >> 24 ) & 0xFFU ) ; sendData [ 5 ] = ( uint8 )(( PAYLOAD_FEC [ 1 ] >> 16 ) & 0xFF U ) ; tx_info.msg_id_type = FLEXCAN_MSG_ID_EXT ;​​ tx_info.data_length = 6 ;​​ g_tja1153Status [ 1 ] = FlexCAN_Ip_SendBlocking ( INST_FLEXCAN_0 , TX_MB_IDX , & tx_info , ID_Stinger , sendData , 1000 ) ; CAN_DelayMs ( 5 ) ; } /* 退出配置模式的最后一个命令帧,无需写入非易失性存储器或非 * 锁定收发器,即开发模式*/ sendData [ 0 ] = 0x71 ; // 命令字节 sendData [ 1 ] = 0x2 ; sendData [ 2 ] = 0x3 ; sendData [ 3 ] = 0x4 ; sendData [ 4 ] = 0x5 ; sendData [ 5 ] = 0x6 ; sendData [ 6 ] = 0x7 ; sendData [ 7 ] = 0x8 ; tx_info.msg_id_type = FLEXCAN_MSG_ID_EXT ;​​ tx_info.data_length = 8 ;​​ g_tja1153Status [ 2 ] = FlexCAN_Ip_SendBlocking ( INST_FLEXCAN_0 , TX_MB_IDX , & tx_info , TJA1153_CONFIG_ID , sendData , 1000 ) ; /* 最后一帧结束后,收发器退出配置模式并进入待机模式,退出 * 将 CAN0 收发器的 STB 引脚设置为高电平(引脚反接)即可切换到正常工作模式 */ Siul2_Dio_Ip_WritePin ( PTC_H_HALF , 4 , 1 U ) ; CAN_DelayMs ( 1000 ) ; errors = FlexCAN_Ip_GetErrorStatus ( INST_FLEXCAN_0 ) ; FlexCAN_Ip_ClearErrorStatus ( INST_FLEXCAN_0 , errors ) ; } int main ( void ) { /* 在这里编写你的代码 */ Clock_Ip_Init ( & Clock_Ip_aClockConfig [ 0 ]) ; Siul2_Port_Ip_Init ( NUM_OF_CONFIGURED_PINS0 , g_pin_mux_InitConfigArr0 ) ; IntCtrl_Ip_EnableIrq ( FlexCAN0_1_IRQn ) ; IntCtrl_Ip_InstallHandler ( FlexCAN0_1_IRQn , CAN0_ORED_0_31_MB_IRQHandler , NULL_PTR ) ; FlexCAN_Ip_Init ( INST_FLEXCAN_0 , & FlexCAN_State0 , & FlexCAN_Config0 ) ; FlexCAN_Ip_SetRxMaskType_Privileged ( INST_FLEXCAN_0 , FLEXCAN_RX_MASK_INDIVIDUAL ) ; FlexCAN_Ip_SetRxIndividualMask_Privileged(INST_FLEXCAN_0,RX_MB_IDX,0x0<<18); // 清除掩码寄存器以允许接收所有STDID FlexCAN_Ip_SetStartMode ( INST_FLEXCAN_0 ) ; setupCanXCVR_TJA1153 () ; tx_info.is_polling = FALSE ;​​ tx_info.msg_id_type = FLEXCAN_MSG_ID_STD ;​​ tx_info.data_length = 8 ;​​ tx_info.fd_enable = false ;​​ tx_info.enable_brs = false ;​​ FlexCAN_Ip_ConfigRxMb ( INST_FLEXCAN_0 , RX_MB_IDX , & rx_info , MSG_ID ) ; FlexCAN_Ip_Receive ( INST_FLEXCAN_0 , RX_MB_IDX , & rxData , false ) ; FlexCAN_Ip_Send ( INST_FLEXCAN_0 , TX_MB_IDX , & tx_info , MSG_ID , ( uint8 * ) & dummyData ) ; 当( 1 ) { g_canErrorStatus = FlexCAN_Ip_GetErrorStatus ( INST_FLEXCAN_0 ) ; } 返回0 ; } /* 主程序结束 */ /*! ** @} */ Re: S32K358 EVK board CAN not working 你好@ Yash2530 附件包含我对 RTD 版本 3.0.0 进行的测试。您可以参考 P07。 Re: S32K358 EVK board CAN not working 嗨Senlent , Can 传输 TX 工作正常,我能够从 NXP 接收数据到 Waveshare USB CAN 设备,但 RX 似乎无法工作。 我发送的 id 为 0x001,数据为 01 01 01 01 01 01 01 01。 我是不是漏掉了什么?或者您提供的代码只适用于TX?
View full article
使いやすい8ビットのマイクロコントローラやアセンブリ言語はありますか? 実際の16進/バイナリコードが見られる8ビットのマイクロコントローラを探しています。大学で8051アセンブリ言語を学んでいるのですが、メモリ内の命令や値の一つ一つを見て理解できることが本当に大好きです。しかし、それらのマイクロコントローラは時代遅れで互換性のために多くの「ハック」が必要です。少なくとも、自分のコードを実際のハードウェアに書き込むたびに、そんな風に感じるんです。では、シンプルな8ビットアセンブリ言語で実際のチップを使った簡単な電子工学プロジェクトをプログラムできるものはありますか? Re: Is there a simple 8 bit microcontroller/assembly language that is nice to work with? こんにちは、 NXPには 8ビットデバイスのカタログがあります。 S08SG|8ビットSmall Package SG MCUを使えます |NXPセミコンダクターズの デバイス、 S08SGファミリーは、一般的な機能を備えたエントリーレベルからミッドレンジのデバイスです。 S08SGデバイスはCodeWarriorツールに含まれています。 CodeWarriorツールバージョン11.1はWindows 11でサポートされており、このツールはさまざまな接続に対応しています[P&E USB Multilink Universal / USB Multilink、P&E Cyclone、オープンソースBDM、P&E Full chip simulation] このツールはこちらのリンクからダウンロードできます: CodeWarrior® for MCUS (Eclipse IDE) v11.1 CWツールでデバッグを入力すると、Disassemblyビューのセクションがあり、読み込まれたプログラムがアセンブリ言語命令とソースコードの混合として比較されています。 敬具、ルイス
View full article
VSCodeのデバッグプローブウィンドウが読み込まれない(右にスクロールする白い線が表示される)。 これはOS X、VSCバージョン26.6.57での動作です。DEBUG PROBES ウィンドウは、プローブを一切検出していません(現時点では Segger です)。これは、私がアップグレードを行う前は正常に動作していたフリーフォームプロジェクトに関するものです。何を調査すべきかについて、ご提案をいただければ幸いです。プローブはVS Code拡張機能の外部で機能しています。MCUXpresso Installerも実行しました(PEMicroサーバーのインストールでは常に回転するホイールが表示されますが、tarを~/.mcuxpressotools/pemicrogdbserverに展開することには成功しました)。(余談ですが)。 拡張機能がデバッグツールとどのように連携しようとしているのか、その内容や方法に関する情報が役立つでしょう。拡張機能の設定などでツールの場所を指定しようと試みました。 デバッグプローブビューは、debug-tracker-vscodeの依存関係によって制御されますか? 読み込み時に「プロバイダーが見つかりませんでした」というメッセージが一瞬表示されます。 Re: VSCode DEBUG PROBES window not loading (white line scrolling right). こんにちは、 @buff。 「これはアップグレードを行う前に動作していた自由形式のプロジェクト用です」とおっしゃった際、何がアップグレードされたのかを明確にしていただけますか? これで問題が解決するかどうかを確かめるために、以下のテストを行ってもらえますか? -デバッグプローブウィンドウで、 [デバッグのクリーンアップ]をクリックし、[更新]ボタンをクリックします。 MCUXpressoインストーラーを最新バージョンにアップデートしてください。パッケージ およびコンポーネントの状態、バージョン、更新 のセクションで説明されている手順に従うことができます。 - MCUXpressoインストーラーからSEGGER J-Linkソフトウェアパックを再インストールしてください。 また、現在どのデバイスを使っているのか教えていただけますか?これは当社のEVK製品の一つですか、それともカスタムボードですか? BR ハビブ
View full article
MPC8313CVRAFFCの交換/代替品リクエスト こんにちは、 PNのおすすめの代替品や代替品を教えてもらえますか?MPC8313CVRAFFC。 ありがとうございます。 Re: Replacement/Alternative request for MPC8313CVRAFFC 前回購入
View full article
IMX8M+ 带 BT+WiFi 模块 (AW-XB583MA-PUR) BT 初始化需要 50-60 秒时间 亲爱的恩智浦团队 我们有基于 iMX8M+ 的定制主板,分别在 PCIe 和 UART 上使用 BT & WiFi(来自 Azurawave 的 AW-XB583MA-PUR 模块)。 我们在初始化 BT 时遇到了问题,这需要大约 50-60 秒(持续时间总是固定的)才能通过 UART 获得对第一个 HCI RESET 命令的响应。我们与 Azurawave 团队进行了检查/调试,他们建议我们也与恩智浦进行检查(因为在他们看来),这可能是恩智浦方面的问题。 以下是 SoC 与模块的连接: 恩智浦:UART1_RXD<---> 模块:UART TXD NXP:UART1_TXD<---> 模块:UART RXD NXP:UART3_T<---> XD 模块:UART RTS <---> 恩智浦:UART CTS 设备树更改我们所做的:& uart1 {/* BT */ < >pinctrl- names = " 默认 ";pinctrl- 0 = < & pinctrl_uart1 >;分配的时钟 = < & clk imx8MP_CLK_UART1 >;分配的时钟父母 = < & clk imx8MP_SYS_PLL1_80M >; /*fsl,uart-has-rtscts;*/ 状态 = " 好吧 ";};p inctrl_uart1:uart1grp {fsl,别针 =;}; i.MX 8M | i.MX 8M Mini | i.MX 8M Nano Linux Re: IMX8M+ w/ BT+WiFi module (AW-XB583MA-PUR) BT takes 50-60 seconds time to get initialized 你好@hiteshviradiya 希望你一切都好。 你能分享设备树上的详细信息吗?我只看到了 Pinmux 代码。 此外,还有有关您正在使用的电路板支持包 版本以及用于连接到 WIFI 模块的驱动程序的详细信息。 顺祝商祺! 萨拉斯 Re: IMX8M+ w/ BT+WiFi module (AW-XB583MA-PUR) BT takes 50-60 seconds time to get initialized 亲爱的@Manuel_Salas , 我们使用的是定制版的Buildroot(版本2024.08)。内核版本:6.6.36。我之前已经分享过与蓝牙相关的设备树代码以及 Pinmux,但下面再次分享: &uart1 { /* BT */ pinctrl-names = "default"; pinctrl-0 = <&pinctrl_uart1>; 分配时钟 = <&clk IMX8MP_CLK_UART1>; 已分配时钟父级 = <&clk IMX8MP_SYS_PLL1_80M>; fsl,uart-has-rtscts; 状态 = "正常"; }; pinctrl_uart1: uart1grp { fsl,pins = < MX8MP_IOMUXC_UART1_RXD__UART1_DCE_RX 0x140 MX8MP_IOMUXC_UART1_TXD__UART1_DCE_TX 0x140 MX8MP_IOMUXC_UART3_RXD__UART1_DCE_CTS 0x140 MX8MP_IOMUXC_UART3_TXD__UART1_DCE_RTS 0x140 >; }; 如果您需要其他特定的设备树节点,请告诉我。 Re: IMX8M+ w/ BT+WiFi module (AW-XB583MA-PUR) BT takes 50-60 seconds time to get initialized 您好。 请指定您正在使用的驱动程序。 这是习俗吗?我们的 电路板支持包 中不直接支持 AW-XB583MA。 顺祝商祺! 萨拉斯
View full article
RT1170 EVKB 双核示例:CM7 启动时卡住 大家好, 我刚开始使用RT1170 EVKB开发板,正在尝试运行位于以下位置的多核Hello World示例: boards/evkbmimxrt1170/multicore_examples/hello_world 我使用的是 MCUXpresso SDK v26.03.00(最新可用版本)。 当我加载多核示例时,CM7 内核在启动期间挂起,而调试器显示 CM4 内核正在运行。CM7 永远不会执行到 `main()`。 故障状态寄存器包括: 为了排除多核示例的问题,我还尝试运行独立的 CM7 Hello World 示例,但它表现出相同的行为。但是,独立的 CM4 Hello World 示例可以正常运行。 该电路板为RT1170 EVKB ,采用默认跳线和拨码开关设置,我没有修改任何硬件配置。 有人在使用 SDK 26.03.00或 RT1170 EVKB 时遇到过这个问题吗?CM7 内核是否需要任何额外的电路板配置、启动设置或调试器配置? 我还测试了之前的 SDK 版本( v2.13.0 ),但发现 CM7 内核也存在同样的问题。 任何建议都将不胜感激。 谢谢! Re: RT1170 EVKB Dual-Core Example: CM7 Hangs at Startup 嗨@FranklinOmo , 请问您能否分享一下您电路板的原理图版本?另外,为了简化审核流程,您能否给我们发送一张电路板的照片? 此致, 巴勃罗 Re: RT1170 EVKB Dual-Core Example: CM7 Hangs at Startup 嗨@Pablo_Ramos 以下是板的图片,供您参考。 Re: RT1170 EVKB Dual-Core Example: CM7 Hangs at Startup 嗨@FranklinOmo , 谢谢你提供的电路板照片。 你能帮我批量擦除板吗? 您可以在以下文档中找到使用 SPT 执行批量擦除的步骤: RT 开发板调试器连接问题恢复 您能否也帮我更新一下固件进行测试? 有关固件更新的说明,请参阅 MIMXRT1170-EVKB 板硬件用户指南第 2.11 节“板载调试器”。 您之前是否成功编程并运行过 CM7 应用程序?还是说,自从电路板从包装盒里拿出来后,就一直存在这种问题? 如果问题仍然存在,您能否尝试使用 GUI Flash Tool 或 SPT 对设备进行编程? 顺祝商祺! 巴勃罗
View full article
MPC8313CVRAFFC 的替换/替代方案请求 您好, 请问能否推荐一款可以替代您产品编号为 MPC8313CVRAFFC 的型号? 谢谢。 Re: Replacement/Alternative request for MPC8313CVRAFFC 最后一次购买
View full article
S32K3xx FlexCAN 传统和增强型 RXFIFO DMA 我正在研究 S32K344 FlexCAN,在使用 FlexCAN 时我遇到了一些问题。 1.DMA在S32K344中实际上是如何工作的?以及如何使用它? 2. 如何将传统 FIFO 与 DMA 以及增强型 FIFO 与 DMA 集成 3. 使用 DMA 会产生什么后果? Re: S32K3xx FlexCAN legacy and Enhanced RXFIFO DMA 你好, 请问能否提供此示例的 MCAL 版本?谢谢。
View full article
RT1170 EVKB Dual-Core Example: CM7 Hangs at Startup Hi everyone, I have just started working with the RT1170 EVKB board and am trying to run the multicore Hello World example located in: boards/evkbmimxrt1170/multicore_examples/hello_world I am using the MCUXpresso SDK v26.03.00 (latest available version). When I load the multicore example, the CM7 core hangs during startup, while the debugger shows that the CM4 core is running. The CM7 never reaches `main()`. The fault status registers are: To rule out an issue with the multicore example, I also tried running the standalone CM7 Hello World example, but it exhibits the same behavior. However, the standalone CM4 Hello World example runs correctly. The board is an RT1170 EVKB with the default jumper and DIP switch settings, and I have not modified any hardware configuration. Has anyone encountered this issue with SDK 26.03.00 or the RT1170 EVKB? Is there any additional board configuration, boot setting, or debugger configuration required for the CM7 core? I also tested the previous SDK version (v2.13.0), but I observed the same issue with the CM7 core. Any suggestions would be greatly appreciated. Thank you! Re: RT1170 EVKB Dual-Core Example: CM7 Hangs at Startup Hi @FranklinOmo, Could you please share the schematic revision of your board? Additionally, to help simplify the review, could you send us a photo of the board? Best Regards, Pablo Re: RT1170 EVKB Dual-Core Example: CM7 Hangs at Startup Hi @Pablo_Ramos  Here is an image of the board for your reference.. Re: RT1170 EVKB Dual-Core Example: CM7 Hangs at Startup Hi @FranklinOmo, Thanks for the picture of the board. Could you help me perform a mass erase of the board? You can find the steps for performing a mass erase using the SPT in the following document: RT board recovery for debugger connect issues Could you also help me test by updating the firmware? Instructions for updating the firmware can be found in Section 2.11, "On-board Debugger," of the MIMXRT1170-EVKB Board Hardware User Guide. Have you been able to successfully program and run a CM7 application before, or has this behavior been present since the board was first taken out of the box? If the problem persists, could you also try programming the device using the GUI Flash Tool or SPT? Best Regards, Pablo
View full article
Replacement/Alternative request for MPC8313CVRAFFC Hi, Can you please advise for a recommended replacement/alternative for your PN: MPC8313CVRAFFC, please? Thanks. Re: Replacement/Alternative request for MPC8313CVRAFFC Last Time Buy
View full article
RT1170 EVKBデュアルコアの例:CM7が起動時にハングアップする こんにちは、皆さん 私は最近RT1170 EVKBボードを使い始めたばかりで、以下の場所にあるマルチコアHello Worldサンプルを実行しようとしています。 boards/evkbmimxrt1170/multicore_examples/hello_world 私はMCUXpresso SDK v26.03.00(最新バージョン)を使っています。 マルチコアのサンプルをロードすると、CM7コアが起動中にハングアップする一方、デバッガーではCM4コアが動作していることが示されます。CM7は`main()`に到達しません。 障害状態レジスタは以下のとおりです。 マルチコアの例に問題がある可能性を排除するため、スタンドアロンのCM7 Hello Worldの例も実行してみましたが、同じ動作を示しました。しかし、スタンドアロンのCM4 Hello Worldサンプルは正しく動作します。 ボードは RT1170 EVKB ( ジャンパーとディップ・スイッチ設定 )で、ハードウェア構成は変更していません。 SDK 26.03.00 やRT1170 EVKBでこの問題に遭遇した方はいらっしゃいますか?CM7コアを使用するには、追加のボード設定、ブート設定、またはデバッガー設定が必要ですか? 以前のSDKバージョン(v2.13.0)もテストしましたが、CM7コアでも同じ問題が起きていました。 何かご提案があれば大変ありがたいです。 ご回答をお待ちしています。 Re: RT1170 EVKB Dual-Core Example: CM7 Hangs at Startup こんにちは、@FranklinOmo さん。 基板の回路図の改訂版を教えていただけますか?さらに、レビューを簡素化するために、ボードの写真を送ってもらえますか? よろしくお願いします、 パブロ Re: RT1170 EVKB Dual-Core Example: CM7 Hangs at Startup こんにちは、 @Pablo_Ramos さん。 参考までに、ボードの画像を掲載します。 Re: RT1170 EVKB Dual-Core Example: CM7 Hangs at Startup こんにちは、@FranklinOmo さん。 ボードの写真をありがとうございます。 ボードの大量消去を手伝ってもらえますか? SPTを使ったマス消去の手順は以下の文書で確認できます: デバッガ接続の問題に対するRTボードのリカバリ ファームウェアのアップデートも手伝っていただけますか? ファームウェアの更新手順は、MIMXRT1170-EVKBボードハードウェアユーザーガイドのセクション2.11「搭載デバッガ」に記載されています。 これまでにCM7アプリケーションを成功裏にプログラム・実行できたことはありますか?それとも、この動作はボードを箱から出した当初からありましたか? 問題が続く場合は、GUI Flash ToolやSPTを使ってデバイスのプログラミングも試してみてはどうでしょうか? よろしくお願いいたします。 パブロ
View full article
S32K3 Low-Power Wake-up Issue While debugging the S32K314 low-power wake-up function recently, I found that it cannot wake up from sleep mode, even when using an external wake-up method. Under normal circumstances, the DI will respond to external stimuli, but once it enters hibernation, it will not respond at all. The attached file contains the code. What could be causing this issue, and how can it be resolved? Re: S32K3 低功耗唤醒问题 Hi, Julián After adopting your suggestion, I found that I could wake up. Does that mean I have truly entered Standby mode? Another question I'd like to ask is, after entering Standby mode, does the I/O port status remain the same as before? Another question is, in our circuit design, there is a hardware watchdog that needs to be fed by the MCU at regular intervals. How can this be handled under low power consumption? Thanks, Joker_Y Re: S32K3 低功耗唤醒问题 Hi @Joker_Y, The project you've shared seems to be quite big. I have not gone through all of it, but I can see that you are not enabling the respective wake-up source.  You have the following line commented: Wkpu_Ip_EnableInterrupt(0,Wkpu_Ip_ChannelConfig_PB[0].hwChannel); Also, before entering standby, change the main clock to FIRC with Clock_Ip_Init() API. You can refer to the low power examples as reference; it shows how to change clock configuration and how to enable WKPU channel. S32K3 Low Power Management AN and demos [RTD600 MCAL & IP] S32K3 Low Power Management AN and demos Best regards, Julián Re: S32K3 低功耗唤醒问题 Hi @Joker_Y, 1. You can check if you are in standby by looking at MC_ME.MODE_STAT[PREV_MODE]. It shows if the previous mode was either reset (any reset) or standby. You could also measure MCU's current consumption. Typical standby values are described in S32K3XX's Datasheet chapter 6.7 (Supply currents). 2. All pins will retain its last set states in run mode during standby mode. However, all pins will also be placed to its default states after reset event by default. You can enable pad keeping ensuring the pin retains its state from wakeup, until user initializes it again. Refer to 41.12 Pad keeping from S32K3XX's Reference Manual. 3. I guess this depends on design and application. In my opinion, you can either set the watchdog to sleep (if the watchdog supports it), or continuously wake up S32K3 (by RTC or any other wakeup), service the watchdog, and resume low power.  Best regards, Julián
View full article
关于 S32K3_RTD_7_0_0 的下载链接 我想从 NXP 网站下载一个符合以下条件的 RTD 可执行文件,但我找不到。 请问可以提供下载链接吗? 我很赶时间,所以希望您能尽快回复。 S32K3_RTD_7_0_0_D2510_ASR_REL_4_9_REV_0000_20251031 我找到了以下类似的可下载产品,但它需要一个符合上述条件的 RTD(Ready-to-Download)。 SW32K3_S32M27x_RTD_R21-11_6.0.0_QLP04_HF01_D2510.exe SW32K3_S32M27x_RTD_R23-11_7.0.0_D2511.exe SW32K3_S32M27x_RTD_R23-11_7.0.0_QLP03_D2512.exe Re: S32K3_RTD_7_0_0のダウンロードリンクについて HI 您需要使用 EBTresos 还是 S32DS? 如果您需要使用 EBTresos,请下载并安装 S32K3_S32M27x 实时驱动程序 ASR R23-11 版本 7.0.0。(SW32K3_S32M27x_RTD_R23-11_7.0.0_D2511.exe)。 如果您需要使用 S32DS,请下载 S32K3_S32M27x 实时驱动程序 ASR R23-11 版本 7.0.0。(SW32K3_S32M27x_RTD_R23-11_7.0.0_D2511_DesignStudio_updatesite.zip)。 此致敬礼, Robin
View full article
S32K3xx FlexCAN legacy and Enhanced RXFIFO DMA I am working on the S32K344 FlexCAN, and I have some questions while using FlexCAN.  1. How is DMA actually working in S32K344, and how to use it? 2. How to integrate legacy FIFO with DMA and enhanced FIFO with DMA 3. Are there any consequences that will come while using DMA? Re: S32K3xx FlexCAN legacy and Enhanced RXFIFO DMA Hi, I can simply recommend to first read a device Reference manual to learn DMA, DMAMUX and FlexCAN modules. Attached you can find presentation summarizing those module's functionality and give insight on RTD usage. Then you can refer to available RTD demos in S32DS or other posted on Community; https://community.nxp.com/t5/forums/recentpostspage/interaction-style/tkb/post-type/thread/board-id/S32K BR, Petr Re: S32K3xx FlexCAN legacy and Enhanced RXFIFO DMA Hello , COULD YOU PLEASE PROVEIDE MCAL  VERSION OF this example?Thanks.
View full article
VSCode 调试探测窗口无法加载(白色线条向右滚动)。 这是在 OS X 系统上,VSC 版本:26.6.57。DEBUG PROBES 窗口未检测到任何探针(目前是 Segger)。这是一个自由格式项目,在我进行升级之前它运行正常。我想请教一下应该检查哪些方面。这些探针在 VSCode 扩展之外运行。我还运行了 MCUXpresso 安装程序(尽管 PEMicro 服务器安装一直显示旋转的圆圈,但它确实成功地将 tar 文件解压到了 ~/.mcuxpressotools/pemicrogdbserver)。(只是顺便提一下)。 有用的信息包括该扩展程序尝试与调试工具进行哪些交互/如何交互。我已尝试在扩展程序设置等中提供工具位置。 调试探针视图是否受 debug-tracker-vscode 依赖项控制? 页面加载时会短暂显示一条消息,内容大概是找不到提供商。 Re: VSCode DEBUG PROBES window not loading (white line scrolling right). 你好@buff , 您提到“这是一个自由格式项目,在我进行升级之前运行正常”,请问您能否具体说明升级了什么? 为了确定这是否能解决问题,请您执行以下测试? -在“调试探针”窗口中,单击“清理调试” ,然后单击“刷新”按钮。 -将 MCUXpresso 安装程序更新到最新版本。您可以按照“代码包,软件包和元器件状态、版本和更新”部分中描述的步骤进行操作。 -从 MCUXpresso 安装程序重新安装 SEGGER J-Link 软件包。 另外,请问您目前使用的是哪款设备?这是我们的EVK产品之一,还是定制的电路板? BR 哈比卜
View full article