Multi Source Translation Content

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

Multi Source Translation Content

ディスカッション

ソート順:
LS2160A Serdes Clocking I'm using LX2160A SerDes1 with RCW SerDes Protocol 2: Lanes E–H: SGMII Lanes A–D: PCIe.2 x4 (Gen2 only) From the Reference Manual, it appears all lanes use PLLS, so both SGMII and PCIe must share the same reference clock. I originally wanted to run SGMII at 125 MHz and PCIe at 100 MHz using separate fast/slow clock inputs, but since this specific protocol option puts both protocols on PLLS only, they must share one identical reference frequencyso now I plan to provide a single 100 MHz clock to the SD1 PLLS input and leave PLLF unused. Is it possible to run Protocol 2 with a single 100 MHz PLLS reference for both SGMII and PCIe Gen1/Gen2, with no additional SerDes configuration beyond the RCW? Are there any protocol-specific issues (jitter, SSC, etc.) when SGMII and PCIe share the same PLLS? My SGMII link partner is a LAN9645 using its own local 125 MHz reference. Since SGMII uses CDR, is it normal for one side to be derived from 100 MHz and the other from 125 MHz, as long as both generate the correct 1.25 Gbaud line rate? Since Protocol 2 doesn't use PLLF, can the SD1 fast reference clock input be left unconnected, or should it still be driven?
記事全体を表示
S32K328 – マルチコアが有効な場合、FIRCクロック分周器(DIV16)は適用されません NXPテクニカルサポートチームの皆様、こんにちは。 S32K328のFIRCクロック設定について質問があります。 STM2モジュールのFIRCクロックソースを3MHz(DIV 16)にシングルコアセットアップで設定しました。シングルコア構成では、FIRCクロックソースが正しく3MHzで出力されていることを確認しました。 しかし、マルチコアを有効にすると、分周器が16に設定されているにもかかわらず、FIRCクロックソースの出力が3MHzではなく48MHzになります。 現在のアーキテクチャでは、MCUの開始モードとセットモードはCore 0上でしか実行できません。私の質問は、Core 1からMCUクロックにもアクセス(または再設定)できるのか、そしてこれが問題の原因になるのかということです。 私の環境設定に関する補足情報: 私はAUTOSAR環境で作業しており、マルチコアサポートのためにRM(Resource Manager)モジュールを追加しました。 Domain0 マスター: コア 0、Domain1 マスター: コア 1。各ドメインに対してすべてのメモリおよびペリフェラルアクセス権限が付与されています。 ツール環境: MCAL RTD 3.0.0 EB Tresos 27.1.0 私自身の分析からの発見: 実行時にCONFIG_REG_GPRレジスタのFIRC_DIV_SELフィールドを読み取ると、値は3となり、これはドライバーコードに基づき48MHzに対応します(DividerValueマッピング:48MHz→3、24MHz→1、3MHz→2)。また、クロックドライバーのディバイダー書き込みパスにはAPP_CORE_ACC権限チェックと、Secure BAF(CORE2)がWFIに入るまでの待ち時間(ポーリングPRTN0_CORE2_STAT)が含まれていることに気づきました。マルチコア構成では、除算器への書き込みがスキップされる可能性があると推測されます。 以下の点についてアドバイスいただけますか: マルチコアが有効になっている場合、FIRC分周器の設定(DIV 16)が適用されず、3MHzではなく48MHzの出力になるのはなぜですか? このシナリオでは、Core 1からのMCUクロックへのアクセスや再設定がサポートされているか、または必須かは不明です。 マルチコア構成におけるAPP_CORE_ACC権限チェックやSecure BAF WFIタイムアウトによって、ディバイダー書き込みをスキップできるかどうか、そしてディバイダーが正しく適用されているかを確実にする方法についてです。 サポートありがとうございます。ご回答をお待ちしております。 よろしくお願いします、 AWSライブラリS32K3 Re: S32K328 – FIRC Clock Divider (DIV16) Not Applied When Multicore Is Enabled こんにちは、 根本原因 は 自分の側にある。 該当するドライバー機能は 以下の(Clock_Ip_SetFircDivSelHSEb in \Mcu_TS_T40D34M30I0R0\src\Clock_Ip_IntOsc.c をご覧ください😞 c /* Application can write this divider */ if ( ((IP_CONFIGURATION_GPR->CONFIG_REG_GPR & CONFIGURATION_GPR_CONFIG_REG_GPR_APP_CORE_ACC_MASK) >> CONFIGURATION_GPR_CONFIG_REG_GPR_APP_CORE_ACC_SHIFT) == CLOCK_IP_APP_CAN_WRITE) { ... /* FIRC_DIV_SEL write happens here */ } else { /* HSE firmware doesn't allow to write FIRC post divider. */ Clock_Ip_ReportClockErrors(CLOCK_IP_REPORT_WRITE_PROTECTION_ERROR, Config->Name); } 問題は 、 私のマルチコア構成では 、 フルスピードで動作しているときにコードが(APP_CORE_ACC == CLOCK_IP_APP_CAN_WRITE)ブロックに入らないことです。 ブロック 内に while(1)を入れて確認 しました が、その時間は一度も到達しません 。その結果、 FIRC_DIV_SEL書き込みがスキップされ、 レジスタは設定された2(3MHz)ではなくリセット値3(48MHz) のままになります 。これにより、私のSTMティックは意図した16倍速く動作 します。 しかし、デバッグモード(ステップ実行/ブレークポイント設定)で実行すると、同じブロックが正しく実行され、FIRC_DIV_SELも適切に2(3MHz)に設定されます。このフルスピード実行とデバッグ実行の違いが、問題の重要な症状です。 So the APP_CORE_ACC bit in CONFIG_REG_GPR is not set to CLOCK_IP_APP_CAN_WRITE at the moment Mcu_InitClock reads it during a full-speed multicore boot, but it does become writable when I slow execution down with the debugger. 私の環境設定に関する補足情報: Mcu_InitClockとMcu_SetModeはコア0でのみ呼び出されます。Core 1(CM7_1)はMCUクロックAPIを呼び出しません。 コア1は、 MC_ME (PRTN0_CORE1_*) を介してコア0から起動されます 。 HSEアプリケーションのファームウェア は 一切読み込んで いません。 同じ構成 は シングルコア(FIRC_DIV_SEL = 2 / 3MHz)でも正しく 動作します。 ツール環境:MCAL RTD 3.0.0、EB Tresos 27.1.0。 以下の点を理解する手助け をしてもらえます か? CONFIG_REG_GPRのAPP_CORE_ACCビット を制御するものは何 でしょうか?SBAFはどのような条件下で アプリケーションコアの書き込みアクセス をFIRC_DIV_SELに付与 しますか? なぜこのビットはシングルコアでは正しく設定されるのに、マルチコア構成では(フルスピードで)設定されないのでしょうか?CM7_1を起動したりマルチコアブートフローを追加したりすると、SBAFがこのアクセスを許可するタイミングや変更は変わりますか? ブロックは デバッガ下では正しく 実行 されますが、フルスピードではないため、 SBAFが 書き込みアクセスを許可し、Core 0 がMcu_InitClockを呼び出す場合のタイミングや順序の問題 が強く示 唆 されます。 Core 0がクロック 初期化を行う 前に SBAFがAPP_CORE_ACC = APP_CAN_WRITEを付与していることを確認する 推奨方法は 何でしょうか? マルチコア環境 で アプリケーションコアが このアクセス権を付与 される かどうかを決定する 特定の ブート構成(IVT、 ライフサイクル、またはSBAF関連 の設定)はありますか? Thank you for your サポート. I look forward to your guidance. よろしくお願いします、 Re: S32K328 – FIRC Clock Divider (DIV16) Not Applied When Multicore Is Enabled こんにちは、 そちら側でのテストと 詳細なご回答、 ありがとうございました 。 私の実装に関する ご質問にお答えします 。 1. FIRC_DIV_SELの設定方法: 私のClock_Ip_IrcoscConfigurations_0 構造 では 、FIRCクロック は IRCOSCの範囲をCLOCK_IP_SUPPORTS_3MHZ_FREQUENCYに設定 しています 。つまり 、意図された構成は3MHzで、 あなたのテストと同じです。 2. 2番目のコアの初期化方法 / もう一方のコアでクロック初期化を呼び出すかどうか: Mcu_InitClock とMcu_SetModeはどちらも Core 0でのみ呼び出されます。 Core 1では、MCU クロック関連のAPI は一切呼び出していません 。 とはいえ、 コア1で意図しない クロック再構成が発生していないことを 確認するため、私の側でさらにデバッグを 行い 、この動作を再確認します 。 その他の観察事項: シングルコアでは、FIRC_DIV_SEL 2 (3MHz)として読み取られ、正しく動作します。 マルチコアでは、FIRC_DIV_SELが3(48MHz)と読み取られ、STMティックは予想の16倍速くなります。 ご指摘いただいたとおり、最新のRTDリリース への移行についても検討いたします 。 デバッグ結果 はまた お知らせ します。その間に、 クロック初期化がCore 0の3MHz 構成 でのみ行われ ているにもかかわらず、 FIRC_DIV_SELが3( 48MHz)になる原因について何か アドバイス をいた だけるとありがたいです。 よろしくお願いします、 Re: S32K328 – FIRC Clock Divider (DIV16) Not Applied When Multicore Is Enabled こんにちは、 @dpsdprtmvl まず、使われているソフトウェアのバージョンは現在のバージョンより数リリース遅れているので、最新のソフトウェアリリースへの移行をお勧めします。 FIRC_DIV_SELに関して、S32K3 IPCF v4.3.0のIPCF_Example_S32K358を使用して、S32K3X8EVB-Q289ボード上で簡単なテストを実施しました。このテストでは、IRCOSC構成構造(Clock_Ip_IrcoscConfigurations_0)を変更し、IRCOSCの範囲をCLOCK_IP_SUPPORTS_48MHZ_FREQUENCYからCLOCK_IP_SUPPORTS_3MHZ_FREQUENCYに変更しました。 アプリケーションを実行し、コア間のピンポン通信が完了するのを確認した後、CONFIG_REG_GPR[FIRC_DIV_SEL]が下の画像のように期待値(10b)に正しく設定されていることを確認しました。 実装についてもう少し詳しく教えていただけますか?FIRC_DIV_SELはどのように設定していますか?2つ目のコアはどのように初期化していますか?他のコアでもクロック初期化を呼び出していますか? BR、VaneB
記事全体を表示
MIMXRT1052CVL5Bには、実際にはどれくらいの内蔵RAMが搭載されているのでしょうか? 内蔵RAMは最大でも512KBしかないというのは本当ですか?合計RAM容量(ITCM/DTCM/SRAM)は512KBですか? それとも、512K SRAM + 512K TCMでしょうか? Re: MIMXRT1052CVL5B 内部RAM到底有多大? こんにちは、 @SDFDSFSF さん、 ご質問ありがとうございます! MIMXRT1052CVL5Bは「512KB SRAM + 512KB TCM」ではありません。オンチップSRAMの合計容量は512KBと理解してください。この512KBはFlexRAMであり、ITCM、DTCM、OCRAM間で再割り当て可能です。 詳細な手順については、 AN12077をご覧ください。 よろしくお願いします、 ギャビン
記事全体を表示
TJA1050, CAN loss Hello, We have a product used TJA1050 used TJA1050, the schematic is as below. We found there is a high-frequency CAN loss during the test. Lost one or two frames in operation. The busload is around 16%. I attached the HW schematic and CAN loss data below. Question 1. What's the possibly root cause of the CAN loss? 2. Is there any issue about the HW schematic? 3. What action I can do in the next step I can try more test or provide more information if necessary. Thank you for your support.  Re: TJA1050, CAN loss 1:If this board of yours is not at the end of the bus, it is recommended to disconnect DR6/DR7 first or change it to an optional jumper 2: For test purpose please remove DR8/DR9/DD1/DD2 3:Whether the data rate and propagation delay of the isolator SI8421 satisfy the CAN bit timing margin
記事全体を表示
S32K358 EVK board CAN not working Hello,  I am trying to run the code to use the CAN0 or CAN1 of S32K3x8EV8 board but I am not able to do so. But CAN is not working at all, I am trying read the can messages via Waveshare USB-CAN-A. Pasted the code as well,  Add screenshot of CAN Config /* * Copyright 2019 NXP * * All rights reserved. * * THIS SOFTWARE IS PROVIDED BY NXP "AS IS" AND ANY EXPRESSED OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. * IN NO EVENT SHALL NXP OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF * THE POSSIBILITY OF SUCH DAMAGE. */ /* ################################################################### ******************************************************************************** * File: main.c * Owner: Petr Stancik * Version: 1.0 * Date: Oct-22-2024 * Classification: General Business Information * Brief: FlexCAN TX/RX ISR test * ******************************************************************************** ******************************************************************************** The purpose of this demo application is to show you the usage of the FlexCAN module configured to use CAN FD using the S32 RTD API. - This demo application requires two boards, or single board connected with CAN tool. - CAN FD is enabled with bitrate 500/2000 kbps - It configures FlexCAN0 module and its transceiver (TJA1153). - MB0 is used to transmit CANFD std. ID - MB1 is configured to receive any std. ID - Callback function is used as well to handle TX and RX process in MBs. Received ID is echoed back. - setupCanXCVR function is called to Init TJA1153 connected to FlexCAN0 on the board. It expects transceiver in Vanilla state and set TPL to pass all std and ext ID and do not block any message coming from bus. Finally leaving configuration mode without writing to non-volatile memory nor locking the transceiver. * * ------------------------------------------------------------------------------ * Test HW: S32K3X8EVB-Q289 rev B2 * MCU: P32K358HVS 0P14E * Compiler: S32DS.ARM.3.5 * SDK release: S32K3_RTD_4.0.0_D2311 * Debugger: Lauterbach * Target: internal_FLASH * ******************************************************************************** Revision History: 1.0 Oct-22-2024 Petr Stancik Initial Version based on RTD FlexCAN_Ip_example *******************************************************************************/ /* Including necessary configuration files. */ #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; /* User includes */ 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; /* live ESR1 snapshot for debugger watch */ volatile Flexcan_Ip_StatusType g_tja1153Status[3]; /* [0]=auto-baud, [1]=FEC whitelist, [2]=exit config */ /*! \brief The main function for the project. \details The startup initialization sequence is the following: * - startup asm routine * - main() */ extern void CAN0_ORED_0_31_MB_IRQHandler(void); void setupCanXCVR_TJA1153(void); static void CAN_DelayMs(uint32 ms) { uint32 ticks = OsIf_MicrosToTicks(ms * 1000U, FLEXCAN_IP_SERVICE_TIMEOUT_TYPE); uint32 start = OsIf_GetCounter(FLEXCAN_IP_SERVICE_TIMEOUT_TYPE); uint32 elapsed = 0U; while (elapsed < 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)instance; switch(eventType) { case FLEXCAN_EVENT_RX_COMPLETE: dummyData[0]++; if(buffIdx==1) // MB1 received { 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); } break; case FLEXCAN_EVENT_RXFIFO_COMPLETE: break; case FLEXCAN_EVENT_TX_COMPLETE: break; case FLEXCAN_EVENT_ENHANCED_RXFIFO_COMPLETE: break; case FLEXCAN_EVENT_ENHANCED_RXFIFO_WATERMARK: break; default: break; } } void setupCanXCVR_TJA1153(void) { /** * The TJA1153 transceiver does not come ready to use as most CAN transceivers * It enters configuration mode initially if it has not been configured before, * in this initial state, it is ready for receiving additional security * setups such as an TPL/BBL for example. * * In this example, it set TPL to pass all std and ext ID and do not block any message * coming from bus. Finally leaving configuration mode without writing to non-volatile * memory nor locking the transceiver. * * Refer to the NXP's TJA1153 data sheet for further detail. * */ #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 errors; /* Allow configuration from local host via TXD pin for CAN0 transceiver, STB = 0 (PTC20) */ Siul2_Dio_Ip_WritePin(PTC_H_HALF, 4, 0U); CAN_DelayMs(1000); /* Auto bit rate detection initial CAN Classic frame with ID 0x555 for 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); /* Filter Element Configuration (FEC) frame for setting up the transmission whitelist. * NOTE: ID_TX is the NXP reference example's placeholder (0xC0FFEE), not MSG_ID - * this whitelists that single extended ID only. Confirm this baseline works first, * then adjust ID_TX/Extended_Filter_Config per the TJA1153 datasheet for your real ID(s). */ { 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; /* Both TWL and 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) & 0xFFU); sendData[1] = (uint8)((PAYLOAD_FEC[0] >> 16) & 0xFFU); sendData[2] = (uint8)((PAYLOAD_FEC[0] >> 8) & 0xFFU); sendData[3] = (uint8)(PAYLOAD_FEC[0] & 0xFFU); sendData[4] = (uint8)((PAYLOAD_FEC[1] >> 24) & 0xFFU); sendData[5] = (uint8)((PAYLOAD_FEC[1] >> 16) & 0xFFU); 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); } /* Last command frame for exiting configuration mode without writing to non-volatile memory nor * locking the transceiver, i.e. Development mode */ sendData[0]= 0x71; // command byte 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); /* After the last frame, the transceiver exits configuration mode and goes to standby mode, exit * to normal operation mode is done by setting the STB pin of CAN0 transceiver to HIGH (pin is negated) */ Siul2_Dio_Ip_WritePin(PTC_H_HALF, 4, 1U); CAN_DelayMs(1000); errors = FlexCAN_Ip_GetErrorStatus(INST_FLEXCAN_0); FlexCAN_Ip_ClearErrorStatus(INST_FLEXCAN_0,errors); } int main(void) { /* Write your code here */ 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); // clear mask register to allow receiving all std IDs 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); while(1) { g_canErrorStatus = FlexCAN_Ip_GetErrorStatus(INST_FLEXCAN_0); } return 0; } /* END main */ /*! ** @} */ Re: S32K358 EVK board CAN not working Hi@Yash2530 The attached file contains tests I conducted on RTD version 3.0.0 P07, which you can refer to. Re: S32K358 EVK board CAN not working Hi Senlent,  The Can transmission TX is working I am able to receive the data from NXP to Waveshare USB CAN device but RX does not seem to be working.  I am sending 0x001 as id and 01 01 01 01 01 01 01 01 as data.  Is there something that I am missing or the code you provided is only for TX. 
記事全体を表示
S32K3X4EVB-Q257 开发板上的 K26 固件缺失。 我的 S32K3X4EVB-Q257 开发板上的 OpenSDA 无法工作。我已经安装了 PEmicro 驱动程序,但是我的电脑设备管理器中仍然无法识别 OpenSDA。我确信这是因为缺少 K26 固件。请问您能提供给我那个固件吗? Re: The K26 firmware on the S32K3X4EVB-Q257 development board is missing. 如果更换包含 D+ 和 D- 信号的 USB 电缆后问题仍然存在,我建议联系 PEMicro 技术支持。https://www.pemicro.com/support/index.cfm Re: The K26 firmware on the S32K3X4EVB-Q257 development board is missing. 我的开发板采用 K26 芯片,但 PEFirmwareConfig.exe 无法识别板载调试器。K26的OpenSDA固件肯定缺失。 Re: The K26 firmware on the S32K3X4EVB-Q257 development board is missing. HI 首先,检查 U63 上的 K26 是否焊接牢固。由于 K26 芯片短缺,有一批开发板上没有焊接 K26 芯片,因此必须使用外部调试器。 第二步,下载 USB 多链路资源安装 来自多链路调试探针。不使用 USB 集线器,将 USB 连接到 S32K3X4EVB-Q257 的 J55; PEFirmwareConfig.exe能否识别板载调试器? 此致敬礼, Robin
記事全体を表示
The K26 firmware on the S32K3X4EVB-Q257 development board is missing. The OpenSDA on my S32K3X4EVB-Q257 development board is not working. I have already installed the PEmicro driver, but OpenSDA is still not recognized in my computer's Device Manager. I am sure it is because the K26 firmware is missing. Could you please provide me with that firmware? Re: The K26 firmware on the S32K3X4EVB-Q257 development board is missing. If the problem persists after replacing the USB cable with one that includes D+ and D- signals, I recommend contacting PEMicro technical support. https://www.pemicro.com/support/index.cfm Re: The K26 firmware on the S32K3X4EVB-Q257 development board is missing. My development board has a K26 chip, and PEFirmwareConfig.exe cannot recognize the onboard debugger. The K26's OpenSDA firmware is definitely missing. Re: The K26 firmware on the S32K3X4EVB-Q257 development board is missing. Hi First, check if the K26 on the U63 is soldered. There was a batch of development boards that did not have the K26 soldered on them because of a shortage of K26, so an external debugger had to be used. Second, download the  USB Multilink Resources Install  from the Multilink Debug Probes. Without using a USB hub, connect the USB to the J55 of S32K3X4EVB-Q257; can the onboard debugger be recognized in PEFirmwareConfig.exe? Best Regards, Robin
記事全体を表示
S32K344 FreeRTOS 示例链接失败 你好; 我刚开始使用 S32K344 EVK(S32K344MINI-EVB),目前使用的是 IDE 3.6.5 和 FreeRTOS 7.0.0。(D2511)包含在软件包管理器创建的 FRDM 汽车软件包中。 我正在尝试通过“S32DS 项目示例”构建一个为 344 提供的示例应用程序,即 FreeRTOS_Toggle_Led_Example_S32K344。 我使用 ConfigTools 更新了代码,但到目前为止,这是我对代码所做的唯一修改。 但这段代码直接运行在链接阶段就失败了: c:/nxp/s32ds.3.6.5/s32ds/build_tools/gcc_v10.2/gcc-10.2-arm32-eabi/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/real-ld.exe:./FreeRTOS/Source/portable/GCC/ARM_CM7/r0p1/port.o:在函数“vPortStoreTaskMPUSettings”中: C:\Workspaces-35\FreeRTOS_Toggle_Led_Example_S32K344\Debug_FLASH/../FreeRTOS/Source/portable/GCC/ARM_CM7/r0p1/port.c:1890: 未定义的引用“__FreeRTOS_code_data_start__” c:/nxp/s32ds.3.6.5/s32ds/build_tools/gcc_v10.2/gcc-10.2-arm32-eabi/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/real-ld.exe:C:\Workspaces-35\FreeRTOS_Toggle_Led_Example_S32K344\Debug_FLASH/../FreeRTOS/Source/portable/GCC/ARM_CM7/r0p1/port.c:1890: 未定义的引用“__FreeRTOS_code_data_end__” c:/nxp/s32ds.3.6.5/s32ds/build_tools/gcc_v10.2/gcc-10.2-arm32-eabi/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/real-ld.exe:./FreeRTOS/Source/portable/GCC/ARM_CM7/r0p1/port.o:在函数“prvSetupMPU”中: C:\Workspaces-35\FreeRTOS_Toggle_Led_Example_S32K344\Debug_FLASH/../FreeRTOS/Source/portable/GCC/ARM_CM7/r0p1/port.c:1723: 未定义的引用“__FreeRTOS_code_data_end__” c:/nxp/s32ds.3.6.5/s32ds/build_tools/gcc_v10.2/gcc-10.2-arm32-eabi/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/real-ld.exe:C:\Workspaces-35\FreeRTOS_Toggle_Led_Example_S32K344\Debug_FLASH/../FreeRTOS/Source/portable/GCC/ARM_CM7/r0p1/port.c:1723: 未定义的引用“__FreeRTOS_code_data_start__” 我推测这些是链接器部分,但它们似乎在示例代码、软件包内的 FreeRTOS 文件夹或其他地方都没有定义。 “S32DS 项目示例”是否已过时?或者这个问题有我没注意到的简单解决方法吗? 提前致谢, 乔·希德尔 Re: S32K344 FreeRTOS example fails to link 你好,乔·希德尔, 给您带来的不便,我们深表歉意! 我重现了示例由于 Ld 错误而无法正确构建的问题,他们的解决方案是正确的: 根本原因:S32CT 中默认启用了 MPU。这会导致代码生成器生成支持 MPU 的代码(包括对 FreeRTOS MPU 链接器符号的引用)。但是Toggle_Led_Example_S32K344的链接器脚本 (linker_flash_s32k344.ld) 并未定义这些 MPU 内存区域或其边界符号——这些仅存在于 MPU 特定示例中(例如 FreeRTOS_MPU_Example_S32K389/linker_flash_s32k389.ld)。生成的代码需要 MPU 符号,而链接器脚本则不需要 MPU 符号,这导致了未定义引用错误。 禁用“use mpu”选项后,示例程序可以正确编译: 副作用说明:默认情况下禁用 MPU 意味着需要 MPU 的用户必须在 S32CT 中显式启用它并配置内存区域。 此致敬礼, Robin
記事全体を表示
LPC1778 checksum in vector table invalid need recover 你好,我在调试LPC1778的FLM时,调用FLM向0x0-0x400写入数据之后发现数据不正确。现在我的调试器无法连接芯片,我查阅了资料,认为是vector table写入的数据出错了,和我想要写入的数据不一致,导致checksum不合法。资料显示checksum不合法会导致芯片进入ISP模式等待下载程序。 1.我想知道这个状态要怎么恢复? 2.为什么FLM写0x0-0x400会引发问题,我尝试了写0x400-0x7FFFF都是正常的。翻看FLM源码,其中有个SET_VALID_CODE的参数会自动修改校验和,是不是这部分有什么问题? Re: LPC1778 checksum in vector table invalid need recover Hi @BianHaopeng1  0x0000–0x0400 不只是普通 flash 数据区,它包含启动向量表、0x1C 的 valid-code checksum,以及 0x2FC 的 CRP 配置字 。checksum 错会让 ROM bootloader 判定 user code invalid 并进入 ISP;如果 0x2FC 被误写成 CRP pattern,还会导致 JTAG/SWD 访问受限甚至不可恢复到普通调试状态。 您可以优先按 ISP 恢复 处理: 拉低 P2[10],然后复位芯片 ,bootloader 接管并进入 ISP mode。 通过 UART0:P0[2] / P0[3] 连接 FlashMagic 或等价 ISP 工具,执行全片擦除或重新下载一个有效镜像。 如果只是 checksum 不合法 ,进入 ISP 后应能擦除并恢复;如果误写了 CRP1/CRP2 ,JTAG 会被禁用,但 ISP 仍有受限恢复路径;如果误写成 CRP3 ,文档说明它会完全禁止 JTAG 和 ISP,这种情况下基本不能再通过常规 ISP/JTAG 恢复。 BR Harry
記事全体を表示
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?
記事全体を表示
TJA1050,CAN总线丢失 你好, 我们有一款使用TJA1050的产品,其原理图如下。 我们发现测试过程中存在高频 CAN 丢包。操作过程中丢失了一两帧。 公交车载客率约为 16%。 我已在下方附上硬件原理图和CAN总线丢包数据。 问题 1. CAN 总线丢失的可能根本原因是什么? 2. 硬件原理图是否存在任何问题? 3. 下一步我可以采取什么行动 如有必要,我可以进行更多测试或提供更多信息。感谢您的支持。 Re: TJA1050, CAN loss 1:如果您的板不在总线末端,建议先断开 DR6/DR7 连接,或将其更换为可选的跳线。 2:为了测试目的,请移除DR8/DR9/DD1/DD2 3:隔离器SI8421的数据速率和传播延迟是否满足CAN位时序裕量。
記事全体を表示
S32K344 FreeRTOS example fails to link Hello; I'm just starting out with the S32K344 EVK (S32K344MINI-EVB) and am using the IDE 3.6.5 with FreeRTOS 7.0.0 (D2511) that came in the FRDM automotive bundle created by the package manager. I'm trying to build one of the provided sample applications for the 344, via the "S32DS Project from Example", the FreeRTOS_Toggle_Led_Example_S32K344.. I've use the ConfigTools to Update Code, but so far that's the only modification to the code that I've made. But out of the box the code fails at the link stage: c:/nxp/s32ds.3.6.5/s32ds/build_tools/gcc_v10.2/gcc-10.2-arm32-eabi/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/real-ld.exe: ./FreeRTOS/Source/portable/GCC/ARM_CM7/r0p1/port.o: in function `vPortStoreTaskMPUSettings': C:\Workspaces-35\FreeRTOS_Toggle_Led_Example_S32K344\Debug_FLASH/../FreeRTOS/Source/portable/GCC/ARM_CM7/r0p1/port.c:1890: undefined reference to `__FreeRTOS_code_data_start__' c:/nxp/s32ds.3.6.5/s32ds/build_tools/gcc_v10.2/gcc-10.2-arm32-eabi/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/real-ld.exe: C:\Workspaces-35\FreeRTOS_Toggle_Led_Example_S32K344\Debug_FLASH/../FreeRTOS/Source/portable/GCC/ARM_CM7/r0p1/port.c:1890: undefined reference to `__FreeRTOS_code_data_end__' c:/nxp/s32ds.3.6.5/s32ds/build_tools/gcc_v10.2/gcc-10.2-arm32-eabi/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/real-ld.exe: ./FreeRTOS/Source/portable/GCC/ARM_CM7/r0p1/port.o: in function `prvSetupMPU': C:\Workspaces-35\FreeRTOS_Toggle_Led_Example_S32K344\Debug_FLASH/../FreeRTOS/Source/portable/GCC/ARM_CM7/r0p1/port.c:1723: undefined reference to `__FreeRTOS_code_data_end__' c:/nxp/s32ds.3.6.5/s32ds/build_tools/gcc_v10.2/gcc-10.2-arm32-eabi/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/real-ld.exe: C:\Workspaces-35\FreeRTOS_Toggle_Led_Example_S32K344\Debug_FLASH/../FreeRTOS/Source/portable/GCC/ARM_CM7/r0p1/port.c:1723: undefined reference to `__FreeRTOS_code_data_start__' I assume these are linker sections, but they do not appear to be defined anywhere inside either the sample code, the FreeRTOS folder inside the package, or elsewhere. Are the "S32DS Project from Example" sample projects outdated? Or is there a simple fix to this issue that I'm missing? Thanks in advance, Joe Shidle Re: S32K344 FreeRTOS example fails to link Hi Joe Shidle, Sorry for the inconvenience we bring you! I was able to reproduce the issue where example does not build correctly because of Ld errors, and their solution is correct: Root cause: MPU is enabled by default in the S32CT. This causes code generator to emit MPU-aware code (including references to the FreeRTOS MPU linker symbols). However, the linker script for the Toggle_Led_Example_S32K344 (linker_flash_s32k344.ld) does not define these MPU memory regions or their boundary symbols — those are only present in MPU-specific examples (e.g., FreeRTOS_MPU_Example_S32K389/linker_flash_s32k389.ld). The mismatch between the generated code expecting MPU symbols and the non-MPU linker script causes the undefined reference errors. Disabling 'use mpu' makes the example compile correctly: Side effect note: Disabling MPU by default means users who need MPU must explicitly enable it in S32CT and configure the memory regions. Best Regards, Robin
記事全体を表示
S32K3X4EVB-Q257開発ボードのK26ファームウェアは存在しません。 私のS32K3X4EVB-Q257開発ボードのOpenSDAが動作しません。すでにPEmicroドライバーをインストールしましたが、私のパソコンのデバイスマネージャーではOpenSDAが認識されません。K26のファームウェアが欠落していることが原因だと確信しています。そのファームウェアを教えてもらえますか? Re: The K26 firmware on the S32K3X4EVB-Q257 development board is missing. D+やD-信号付きのUSBケーブルに交換しても問題が続く場合は、PEMicroの技術サポートに連絡することをお勧めします。https://www.pemicro.com/support/index.cfm Re: The K26 firmware on the S32K3X4EVB-Q257 development board is missing. 私の開発ボードにはK26チップが搭載されており、オンボードのデバッガを認識できませんPEFirmwareConfig.exe。K26のOpenSDAファームウェアが明らかに欠落している。 Re: The K26 firmware on the S32K3X4EVB-Q257 development board is missing. ハイ まず、U63のK26がはんだ付けされているかどうかを確認してください。K26がはんだ付けされていない開発ボードの一括があり、K26が不足していたため、外部デバッガを使わざるを得ませんでした。 次に、 USBマルチリンクリソースのインストール マルチリンクデバッグプローブから。USBハブを使わずに、USBをS32K3X4EVB-Q257のJ55に接続します。オンボードデバッガは PEFirmwareConfig.exeで認識できますか? よろしくお願いいたします ロビン
記事全体を表示
S32K344 FreeRTOS サンプルはリンクに失敗します こんにちは; 私はS32K344 EVK(S32K344MINI-EVB)を始めたばかりで、IDE 3.6.5とFreeRTOS 7.0.0を使っています(D2511)は、パッケージマネージャーによって作成されたFRDM自動車バンドルに含まれていました。 私は「S32DS Project from Example」という344用のサンプルアプリケーションの一つを作ろうとしています。FreeRTOS_Toggle_Led_Example_S32K344... ConfigToolsを使ってコードを更新したことはありますが、今のところそれだけがコードの修正です。 しかし、そのままの状態では、コードはリンク段階で失敗します。 c:/nxp/s32ds.3.6.5/s32ds/build_tools/gcc_v10.2/GCC-10.2-arm32-eabi/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/real-ld.exe:./FreeRTOS/Source/ポータブル/GCC/ARM_CM7/r0p1/port.o: in function 'vPortStoreTaskMPUSettings': C:\Workspaces-35\FreeRTOS_Toggle_Led_Example_S32K344\Debug_FLASH/../FreeRTOS/Source/portable/GCC/ARM_CM7/r0p1/port.c:1890:未定義の「__FreeRTOS_code_data_start__」参照 c:/nxp/s32ds.3.6.5/s32ds/build_tools/gcc_v10.2/GCC-10.2-arm32-eabi/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/real-ld.exe:C:\Workspaces-35\FreeRTOS_Toggle_Led_Example_S32K344\Debug_FLASH/../FreeRTOS/Source/portable/GCC/ARM_CM7/r0p1/port.c:1890: 「__FreeRTOS_code_data_end__」に関する未定義の参照 c:/nxp/s32ds.3.6.5/s32ds/build_tools/gcc_v10.2/GCC-10.2-arm32-eabi/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/real-ld.exe:./FreeRTOS/Source/portable/GCC/ARM_CM7/r0p1/port.o: 関数 'prvSetupMPU': C:\Workspaces-35\FreeRTOS_Toggle_Led_Example_S32K344\Debug_FLASH/../FreeRTOS/Source/portable/GCC/ARM_CM7/r0p1/port.c:1723: 「__FreeRTOS_code_data_end__」に関する未定義の参照 c:/nxp/s32ds.3.6.5/s32ds/build_tools/gcc_v10.2/GCC-10.2-arm32-eabi/bin/../lib/gcc/arm-none-eabi/10.2.0/../../../../arm-none-eabi/bin/real-ld.exe:C:\Workspaces-35\FreeRTOS_Toggle_Led_Example_S32K344\Debug_FLASH/../FreeRTOS/Source/ポータブル/GCC/ARM_CM7/r0p1/port.c:1723:未定義の「__FreeRTOS_code_data_start__」参照 これらはリンカーセクションだと思いますが、サンプルコード内やパッケージ内のFreeRTOSフォルダ、その他の場所のどこにも定義されていないようです。 「S32DSプロジェクト例」のサンプルプロジェクトは古くなっていますか?それとも、私が気づいていない簡単な解決策があるのでしょうか? 前もって感謝します、 ジョー・シドル Re: S32K344 FreeRTOS example fails to link こんにちは、ジョー・シドルさん。 ご迷惑をおかけして申し訳ございません! Ldエラーが原因でサンプルが正しくビルドされないという問題を再現できました。そして、彼らの解決策は正しいものでした。 根本原因:S32CTではMPUがデフォルトで有効になっています。これにより、コードジェネレータはMPU対応コード(FreeRTOS MPUリンカーシンボルへの参照を含む)を出力するようになります。しかし、 Toggle_Led_Example_S32K344のリンカー スクリプト (linker_flash_s32k344.ld) では、これらの MPU メモリ領域やその境界シンボルは定義されていません。これらは MPU 固有のサンプル (例: FreeRTOS_MPU_Example_S32K389/linker_flash_s32k389.ld) にのみ存在します。MPUシンボルを想定して生成されたコードと、MPU非対応のリンカスクリプトとの間の不一致が、未定義参照エラーの原因となります。 「use mpu」を無効にすると、サンプルが正しくコンパイルされます。 副次的な注意:MPUをデフォルトで無効にすると、MPUが必要なユーザーはS32CTで明示的にMPUを有効にし、メモリ領域を設定する必要があります。 よろしくお願いいたします ロビン
記事全体を表示
受信感度は連続測定間で10dBの差がある。 QN9083 BLE SoCを使用している当社の製品の一つで予期せぬ挙動を観察しています。機器のレシーバ感度を測定すると、連続した測定間で最大10dBの差が見られます。CMW100を広告モードで測定しており、機器はシールドされたRFボックスに設置されています。箱を開けたり、デバイスの設置場所を変更したりせずに、連続してRxS測定を行ったところ、デバイスは最大10dBの差(-91dBmと-81dBm)を示しました。これは予想外で、これまで一度も発生したことのない現象です。その挙動はランダムである。ハードウェアとソフトウェアの両方の可能な原因を探しています。
記事全体を表示
Which USB to power the FRDM-MCXA153 when using external MCU Link Debug Probe? Hello, I am new to NXP microcontrollers and the MCUxpresso IDE. I have purchased the FRDM-MCXA153 and also the MCU-Link Debug Probe. I want to use the external debug probe because that is what I will use on my custom printed circuit board. I have gotten the Blinky LED example code working and with using the external debug port J18 with the MCU-Link Debug Probe. My question is which USB connector on the FRDM board should I use to power the board J18 or J8 while I an using the external debugger? Thank you Development Board
記事全体を表示
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専用なのでしょうか。
記事全体を表示
TJA1050、CANロス こんにちは、 製品TJA1050 TJA1050の中古品があり、回路図は以下の通りです。 検査中に高周波のCAN損失があることがわかりました。動作中に1~2フレームが失われました。 バスの乗車率は約16%です。 以下にハードウェアの回路図とCAN損失データを添付しました。 質問 1. CAN損失の根本原因は何でしょうか? 2. ハードウェア回路図に何か問題はありますか? 3. 次のステップで私ができること 必要に応じて、もっとテストを試したり、情報を提供したりできます。ご支援ありがとうございます。 Re: TJA1050, CAN loss 1:このボードがバスの終端にない場合は、まずDR6/DR7を切断するか、オプションのジャンパーに変更することをお勧めします。 2:テスト目的でDR8/DR9/DD1/DD2を削除してください 3: アイソレータSI8421のデータレートおよび伝搬遅延がCANビットタイミングマージンを満たすかどうか
記事全体を表示
连续两次测量中接收灵敏度相差 10dB 我发现我们一款使用 QN9083 BLE SoC 的产品出现了异常行为。当我测量设备接收器灵敏度时,我发现连续两次测量之间有高达 10dB 的差异。我正在使用 CMW100 的广播模式进行测量,该设备放置在屏蔽的射频盒中。在不打开盒子和/或改变设备位置的情况下,连续进行 RxS 测量,设备的响应差异高达 10dB(即 -91dBm 和 -81dBm),这是意料之外的,以前从未发生过。这种行为是随机的。我正在寻找硬件和软件方面可能的原因。
記事全体を表示
i.MX8MPLUS uSDHC HS400モード(ストロボ機能強化) HS400の強化ストロボを有効にするための推奨手順はありますか?MIX_CTRLレジスタのEN_HS400_MODEを設定するだけで十分でしょうか、それともSTROBE_DLL_CTRLレジスタに追加の変更が必要でしょうか? よろしくお願いいたします。 ステファン Re: i.MX8MPLUS uSDHC HS400 mode with enhanced strobe こんにちは、 @Stefan_CIT HS400ESでは、eMMC側とホスト側の両方で同時に設定を行う必要があります。EN_HS400_MODEを設定するだけでは、ホスト側の設定の一部に過ぎず、HS400拡張ストロボ機能を有効にするには不十分です。 Linux BSPを使っている場合、ドライバーは自動的にDLLとチューニングの設定を完成させます。 よろしくお願いします、 志明
記事全体を表示