Multi Source Translation Content

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

Multi Source Translation Content

Discussions

Sort by:
S32K118 D-闪存和 EEEPROM 配置 您好, ,我是恩智浦生态系统的新成员,急需帮助。 我正在使用 S32K118 并一直在尝试使用 D-Flash 作为非易失性存储器,但无论我尝试哪种方式我似乎都无法让它起作用... 起初,我尝试对 FlexNVM 进行分区以模拟 EEEPROM,但总是出现 ACCERR。我试图在数据表中详细说明其中的所有原因,但我唯一能想到的是,该函数是写入 P-Flash 的,但必须在 RAM 中(" 程序分区命令不能从闪存中用上市,因为在 “程序分区” 命令执行期间无法访问 闪存资源。")。我也无法将函数写入 RAM,因为我遇到了一些链接器问题...... 既然不行,我就尝试手动写入 D-FLASH,但却出现了 MGSTAT 错误,这意味着它尚未被清除。当我试图清除它时,却出现了 HardFault...AI 认为这可能是没有再次从 RAM 运行功能的问题,但我无法像之前提到的那样让它工作...... ,我会在下面添加我的文件,非常感谢任何帮助。 Re: S32K118 D-flash and EEEPROM configuration 首先需要执行程序分区操作,根据 AN11983 第 2.2.2 节的要求配置 FlexRAM/FlexNVM。 S32DS SDK 中有一个示例代码(flash_partitioning_s32k144)。在对示例代码进行编程之前,它必须是空白的新设备或已执行大规模擦除操作。没有默认值,只需执行一次。 您也可以使用我以前做过的示例代码。它按照示例代码的意图将 FlexRAM 配置为 RAM,但它也将 FlexNVM 安装为 D-Flash: https://community.nxp.com/t5/S32K-Knowledge-Base/Example-S32K146-Set-whole-FlexRAM-as-RAM-v0-0-S32DS-ARM-2-2/ta-p/1245841 FlexNVM 的 EEPROM 部分将通过 FlexRAM 内存地址空间访问。 FlexNVM 的数据闪存部分将以普通方式访问,即直接读取闪存地址和擦除/编程闪存地址。 如何为闪存编程的简单示例,请参见此处: https://community.nxp.com/t5/S32K-Knowledge-Base/Example-S32K144-Flash-RW-simple/ta-p/1110000
View full article
S32K358 GMAC MAC 地址 您好, 我正在与 GMAC 周边的 LWIP 合作。使用配置工具,我发现必须输入 MAC 地址才能生成配置。我可以访问集成电路上的硬件 MAC 地址吗?或可用于评估目的的范围? Re: S32K358 GMAC MAC address 感谢帕维尔的快速回放。 此致问候 埃文 Re: S32K358 GMAC MAC address 你好@ivanperino、 S32K3 设备(例如 S32K358)没有将 MAC 地址烧录到 OTP 存储器中。这些 MCU 不包含集成的以太网 PHY,也不提供内置的唯一 MAC 标识符。 MAC 地址管理是每个客户的责任。恩智浦不为 S32K3 设备分配或保证 MAC 地址。分配策略(静态、动态或基于正式注册的 OUI)必须由客户定义和实施。 典型选项 本地管理地址 (LAA),用于内部部署或有限部署(如 02:xx:xx:xx:xx:xx:xx:xx)。 商用产品的全球唯一 MAC 地址需要向 IEEE 注册 OUI: https://standards.ieee.org/products-services/regauth/ 作为参考,恩智浦确实为某些无线模块(BLE、Wi-Fi)提供了预编程的MAC地址,在这些模块中,全球唯一性是认证的必要条件。这不适用于 S32K3 MCU。 顺祝商祺! 帕维尔 Re: S32K358 GMAC MAC address 铺装 您的建议看起来并不符合 IEEE 标准。将相同的 MAC 地址分配给同一网络中的两台设备(无论是否意外)都会导致第 2 层防火墙通常会检测到 MAC 欺骗。 我们的产品不能包含"任何随机的" MAC 地址。对于其他产品,我们得到的是 OUI 和使用范围。一句话物理设备(虚拟系统除外)的 MAC 地址必须是唯一的。恩智浦是否有避免重复的范围或方法? 希望您能在这里帮助我们。 埃文 Re: S32K358 GMAC MAC address 你好@Greavesinator85、 没有,没有 HW MAC 地址。选择任何在网络/子网中唯一的 MAC 地址。 顺祝商祺! 帕维尔
View full article
S32K144-33664-BCC33772B spi 从站回调问题 你好,论坛、 我在使用 S32K144 与 BCC33772 通信时遇到了问题。 我正确地唤醒了 TPL 收发器,为 BCC33772 分配了一个 ID,并询问了电压;我甚至得到了 BCC33772 对我的从属设备的响应。 问题就在最后,因为这种响应不会触发信号 spi 从站的回调,就好像它没有收到大小合适的传输,但总线上有总线。 令我不解的是,它确实正确接收了我为确保建立正确通信而分配的 ID 检索传输,但问题似乎出在要求多个响应上。 我使用该功能既与主站通信,又与从站接收: void spi_hw_transfer(zc_spi_hw* hw_config、数据包* 数据包){ hw_config->数据包= 数据包; uint16_ttotal_bytes = (((packet->消息字节长度<<3) - 1 + hw_config->帧数据字节数) / hw_config->帧数据大小比特)* hw_config->帧总字节数; 如果(hw_config->hw_mode== 主模式){ hw_config->zc_hw_load_spi_buffer(hw_config, packet->tx_buffer数据包>消息字节长度); LPSPI_DRV_MasterTransfer(hw_config->spi_id, hw_config->传输缓冲区, hw_config->接收缓冲区, total_bytes); }否则{ hw_config->zc_hw_load_spi_buffer(hw_config, packet->tx_buffer数据包>消息字节长度); LPSPI_DRV_SlaveTransfer(hw_config->spi_id, hw_config->传输缓冲区, hw_config->接收缓冲区, total_bytes); } } 数据包只是一个结构体,其中包含几个变量,用于指定我想要做的事情,但这里基本上有三个相关的数据包: send_order,其信息字节长度为 6 receive_single_response,其信息字节长度为 12 receive_voltage_response,其信息字节长度为 42 我使用这个函数将我想要发送的顺序填入 send_order: void BCC33772_load_binary_payload(数据包* 数据包、 uint8_tmemdata_high、 uint8_tmemdata_low、 uint8_tregister_addr、 uint8_tdevice_id、 uint8_tdevice_cr、 uint8_tcmd){ uint8_t* 缓冲区 = 数据包->tx_buffer; 缓冲区[0] = memdata_high; 缓冲区[1] = memdata_low; buffer[2] = register_addr; //我们假定响应位为零,因为这个 有效载荷是一个请求 缓冲区[3] = 设备 ID; buffer[4] = device_cr<< 4 | cmd; } 这些都是在配置后检查 ID 集和要求电压的调用: BCC33772_load_binary_payload(&send_order, 0x0, 0x1, BCC33772B_INIT_REGISTER, 0x1, 0, BCC33772B_READ_CMD); spi_hw_transfer(&spi_rx,&send_order); spi_hw_transfer(&spi_tx,&receive_single_response); ,这确实有效。然后调用六种电压: BCC33772_load_binary_payload(&send_order, 0x0, 0x6, BCC33772B_INIT_REGISTER, 0x1, 0, BCC33772B_READ_CMD); spi_hw_transfer(&spi_rx,&send_order); spi_hw_transfer(&spi_tx,&receive_voltage_response); ,而不是。(如果 BCC33772 关闭并且只是一遍又一遍地填充 send_order 数据,它确实会触发信号)。 这是 spi_rx 和 spi_tx 通道上的信息(延迟是因为 TPL 的缘故) rchust_0-1764241709697.png 这是我的配置: RX = { .bitcount = 48u、 .callback = NULL、 .callbackParam = NULL、 .clkPhase = LPSPI_CLOCK_PHASE_2ND_EDGE、 .clkPolarity = 0、 .lsbFirst = false、 .pcsPolarity = LPSPI_ACTIVE_LOW、 .rxDMAChannel = 0、 .transferType = LPSPI_USING_INTERRUPTS、 .txDMAChannel = 0、 .whichPcs = 0、 }; TX = { .bitcount = 48u、 .bitsPerSec = 2000000、 .callback = NULL、 .callbackParam = NULL、 .clkPhase = LPSPI_CLOCK_PHASE_2ND_EDGE、 .clkPolarity = 0、 .isPcsContinuous = true、 .lpspiSrcClk = 48000000、 .lsbFirst = false、 .pcsPolarity = LPSPI_ACTIVE_LOW、 .rxDMAChannel = 0xFF、 .transferType = LPSPI_USING_INTERRUPTS、 .txDMAChannel = 0xFF、 .whichPcs = 0、 }; (它们都配置为从 FIR 时钟馈电) Re: S32K144-33664-BCC33772B spi slave callback problem 您好, 您没有详细说明硬件(原理图、连接等),因此假定硬件已正确连接。 如果您使用的是 MC33772B,那么该 BCC 使用 40 位命令,而 C 版本使用 48 位命令。 因此,对于 MC33772B,您的代码是不正确的。无论如何你可以参考 MC33771B/MC33772B 的 BCC 软件驱动程序代码包,可在 https://www.nxp.com/design/design-center/software/analog-expert-software-and-tools/sdk-analog-expert-drivers/embedded-sw-battery-cell-controller-software-driver-for-mc33771b-mc33772b:EMBEDDED-SW-BCC#downloads 上获得 BR, Petr Re: S32K144-33664-BCC33772B spi slave callback problem 在此之前,我提供了一份我的代码简历,但现在我删掉了一些东西,只保留了主代码所需的最低限度,而这正是我的代码: #definevoltage_count 6 #defineID_33772 1 uint32_tsingle_response_counter; uint32_t电压响应计数器; zc_spi_packet发送顺序; zc_spi_packetreceive_single_response; zc_spi_packet 接收电压响应; zc_spi_hwspi_tx; zc_spi_hwspi_rx; zc_digital_out引脚 1; zc_digital_out引脚 2; zc_digital_out引脚 3; 无效 唤醒(zc_spi_hw* spi){ spi_hw_set_cs_polarity(spi, 0, true); //这将关闭它,因为我们没有发送信息,所以选中时为高电平 + 未选中时 = 低电平 zc_delay_microseconds(21U); spi_hw_set_cs_polarity(spi, 0, false); zc_delay_microseconds(600U); spi_hw_set_cs_polarity(spi, 0, true); zc_delay_microseconds(21U); spi_hw_set_cs_polarity(spi, 0, false); zc_delay_microseconds(1000U); } void load_binary_payload(数据包* 数据包、 uint8_tmemdata_high、 uint8_tmemdata_low、 uint8_tregister_addr、 uint8_tdevice_id、 uint8_tdevice_cr、 uint8_tcmd、 uint8_tcrc){ uint8_t* buffer = packet->tx_buffer; 缓冲区[0] = memdata_high; 缓冲区[1] = memdata_low; buffer[2] = register_addr; //我们假定响应位为零,因为这个 有效载荷是一个请求 缓冲区[3] = 设备 ID; buffer[4] = device_cr<< 4 | cmd; buffer[5] = crc; } void single_callback(数据包* 数据包){ single_response_counter++; } void 电压回调(数据包* 数据包){ 电压响应计数器++; } int main(){ zc_clock_init(); zc_start_scheduler(); zc_create_spi_packet(&send_order, 6, NULL, NULL); zc_create_spi_packet(&receive_single_response, 12, single_callback, NULL); zc_create_spi_packet(&接收电压响应, 42, voltage_callback, NULL); initialize_hw_spi(&spi_tx,SPI_1、 主); initialize_hw_spi(&spi_rx,SPI_2、 驱动); //在 33664 中启用 TPL2 zc_init_digital_out(&pin1,&PD4); zc_init_digital_out(&pin2,&PA16); zc_init_digital_out(&pin3,&PC13); zc_turn_on_do(&pin1); zc_turn_on_do(&pin2); zc_turn_on_do(&pin3); //启动 33664 wakeup(&spi_tx); wakeup(&spi_tx); //RESET 33772 uint8_tsoft_reset_data[2] = {0 、 bcc33772b_soft_reset}; load_binary_payload(&send_order, soft_reset_data[0], soft_reset_data[1]、 BCC33772B_SYS_CFG1_CONFIG_REGISTER, 0, 0, BCC33772B_WRITE_GLOBAL_CMD, 0x5A); spi_hw_transfer(&spi_tx,&send_order); zc_delay_microseconds(2000U); /设置 ID uint8_tset_id_data[2] = {0 , ID_33772}; load_binary_payload(&send_order, set_id_data[0], set_id_data[1]、 BCC33772B_INIT_REGISTER, 0, 0, bcc33772b_write_cmd, 0x85); spi_hw_transfer(&spi_tx,&send_order); zc_delay_microseconds(2000U); //读取设置 ID load_binary_payload(&send_order, 0, 1、 BCC33772B_INIT_REGISTER, ID_33772, 0、 bcc33772b_read_cmd, 0x1D); spi_hw_transfer(&spi_rx,&receive_single_response); spi_hw_transfer(&spi_tx,&send_order); zc_delay_microseconds(2000U); /设置 ID uint8_tset_id_data_2[2] = {0 , ID_33772+1}; load_binary_payload(&send_order, set_id_data_2[0], set_id_data_2[1]、 BCC33772B_INIT_REGISTER, 0, 0, bcc33772b_write_cmd, 0x75); spi_hw_transfer(&spi_tx,&send_order); zc_delay_microseconds(2000U); //读取设置 ID load_binary_payload(&send_order, 0, 1、 BCC33772B_INIT_REGISTER, id_33772+1, 0、 bcc33772b_read_cmd, 0x09); spi_hw_transfer(&spi_rx,&receive_single_response); spi_hw_transfer(&spi_tx,&send_order); zc_delay_microseconds(2000U); 而(1){ 如果(every_100_ms){ every_100_ms = false; //阅读电压 uint8_tadc_cfg_data[2] = { 0x4 | 0x8, 0x3F}; load_binary_payload(&send_order, adc_cfg_data[0], adc_cfg_data[1]、 bcc33772b_adc_cfg_config_register, ID_33772, 0、 bcc33772b_write_cmd, 0x39); spi_hw_transfer(&spi_tx,&send_order); zc_delay_microseconds(200); load_binary_payload(&send_order, 0, 6、 BCC33772B_MEASURE_CELL6_VOLTAGE, ID_33772, 0、 bcc33772b_read_cmd, 0x04); spi_hw_transfer(&spi_rx、&接收电压响应); spi_hw_transfer(&spi_tx,&send_order); } } 返回0; } zc_spi_hw.c 文件很长,但大部分内容都是配置和兼容性。这些都是在本案中可能很重要的: void spi_hw_transfer(zc_spi_hw* hw_config、数据包* 数据包){ hw_config->数据包= 数据包; uint16_ttotal_bytes = (((packet->消息字节长度<<3) - 1 + hw_config->帧数据字节数) / hw_config->帧数据大小比特)* hw_config->帧总字节数; 如果(hw_config->hw_mode== 主模式){ hw_config->zc_hw_load_spi_buffer(hw_config, packet->tx_buffer数据包>消息字节长度); LPSPI_DRV_MasterTransfer(hw_config->spi_id, hw_config->传输缓冲区, hw_config->接收缓冲区, total_bytes); }否则{ hw_config->zc_hw_load_spi_buffer(hw_config, packet->tx_buffer数据包>消息字节长度); LPSPI_DRV_SlaveTransfer(hw_config->spi_id, hw_config->传输缓冲区, hw_config->接收缓冲区, total_bytes); } } void spi_hw_set_cs_polarity(zc_spi_hw* hw_config、 uint8_tcs_id, bool high_on_select){ lpspi_signal_polarity_tpolarity = high_on_select ? 高电平: lpspi_active_low; LPSPI_DRV_SetPcs(hw_config->spi_id,cs_id,极性); } void __zc_hw_load_spi_buffer_full_byte(zc_spi_hw* hw_config、 uint8_t* 数据、 uint16_tdata_length){ uint16_tframe_data_size_bytes = (data_length - 1 + hw_config-)>frame_data_size_bytes)/ hw_config->帧数据字节数; 为(uint16_ti = 0; i< frames_to_send; i++){ memcpy(hw_config->传输缓冲区+ hw_config->frame_total_size_bytes*数据 + hw_config->帧数据大小字节*数据 + hw_config- frame_data_size_bytes>帧数据大小字节); uint32_t* last_word_of_frame = (uint32_t*) (hw_config->传输缓冲区+ hw_config->frame_total_size_bytes*(i+1) - 4); *last_word_of_frame = *last_word_of_frame<< hw_config->帧_比特_padding; } } void __zc_hw_unload_spi_buffer_full_byte(zc_spi_hw* hw_config、 uint8_t* 数据、 uint16_tdata_length){ uint16_t帧接收 = (data_length - 1 + hw_config-)>frame_data_size_bytes)/ hw_config->帧数据字节数; 为(uint16_ti = 0; i< frames_to_receive; i++){ uint32_t* last_word_of_frame = (uint32_t*) (hw_config->接收缓冲区+ hw_config->frame_total_size_bytes*(i+1) - 4); *last_word_of_frame = *last_word_of_frame>> hw_config->帧_比特_padding; memcpy(数据 + hw_config->frame_data_size_bytes数据 *i, hw_config->接收缓冲区+ hw_config->帧总数据字节数*帧>frame_data_size_bytes); } } void __zc_hw_spi_callback_master(void*驱动状态、 事件事件、 void*用户数据){ (void) 驱动状态; (void) 事件; zc_spi_hw* spi_handler = (用户数据*) userData; zc_spi_packet* packet = (spi_handler)->传输的数据包; 如果(packet != NULL&& packet->回调!= NULL){ 数据包>回调(数据包); } } void __zc_hw_spi_callback_slave(驱动状态*驱动状态、 事件事件、 void*用户数据){ (void) 驱动状态; (void) 事件; zc_spi_hw* hw_config = (zc_spi_hw*用户数据; zc_spi_packet* 数据包 = hw_config->传输的数据包; hw_config->zc_hw_unload_spi_buffer(hw_config, packet->rx_buffer数据包>消息字节长度); 如果(packet != NULL&& packet->回调!= NULL){ 数据包>回调(数据包); } } 问题是,当试图读取电压时,spi_rx 输出LPSPI_TRANSMIT_FAIL,我不知道为什么。在 spi_hw_transfer 中调用 LPSPI_DRV_SlaveTransfer 的结果是: LPSPI_DRV_SlaveTransfer(2, spi_rx->transfer_buffer, spi_rx->receive_buffer, 56) 56 来自 uint16_ttotal_bytes = (((packet->消息字节长度<<3) - 1 + hw_config->帧数据字节数) / hw_config->帧数据大小比特)* hw_config->帧总字节数; 因为我们发送的是 48 位大小的帧,而 SPI 外围设备是以全字工作的。因此,实际帧大小为 64 位,而且只发送其中的前 48 位。至少这是我在 PAL 库中读到的信息,而且似乎有效(除了最后一条信息)。   Re: S32K144-33664-BCC33772B spi slave callback problem 您好, 很抱歉我弄错了,是 33772C;我弄混了,因为我之前用的是 33771B,它确实有 40 位。 所有硬件、crc 计算、信息大小和 ID 分配都应该是正确的,因为我可以在逻辑分析仪上看到数据交换,而且 33772C 在我要求时也确实以我给它的 ID 回应我。事实上,如图所示,它也对电压数据做出了响应,只是我的从属设备没有捕捉到而已。 这是一个接收时的代码问题,我想我已经缩小了范围。错误似乎出在 TX 上,因为如果我在 tx 缓冲区中输入 NULL,它就能正常工作。从技术上讲,这种使用情况是可以解决的,因为这是 TPL 从站,33664 从站接收不到任何信息(甚至没有路由)。 不过,我还是想知道为什么发送时不工作。如果我将 zc_create_spi_packet(&receive_voltage_response,X,voltage_callback,NULL); 其中 X 为 32 或更低值,就能捕捉到它。所以看来它最多可以发送 32 字节但如果发送更多字节就会失败? Re: S32K144-33664-BCC33772B spi slave callback problem 您好, 对于 MC33772C,只需参考可用的驱动程序;https://www.nxp.com/webapp/Download?colCode=EMBEDDED-SW-BCC-MC33771C&appType=license 它还使用 NULL 作为从站/主站 TX/RX 缓冲区的参数。 PetrS_2-1764594742261.png PetrS_0-1764594498684.png 还要确定缓冲区的对齐方式和 SDK 传输函数中使用的 transferByteCount 值 PetrS_1-1764594690958.png BR, Petr Re: S32K144-33664-BCC33772B spi slave callback problem 我发现了发生了什么,至少我是这么认为的。 只有当我尝试使用 DRV 库从属接收长度超过 8 个字的报文时,问题才会出现。 我还发现,如果将传输缓冲区设置为空值,告诉 DRV 只接收,错误就不会再发生了。错误发生在传输过程中,我看到传输缓冲区中没有传输我给它的 0,而是出现了一些满是 1 的帧。 最后,我试着用另一个 s32k144 进行测试,发现只有在频率达到或超过 2MHz 时才会出现这种情况,而且我还为 MCU 配置了 48MHz 时钟,而不是 80MHz 时钟。 因此,似乎是软件运行不足,DRV 回调无法以足够快的速度向从属设备上的中断传输缓冲区提供数据,从而导致错误。至于 33772C,由于要通过 TPL,所以不需要在从属设备上转接,我就不转接了。今后,使用 DMA 代替中断很可能会解决这个问题。
View full article
I.MX8 DDR4/LPDDR4 &EMMC、すべてのAVLブランドおよび部品番号サポートリストの提案。 親愛なるNxp様 弊社の顧客であるTCL社はMIMX8ML8CVNKZABを使用しています。DDR4の部品番号はEOLとなります。 CMは、MIMX8ML8CVNKZABのDDR4/LPDDR4とEMMCのすべてをNXPが提供することを必要としている。 AVL ブランドおよび部品番号のサポート リストの提案。 提供してください。ありがとう!非常に緊急です。ありがとう! 回复: I.MX8 DDR4/LPDDR4 &EMMC, all of the AVL Brand and Part number support list suggestion. ありがとうございます。あなたの提案により問題はCANで解決しました。ありがとう! 回复: I.MX8 DDR4/LPDDR4 &EMMC, all of the AVL Brand and Part number support list suggestion. こんにちは@TeemoLiさん、 どういたしまして。新たなご質問がございましたら、お気軽にお問い合わせください。 スレッドを見逃してしまい、返信が遅くなってしまい申し訳ありません。 良い一日をお過ごしください よろしくお願いいたします。 リタ
View full article
如何通过串行端口将 U-Boot 启动映像刷新到出厂新的 S32G274A 板上 你好 我目前有一块带有 S32G274A CPU 的 S32G-NXP-RDB2 开发板。我正在尝试在不使用 SD 卡的情况下通过串行端口将 U-Boot 启动映像闪存到主板的 eMMC 或闪存中,然后通过 U-Boot 继续进行进一步的操作。 能否提供相关的官方文件或解释相应的方法? 非常感谢! Re: How to Flash the U-Boot Image to a Factory-Fresh S32G274A Board via Serial Port 你好,@waitwang 谢谢你的帖子。 针对您的问题,我建议使用flashtool将引导加载程序(tfa、uboot)闪存到 RDB2 的 QSPI 或 eMMC 中。 你可以尝试安装它并根据代码包中的用户指南使用它。 BR 切宁 Re: How to Flash the U-Boot Image to a Factory-Fresh S32G274A Board via Serial Port 好的,我已经解决了问题,非常感谢!
View full article
EtherCAT demo on MIMXRT1180-EVK Hello, I am using the MIMXRT1180-EVK Eval Board to try out the EtherCAT Demo as described in UG10322 UG10322: OOBE Guide for EtherCAT with ICE Tool | NXP Semiconductors I have downloaded the Ethercat Eval Binaries from i.MX RT1180 Evaluation Kit | NXP Semiconductors  I have carefully followed all the steps. I am able to flash the binary successfully and launch the ICE tool with configurations described in above doc. However, when I select the Network Interface in the GUI and try to enable ethercat, I get "could not be enabled". If I scan the interface, I get "0 devices found" I am using a Window Laptop, and have connected to ETH0 and ETH4 using a USB 3-to-Gigabit Ethernet adapter, which otherwise works fine (I use it for other work too). Any help to troubleshoot this would be appreciated.  Also, can you point me to the sources of this EtherCat Eval binary :goal_nxp_evkmimxrt1180_rtos_flash_boot.bin? I have checked out your SDK, and I see some EtherCat examples, but I am not sure if any of these examples correspond to the above binary. thanks regards pnc Re: EtherCAT demo on MIMXRT1180-EVK Hi @pnc  Thank you for reaching out We already located some issues with first release the UG10332,(and we will updated it) Please see below an internal report a colleague generated, hopefully it can help you   In page 5, for step 12, the RT1180-EVK Console should be MCU-Link USB, not USB_OTG1. And for the Note, it seems there is no section called EEPROM. On my side, after step 11 of section 5.4, the font color of the EtherCAT interface will not turn red, only after step 15, it will trun red. In Table 1 and Table 2 of page 24, the mapped objects listed in the table are inconsistent with the actual display of the ICE tool. On my side, before step 9 of section 5.4, need to configure the IP address of the host PC, otherwise will report internal error. Let us  know if you still  face further  troubles or have further related questions All the best,  Diego Re: EtherCAT demo on MIMXRT1180-EVK By the way, are any specific jumper setting required for the EtherCAST demo? The abovementioned doc does not mention anything in this regard. Re: EtherCAT demo on MIMXRT1180-EVK Hi Diego,  thanks for your response, but I had already taken care of these issues previously, so it did not help. Anyway, I have changed tacks now: instead of trying to use the pre-built image, I am now trying to build and run the ecat/digital_io example from SDK, using the AN14155 User Guide (Using the i.MX RT1180 EtherCAT together with BECKOFF TwinCAT3 and SSC tool Rev. 1.0) Here also I am facing the same problem. I am able to build, flash and run the example (both for CM33 and CM7). I have put a printf in the main loop in digitial_ip.c to verify that it is indeed running. However, I am stuck in section 5.1.8 of AN14155 : If I do a scan for EtherCAT devices using TwinCAT, it says "No I/O Devices found". I have tried connecting the Ethernet cable to both J28 and J32. I have made the following jumper settings: J63, J73 and J72,J65 have been moved to 1-2 shorted position (non default position) I don't know if any other jumper settings or other HW settings are required for Ecat. Other than these , all jumpers are in the default position (what it was out of the box). The only other jumper change I made was for using the Segger probe (JP5 shorted). Btw, I have also tried running the ICE Tool. Same situation as before.  I would appreciate if you could provide any inputs thanks regards Pnc Re: EtherCAT demo on MIMXRT1180-EVK On re-reading the EVK user manual UM12021 carefully, I think I made a mistake with jumpers. Here is what I have now: J63 and J65 : default 2-3 shorted J73 and J72: non-default 1-2 shorted HOWEVER, it is STILL not working, even after above changes. Also, I am not sure if this line on page 36 is relevant "Multiplexing between ECAT and FLEXSPI2 signals is implemented through resistor reconfiguration. By default, the FLEXSPI2 connection is enabled." Do I need to do something about this too? If so, what? By the way, this EVK User Manual is really hard to read. I really think you ought to write in a concise and clear way in one place, what users need to do to get the ECAT stuff working on EVK. A simple "Make these jumper settings to enable ECAT on EVK....." instead of all the scattered pieces of confusing information. Re: EtherCAT demo on MIMXRT1180-EVK Hi Diego, On restarting everything this morning, the Scan of devices started working. I guess the changes I made yesterday evening to th jumpers had effect. pnc_0-1764763036879.png However, if I do a scan of Device 1, I do not see "Box 1" as described in section 5.1.9, so it seems the slave is not getting detected. I am not seeing any traffic related to EtherCAT in Wireshark also. I am debugging further, but if you have any hints, that would be highly appreciated!
View full article
在 U-启动 中初始化 imx8MP PCIe 你好 一位客户正在 U-启动 中初始化 NVMe 驱动器,以便将他们的映像(内核和 rootfs)加载到 iMx8MP 上。这样可以正常工作,可以正确检测到 NVMe 磁盘,系统开始启动。不过,在某些特定的 SoM 中,当 Linux 内核初始化 PCIe 接口时,链接不会启动。在受影响的 SoM 上,大约有 30% 会出现这种情况。以下是初始化失败时的错误信息: phy phy-32f00000.pcie-phy.0: phy poweron failed --> -110 不受影响的 SoM 100% 。如果未在 U-启动 中初始化 PCIe,则受影响的 SoM 可在 Linux 上百分之百地运行,我们在 NVMe 磁盘上进行了 12 小时的压力测试,没有任何问题。 问题很可能与 Linux 内核初始化已初始化 PCIe 接口的方式有关。由于内核不知道接口已被初始化,所以整个过程都要从头开始,这在某些模块中有时会失败。 我认为在不处于 RESET 状态的情况下重新配置PLL时,可能无法正确锁定。但是,如前所述,这种情况在 100% 的硬件上无法重现,因此一定还有某种硬件差异(SoC、SoM)的影响。 谁能告诉我们可能出了什么问题? 谢谢! 拉斐尔 Re: iMX8MP PCIe initialization in U-Boot 您好, 需要在设备树中检查 pll,并在需要时进行更改。 此致 Re: iMX8MP PCIe initialization in U-Boot 谢谢您的回答! 我们的客户想从 NVMe 磁盘加载他们的内核映像和 rootfs,这就是他们添加 U-启动 初始化的原因。因此,启动后初始化 PCIe/NVMe 不是一个选项。 我已经检查过了,如果有办法在启动内核之前在 U-Boot 中正确取消初始化 PCIe 接口,他们就没问题了。我已经尝试过 PCIe RESET,但这并没有解决问题。 从你提到的情况来看,问题似乎与 PLL 有关,而不是 PCIe 外围设备。此外,从您提出的解决建议来看,问题可能出在 PLL 上,而不仅仅是 PCIe。 在 RESET 到 Linux 之前,我们可以尝试 RESET 特定的 PLL 吗?RESET它以避免这些问题的正确方法是什么? Re: iMX8MP PCIe initialization in U-Boot 你好 当 Linux 内核初始化一个已经初始化的 PCIe 接口时,我可以找出间歇性故障的可能原因。 你遇到的问题似乎与U-启动和Linux之间的PCIe接口初始化顺序有关。当 U-Boot 初始化 PCIe 接口以从 NVMe 加载映像,然后 Linux 尝试在未正确 RESET 的情况下重新初始化相同的接口时,会产生竞态条件,在受影响的 SOM 上大约有 30% 的时间会失败。 这与 PLL 配置问题相符。当 Linux 内核尝试重新配置已初始化的 PCIe 接口时,如果在两次初始化之间未正确 RESET 硬件,则可能会遇到 PLL 锁定问题。 有三种可能的解决方案: 1.在 U-启动 中完全禁用 PCIe 初始化,因为你已经确认这在 100% 的时间里都有效。这将是最可靠的方法。 2。通过添加系统条目在 Linux 中实现正确的 PCIe 暂停/恢复功能: -创建补丁为 PCIe 暂停/恢复添加 sys 条目-移除 PCIe EP 设备:`echo 1 > /sys/bus/pci/devices/0000\ :00\ :00.0/remove` -禁用 PCIe:`echo 1 > /sys/devices/platform/soc\ @0 /33800000.pcie/pcie_dis `-启用 PCIe:`echo 1 /sys/devices/platform/soc\ /33800000.pcie/pcie_CiE:`echo 0 > /sys/设备/平台/soc\ @0 /33800000.pcie/pcie_dis ` -重新扫描 PCIe 总线:`echo 1 > /sys/bus/pci/rescan `3. 将 PCIe 驱动程序构建为模块并修改启动顺序: -先启动到 Linux-等待必要的初始化 -在需要时加载 PCIe 驱动程序模块在其他 i.mx8MP 实现中已观察到 此问题,尤其是在不同 SoM 批次的硬件容差存在差异的情况下。Linux 内核的 PCIe 驱动程序假定它使用的是未初始化的硬件,如果情况并非如此,就会导致冲突。 此致 Re: iMX8MP PCIe initialization in U-Boot 谢谢,根据这些信息,我发现在 linux 驱动程序启动之前使用 RESET 可以解决问题。
View full article
i.MX 8M Plus FlexSPI ペリフェラル接続(ADC 付き) こんにちは、 私の設計では i.MX 8M Plus プロセッサを使用しています。AD7606C-16 DAQ/ADC をプロセッサに接続する予定です。ADC 変換から最大のスループットを得るために、FlexSPI ペリフェラルを QuadSPI または Octal SPI 接続として使用できるかどうかを知りたいです。プロセッサのデータシートでは、メモリにのみ FlexSPI ペリフェラルを推奨しています。CAN は、ADC などの他のデバイスでも使用できますか?すでにそのようなデザインで成功した人がいれば、知っておくと役立つでしょう。 AD7606C-16 データシート: https://www.analog.com/media/en/technical-documentation/data-sheets/ad7606c-16.pdf ちなみに、PMIC とプロセッサの両方に RTC クリスタル接続があるのはなぜでしょうか?時間管理には1つあれば十分ではないでしょうか?PMIC に RTC クリスタルを必要とする内部タイミング要件はありますか?もしSOなら、内部の 32k 発振器で十分ではCANでしょうか? PMIC データシート: https://www.nxp.com/docs/en/data-sheet/PCA9450.pdf ありがとう、 サクティムルガン i.MX 8M | i.MX 8M ミニ | i.MX 8M ナノ PMIC Re: i.MX 8M Plus FlexSPI Peripheral connection with ADC Q1とA: いいえ、FlexSPI はここでは役に立ちません。AD7606C‑16 は QuadSPI または Octal SPI を実装していません。シリアル ポートはシングル ビット SPI (RD/SCLK + DOUT) であり、デバイスは 16 ビットのパラレル読み取りパスも提供します。i.MX 8M Plus FlexSPIブロックはメモリデバイス(NOR/NAND、HyperBus)向けに最適化されており、カスタムLUTシーケンスを介して一部の非メモリペリフェラルと通信するように強制することはできますが、1ビットSPI ADCをクワッド/オクタルSPIに変換することはできません。また、ADCデータのストリーミングに最適なツールでもありません。 Q2と回答: 1つでも大丈夫です。実際のアプリケーションには制限はありません。CLK_32K_OUT は外部デバイス専用であり、PCA9450 自体はこのクロックを使用しません。CLK_32K_OUT が未使用の場合、XTAL_IN (ピン 10) を GND に接続することで、R65、QZ1、C156、C157 を削除できます。必要に応じて、32KHz クロックを外部デバイス用に GPIO1_IO00 から出力できます。つまり、i.MX8MP にコネクテッドか PCA9450 にコネクテッドかにマター、必要なのは 32.768KHz 水晶 1 つだけです。内部32kオシレーターは精度が十分ではない
View full article
エラー: デバイスは安全です。消去して保護を解除 こんにちは、チームの皆さん 私は、A12323 ドキュメントを使用して、S32K144 で A/B パーティショニングをテストしていました。 まず、S32K144_Memory_Partition プロジェクトを RAM にフラッシュしました。 次に、S32K144_FOTA_Gateway_example を Flash にフラッシュしました。 同じボード上で、CAN アプリケーションのフラッシュを試みました。初めて成功しました。 しかし、同じアプリケーションをもう一度フラッシュしようとしたところ、 「デバイスはセキュリティで保護されています。消去するとセキュリティが解除されます。」というエラーが表示され、失敗しました。 Navina_0-1764133345139.png 今は何もフラッシュできません。 ありがとうございます。 Re: error: Device is secure. Erase to unsecure こんにちは@Navina 前のThreadに書いたように: MDM-AP を読み取るための Segger J-Link プローブまたは Lauterbach デバッガーをお持ちですか?残念ながら、Pemicro ではそれが不可能です。 デバイスがロックされる可能性があるまれなシナリオがあります。このThreadを確認してください: https://community.nxp.com/t5/S32K/Unbricking-S32K146/mp/937227 確認するにはMDM-APを読み取る必要があります。
View full article
IMXRT1021 SJCセキュアJtagコントローラのMCULinkデバッガによるロック解除 こんにちは! Secure JTAG コントローラを使用して、iMXRT1021 の JTAG ポートのロックを解除できるようにしたいと考えています。 JLink または Lauterbach デバッガーを使用したロック解除に関するオンライン記事を見つけましたが、MCULink デバッガーでも可能かどうか知っている人はいますか? よろしくお願いします! MIMXRT1020-EVK i.MXRT 102x Re: IMXRT1021 SJC Secure Jtag Controller unlock with MCULink debugger こんにちは、 i.MX RT1021 の Secure JTAG 機能は、この認証方法をサポートする特定の外部デバッガ ツールを必要とするチャレンジ/レスポンス ベースの認証メカニズムを実装します。 現在、NXP は、Secure JTAG を使用した次のデバッガーのサポートを文書化しています。 - SEGGER J-Link - ラウターバッハ トレース32 - ARM RVDS/DS5 デバッガー MCULink デバッガーは、安全な JTAG 実装に関して NXP によって正式にテストまたはサポートされていません。J-Link と Lauterbach は、i.MX RT シリーズで安全な JTAG を実装するための手順とスクリプトを確立していますが、MCULink については文書化された手順はありません。 実装の詳細については、i.MX RT シリーズの安全な JTAG 実装に関するガイダンスを提供するアプリケーション ノート AN12419 を参照してください。 アプリケーションに JTAG デバッグが不可欠な場合は、i.MX RT デバイス上の安全な JTAG のサポートが文書化されている SEGGER J-Link Plus などの互換性のあるデバッガーを使用することをお勧めします。 よろしくお願いします。
View full article
i.mxrt1010 有时会挂在启动 ROM 代码上 大家好, 客户遇到了一个问题,即i.MXRT1010有时会挂在启动ROM代码中,无法跳转到用户应用程序。 但是,使用 MCUXpresso 安全配置工具/闪存编程器读取或非闪存似乎可以解决问题。 造成这一问题的原因是什么,如何才能避免再次发生? 谢谢。 i.MX RT101x Re: The i.MXRT1010 sometimes hangs on the boot ROM code Hello 映像可能版本不正确,请验证该映像是否包含 FCB 和 IVT。 此外,确保 Boot_mode 和 Boot_cfg 是闪存的正确配置。 BR, Omar
View full article
FRDM IMX93、独自の QT プロジェクトを imx-image-full に統合するにはどうすればいいですか? デモプロジェクトを実行するために、imx-image-full をビルディングする必要がある conf ディレクトリ内の bblayers.conf ファイルはすでに meta-qt6 レイヤーを参照しているので、これが問題ではないことはわかっています。-c populate_sdk フラグを試しましたが、コンピューター上で多くのスペースを占有します (400 GB 以上ですが、私のコンピューターは 468 GB なので、これは事実上不可能です)。 この投稿「Yocto イメージで Qt プロジェクトをコンパイルできるようにする | Qt フォーラム」を読んで、このプロジェクトを何らかの方法で Yocto ビルドに統合して、プリコンパイラ (実行準備完了) で提供すれば、クロスコンパイルについて心配する必要がないのではないかと思いました。これは正しい方法でしょうか? もしSOなら、どこに構築すればよいでしょうか? Re: FRDM IMX93, how to integrate my own QT project onto imx-image-full? こんにちは、 Qt プロジェクトを FRDM-IMX93 の imx-image-full Yocto ビルドに統合するには、Qt アプリケーション用のカスタム レシピを作成する必要があります。このアプローチでは、アプリケーションがシステム イメージに含まれるため、展開後にクロスコンパイルする必要がなくなります。 Qt プロジェクトを統合する方法は次のとおりです。 1. Yocto 環境で Qt アプリケーション用のレシピを作成します。 - カスタムレシピ用のディレクトリを作成します: `mkdir -p meta-custom/recipes-qt/your-qt-app` - レシピファイルを作成します: `meta-custom/recipes-qt/your-qt-app/your-qt-app_1.0.bb` 2. レシピ ファイルに次のコンテンツを追加します。 「」 概要 = 「Qt アプリケーション」 セクション = "例" ライセンス = "MIT" LIC_FILES_CHKSUM = "ファイル:// ${COMMON_LICENSE_DIR} /MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" DEPENDS += "qtbase qtdeclarative" SRC_URI = "file://your-qt-app-source/" S = " ${WORKDIR} /Qtアプリのソース" qmake5を継承する 「」 3. Qt プロジェクトのソースコードを追加します。 - ディレクトリを作成します: `mkdir -p meta-custom/recipes-qt/your-qt-app/files/your-qt-app-source/` - Qtプロジェクトファイルをこのディレクトリにコピーします 4. ビルド システムにカスタム レイヤーを追加します。 - レイヤー設定ファイルを作成します: `meta-custom/conf/layer.conf` - 次のコンテンツを追加します。 「」 BBPATH .=": ${LAYERDIR} " BBFILES += " ${LAYERDIR} /recipes-*/*/*.bb ${LAYERDIR} /recipes-*/*/*.bbappend" BBFILE_COLLECTIONS += "カスタム" BBFILE_PATTERN_custom = "^ ${LAYERDIR} /" BBFILE_PRIORITY_custom = "10" LAYERSERIES_COMPAT_custom = "ハードノット スカースギャップ" 「」 5. bblayers.conf にレイヤーを追加します。 - `build/conf/bblayers.conf` を編集します - BBLAYERS変数に ` ${BSPDIR} /sources/meta-custom \` を追加します 6. アプリケーションを画像に含めます。 - `build/conf/local.conf` を編集する - `IMAGE_INSTALL:append = " your-qt-app"` を追加します 7. イメージを構築する: 「」 bitbake imx-image-full 「」 Qt3D または QtDataVis3D のビルド エラーが発生した場合は、`meta-imx/meta-imx-sdk/conf/distro/include/fsl-imx-base.inc` の QtBase 構成を変更します。 ``` PACKAGECONFIG:append:mx93-nxp-bsp:pn-qtbase = " gles2" PACKAGECONFIG:remove:mx93-nxp-bsp:pn-qtbase = "no-opengl linuxfb" ``` このアプローチにより、Qt アプリケーションをイメージの一部としてビルドできるため、開発マシンに SDKs を完全にインストールする必要がなくなります。 よろしくお願いします。 Re: FRDM IMX93, how to integrate my own QT project onto imx-image-full? 私は Yocto の初心者なので、現時点ではレシピとレイヤーをどのようにうまく操作すればよいかよくわかりません。 Re: FRDM IMX93, how to integrate my own QT project onto imx-image-full? ご指導ありがとうございます。私のプロジェクトはQMAKEベースではなくCMakeベースであるため、別のエラーが発生しています。 「{MY_BUILD_DIR}/tmp/work/armmv8a-poky-linux/*.pro」。私のプロジェクトも QT 6.8.3 で作成されていますが、これもビルドの後半で問題が発生する可能性があります。こんなに遅くなって申し訳ありません。RAM不足のためビルドが失敗していました。
View full article
プロファイル cm-i.mx53 製造ツール こんにちは。CM-i.mx53 SoC に関してサポートが必要です。cm-i.mx53 で動作する eboot-uut.bin ファイルが必要です。または、mfgtool の cm-i.mx53 の完全なプロファイル。 Re: profile cm-i.mx53 mfgtool 1.NXP Web サイトから mfgtool をすでにダウンロードしました。2. eboot-uut.nb0 ファイルはすでに正しい場所にあります (いずれのCASEも、UCL ファイル内で指定されたパスにのみ対応している必要があります)。3. UCLはすでに調整済みです。cfg ファイルを変更することは考えていませんでした。確認してみます。4. 最新の UUU ツールは i.mx53 では動作しません。AdvantechのROM1210用のプロファイルcm-i.mx53が必要です。助けようとしてくれてありがとう。 Re: profile cm-i.mx53 mfgtool こんにちは、 i.MX プロセッサの製造ツール (MFGTool) には、プロセッサ モデルごとに特定のファームウェア ファイルが必要です。CM-i.MX53 の場合、i.MX53 プロセッサ用に設計された適切な MFGTool パッケージを使用する必要があります。 同様のCASEに基づいて、次のリソースを確認することをお勧めします。 1. NXP Web サイトの i.MX ソフトウェアおよび開発ツール リソース セクションから i.MX53 MFGTool パッケージをダウンロードします。 2. eboot-uut.bin ファイルは、MFGTool パッケージの Profiles フォルダ (通常は「Profiles/MX53/OS Firmware」ディレクトリのようなパス) にあります。 3.CM-i.MX53 のカスタム プロファイルを作成する必要がある場合は、特定のプロファイル設定を含めるように cfg.ini ファイルを変更し、必要に応じて ucl2.xml スクリプト ファイルを調整する必要があります。 4. 新しい開発の場合は、最近の NXP サポートで MFGTool に代わる、より新しい UUU ツール (Universal Update Utility) の使用も検討してください。 よろしくお願いします。
View full article
S32K3 的 gPTP 协议栈是否支持 HSE 模块? 在我将 s32k3 的 gPTP 演示下载到芯片上后,我无法再使用 JLink 的 jflash 连接到芯片。日志显示"HSE 固件检测到","无法读取 CPUID 寄存器" 。如何重新连接芯片并禁用演示程序中的 HSE 功能? 当我使用 JTAG 接口连接时,jflash 有时会要求我像这样输入 ID 代码NXP S32K3xx - 世纪佳缘知识库 我的运行环境是 • S32 Design studio 3.6.0(更新至 3.6.2)搭载恩智浦 GCC 10.2.0;版本 1728;版本 ID:202307190908 • S32K3xx 开发代码包 3.6.2(设计工作室 3.6.2 的一部分) • S32K3xx RTD 6.0.0(SW32K3_S32M27x_RTD_R21-11_6.0.0_D2506) • 可选的用于 FreeRTOS 示例应用程序 S32K3 FreeRTOS 5.0.0 (SW32K3_FreeRTOS_11.1.0_5.0.0_CD1_D2409) -SW32K3xx_M7_gPTP_1 .0.0_D2507 jflash 的正常连接日志为 正在连接... -通过 USB 连接到探头/编程器设备 0 -探测器/编程器固件:J-Link V11 已编译 2041 年 4 月 27 日 16:36:21 -探测器/编程器 S/N:*******-设备 " S32K344 " 已选择。 -目标接口速度:500 kHz(固定) -vTarget = 3.185V-configTargetSettings () 启动 -configTargetSettings () 结束 -花了 12us-initTarget () 启动 -检测到 SDA_AP-必要时解锁设备... -设备未锁定。不执行解锁程序。 - 检查是否已启用调试访问... - 调试访问尚未启用。执行启用调试访问序列... - 启用调试访问 - 检查是否安装了 HSE 固件... - 未安装 HSE 固件 - 检查 Cortex-M7_0 和 Cortex-M7_1 是否以锁步模式运行 - 启用锁步模式 - InitTarget() 结束 - 耗时 16.0ms - 找到 ID 为 0x6BA02477 的 SW-DP - DPIDR: 0x6BA02477 - CoreSight SoC-400 或更早版本 - 跳过 AP 映射检测。找到手动配置的 AP 映射。 - AP[0]:MEM-AP (IDR:未设置,ADDR:0x00000000) - AP[1]:APB-AP (IDR:未设置,ADDR:0x00000000) - AP[2]:MEM-AP (IDR:未设置,ADDR:0x00000000) - AP[3]:AHB-AP (IDR:未设置,ADDR:0x00000000) - AP[4]:AHB-AP(IDR:未设置,ADDR:0x00000000) - AP[5]:AHB-AP(IDR:未设置,ADDR:0x00000000) - AP[6]:MEM-AP (IDR:未设置,ADDR:0x00000000) - AP[7]:MEM-AP (IDR:未设置,ADDR:0x00000000) - AP[4]:跳过 ROMBASE 读取。CoreBaseAddr 由用户手动设置 - AP[4]:找到核心 - CPUID 寄存器:0x411FC272。实现者代码:0x41 (Arm) -缓存:L1 I/数据缓存 存在 -找到了 Cortex-M7 r1p2,小端节序。 - FPUnit:8 个代码 (BP) 插槽和 0 个字面插槽 - 跳过 ROM 表扫描。CorebaseAddr 由用户手动设置:0x40250400 -I-Cache L1:8 KB,128 个集,32 字节/行,2-Way-D-Cache L1:8 KB,64 个集,32 字节/行,4-Way -setupTarget () 启动-初始化 ECC RAM... -ramcodeAddr:0x20000000-raminitAddr:0x20000010 -raminitSize:0x00007FF0-initPattern:0xDeadBeef-ECC RAM 成功初始化 -正在初始化 ECC 内存... -ramcodeAddr:0x20000000-raminitAddr:0x20400000 -raminitSize:0x00004000-initPattern:0xDeadBeef-ECC RAM 成功初始化 -setupTarget () 结束-花了 53.8 毫秒 -正在执行初始序列... -成功初始化 -目标接口速度:1000 kHz(固定) -找到 1 个 JTAG 设备。核心 ID:0x6BA02477(无) - 连接成功 异常连接 Jflash 日志为 正在连接... -通过 USB 连接到探头/编程器设备 0 -探测器/编程器固件:J-Link V11 已编译 2041 年 4 月 27 日 16:36:21 -探测器/编程器 S/N:*******-设备 " S32K344 " 已选择。 -目标接口速度:500 kHz(固定)-vTarget = 3.225V -configTargetSettings () 启动 -configTargetSettings () 结束-花了 9us-initTarget () 启动 -检测到未知 SDA AP:0x00000000-initTarget() 结束 -花了 3.05 毫秒-configTargetSettings () 结束 -花了 18us-initTarget () 启动-SDATargetSettings () 启动 -花了 18us-initTarget() 启动-SDATargetsettings () 启动 -花了 18us 已检测到_AP -必要时解锁设备... -设备未锁定。不执行解锁程序。 - 检查是否已启用调试访问... - 调试访问尚未启用。执行启用调试访问序列... - 启用调试访问 - 检查是否安装了 HSE 固件... -检测到 HSE 固件(启用 SWAP) - 检查 Cortex-M7_0 和 Cortex-M7_1 是否在锁步模式下运行 - 启用锁步模式 - InitTarget() 结束 - 耗时 19.8ms - 找到 ID 为 0x6BA02477 的 SW-DP - DPIDR: 0x6BA02477 - CoreSight SoC-400 或更早版本 - 跳过 AP 映射检测。找到手动配置的 AP 映射。 - AP[0]:MEM-AP (IDR:未设置,ADDR:0x00000000) - AP[1]:APB-AP (IDR:未设置,ADDR:0x00000000) - AP[2]:MEM-AP (IDR:未设置,ADDR:0x00000000) - AP[3]:AHB-AP (IDR:未设置,ADDR:0x00000000) - AP[4]:AHB-AP(IDR:未设置,ADDR:0x00000000) - AP[5]:AHB-AP(IDR:未设置,ADDR:0x00000000) - AP[6]:MEM-AP (IDR:未设置,ADDR:0x00000000) - AP[7]:MEM-AP (IDR:未设置,ADDR:0x00000000) - AP[4]:跳过 ROMBASE 读取。CoreBaseAddr 由用户手动设置 - AP[4]:跳过。无法读取 CPUID 寄存器 - 连接 CPU 失败。在RESET下执行连接。 - DPIDR: 0x6BA02477 - CoreSight SoC-400 或更早版本 - 跳过 AP 映射检测。找到手动配置的 AP 映射。 - AP[0]:MEM-AP (IDR:未设置,ADDR:0x00000000) - AP[1]:APB-AP (IDR:未设置,ADDR:0x00000000) - AP[2]:MEM-AP (IDR:未设置,ADDR:0x00000000) - AP[3]:AHB-AP (IDR:未设置,ADDR:0x00000000) - AP[4]:AHB-AP(IDR:未设置,ADDR:0x00000000) - AP[5]:AHB-AP(IDR:未设置,ADDR:0x00000000) - AP[6]:MEM-AP (IDR:未设置,ADDR:0x00000000) - AP[7]:MEM-AP (IDR:未设置,ADDR:0x00000000) - AP[4]:跳过 ROMBASE 读取。CoreBaseAddr 由用户手动设置 - AP[4]:跳过。无法读取 CPUID 寄存器 - 无法在 Coresight 设置中找到内核 - ERROR:连接失败。 无法建立与目标的连接。 - ERROR:连接失败 Re: Does the gPTP protocol stack of the S32K3 enable the HSE module? 是,正确 davidtosenovjan_0-1755158415261.png Re: Does the gPTP protocol stack of the S32K3 enable the HSE module? 你好,大卫 你说的正是我面临的问题。 我试过你建议的方法,但没用。先别管它了。我的另一个问题是,是否有可能禁用 S32K3 的这一功能?这种操作是否正确? 基于 gPTP 演示,我禁用了 Func_Threshold_Reset 并将 MCU_PRECOMPILE_SUPPORT 从 STD_ON 更改为 STD_OFF,然后代码就可以运行了。我目前还不知道是什么原因导致了 RESET。 close reset.png Re: Does the gPTP protocol stack of the S32K3 enable the HSE module? S32K3 具有 RESET 升级功能,这意味着在一定数量的功能 RESET 之后,会发出破坏性 RESET,并且在一定数量的破坏性 RESET 之后,MCU 将保持 RESET 状态到下一个 POR。因此,如果出于任何原因(例如监视程序或某些时钟配置错误或类似原因)定期发出功能RESET,则可能导致MCU RESET,因为在POR之后从内部闪存中执行代码。 解决方案可以在POR之后立即停止设备并擦除代码闪存内容。 这里有一个 J-link 的解决方案(我个人没有经验): https://community.nxp.com/t5/S32-SDK/failed-to-power-up-dap-after-program-s32k312-with-pll0-equal/m-p/1612025 希望对您有所帮助 Re: Does the gPTP protocol stack of the S32K3 enable the HSE module? 我已经使用示波器捕获了 RESET 引脚的波形。该芯片确实在定期RESET。当我禁用 SXOSC 时,周期为 8 毫秒。当我启用 SXOSC 时,周期为 5 毫秒。 second.png Snipaste_2025-08-13_17-13-58.png Re: Does the gPTP protocol stack of the S32K3 enable the HSE module? 在这种情况下,我建议用示波器测量 RESET 信号,以了解设备是否处于 RESET 状态。 Re: Does the gPTP protocol stack of the S32K3 enable the HSE module? 我不明白你的意思。我的板是我自己开发的。在这个板上,我运行了其他普通程序。板上没有 RESET 指示灯。我根据 gpTP 演示修改了时钟和 EMAC 引脚。下载后,通过观察当前,我发现程序没有RESET。 Re: Does the gPTP protocol stack of the S32K3 enable the HSE module? 你看见 RESET LED 照明了吗? Re: Does the gPTP protocol stack of the S32K3 enable the HSE module? 谢谢您的答复。我从未在这个板中使用过 HSE。这是一个新董事会。我下载了照明演示版,运行正常。我能够重新连接 JTAG 并清除程序。然后,我下载了 gPTP 演示版 1.0。之后,我就再也无法连接芯片或清除程序了。我对 gPTP 不熟悉。演示中对 JTAG 有限制吗?或许是 Segger 的 jflash 软件出了问题? Re: Does the gPTP protocol stack of the S32K3 enable the HSE module? 我不认为 gPTP 演示与 HSE 有任何关系。 您的日志信息显示: - 检查是否安装了 HSE 固件... - 检测到 HSE 固件(已启用 SWAP)。 实际上,这可能仅仅意味着安装了 HSE FW 并应用了用于 A/B 交换的 HSE 内存布局。这个板使用了 HSE 吗? Re: Does the gPTP protocol stack of the S32K3 enable the HSE module? 如何获取调试身份验证 ID 代码? 我急需知道如何消除 JTAG 上的这一限制。亲爱的恩智浦员工,请帮帮我好吗? @VaneB
View full article
S32K388 パーマネントロックステップ(CM7_2) こんにちは、 S32K388 コアは 2 つのタイプで構成されています。 1x LS Cortex-M7 + 3xCortex-M7 @ 320MHzまたは 2x LS Cortex-M7 + 1xCortex-M7 @ 320MHz 上記の構成に従って、CM7_ 0と CM7_ 1を切り離して、2 つの別々のコアとして動作させます。ただし、CM7_2 は永久ロック ステップ コアです。 ロックステップコアとは、「 2つのプロセッサが並列に動作し、同じ命令セットを同時に実行する」ことを意味します。ロックステップの主な特徴は、両方のコアが同じ命令を実行し、各ステップで結果を比較して一致を確認することです。不一致が検出された場合は、いずれかのコアに潜在的なエラーまたは障害が発生していることを示し、障害処理メカニズムが起動します。 CM7_2と同時に同じ命令セットを実行している別のコアを知りたい KiranGowda_0-1763558453914.png 前もって感謝します Re: S32K388 Permanent Lock step(CM7_2) こんにちは@KiranGowda はい、その通りです。CM7_0 と CM7_1 がロックステップ モードに設定されている場合、両方のコアが同じ命令を同時に実行し、それらの間の不一致によって障害レポートがトリガーされます。同様に、CM7_2 はペアのコアと永続的にロックステップで動作し、同じ命令ストリームを継続的にミラーリングし、検出された障害やエラーを報告します。 Re: S32K388 Permanent Lock step(CM7_2) こんにちは@VaneB CM7_0 と CM7_1 がロックステップ コアの場合、両方とも同じ命令を実行し、矛盾があれば報告されます。同様のコンテキストで、CM7_2 は永続的なロックステップであり、別のコアが同じ命令を実行し、障害またはエラーがあれば報告します。 よろしくお願い申し上げます。 Re: S32K388 Permanent Lock step(CM7_2) こんにちは@KiranGowda CM7_2 は永続的なロックステップ モードで動作するため、単一のエンティティとして扱われ、分離することはできません。このため、もう一方のコアには明確な名前が付けられず、同じユニットの一部とみなされます。 BR、ヴェインB
View full article
在 imx93 A55 内核中使用 Flexio 仿真 PWM 你好,恩智浦技术支持 如何在 linux 系统中使用 i.MX93 上的 FlexIO 端口模拟 PWM 信号? 数据表中提到 FlexIO 具有此功能,但我在恩智浦论坛上找不到任何相关代码。 IRENE_U_0-1763517817753.png 我只找到了使用 TPM 或 M33 处理器模拟 PWM 信号的代码,但我们使用的是 GPIO_IO28 引脚。 谢谢! Re: Emulating PWM using Flexio in imx93 A55 core 你好@IRENE_U 在 linux 中没有可用的驱动程序来用 Flexio 仿真 PWM,你可以参考下面的链接。 https://www.nxp.com/docs/en/application-note/AN12713.pdf https://www.nxp.com/docs/en/application-note/AN5209.pdf https://github.com/zephyrproject-rtos/zephyr/blob/main/drivers/pwm/pwm_nxp_flexio.c https://github.com/nxp-mcuxpresso/mcux-sdk-examples/tree/MCUX_2.16.100/mcimx93evk/driver_examples/flexio/pwm 致敬, Zhiming
View full article
ソフトウェアはログインできません UIの設計にNXPのGuiderを使用していますが、現在のPCソフトウェアに「プロセスが完了していません。アクションは完了しませんでした。続行するには、プロセスを再度開始してください。」というメッセージが表示され続けます。 なぜこのようなことが起こるのか知っている人はいますか? Re: software can not login こんにちは@DO123 CANさらに詳しい情報を教えていただけますか?写真か動画か? この問題を再現したいです。 BR ハリー
View full article
mc33772c assign CIDs Hi,     I am currently connecting the mc33664 and then the mc33772c through the mcu, I am currently in the mode of connecting mc33664 and then mc33772c through the mcu. Now, I can get the correct response by sending the instruction to read the init register, but after I tried to write the cid and read it, I failed to get the correct response.    Is it normal that I keep sending without changing the read instruction (without modifying the message counter) and still get a response. kevinyuee_0-1752547683334.png     The following is a situation where I attempted to write the cid but received no response, while reading the init register also got a response. Moreover, other instructions sent thereafter can also receive the same response, unless an instruction to read the init register is sent here again, in which case the response data will be updated. kevinyuee_1-1752547826969.png     SPI Re: mc33772c assign CIDs Hi Kevin, I have checked your schematic, it seems to be correct. However I don't see how the individual BCC grounds are connected. Please make sure, that the BCC grounds are connected to the negative pole of the lowest Cell in the 6 Cell battery. Please refer to the schematic attached.  JozefKozon_0-1753077984635.png JozefKozon_1-1753077999631.png If the EEPROM is not present, the I2C ERR FLT should be ignored. For start, please disconnect the higher BCCs and try to write only to the first BCC, with the 6 Cell battery connected to only the first BCC. Something as below. JozefKozon_2-1753078569430.png With Best Regards, Jozef Re: mc33772c assign CIDs Hi Kevin, thank you for the schematic. Yes, I have received it. I will check it and I will come back. With Best Regards, Jozef Re: mc33772c assign CIDs Hi,    I have sent the schematic diagram as an attachment to your private message last Friday.Have you received it? Are there any questions? Best wish Kevin Re: mc33772c assign CIDs Hi Kevin, are you using our Evaluation boards? If yes, please state the full product numbers. If you are using your own design, please share your schematic with voltage levels and part values to check. With Best Regards, Jozef Re: mc33772c assign CIDs Hi,     I have connected the battery now, but still can't write the cid successfully. And by reading the FAULT1 STATUS$24 register, I observe that there is also fault detection after I execute the write instruction. I don't have an external EEPROM, so setting I2C ERR FLT to 1 should be normal.     My waveform is also normal. I really don't know why it can't be written correctly. image.png kevinyuee_0-1752751832970.png     Re: mc33772c assign CIDs Hi Kevin, yes, this might be the reason. Please refer to the section 5.2 in the MC33772C datasheet. Depending which MC33772C version you are using, there is a minimum number of Cells which must be connected to the BCC (Battery Cell Controller). Usually minimum number of Cells is 3. However even for the MC33772CTC0AE version, the CT and CB pins cannot be left floating. JozefKozon_0-1752653968155.png Please also refer to the AN12536.  JozefKozon_1-1752654057536.png With Best Regards, Jozef Re: mc33772c assign CIDs Hi,   I power the mc33772c through wiring. Will this method affect my reading and writing of the mc33772c chip, assign CIDs. kevinyuee_0-1752649773184.png     Re: mc33772c assign CIDs Hi Kevinyuee, INIT Register Read Works This suggests that the default CID (usually 0x00) is still active. The message counter and CRC are likely correct for this command. Writing the CID requires: A valid message counter (incremented from the last successful message). A correct CRC. The correct frame format for the CID assignment command. Please refer to the sections 9.3.2 and 9.3.3 in the full MC33772C full datasheet, for description of the Idle and Init modes.  With Best Regards, Jozef
View full article
为什么无法接收诊断帧(0x3C,0x3D)? 我正在使用 S32K118,并导入了 ldf 来连接 lin 模块。它能正确接收 fames,但无法接收诊断帧,为什么? clip_20250710142605.png 1.png 2.png Re: Why can't receive the diagnostic Frame(0x3C,0x3D)? SW32K1_SW32M24_LIN_STACK_2.0.0_D2503 位于 S32K1xx 参考软件中: https://www.nxp.com/webapp/swlicensing/sso/downloadSoftware.sp?catid=SW32K1-REFSW-D BR,丹尼尔 Re: Why can't receive the diagnostic Frame(0x3C,0x3D)? 能否提供 LIN STACK 2.0.0 的软件? Re: Why can't receive the diagnostic Frame(0x3C,0x3D)? 你好@jx111、 我测试了这个例子: Lin_Slave_S32K144_Example_DS lin stack 2.0.0 您应该可以发送此 MasterReq danielmartynek_0-1752850568152.png 一旦钳位了这个标志,就开始对其进行处理。 danielmartynek_1-1752850600619.png 此致, 丹尼尔 恩智浦提供的任何支持、信息和技术("材料")均按原样提供,没有任何明示或暗示的保证,恩智浦在适用法律允许的最大范围内拒绝承担与材料有关的所有直接和间接责任及损害赔偿。恩智浦不承担任何应用或产品设计方面的协助责任。材料只能用于恩智浦产品。恩智浦可以不受限制地使用向恩智浦提供的有关材料的任何反馈。 Re: Why can't receive the diagnostic Frame(0x3C,0x3D)? 我使用的是 S32DS 3.4。我无法打开程序,但可以看到 C 代码。 1.请解释一下如何获取诊断框? 2.另一个问题: 我使用" LIN_NODE_STATE_SLEEP_MODE == lin_lld_get_state(...)" 来获取 lin 的睡眠状态,当 lin 超时时,它可以进入睡眠状态,但它无法获取睡眠帧(0x00,0xFF,0xFF,...),为什么? 是否丢失了某些配置? Re: Why can't receive the diagnostic Frame(0x3C,0x3D)? 你好@jx111、 请参阅此处的示例: https://community.nxp.com/t5/S32K/S32K-SDK-LIN-Stack-not-working-properly-with-UDS/m-p/1313360 I 类(正常信令)不支持诊断响应 (0x3D)。 LIN 规格代码包修订版 2.1 https://www.lin-cia.org/fileadmin/microsites/lin-cia.org/resources/documents/LIN-Spec_Pac2_1.pdf 此致, 丹尼尔
View full article
嵌入式产品的安全应用案例,可提升产品和企业价值(日文博客) 随着欧洲的《网络安全法案》 、日本的JC-STAR系统以及美国的“网络信任标志”计划等各个国家建立网络安全体系,人们对安全的兴趣正在迅速增长,即使在以前没有重视安全功能的领域也是如此。   本文以用例为例,清晰简洁地解释了嵌入式产品安全的重要性,并阐述了威胁、影响和应对措施。   用例示例   1. 设备识别和访问权限管理   威胁与影响   将物联网设备(例如智能电表、监控摄像头、安全网关等)连接到网络(例如云端、内部网络、楼宇内网络等)或其他设备时,存在未经授权的设备通过“欺骗”连接的风险。这可能导致客户信息泄露、服务暂停或被滥用。此外,还存在外部未经授权的用户访问物联网设备并滥用其功能的风险。例如,他们可能窥探摄像头录像或控制物联网设备,并将其用作网络攻击的跳板。 对策   设备的“识别(认证)”和“防欺骗”至关重要。通过利用安全功能,可以保证设备的真实性(即设备是正品;在这种情况下,设备使用的识别名称是设备本身的名称,而不是冒充其他设备的人使用的识别名称),并创建安全的连接环境。 此外,通过利用安全功能,可以防止未经授权的用户从外部访问和使用物联网设备。   Keita_Nagashima_2-1761209125678.png 2. 假冒商品的鉴定   威胁与影响   假冒商品(包括名牌包、名酒和打印机墨粉)的流通不仅会导致正品销量下降,还会对用户造成伤害,损害品牌价值,并影响依赖正品的系统。   对策   安全功能可以“区分”真品和假冒产品(即确定其真伪) ,从而有助于消除假冒产品。   Keita_Nagashima_0-1761209017704.png     3. 知识产权保护   威胁与影响   如果产品中安装的软件和数据被分析和泄露,则存在侵犯知识产权的风险。事实上,软件已被复制,假冒产品也已销往海外。技术泄露还会导致竞争力下降。   对策   通过使用安全加密和识别(认证)功能,可以防止此类信息被读取和篡改,从而防止假冒产品的生产。即使发生篡改,也可以通过检测和处理问题来防止损失。 Keita_Nagashima_4-1761209246781.png 4. 安全的产品软件更新(OTA)   威胁与影响   产品交付后提供软件更新不仅是解决网络安全标准(例如CRA)中漏洞的必要措施,还能通过提升产品功能来增加产品价值。然而,如果更新系统存在漏洞,则可能导致产品和服务被滥用(例如通过安装未经授权的软件),或者知识产权被泄露(例如通过分析更新镜像)。   对策   通过使用安全加密和识别(认证)功能,可以“防止读取要安装在产品上的更新映像的内容”和“防止安装未经授权的软件”。 shinjihontanib_0-1762408102565.png   5. 用户机密信息的保护   威胁与影响   如果产品中存储的机密用户信息(例如个人姓名、位置信息和使用历史记录)泄露,可能会引发隐私侵犯和法律问题。   对策   对机密信息进行“加密”和“加强访问控制”等安全措施可以降低机密信息泄露的风险。 Keita_Nagashima_3-1761209186906.png 6. 安全日志的收集和分析   威胁与影响   忽视攻击迹象或异常行为可能会造成更大的损害。如果不做好记录,就很难确定原因并防止再次发生。   对策   为防止攻击痕迹被掩盖,收集和维护安全日志至关重要。此外,还需要根据收集到的数据采取措施,例如实施异常检测算法。   Keita_Nagashima_5-1761209482239.png   概括   引入安全措施不仅仅是遵守法规,更是提升竞争力的基石。它直接有助于提高产品可靠性、维护品牌价值并增强公司竞争力。展望未来,安全有望成为产品开发的“基本要求”。我认为,首先要提高安全意识,为下一步做好准备,并为公司的可持续发展奠定基础。   除了技术要求外,实施安全措施和遵守法律法规还需要满足非技术要求(组织和运营要求)。在下一篇文章中,我们将讨论软件或硬件安全,这是用户经常咨询的技术问题。     相关信息 应用案例:智能安全的医疗设备 应用案例:智能安全的能源管理(日语) 应用案例:符合FIPS和Matter标准的安全IP摄像机 应用案例:智能安全的电动汽车充电(日语) 使用案例:安全云端入职(日语)   =========================== 我们目前无法 回复 此帖子“ 评论”部分的评论。 对于由此造成的不便,我们深表歉意。如有任何疑问, 请 参考“ 如何就 技术问题 联系 NXP ( 日语 博客 ) ” 。 (如果您已经是 恩智浦的 分销商或 与 恩智浦 有业务往来 ,您可以直接联系负责人。 ) 随着欧洲的《网络安全法案》、日本的JC-STAR系统以及美国的“网络信任标志”计划等各个国家建立网络安全体系,人们对安全的兴趣正在迅速增长,即使在以前没有重视安全功能的领域也是如此。   本文根据安全功能的目的,介绍了实现安全功能的示例用例。 (阅读时间:5分钟) 安全 日本博客
View full article