Multi Source Translation Content

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

Multi Source Translation Content

讨论

排序依据:
在FRDM开发板和uBlox IRIS-W101上使用RW612的GPIO29 大家好, 我一直尝试将 GPIO29/D2 用作 I/O 引脚。但是,当我将引脚初始化为 I/O 引脚时 /* 初始化引脚 GPIO_29(引脚 D2)上的 GPIO29 功能 */ IO_MUX_SetPinMux(IO_MUX_GPIO29); 程序崩溃了。据我所知,通过 FlexSPI 连接的 Flash IC 上的 GPIO29 没有用于 DQS——无论是在 FRAM 板上还是在 IRIS 模块中——因此它应该可以正常使用。我一直以lpc_gpio_led_output示例为基础。 我也尝试过更改时钟设置,但这只会导致更多的错误。 这里需要调整哪些具体设置? 非常感谢您的帮助。 此致, 安德烈亚斯 Re: Using GPIO29 of RW612 on FRDM Devboard and uBlox IRIS-W101 你好@gasar ,希望你一切都好。 即使 GPIO[29] 没有被闪存设备物理连接/使用,FlexSPI 控制器默认使用 DQS 配置从闪存启动 ROM,以实现环回中的正确数据读取时序,并且 ROM 代码也使用了该配置,因此其功能不应按照表 45 - UM11865 的 ISP 引脚分配中所述进行修改。 由此造成的不便,敬请谅解。 Re: Using GPIO29 of RW612 on FRDM Devboard and uBlox IRIS-W101 嗨,罗曼, 感谢您的快速回复,也感谢您证实了我的猜测。我原本希望通过调整一些设置,还能以某种方式使用IO。很遗憾,现在我不得不手工修理所有的电路板了。 😞 然后我会写信给 u-blox,请他们更新错误的数据表,以免其他人遇到同样的麻烦! BR,安德烈亚斯
查看全文
How to Measure the Internal Temperature and Voltage of an MCU Using the ADC0 Hello to everyone on the NXP support team. I am currently working on a project using the S32K314, RTD 7.0.0, and FreeRTOS. I am trying to implement the measurement of the voltage of an external device connected to the MCU, the internal temperature (TEMPSENSE) of the MCU, the internal voltage (ANAMUX) of the MCU, and the bandgap voltage using the MCAL's ADC module. Looking at the measurement results, the voltage of the external device and the bandgap voltage seem to be measured correctly, but the values of the internal temperature and internal voltage of the MCU are different from what I expected. Expected value: MCU internal voltage (VDD_HV_A): 8192 (2.5V, 14-bit resolution) Actual measured value: Approximately 6800–7100 (2.07–2.13V, 14-bit resolution) The MCU power supply voltage is 5.0V. The ADC hardware unit is set to ADC0, and the ADC measurement target is configured as follows: Ch8: MCU internal temperature (TEMPSENSE) Ch9: MCU Internal Voltage (ANAMUX) Chapter 10: Band Gap MCU input voltage = 5.0V ADC initialization code: void AdcAdapter_Init ( void ) { Adc_Calibrate ( ADC0 , & calStatus ) ; Adc_SetupResultBuffer ( ADC0 , Group0Result ) ; IP_DCM_GPR -> DCMRWF1 = ( IP_DCM_GPR -> DCMRWF1 | DCM_GPR_DCMRWF1_SUPPLY_MON_EN ( 1 ) | DCM_GPR_DCMRWF1_VDD_HV_A_VLT_DVDR_EN ( 1 ) | DCM_GPR_DCMRWF1_VDD_HV_B_VLT_DVDR_EN ( 1 ) | DCM_GPR_DCMRWF1_VDD_1_5_VLT_DVDR_EN ( 1 ) ) ; IP_DCM_GPR -> DCMRWF1 = ( IP_DCM_GPR -> DCMRWF1 & ~ DCM_GPR_DCMRWF1_SUPPLY_MON_SEL_MASK ) | DCM_GPR_DCMRWF1_SUPPLY_MON_SEL ( 0U ) ; // VDD_HV_A_DIV Adc_StartGroupConversion ( ADC0 ) ; // AdcConversionStart } ADC data acquisition (all periodic tasks) void AdcAdapter_RunCyclic ( void ) { Adc_StatusType ret = ADC_IDLE ; Std_ReturnType adcStatus ; uint16 temperature ; // 変換完了チェック ret = Adc_GetGroupStatus ( ADC0 ) ; if ( ( ret == ADC_COMPLETED ) || ( ret == ADC_STREAM_COMPLETED ) ) { // 結果を取得 Adc_ReadGroup ( ADC0 , Group0Result ) ; // 次の変換を開始 Adc_StartGroupConversion ( ADC0 ) ; } else { // エラーログ } /* Adc_TempSenseGetTemp Singed Q11.4 */ adcStatus = Adc_TempSenseGetTemp ( ADC0 , mcuTemperature ) ; if ( E_OK == adcStatus ) { temperature = Adc_TempSenseCalculateTemp ( ADC0 , mcuTemperature ) ; } else { // エラーログ } } I believe the ADC values for the ADC0 group can be updated using `Adc_ReadGroup`, but I think you need to use `Adc_TempSenseGetTemp` and `Adc_TempSenseCalculateTemp` to check the MCU's internal temperature. Please let me know if I've overlooked any settings. Re: How to Measure the Internal Temperature and Voltage of an MCU Using the ADC0 Hi Senlent-san, Thank you for your quick response. I have already reviewed the sample code you provided and believe I have incorporated it into my code. I interpreted the table you provided as a table of register settings for each clock supplied to the ADC block. However, I was unable to determine which of the ADC settings in MCAL they correspond to. Since I am unable to provide the source code, I am attaching an image of the ADC settings. Please let me know which settings I should change. If there are any other settings screens you need, please let me know. AdcHwUnit> Re: How to Measure the Internal Temperature and Voltage of an MCU Using the ADC0 Hi@Teruhiko I didn't see the complete ADC configuration in the information you provided, so please double-check that the ADC clock matches the datasheet requirements. If possible, you can share your test project with me, and I'll check it for you. by the way, take a look at the demo in the link below: https://community.nxp.com/t5/S32K-Knowledge-Base/Example-S32K344-TempSenser-S32DS36-RTD600-500-400-p24/ta-p/2136187 Re: How to Measure the Internal Temperature and Voltage of an MCU Using the ADC0 Hi Senlent-san, Thank you for your advice. Following your advice, I changed the settings as shown below to set the TEMPSENSE sampling time to 1.2 usec.  160MHz = 0.00625usec 1.2usec/0.00625usec = 192 I created a task with a 1-second cycle in FreeRTOS and acquired the ADC values for the MCU voltage (VDD_HV_A) and MCU temperature (TEMPSENSE) every second (collecting 30 seconds’ worth of data). For the MCU voltage, I used the bandgap voltage and converted it to mV using the following compensation formula. (The bandgap voltage showed almost no fluctuation, with a value of around 3975 (approximately 1.2 V) obtained.) AdcCorrection = (1200(mV) * Adc_VCC_HV_A) / Adc_bandgap Mcu Voltage = AdcCorrection * 2  (2 is the voltage division ratio of VDD_HV_A) Additionally, the McuTemp data comes from `Adc_TempSenseGetTemp(ADC0, &mcuTemperature)`. Even taking into account the ADC conversion error of +/- 5.0%, I believe the variation is too large. Are there any suggested solutions?   Re: How to Measure the Internal Temperature and Voltage of an MCU Using the ADC0 Hi@Teruhiko From the configuration screenshots and code you provided, I don't see any obvious errors. However, it's important to note that the temperature sensor's sampling time must be greater than 1.2µs; otherwise, it will affect the sampling accuracy. Therefore, I suggest you double check the sampling time before testing. Re: How to Measure the Internal Temperature and Voltage of an MCU Using the ADC0 The image for ADC_Config>AdcHwUnit was compressed, resulting in a loss of resolution, so I am re-uploading it. <#1> <#2> <#3> Re: How to Measure the Internal Temperature and Voltage of an MCU Using the ADC0 Hi Senlent-san, Thank you for attaching the documentation. Since I am currently measuring channels 32–63, I understand that this corresponds to Sampling Duration 1. Thank you for your prompt response. The issue has been resolved.  Re: How to Measure the Internal Temperature and Voltage of an MCU Using the ADC0 Hi@Teruhiko You can directly read the raw data from the temperature channel to observe whether there are fluctuations. If the fluctuations are large, you can continue to try increasing the sampling time. Re: How to Measure the Internal Temperature and Voltage of an MCU Using the ADC0 Hi Senlent-san, I interpreted the information in Table 317 as follows. When fmc = 160 MHz: ・ Set the prescaler for calibration to 4 ・ Set the prescaler for normal ADC conversion to 2 ・ Set “ADC High Speed” to Disable The data obtained by applying these settings is shown in the table below. Although averaging reduced the variation, I feel that the variation in the MCU’s internal temperature is still quite significant. The table below shows the MCU temperature data converted from ADC values to °C. (To convert the ADC values to °C, I divided the ADC values by 16.) A variation of 2.55 degrees over a 16-point average is extremely large. I understand that the MCU temperature fluctuates depending on the processing load, but is it normal for it to change this much instantaneously? When measuring the internal temperature of the MCU, is averaging the correct approach?  Re: How to Measure the Internal Temperature and Voltage of an MCU Using the ADC0 Hi Senlent-san, Thank you for you reply. As shown in the figure below, the values stabilized after I increased the Sampling Duration 1/Duration 2 values. I thought the default setting was Sampling Duration 0, but how can I switch between Sampling Duration 0, 1, and 2? (Based on the prescale setting, since the ADC clock is 80 MHz, the duration equivalent to 1.2 μs is 96.)
查看全文
Codewarrior TAPによりJTAG経由でMPC5200が検出されました こんにちは、 私は、 CodewarriorのTAP デバッガを MPC5200が搭載されたカスタムアプリケーションボードに接続するのにしばらく苦労しています。 プローブは「 FREESCALE CodeWarrior USB TAP CWH-CTP-BASE-H E」です。 プローブの先端部分は自作です。基本的には、そのサイトで2x15コネクタのピン配置図/回路図を見つけて、自分で基板に配線しました。ピン30とグランドの間に10kΩの抵抗器を接続しました。TIPは「Power Architecture/JTAG COP」として認識されています。 私はCCSコンソールのみを使用しています。今のところCodewarrior IDEは使っていません。 現在の状況: findccはTAPを正しく検出します。 スキャンボードはJTAGチェーンを検出し、以下の情報を報告します。 デバイス0:Altera FPGA(IDCODE 0x020B20DD) デバイス1:MPC5200B rev. 2.x(IDCODE 0x1001101D) デバイス 2....7: IDCODE: FFFFFFFF、デバイス: 不明なデバイス。 OpenOCDはまったく同じ2つのデバイスを検出するため、JTAGチェーンは正しいようです。 ターゲットは電源が入り、アプリケーションを稼働させています。 問題: CCSでプロセッサを設定しようとする試みは失敗します: ccs::config_chain mgt5200 戻り値: MGT5200:ターゲットや認識されないプロセッサへの接続なし ccs::get_config_chain は常に mgt5200 の代わりに「 test core 」を報告します。 低レベルの JTAG コマンド( jtag::get_speedなど)は常に「内部エラー」を返します。 質問: MPC5200は、IDCODEスキャンを許可しつつJTAGデバッグを無効化するハードウェアやソフトウェアの仕組みをサポートしていますか? CCSがMPC5200を認識するために、TRST、HRESET、ブートストラップ、またはBDM/JTAGイネーブルピンに関して既知の要件はありますか? CCSからより詳細な添付ログを取得して、IDCODEスキャン後にどのステップが失敗したかを特定する方法はありますか? 読んでいただき本当にありがとうございます。 ミハイ Re: MPC5200 detected by Codewarrior TAP over JTAG こんにちは、 観察された動作(IDCODEスキャンは機能するがデバッグアタッチが失敗する)は、MPC5200のアーキテクチャと一致しています。 MPC5200のドキュメントによると、このデバイスは2レベルのJTAG構造を使用しています。マスターTAP(標準JTAG/IDCODE用)とスレーブTAP用CPUデバッグ用(e300 COPインターフェース)です。スレーブTAPが有効になっていないか、正しく選択されていない場合、JTAG検出は機能しますが、デバッガのアタッチは失敗します。 チェックをおすすめします: TRSTおよびリセット信号の適切な取り扱い(TAPは正しい状態であること) 接続時にデバイスをリセット・保持できる機能 CPUデバッグ(COP)インターフェースがアクセス可能であること(ハードウェアや設定によってブロックされていない) 特に複数デバイスチェーンにおいて、正しいJTAGチェーン構成とTAP選択 よろしくお願いいたします。 ピーター
查看全文
如何在S32K344上从App1跳转到App2 您好, 我们正在 FRDM A S32K344 上测试从用户应用程序 1 到用户应用程序 2 的自定义跳转。 app1 和 app2 的链接器文件附在下面。 #define APP_START_ADDRESS 0x00500000 void Bootup_Application ( const uint32_t app_StarAddress) { uint32_t appEntry,appStack; static void (*jump_to_application)( void ); /* 获取应用程序的初始堆栈指针值 */ appStack = *(( uint32_t *)(app_StarAddress)); /* 获取应用程序的重置处理程序(入口点)地址 */ appEntry = *(( uint32_t *)(app_StarAddress + 4)); /* 将应用程序入口地址分配给函数指针 */ jump_to_application = ( void (*)( void ))appEntry; /* 将中断向量表重新定位到应用程序 */ S32_SCB-> VTOR = ( uint32_t )app_StarAddress; /* 禁用全局中断(ASM_KEYWORD(" cpsid i");)*/ __asm volatile ( " cpsid i" : : : "memory" ); /* 设置主堆栈指针 (MSP) */ __asm volatile ( "MSR msp , %0\n" : : "r" (appStack) : "memory" ); /* 设置进程堆栈指针 (PSP) */ __asm volatile ( "MSR psp , %0\n" : : "r" (appStack) : "memory" ); /* 跳转到应用程序 */ jump_to_application(); 当(1) { /* 到达此处表示发生错误 */ Siul2_Dio_Ip_WritePin(LED_RED_PORT, LED_RED_PIN, 1U); } } 请验证Bootup_Application 函数是否可以成功跳转到 app2 ?如果需要其他步骤,请告知。 Re: How to Jump from App1 to App2 on the S32K344 嗨@ganavi1 原则上,我看不出有什么问题。唯一的问题是,禁用全局中断可能还不够。我总是建议取消初始化所有已使用的外围设备。确保通过外设寄存器在本地禁用所有中断,这样一旦 App2 启用全局中断,它们就不会再次被触发。 此致, Lukas
查看全文
ハードウェアへの料金初期化 こんにちは、S32K344に従ってFEEを使用してデータを保存したいのですが サンプルを設定した後、初期化プロセス中にハードウェアにアクセスしました。事前にC40のロックを解除しようとしましたが、それでもうまくいきませんでした。使用したアップデートはSW32K3_S32M27x_RTD_R21-11_4.0.0_D2311_DS_updatesiteです。S32DS 3.6.3   Re: FEE INIT进hardware こんにちは@ LJH1 来週、時間を取って確認してみますね。 回复: FEE INIT进hardware これはNXPの開発ボードではなく、当社のハードウェアエンジニアが使用している8MHzのボードです。 Re: FEE INIT进hardware 以前のプロジェクトはRTD 4.0.0をベースとしており、保守と開発は主にこのバージョンで行われていました。会社として統一されたバージョンが必要なため、旧プロジェクトの保守を終了する場合にのみ、新しいRTDバージョンに移行します。 Re: FEE INIT进hardware こんにちは@ LJH1 合計2件の問題が作成されたようですが、どちらもRTD 4.0.0に基づいています。 なぜこのバージョンの開発を続けているのかお伺いしたいのですが。RTDバージョンは既にRTD 7.0.0にアップデートされており、それ以前のバージョンも多数あります... このバグは新バージョンで修正されました。可能であれば、最新のRTDバージョンをインストールして使用することをお勧めします。 何らかの理由でRTD 4.0.0を使用しなければならない場合は、提供していただいたプログラムを時間をかけて確認してみます。 また、使用しているハードウェアについて確認させてください。ご提供いただいたプロジェクトを見ると、外部クロックが8MHzに設定されていますが、これは弊社のNXP開発ボードの設定値とは異なるはずです。 Re: FEE INIT进hardware こんにちは@ LJH1 「MemAcc」コンポーネントのプリコンパイルオプションが正しくありません。
查看全文
Clarification Required on FlexCAN Enhanced RX FIFO + DMA Operation on S32K312 Hello , We are currently working on FlexCAN Enhanced RX FIFO with DMA on the S32K312, enhanced FIFOenhanced FIFOenhanced FIFO   we are using the rtd v 7.0.1 and would like clarification on several observations and issues we are facing. 1. MEX Configuration Verification Could you please verify the recommended MEX configuration for FlexCAN Enhanced RX FIFO with DMA enabled? We would like to ensure that our configuration follows the intended RTD usage model. 2. Enhanced RX FIFO + DMA Data Loss Observation As suggested in the FlexCAN errata, the following Message Buffers are not used when Enhanced RX FIFO is enabled: MB0–MB7, MB10, MB12, MB20, MB22, MB30, MB32, MB40, MB50, and MB60. Our setup is as follows: Enhanced RX FIFO enabled DMA enabled Watermark configured to 10 entries DMA transfers FIFO data into a software buffer Observed behavior: CAN messages are correctly received into the Enhanced RX FIFO. DMA transfers data successfully until the watermark level is reached. DMA completion interrupt is triggered. After this point, incoming CAN messages are not observed in the expected next FIFO location (11th FIFO entry onwards). Data loss and abnormal FIFO behavior are observed. Could you please explain the expected behavior in this scenario and the likely reason for the observed message loss? 3. FlexCAN_Ip_RxFifo DMA Reconfiguration While debugging the RTD driver, we observed that the FlexCAN_Ip_RxFifo API appears to reconfigure DMA parameters. Specifically: Minor loop count appears to be configured as 16 Transfer size appears to be 4 bytes This results in a total transfer size of 64 bytes (or approximately 68 bytes depending on interpretation), which does not appear to match the Enhanced RX FIFO entry size described in the Reference Manual. Could you clarify the intended operation of this API and the rationale behind these DMA settings? 4. Enhanced RX FIFO Memory Observation Another observation during debugging is that even though DMA appears to transfer data from the FIFO into the software buffer: The FIFO memory region still contains older message IDs. The memory browser appears to show only the first Enhanced RX FIFO element. FIFO locations do not appear to update as expected. A screenshot is attached for reference. Could you explain whether this is expected behavior and how the Enhanced RX FIFO memory should be interpreted during runtime debugging? 5. Structure Size Mismatch We also observed a discrepancy between the RTD structure and the Reference Manual. FlexCAN_Ip_MsgBuffType size in RTD: 78 bytes Enhanced RX FIFO element size according to the Reference Manual: 80 bytes Could you clarify: Why this size difference exists? Whether any packing/alignment considerations are involved? Whether DMA transfers should be configured for 78 bytes or 80 bytes? Intended Use Case Our requirement is to use: Enhanced RX FIFO DMA-based reception No CPU interrupts for message reception The intended behavior is: CAN message arrives in Enhanced RX FIFO. DMA automatically transfers the FIFO entry into a software buffer. No software polling or RX interrupt handling is required for normal operation. The Message Buffers reserved by the Enhanced RX FIFO (MB0–MB7, MB10, MB12, MB20, MB22, MB30, MB32, MB40, MB50, and MB60) are intentionally avoided, while the remaining Message Buffers are used for transmission. Request Could you please provide: Any available example project demonstrating Enhanced RX FIFO with DMA operation. Recommended RTD configuration for this use case. Clarification on whether the RTD currently supports continuous Enhanced RX FIFO reception using DMA without software re-arming. Any bare-metal driver examples implementing Enhanced RX FIFO + DMA reception. Thank you for your support. Re: Clarification Required on FlexCAN Enhanced RX FIFO + DMA Operation on S32K312 Hi, 1. MEX Configuration Verification A: seems your mex does not correspond for the your described setup - watermark is set to 1 - DMA Transfer Config is not need, driver configures DMA by own, unless you want to do own DMA setting and transfers 2. Enhanced RX FIFO + DMA Data Loss Observation A: After DMA completion interrupt, all received messages are read out and the assigned DMA channel is disabled. So if the FlexCAN_Ip_RxFifo is not called again, RXFIFO still accepts messages, again from entry 0, but as DMA is not started again, it does not read out RXFIFO. 3. FlexCAN_Ip_RxFifo DMA Reconfiguration A: what is minor loop count? Driver itself sets minor loop size (NBYTES) as 80 to read up to 64byte payload message plus IDHIT and timestamp info from RXFIFO. So I do not get your calculation, in fact. Maybe share your code 4. Enhanced RX FIFO Memory Observation A: just first Enhanced RX FIFO element area is visible to used, if represents Enhanced FIFO output port address range. It is not advisable to show RXFIFO memory during debugging. For proper FIFO engine operation, the CPU should not access the Enhanced FIFO output port address range during DMA operation, in fact displaying this memory space cause reading of it. 5. Structure Size Mismatch A: FlexCAN_Ip_MsgBuffType does not fully reflect RXFIFO structure. at teh end of transfer a driver read out internal buffer and fill respective fields of user buffer with proper data. As written above DMA should be set to read out 80bytes per single DMA request. Driver is written in a way you need to rearm DMA (call FlexCAN_Ip_RxFifo) again after DMA is finished and FLEXCAN_EVENT_DMA_COMPLETE event is called. You can refer to below demo foe enhance RXFIFO and DMA usage, but it is done in RTD400 https://community.nxp.com/t5/S32K-Knowledge-Base/Example-S32K344-FlexCAN-Ip-TX-RX-EnhanceRXFIFO-DMA-test-S32DS3-5/ta-p/2015832 BR, Petr
查看全文
MPC5200 detected by Codewarrior TAP over JTAG Hello, I have been struggling for a while with attaching the Codewarrior TAP debugger to a custom application board which is equipped with MPC5200. Probe is "FREESCALE CodeWarrior USB TAP CWH-CTP-BASE-HE". Probe tip is built by myself. Basically I found the pinout/schematic of the 2x15 connector on the site and did my own wiring to the board. I placed 10Kohms resistor between pin 30 and ground. Tip is recognized as "Power Architecture/JTAG COP" I have been using CCS console exclusively. I did not use Codewarrior IDE so far. Current status: findcc detects the TAP correctly. scanboard detects the JTAG chain and reports: Device 0: Altera FPGA (IDCODE 0x020B20DD) Device 1: MPC5200B rev. 2.x (IDCODE 0x1001101D) Devices 2....7: IDCODE: FFFFFFFF, Device: Unknown Device. OpenOCD also detects exactly the same two devices, so the JTAG chain appears to be correct. The target is powered and running its application. Problem: Any attempt to configure the processor in CCS fails: ccs::config_chain mgt5200 returns: mgt5200: no connection to the target or unrecognized processor ccs::get_config_chain always reports "test core" instead of mgt5200. Low level JTAG commands (like jtag::get_speed) always return: Internal failure. Questions: Does the MPC5200 support any hardware or software mechanism that disables JTAG debug while still allowing IDCODE scans? Are there known requirements regarding TRST, HRESET, boot straps, or BDM/JTAG enable pins for CCS to recognize the MPC5200? Is there a way to obtain a more detailed attach log from CCS to determine which step fails after the IDCODE scan? Really appreciate your for taking the time to read this, Mihai Re: MPC5200 detected by Codewarrior TAP over JTAG Hello, The behavior you observe (IDCODE scan working but debug attach failing) is consistent with MPC5200 architecture. According to the MPC5200 documentation, the device uses a two-level JTAG structure: a master TAP (for standard JTAG/IDCODE) and a slave TAP for CPU debug (e300 COP interface). If the slave TAP is not enabled or not correctly selected, JTAG detection works, but debugger attach will fail.  Recommend check: Proper handling of TRST and reset signals (TAP must be in correct state) Ability to reset/hold the device during attach That the CPU debug (COP) interface is accessible (not blocked by hardware or configuration) Correct JTAG chain configuration and TAP selection, especially in multi-device chains Best regards, Peter
查看全文
GUI 指南 - 在 RT1170 evkb 上刷写 16 位设备演示程序时发生内存溢出 id:GUI-Guider 环境 • 工具:GUI Guider 1.10.1 • 目标板:RT1170-EVKB,RK055HDMIPI4M 720x1280 MIPI 面板 • 图形库:LVGL8 • 工作版本:咖啡倾倒演示(功能齐全) • 设备演示(8 位 RGB332 工作正常) 失败的变体: • 设备演示(16 位 RGB565) 问题描述 尝试构建并烧录 16 位 (RGB565) 版本的 Appliance 演示程序时,由于 .bss 文件中的内存溢出,构建在链接器阶段失败。部分。 错误详情 • 段溢出:.bss不符合 m_data 的要求 • 溢出大小:约 5.13 MB(≈ 5,382,464 字节) 这个问题似乎与从 8 位颜色深度过渡到 16 位颜色深度时内存使用量增加有关: 帧缓冲区大小可能会翻倍 LVGL 绘制缓冲区 + 可能的双缓冲增加 .bss用法 合并内存超过了链接器脚本中定义的可用 m_data 区域。 问:想请教一下,这种配置是否可行?或者 GUI Guider 中是否有针对 LVGL 的推荐内存优化方案? Re: GUI Guider - Memory Overflow when Flashing 16-bit Appliance Demo on RT1170 evkb 你好migb2720 , 对于 RT1170EVKB,所有图像资源最终都链接到 同步动态随机存取存储器(SDRAM)。您遇到的问题是由同步动态随机存取存储器(SDRAM) 空间不足引起的。您可以调整应用程序堆大小,以释放更多可用的同步动态随机存取存储器 (SDRAM) 空间。请问您使用的是哪种工具链? 顺祝商祺! 宗春
查看全文
kw47 lpuart Hi: Modify and verify the serial communication based on the official routine kw47loc_wireless_uart_freertos. Only modify Uart_RxCallBack and baud rate. The modifications are as follows:  For the convenience of testing at present, 20 bytes are sent each time through the serial port. The test found that when the baud rate is lower than 256000, there are no problems with both receiving and sending. When the baud rate is set to 460800 or higher, the kw47 sends normally, but packet loss occurs during reception.  Could you please check if I'm using it improperly and give me some guidance?  Also, why is there no kw47loc_freertos_lpuart_cm33_core0 routine in sdk_26_03_00?  Thank you! 
查看全文
Codewarrior TAP 通过 JTAG 检测到了 MPC5200 你好, 我一直很苦恼,不知道如何将Codewarrior TAP调试器连接到配备MPC5200的定制应用板上。 探针是“ FREESCALE CodeWarrior USB TAP CWH-CTP-BASE-H E”。 探针尖端是我自己制作的。基本上,我在网站上找到了 2x15 连接器的引脚图/原理图,然后自己进行了板的接线。我在引脚 30 和地之间连接了一个 10 千欧姆的电阻。提示被识别为“电源架构/JTAG COP” 我一直只使用CCS控制台。我目前还没有使用过Codewarrior IDE。 当前状态: findcc 能正确检测到 TAP。 扫描板检测到 JTAG 链并报告: 设备 0:Altera FPGA(IDCODE 0x020B20DD) 设备 1:MPC5200B rev. 2.x(IDCODE 0x1001101D) 设备 2....7:IDCODE:FFFFFFFF,设备:未知设备。 OpenOCD 也检测到了完全相同的两个设备,因此 JTAG 链似乎是正确的。 目标设备已通电并正在运行其应用程序。 问题: 在CCS中配置处理器的任何尝试均失败: ccs::config_chain mgt5200 返回: mgt5200:未连接到目标或无法识别的处理器 ccs::get_config_chain总是报告“测试核心”而不是 mgt5200。 底层 JTAG 命令(如jtag::get_speed )总是返回:内部故障。 问题: MPC5200 是否支持任何硬件或软件机制,可以在禁用 JTAG 调试的同时仍然允许 IDCODE 扫描? CCS 识别 MPC5200 时,对 TRST、HRESET、引导程序或 BDM/JTAG 使能引脚是否有已知的要求? 是否有办法从 CCS 获取更详细的附件日志,以确定 IDCODE 扫描后哪个步骤失败? 非常感谢您抽出时间阅读本文。 米哈伊 Re: MPC5200 detected by Codewarrior TAP over JTAG 你好, 您观察到的行为(IDCODE 扫描工作但调试附加失败)与 MPC5200 架构一致。 根据 MPC5200 文档,该设备使用两级 JTAG 结构:一个主 TAP(用于标准 JTAG/IDCODE)和一个从 TAP(用于 CPU 调试,即 e300 COP 接口)。如果从设备 TAP 未启用或未正确选择,JTAG 检测可以工作,但调试器连接将失败。 建议查看: 正确处理 TRST 和复位信号(TAP 必须处于正确状态) 能够在连接过程中重置/固定设备 CPU调试(COP)接口可访问(未被硬件或配置阻止) 正确的 JTAG 链配置和 TAP 选择,尤其是在多设备链中 顺祝商祺! Peter
查看全文
How to Measure the Internal Temperature and Voltage of an MCU Using the ADC0 NXPサポートチームの皆様、こんにちは。  現在、S32K314、RTD 7.0.0、およびFreeRTOSを使用したプロジェクトに取り組んでいます。MCALのADCモジュールを使用して、MCUに接続された外部デバイスの電圧、MCUの内部温度(TEMPSENSE)、MCUの内部電圧(ANAMUX)、およびバンドギャップ電圧の測定を実装しようとしています。測定結果を見ると、外部デバイスの電圧とバンドギャップ電圧は正しく測定されているようですが、MCUの内部温度と内部電圧の値は予想と異なっています。 期待値: MCU内部電圧(VDD_HV_A): 8192(2.5V、14ビット分解能) 実測値: 約6800~7100(2.07~2.13V、14ビット分解能) MCUの電源電圧は5.0Vです。ADCハードウェアユニットはADC0に設定され、ADC測定対象は以下のように構成されます。  Ch8:MCU内部温度(TEMPSENSE)  Ch9:MCU内部電圧(ANAMUX)  第10章:バンドギャップ  MCU入力電圧 = 5.0V ADC初期化コード: void AdcAdapter_Init ( void ) { Adc_Calibrate ( ADC0 , & calStatus ) ; Adc_SetupResultBuffer ( ADC0 , Group0Result ) ; IP_DCM_GPR -> DCMRWF1 = ( IP_DCM_GPR -> DCMRWF1 | DCM_GPR_DCMRWF1_SUPPLY_MON_EN ( 1 ) | DCM_GPR_DCMRWF1_VDD_HV_A_VLT_DVDR_EN ( 1 ) | DCM_GPR_DCMRWF1_VDD_HV_B_VLT_DVDR_EN ( 1 ) | DCM_GPR_DCMRWF1_VDD_1_5_VLT_DVDR_EN ( 1 ) ) ; IP_DCM_GPR -> DCMRWF1 = ( IP_DCM_GPR -> DCMRWF1 & ~ DCM_GPR_DCMRWF1_SUPPLY_MON_SEL_MASK ) | DCM_GPR_DCMRWF1_SUPPLY_MON_SEL ( 0U ) ; // VDD_HV_A_DIV Adc_StartGroupConversion ( ADC0 ) ; // AdcConversionStart } ADCデータ取得(すべての周期的なタスク) void AdcAdapter_RunCyclic ( void ) { Adc_StatusType ret = ADC_IDLE ; Std_ReturnType adcStatus ; uint16 temperature ; // 変換完了チェック ret = Adc_GetGroupStatus ( ADC0 ) ; if ( ( ret == ADC_COMPLETED ) || ( ret == ADC_STREAM_COMPLETED ) ) { // 結果を取得 Adc_ReadGroup ( ADC0 , Group0Result ) ; // 次の変換を開始 Adc_StartGroupConversion ( ADC0 ) ; } else { // エラーログ } /* Adc_TempSenseGetTemp Singed Q11.4 */ adcStatus = Adc_TempSenseGetTemp ( ADC0 , mcuTemperature ) ; if ( E_OK == adcStatus ) { temperature = Adc_TempSenseCalculateTemp ( ADC0 , mcuTemperature ) ; } else { // エラーログ } }  ADC0グループのADC値は`Adc_ReadGroup`を使用して更新できると思いますが、MCUの内部温度については`Adc_TempSenseGetTemp`と`Adc_TempSenseCalculateTemp`を使用する必要があると思います。もし私が見落としている設定があれば教えてください。 Re: How to Measure the Internal Temperature and Voltage of an MCU Using the ADC0 こんにちは、センレントさん。 迅速なご対応ありがとうございます。 ご提供いただいたサンプルコードは既に確認済みで、私のコードに組み込んだと考えています。 ご提供いただいた表は、ADCブロックに供給される各クロックに対するレジスタ設定の表であると解釈しました。しかし、それらがMCALのどのADC設定に対応しているのかを特定することはできませんでした。 ソースコードを提供できないため、ADC設定の画像を添付します。どの設定を変更すればよいか教えてください。 他に何か必要な設定画面があれば、お知らせください。 AdcHwUnit> Re: How to Measure the Internal Temperature and Voltage of an MCU Using the ADC0 こんにちは@輝彦 提供された情報にはADCの完全な構成が見当たらなかったので、ADCクロックがデータシートの要件に合っているか再確認してください。 可能であれば、テストプロジェクトを共有していただければ、私が確認します。 ちなみに、下記のリンクからデモをご覧ください。 https://community.nxp.com/t5/S32K-Knowledge-Base/Example-S32K344-TempSenser-S32DS36-RTD600-500-400-p24/ta-p/2136187 Re: How to Measure the Internal Temperature and Voltage of an MCU Using the ADC0 こんにちは、センレントさん。 アドバイスありがとうございます。 ご助言に従い、TEMPSENSEのサンプリング時間を1.2マイクロ秒に設定するように、以下のように設定を変更しました。 160MHz = 0.00625マイクロ秒 1.2マイクロ秒/0.00625マイクロ秒= 192 FreeRTOSで1秒サイクルのタスクを作成し、MCU電圧(VDD_HV_A)とMCU温度(TEMPSENSE)のADC値を毎秒取得しました(30秒分のデータ収集)。 MCU電圧についてはバンドギャップ電圧を使い、以下の補償式でmVに変換しました。 (バンドギャップ電圧はほとんど変動せず、約3975(約1.2V)の値が得られた。) Adc補正 = (1200(mV) * Adc_VCC_HV_A) / Adc_バンドギャップ Mcu電圧 = アドコレーション × 2(2は電圧分割比VDD_HV_A) さらに、 McuTempデータは `Adc_TempSenseGetTemp(ADC0, &mcuTemperature)` から取得されます。 ADC変換誤差が±5.0%であることを考慮しても、このばらつきは大きすぎると思います。何か解決策の提案はありますか?   Re: How to Measure the Internal Temperature and Voltage of an MCU Using the ADC0 こんにちは@輝彦 ご提供いただいた設定画面のスクリーンショットとコードを見る限り、明らかなエラーは見当たりません。ただし、温度センサのサンプリング時間は1.2μsを超えなければならないことに注意が必要です。そうでなければ、サンプリングの精度に影響します。したがって、テストを行う前にサンプリング時間を再度確認することをお勧めします。 Re: How to Measure the Internal Temperature and Voltage of an MCU Using the ADC0 ADC_Config>AdcHwUnitの画像が圧縮されて解像度が低下したため、再アップロードします。 <#1> <#2> <#3> Re: How to Measure the Internal Temperature and Voltage of an MCU Using the ADC0 こんにちは@輝彦 温度チャネルから生データを直接読み取って、変動があるかどうかを観察できます。変動が大きい場合は、サンプリング時間を延ばし続けるCAN。 Re: How to Measure the Internal Temperature and Voltage of an MCU Using the ADC0 こんにちは、センレントさん。 ご返信ありがとうございます。 下図に示すように、サンプリング期間1/期間2の値を増加させた後、値は安定しました。デフォルト設定はサンプリング持続時間0だと思っていましたが、サンプリング持続時間0、1、2の切り替えはどうすればいいのでしょうか? (プリスケール設定に基づくと、ADCクロックは80MHzなので、1.2μsに相当する期間は96となる。) Re: How to Measure the Internal Temperature and Voltage of an MCU Using the ADC0 こんにちは、センレントさん。 ドキュメントを添付してくださりありがとうございます。現在チャネル32から63を測定しているので、これはサンプリング持続時間1に対応していると理解しています。 迅速なご対応ありがとうございます。問題は解決しました。 Re: How to Measure the Internal Temperature and Voltage of an MCU Using the ADC0 こんにちは、センレントさん。 私は表317の情報を以下のように解釈しました。 fmc = 160 MHz の場合: ・キャリブレーション用のプリスケーラを4に設定する ・通常のADC変換のプリスケーラを2に設定する ・「ADC高速」を無効に設定する これらの設定を適用して得られたデータは、以下の表に示されています。 平均化することでばらつきは減りましたが、MCU内部温度の変動は依然としてかなり大きいと感じます。 以下の表は、ADC値から°Cに変換したMCU温度データを示しています。 (ADC値を摂氏に変換するために、ADC値を16で割りました。) 16点平均で2.55度の変動は極めて大きい。MCUの温度はプロセッシング負荷によって変動することは理解していますが、これほど瞬時に大きく変わるのは普通のことですか? MCUの内部温度を測定する際に、平均を取るのが正しいアプローチでしょうか?
查看全文
Using GPIO29 of RW612 on FRDM Devboard and uBlox IRIS-W101 Hi everyone, I’ve been trying for a while to use GPIO29/D2 as an I/O pin. However, when I initialize the pin as an I/O pin /* Initialize GPIO29 functionality on pin GPIO_29 (pin D2) */ IO_MUX_SetPinMux(IO_MUX_GPIO29); the program crashes. As far as I can tell, GPIO29 isn’t being used for DQS on the connected Flash ICs via FlexSPI—neither on the FRAM board nor in the IRIS module—so it should be available for use. I’ve been using the lpc_gpio_led_output example as a basis. I’ve also tried changing the clock settings, but that only led to even more errors. Are there specific settings I need to adjust here? Thank you very much for your help. Best regards, Andreas Re: Using GPIO29 of RW612 on FRDM Devboard and uBlox IRIS-W101 Hello @gasar, hope you are doing well. Even though the GPIO[29] is not physically connected/used by the flash device, the FlexSPI controller uses DQS configuration by default for the boot ROM from Flash to achieve proper data read timings in loopback, and also its configuration is used by the ROM code, therefore its functionality should not be modified as stated in Table 45 - ISP pin assignments of UM11865. Sorry for the inconveniences this may cause. Re: Using GPIO29 of RW612 on FRDM Devboard and uBlox IRIS-W101 Hi Roman, thank you for the fast response and for confirming my suspicion. I was hoping that the IO could still be used somehow by adjusting some settings. Unfortunately, now I have to repair all the pcbs by hand 😞 Then I'll write to u-blox and ask them to please update their incorrect datasheet so that others are spared the hassle! BR, Andreas
查看全文
GUI Guider - RT1170 evkbで16ビットアプライアンスデモをフラッシュする際のメモリオーバーフロー ID:GUI-Guider環境 • ツール:GUI Guider 1.10.1 ・対象ボード:RT1170-EVKB、RK055HDMIPI4M 720x1280 MIPIパネル • グラフィックライブラリ: LVGL8 ・動作確認済みバージョン:コーヒー注ぎデモ(完全動作) ・アプライアンスデモ(8ビットRGB332動作確認済み) 失敗したバリアント: • アプライアンスデモ(16ビットRGB565) 問題の説明 アプライアンスデモの16ビット(RGB565)バージョンをビルドしてフラッシュしようとすると、.bssファイル内のメモリオーバーフローが原因でリンカー段階でビルドが失敗します。セクション。 エラーの詳細 • セクションオーバーフロー: .bssm_dataには適合しません ・オーバーフローサイズ:約5.13MB(約5,382,464バイト) この問題は、8ビットから16ビットの色深度に移行する際にメモリ使用量が増加することに関連しているようです。 フレームバッファのサイズはおそらく2倍になります LVGL ドローバッファ + ダブルバッファリングの可能性増加 .bss使用法 合計メモリがリンカースクリプトで定義された使用可能なm_data領域を超えています。 質問:この構成で正常に動作するか、またはGUI GuiderでLVGLのメモリ最適化に関する推奨事項があるかどうかについて、ご教示いただければ幸いです。 Re: GUI Guider - Memory Overflow when Flashing 16-bit Appliance Demo on RT1170 evkb こんにちはmigb2720 さん、 RT1170EVKBの場合、すべてのイメージリソースは最終的にSDRAMにリンクされます。発生した問題は、SDRAM容量不足が原因です。アプリケーションヒープのサイズを調整して、より多くのSDRAMスペースを空けることができます。お使いのツールチェーンを教えていただけますか? よろしくお願いいたします。 宗春
查看全文
kw47 lpuart 您好: 根据官方例程 kw47loc_wireless_uart_freertos 修改并验证串行通信。仅修改 Uart_RxCallBack 和波特率。修改内容如下: 为了方便测试,目前每次通过串口发送 20 字节。测试发现,当波特率低于 256000 时,接收和发送均无问题。当波特率设置为 460800 或更高时,kw47 发送正常,但在接收过程中会发生丢包。 请问您能否帮我检查一下我的使用方法是否正确,并给我一些指导? 另外,为什么 sdk_26_03_00 中没有 kw47loc_freertos_lpuart_cm33_core0 例程? 谢谢!
查看全文
如何使用ADC0测量MCU的内部温度和电压 NXP支持团队的各位成员大家好。 我目前正在使用 S32K314、RTD 7.0.0 和 FreeRTOS 开发一个项目。我尝试使用 MCAL 的 ADC 模块测量连接到 MCU 的外部设备的电压、MCU 的内部温度(TEMPSENSE)、MCU 的内部电压(ANAMUX)以及带隙电压。查看测量结果,外部设备的电压和带隙电压似乎测量正确,但 MCU 的内部温度和内部电压值与预期不符。 预期值: MCU内部电压(VDD_HV_A): 8192(2.5V,14 位分辨率) 实际测量值: 约 6800–7100 (2.07–2.13V,14 位分辨率) MCU电源电压为5.0V。ADC硬件单元设置为ADC0,ADC测量目标配置如下: Ch8:MCU内部温度(TEMPSENSE) Ch9:MCU内部电压(ANAMUX) 第十章:带隙 MCU输入电压 = 5.0V ADC初始化代码: void AdcAdapter_Init ( void ) { Adc_Calibrate ( ADC0 , & calStatus ) ; Adc_SetupResultBuffer ( ADC0 , Group0Result ) ; IP_DCM_GPR -> DCMRWF1 = ( IP_DCM_GPR -> DCMRWF1 | DCM_GPR_DCMRWF1_SUPPLY_MON_EN ( 1 ) | DCM_GPR_DCMRWF1_VDD_HV_A_VLT_DVDR_EN ( 1 ) | DCM_GPR_DCMRWF1_VDD_HV_B_VLT_DVDR_EN ( 1 ) | DCM_GPR_DCMRWF1_VDD_1_5_VLT_DVDR_EN ( 1 ) ) ; IP_DCM_GPR -> DCMRWF1 = ( IP_DCM_GPR -> DCMRWF1 & ~ DCM_GPR_DCMRWF1_SUPPLY_MON_SEL_MASK ) | DCM_GPR_DCMRWF1_SUPPLY_MON_SEL ( 0U ) ; // VDD_HV_A_DIV Adc_StartGroupConversion ( ADC0 ) ; // AdcConversionStart } ADC数据采集(所有周期性任务) void AdcAdapter_RunCyclic ( void ) { Adc_StatusType ret = ADC_IDLE ; Std_ReturnType adcStatus ; uint16 temperature ; // 変換完了チェック ret = Adc_GetGroupStatus ( ADC0 ) ; if ( ( ret == ADC_COMPLETED ) || ( ret == ADC_STREAM_COMPLETED ) ) { // 結果を取得 Adc_ReadGroup ( ADC0 , Group0Result ) ; // 次の変換を開始 Adc_StartGroupConversion ( ADC0 ) ; } else { // エラーログ } /* Adc_TempSenseGetTemp Singed Q11.4 */ adcStatus = Adc_TempSenseGetTemp ( ADC0 , mcuTemperature ) ; if ( E_OK == adcStatus ) { temperature = Adc_TempSenseCalculateTemp ( ADC0 , mcuTemperature ) ; } else { // エラーログ } } 我认为可以使用 `Adc_ReadGroup` 更新 ADC0 组的 ADC 值,但需要使用 `Adc_TempSenseGetTemp` 和 `Adc_TempSenseCalculateTemp` 来检查 MCU 的内部温度。如果我遗漏了任何设置,请告知。 Re: How to Measure the Internal Temperature and Voltage of an MCU Using the ADC0 森伦特先生,您好! 感谢您的快速回复。 我已经审阅了您提供的示例代码,并且相信我已经将其融入到我的代码中。 我把您提供的表格理解为提供给 ADC 模块的每个时钟的寄存器设置表。但是,我无法确定它们对应于 MCAL 中的哪个 ADC 设置。 由于我无法提供源代码,因此我附上了一张ADC设置的图片。请告诉我应该更改哪些设置。 如果您还需要其他设置界面,请告诉我。 AdcHwUnit> Re: How to Measure the Internal Temperature and Voltage of an MCU Using the ADC0 嗨@辉彦 我没有从您提供的信息中看到完整的ADC配置,所以请您仔细检查ADC时钟是否符合数据手册的要求。 如果可以的话,你可以把你的测试项目分享给我,我会帮你检查一下。 对了,可以看看下面链接里的演示: https://community.nxp.com/t5/S32K-Knowledge-Base/Example-S32K344-TempSenser-S32DS36-RTD600-500-400-p24/ta-p/2136187 Re: How to Measure the Internal Temperature and Voltage of an MCU Using the ADC0 森伦特先生,您好! 谢谢你的建议。 根据您的建议,我更改了设置,如下所示,将 TEMPSENSE 采样时间设置为 1.2 微秒。 160MHz = 0.00625微秒 1.2微秒/0.00625微秒= 192 我在 FreeRTOS 中创建了一个周期为 1 秒的任务,每秒获取一次 MCU 电压 (VDD_HV_A) 和 MCU 温度 (TEMPSENSE) 的 ADC 值(收集 30 秒的数据)。 对于 MCU 电压,我使用了带隙电压,并使用以下补偿公式将其转换为 mV。 (带隙电压几乎没有波动,测得的值约为 3975(约 1.2 V)。) Adc校正 = (1200(mV) * Adc_VCC_HV_A) / Adc_带隙 MCU电压= Adc校正 * 2(2为VDD_HV_A的分压比) 此外, McuTemp数据来自 `Adc_TempSenseGetTemp(ADC0, &mcuTemperature)`。 即使考虑到 +/- 5.0% 的 ADC 转换误差,我认为这种变化也太大了。有什么建议的解决方案吗?   Re: How to Measure the Internal Temperature and Voltage of an MCU Using the ADC0 嗨@辉彦 从你提供的配置截图和代码来看,我没有发现任何明显的错误。但是需要注意的是,温度传感器的采样时间必须大于 1.2µs;否则,会影响采样精度。因此,我建议您在测试前仔细核对采样时间。 Re: How to Measure the Internal Temperature and Voltage of an MCU Using the ADC0 ADC_Config>AdcHwUnit 的图像被压缩,导致分辨率降低,因此我重新上传了它。 <#1> <#2> <#3> Re: How to Measure the Internal Temperature and Voltage of an MCU Using the ADC0 嗨@辉彦 您可以直接读取温度通道的原始数据,观察是否存在波动。如果波动较大,您可以继续尝试增加采样时间。 Re: How to Measure the Internal Temperature and Voltage of an MCU Using the ADC0 森伦特先生,您好! 我对表 317 中的信息作了如下解释。 当 fmc = 160 MHz 时: ・将校准预分频器设置为4 ・将普通ADC转换的预分频器设置为2 ・将“ADC 高速”设置为“禁用” 应用这些设置后获得的数据如下表所示。 虽然平均值降低了波动,但我感觉 MCU 内部温度的波动仍然相当显著。 下表显示了从 ADC 值转换为 °C 的 MCU 温度数据。 (为了将ADC值转换为摄氏度,我将ADC值除以16。) 16 个点平均值出现 2.55 度的变化是极其大的。我知道MCU温度会根据处理负载而波动,但是温度瞬间变化这么大正常吗? 测量MCU内部温度时,取平均值是否是正确的方法? Re: How to Measure the Internal Temperature and Voltage of an MCU Using the ADC0 森伦特先生,您好! 感谢您附上文档。由于我目前正在测量通道 32-63,我知道这对应于采样持续时间 1。 感谢您的及时回复。问题已解决。 Re: How to Measure the Internal Temperature and Voltage of an MCU Using the ADC0 森伦特先生,您好! 谢谢你的回复。 如下图所示,在我增加采样持续时间 1/持续时间 2 的值后,这些值趋于稳定。我以为默认设置是采样持续时间 0,但是如何才能在采样持续时间 0、1 和 2 之间切换呢? (根据预分频设置,由于 ADC 时钟频率为 80 MHz,因此 1.2 μs 对应的持续时间为 96。)
查看全文
kw47 lpuart こんにちは: 公式ルーチン kw47loc_wireless_uart_freertos に基づいてシリアル通信を修正および検証します。Uart_RxCallBackとボーレートのみを変更してください。変更点は以下のとおりです。 現時点でのテストの便宜上、シリアルポートを通して毎回20バイトのデータが送信されます。テストの結果、ボーレートが256000未満の場合、送受信ともに問題は発生しないことがわかった。ボーレートを460800以上に設定した場合、kw47は正常に送信しますが、受信時にパケット損失が発生します。 使い方が間違っているか確認して、アドバイスをいただけませんか? また、sdk_26_03_00 に kw47loc_freertos_lpuart_cm33_core0 ルーチンがないのはなぜですか? よろしくお願いいたします。
查看全文
FRDM Devboard および uBlox IRIS-W101 上の RW612 の GPIO29 を使用する こんにちは、皆さん 私はGPIO29/D2をI/Oピンとして使用しようとしばらく試みてきました。しかし、ピンをI/Oピンとして初期化すると /* ピン GPIO_29 (ピン D2) で GPIO29 の機能を初期化します */ IO_MUX_SetPinMux(IO_MUX_GPIO29); プログラムがクラッシュします。私の知る限り、GPIO29はFlexSPI経由で接続されたフラッシュICのDQSには使われていないので、使用可能であるはずです。私はlpc_gpio_led_outputのサンプルをベースに使っています。 時計の設定を変更してみましたが、かえってエラーが増えてしまいました。 ここで調整する必要のある特定の設定はありますか? ご協力いただき、誠にありがとうございました。 よろしくお願いします、 アンドレアス Re: Using GPIO29 of RW612 on FRDM Devboard and uBlox IRIS-W101 こんにちは、 @gasar さん。お元気でお過ごしでしょうか。 GPIO[29]はフラッシュデバイスによって物理的にコネクテッド・使用されていませんが、FlexSPIコントローラはフラッシュからのブートROMに対してデフォルトでDQS構成を用い、ループバックで適切なデータ読み取りタイミングを実現しています。また、その構成はROMコードによっても利用されるため、 表45 - UM11865のISPピン割り当て に記載されているように機能を変更するべきではありません。 ご迷惑をおかけして申し訳ございません。 Re: Using GPIO29 of RW612 on FRDM Devboard and uBlox IRIS-W101 こんにちは、ローマンさん。 迅速なご対応と、私の推測を裏付けていただき、ありがとうございました。設定を調整すればIOが何らかの形で使えることを期待していました。残念ながら、今はすべての基板を手作業で修理しなければなりません。 😞 その後、you-bloxに連絡して、誤ったデータシートを更新してほしいとお願いします。そうすれば他の人も手間を省けるように! BR、アンドレアス
查看全文
关于 S32K312 上 FlexCAN 增强型 RX FIFO + DMA 操作的说明需要澄清 你好 , 我们目前正在研究基于 S32K312 的 FlexCAN 增强型 RX FIFO 和 DMA, enhanced FIFOenhanced FIFO增强型先进先出   我们正在使用 rtd v 7.0.1,希望就我们遇到的几个问题和观察结果进行澄清。 1. MEX 配置验证 请您确认启用 DMA 的 FlexCAN 增强型 RX FIFO 的推荐 MEX 配置是什么?我们希望确保我们的配置符合预期的RTD使用模型。 2. 增强型接收 FIFO + DMA 数据丢失观察 根据 FlexCAN 勘误表中的建议,启用增强型 RX FIFO 时,以下消息缓冲区将不使用: MB0–MB7、MB10、MB12、MB20、MB22、MB30、MB32、MB40、MB50 和 MB60。 我们的配置如下: 增强型接收 FIFO 已启用 DMA已使能 水印配置为 10 个条目 DMA 将 FIFO 数据传输到软件缓冲区。 观察到的行为: CAN 消息已正确接收到增强型 RX FIFO 中。 DMA 可以成功传输数据,直到达到水印级别。 DMA完成中断被触发。 此后,在预期的下一个 FIFO 位置(从第 11 个 FIFO 条目开始)中未观察到传入的 CAN 消息。 观察到数据丢失和异常的先进先出(FIFO)行为。 请解释一下这种情况下的预期行为以及出现消息丢失的可能原因? 3. FlexCAN_Ip_RxFifo DMA 重配置 在调试 RTD 驱动程序时,我们观察到 FlexCAN_Ip_RxFifo API 似乎会重新配置 DMA 参数。 具体来说: 次要循环计数似乎已配置为 16 传输大小似乎为 4 字节 这导致总传输大小为 64 字节(或根据解释约为 68 字节),这似乎与参考手册中描述的增强型 RX FIFO 条目大小不符。 能否解释一下这个 API 的预期功能以及这些 DMA 设置背后的原理? 4. 增强型接收 FIFO 存储器观察 调试过程中还观察到,尽管 DMA 似乎将数据从 FIFO 传输到软件缓冲区: FIFO 内存区域仍然包含较旧的消息 ID。 内存浏览器似乎只显示第一个增强型 RX FIFO 元素。 先进先出位置似乎没有按预期更新。 附上屏幕截图供参考。 能否解释一下这是否是预期行为,以及在运行时调试期间应该如何解释增强型 RX FIFO 内存? 5. 结构尺寸不匹配 我们还观察到 RTD 结构与参考手册之间存在差异。 FlexCAN_Ip_MsgBuffType 在 RTD 中的大小:78 字节 根据参考手册,增强型 RX FIFO 元素大小为:80 字节 请问您能否解释一下: 为什么会出现这种尺寸差异? 是否需要考虑包装/对齐方面的问题? DMA 传输应该配置为 78 字节还是 80 字节? 预期用途案例 我们的要求是使用: 增强型接收 FIFO 基于DMA的接收 消息接收过程中不会出现 CPU 中断。 预期行为是: CAN 消息到达增强型 RX FIFO。 DMA 会自动将 FIFO 条目传输到软件缓冲区。 正常运行不需要软件轮询或接收中断处理。 有意避开增强型 RX FIFO 保留的消息缓冲区(MB0–MB7、MB10、MB12、MB20、MB22、MB30、MB32、MB40、MB50 和 MB60),而其余的消息缓冲区则用于传输。 申请它 请问您能否提供以下信息: 任何能够演示增强型 RX FIFO 与 DMA 操作的示例项目。 针对此用例推荐的RTD配置。 澄清 RTD 目前是否支持使用 DMA 进行连续增强型 RX FIFO 接收而无需软件重新激活。 任何实现增强型 RX FIFO + DMA 接收的裸机驱动程序示例。 感谢您的支持。 Re: Clarification Required on FlexCAN Enhanced RX FIFO + DMA Operation on S32K312 您好, 1. MEX 配置验证 A:看来您的 MEX 与您描述的设置不符。 - 水印设置为 1 - DMA传输配置并非必需,驱动程序会自动配置DMA,除非您想要自行设置DMA参数和传输方式。 2. 增强型接收 FIFO + DMA 数据丢失观察 A:DMA 完成中断后,所有接收到的消息都会被读取,并且分配的 DMA 通道将被禁用。 因此,如果不再调用 FlexCAN_Ip_RxFifo,RXFIFO 仍然会从条目 0 开始接收消息,但由于 DMA 没有再次启动,因此不会读取 RXFIFO。 3. FlexCAN_Ip_RxFifo DMA 重配置 A:什么是次要循环计数?驱动程序本身将次要循环大小(字节)设置为 80,以便从 RXFIFO 读取最多 64 字节的有效负载消息以及 IDHIT 和时间戳信息。 所以,我其实不太明白你的计算方法。或许可以分享一下你的代码 4. 增强型接收 FIFO 存储器观察 A:仅第一个增强型 RX FIFO 元素区域可见,表示增强型 FIFO 输出端口地址范围。调试期间不建议显示 RXFIFO 内存。为了使 FIFO 引擎正常运行,CPU 在 DMA 操作期间不应访问增强型 FIFO 输出端口地址范围,实际上显示此内存空间会导致对其进行读取。 5. 结构尺寸不匹配 A:FlexCAN_Ip_MsgBuffType 不能完全反映 RXFIFO 结构。传输结束时,驱动程序读取内部缓冲,并将相应的数据填充到用户缓冲区的相应字段中。 如上所述,DMA 应设置为每次 DMA 请求读取 80 字节。 驱动程序的编写方式是,在 DMA 完成并调用 FLEXCAN_EVENT_DMA_COMPLETE 事件后,需要重新激活 DMA(调用 FlexCAN_Ip_RxFifo)。 您可以参考下面的演示来增强 RXFIFO 和 DMA 的使用,但这是在 RTD400 中实现的。 https://community.nxp.com/t5/S32K-Knowledge-Base/Example-S32K344-FlexCAN-Ip-TX-RX-EnhanceRXFIFO-DMA-test-S32DS3-5/ta-p/2015832 BR,彼得
查看全文
GUI Guider - Memory Overflow when Flashing 16-bit Appliance Demo on RT1170 evkb id:GUI-Guider Environment • Tool: GUI Guider 1.10.1 • Target board: RT1170-EVKB, RK055HDMIPI4M 720x1280 MIPI panel • Graphics library: LVGL8 • Working variant: Coffee Pour demo (fully working)     • Appliance demo (8-bit RGB332 works) Failing variant:     • Appliance demo (16-bit RGB565) Issue Description When attempting to build and flash the 16-bit (RGB565) version of the Appliance demo, the build fails at the linker stage due to a memory overflow in .bss section. Error Details • Section overflow: .bss does not fit in m_data • Overflow size: ~5.13 MB (≈ 5,382,464 bytes) The issue appears to be related to increased memory usage when moving from 8-bit to 16-bit colour depth: Framebuffer size likely doubles LVGL draw buffers + possible double buffering increase .bss usage Combined memory exceeds available m_data region defined in linker script ASK: Looking for guidance on whether this configuration is expected to work or if there are recommended memory optimizations for LVGL in GUI Guider. Re: GUI Guider - Memory Overflow when Flashing 16-bit Appliance Demo on RT1170 evkb Hello migb2720, For the RT1170EVKB, all image resources are eventually linked to SDRAM. The issue you encountered is caused by insufficient SDRAM space. You can adjust the application heap size to free up more available SDRAM space. May I ask which toolchain you are using? Best Regards Zongchun
查看全文
How to Jump from App1 to App2 on the S32K344 Hi, we are testing a custom jump from user App 1 to user  App 2 on the FRDM A S32K344 linker file of app1 and app2 is attached below  #define APP_START_ADDRESS 0x00500000 void Bootup_Application(const uint32_t app_StarAddress) { uint32_t appEntry, appStack; static void (*jump_to_application)(void); /* Get the application's initial stack pointer value */ appStack = *((uint32_t *)(app_StarAddress)); /* Get the application's reset handler (entry point) address */ appEntry = *((uint32_t *)(app_StarAddress + 4)); /* Assign the application entry address to the function pointer */ jump_to_application = (void (*)(void))appEntry; /* Relocate the interrupt vector table to the application */ S32_SCB->VTOR = (uint32_t)app_StarAddress; /* Disable global interrupts (ASM_KEYWORD("cpsid i");) */ __asm volatile ("cpsid i" : : : "memory"); /* Set the Main Stack Pointer (MSP) */ __asm volatile ("MSR msp, %0\n" : : "r" (appStack) : "memory"); /* Set the Process Stack Pointer (PSP) */ __asm volatile ("MSR psp, %0\n" : : "r" (appStack) : "memory"); /* Jump to the application */ jump_to_application(); while (1) { /* Reaching here indicates an error occurred */ Siul2_Dio_Ip_WritePin(LED_RED_PORT, LED_RED_PIN, 1U); } } Could you please verify Bootup_Application func can succeffuly jump to app2? If any additional steps are required, please let me know. Re: How to Jump from App1 to App2 on the S32K344 Hi @ganavi1  In principle, I can see no problem there. The only thing is that disabling of global interrupts may not be enough. I always recommend to de-initialize all used peripherals. Make sure that all interrupts are disabled also locally via peripheral registers, so they can’t be triggered again once global interrupts are enabled by App2. Regards, Lukas
查看全文