Multi Source Translation Content

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

Multi Source Translation Content

ディスカッション

ソート順:
PCF85063TP/1Z RTC 中的时间漂移 我们在温度记录仪产品中使用 PCF85063TP/1Z RTC,用于在温度数据记录期间保持时间戳。在测试期间,我们观察到多个电路板上的时间偏移问题,其中每个电路板随时间推移显示出不同的偏移量。 在当前的硬件设计中,我们使用的是 12.5 pF 负载电容晶体。在此基础上,我们更新了 RTC 寄存器的设置,将 CAP_SEL 位配置为 "1",以满足晶体负载电容要求。 更改配置后,我们在实时运行中仍能观察到大约 2 秒钟的漂移。 我们想了解 PCF85063TP/1Z 是否会出现这种程度的漂移。 是否有建议的寄存器配置或校准方法来提高 RTC 的精度。 PCB 布局、晶体选择或其他硬件考虑因素是否会导致观察到的板之间的差异。 请就如何在此应用中提高 RTC 计时精度提出建议和指导。 Re: Time Drift in PCF85063TP/1Z RTC 你好 请参阅应用笔记 AN11247 使用外部温度传感器使用 PCF85063、PCF8523 和 PCF2123 提高计时精度 希望对您有所帮助!
記事全体を表示
PCF2131 MBF可靠性报告 我使用的是 PCF2131 RTC I2C 集成电路,我们需要它在 50C 温度条件下的可靠性报告和 MTBF 数据。 RTC Re: PCF2131 RELIABILITY REPORT FOR MTBF 您好, 为了获取所需的 FIT/MTBF 数据,请创建 标准票据。 谢谢您! BRs, Tomas
記事全体を表示
S32DS3.6.2 build gPTP Example Code error 原来一直在S32DS3.5+RTD5..0.0开发,介于新的需求要开发gPTP相关功能,所以重新搭建新的开发环境: S32DS_3.6.2_RFP_win32.x86_64.exe SW32K3_S32M27x_RTD_R21-11_6.0.0_D2506_DesignStudio_updatesite.zip SW32K3_FreeRTOS_11.1.0_6.0.0_CD1_D2506_DesignStudio_updatesite.zip SW32K3xx_M7_gPTP_1.0.0_D2507_DesignStudio_updatesite.zip SW32K3_TCPIP_STACK_3.0.0_D2507_DesignStudio_updatesite.zip 搭建完成后创建S32K388_gptp_free_rtos_ds工程,更新code直接编译发现下面错误: 我的理解是不是环境搭建过程中是不是缺少插件的安装? 实际同样的情况lwip_FreeRTOS_s32k388也出现: 但是对应的插件我都安装了,附件是S32K388_gptp_free_rtos_ds导出例程,刚开始搭建麻烦指点一下,谢谢! Re: S32DS3.6.2 build gPTP Example Code error 你好,实际我不太关注这个错误,这些错误肯定可以修订,主要再S32DS3.5+RTD5.0.0直接导入IDE提供的标准例程没有出现编译出错问题,但是在S32DS3.6.2+RTD6.0.0同样的操作出现该现象,是不是插件安装不匹配导致,最担心是: 涉及的source code file都是SDK提供的,基本上不会修改,就是修改也是通过IDE界面配置修改,后面随着功能增加,会不断update Code,已经修改的文件再次覆盖,每次都需要修改一边,这样是不是不太方便! Re: S32DS3.6.2 build gPTP Example Code error 你好@Ryan_xjl 我能够复制这个问题。要构建没有错误的项目,需要进行以下更改: FreeRTOSConfig.h Add the following definition: #define configKERNEL_PROVIDED_STATIC_MEMORY 1 port.c Add the declaration: void xPortSysTickHandler( void ) __attribute__( ( naked ) ); Vector_Table.s Change .globl vPortSVCHandler to .globl SVC_Handler Change .long vPortSVCHandler to .long SVC_Handler+1 BR、VaneB Re: S32DS3.6.2 build gPTP Example Code error 你好@Ryan_xjl 关于软件兼容性,您目前使用的版本应该可以正常运行,因为它们都依赖于 RTD 6.0.0 版本。 关于从 RTD 5.0.0 迁移到 RTD 6.0.0,以及从 S32DS 3.5 迁移到 S32DS 3.6.2、软件和集成开发环境都有了一些变化。因此,尽管整体功能在很大程度上仍然相似,但无法保证完全的后向兼容性。 最后,关于生成文件中的修改丢失,这是使用 ConfigTools 时的预期行为。每次应用新配置时,该工具都会重新生成文件并将其恢复到默认状态。直接在这些文件中进行的任何手动更改都不会被保留。因此,在使用生成的代码时,必须谨慎管理自定义修改。 Re: S32DS3.6.2 build gPTP Example Code error 非常感谢你如此耐心的帮助我解决困惑,可能是我表达的不够明白,或者我刚开始学习,方便明确表达我的意思,我提供了整个操作流程的视频,可以更好表达我的诉求,再次感谢你如此耐心的帮助我 PS:过程中有个现象,不知道是不是该情况导致 附件是操作流程视频 Re: S32DS3.6.2 build gPTP Example Code error 你好@Ryan_xjl 不用担心,语言的差异有时会造成误解,我非常感谢你分享了一段视频来说明这个问题。 打开 ConfigTools 时显示的窗口只是一个警告,表明创建项目时使用的工具版本比当前使用的版本旧。只有当您尝试打开.mex文件的原始(旧)版本。就您的情况而言,应该不会有任何问题。此外,从头开始创建项目时,也不会出现该警告。 最后,你在编译示例时遇到的版本错误可以通过应用我在第一个回复中提到的更改来解决。 我希望这有助于澄清您的问题。 Re: S32DS3.6.2 build gPTP Example Code error 你好@Ryan_xjl 我这边导入了 lwip_FreeRTOS_s32k388 示例,但似乎缺少了堆栈文件夹,这导致了错误。 解决方法是,您可以修改 tcpip_itm_manifest.xml 文件并将 S32K388 添加到三个设备列表中。例如,可以在以下位置找到该文件: C:\NXP\S32DS.3.6.4\S32DS\software\PlatformSDK_S32K3\tcpip_itm_manifest.xml 此外,请参阅S32K388 tcpip stack 4.0.0 在编译时丢失 lwip 文件夹的主题,该主题已讨论过这一问题。该主题还指出了一个示例项目,可能对您的情况有所帮助。 Re: S32DS3.6.2 build gPTP Example Code error 非常感谢,这个问题目前就按照当前的思路进行 附件的这个工程操作流程与gPTP工程一样,是否可以协助看看(发现stack没有生成)
記事全体を表示
PN7160がLPCDモードに設定されている場合、2×2cmアンテナを使用してLPCDモードから起動することはできません。 「NFCアンテナツール」を使用して、PN7160用の2cm×2cmの搭載アンテナを設計しました。このアンテナはQ値が20、目標インピーダンスが11Ωです。これは小型アンテナであるため、「PN7160 よくある質問 [AN13892]」に従ってPN7160のDPCを有効にしました。 このような条件下では、PN7160のLPCDモードを有効にしない場合、2台のPN7160デバイスはP2Pを介して正常に通信できます。しかし、PN7160のLPCDモードを有効にすると、PN7160はLPCDモードから復帰できなくなります。しかし、同じドライバーを使用すれば、2cm×4cmのアンテナでLPCDモードから起動することも可能です。 2cm×2cmアンテナからのLPCD TRACEメッセージは以下のとおりです。 D (6358097) PN7160_I2C: NCI << 0x6f 0x13 0x04 0x80 0x83 0x80 0x03 D (6358597) PN7160_I2C: NCI << 0x6f 0x13 0x04 0x80 0x83 0x80 0x03 D (6359107) PN7160_I2C: NCI << 0x6f 0x13 0x04 0x80 0x83 0x80 0x03 D (6359617) PN7160_I2C: NCI << 0x6f 0x13 0x04 0x80 0x83 0x80 0x03 アンテナ設計パラメータについては、添付ファイルをご参照ください。 CORE_SET_CONFIG_CMD は次のように設定されています。 uint8_t NxpNci_CORE_CONF_EXTN[]={0x20, 0x02, 0x6B, 0x05, /* CORE_SET_CONFIG_CMD */ 0xA0、0x40、0x01、0x81、/* TAG_DETECTOR_CFG */ 0xA0、0x41、0x01、0x10、/* TAG_DETECTOR_THRESHOLD_CFG */ 0xA0、0x42、0x01、0x0F、/* TAG_DETECTOR_PERIOD_CFG */ 0xA0、0x43、0x01、0x00、/* TAG_DETECTOR_FALLBACK_CNT_CFG */ 0xA0、0x0B、0x57、0xE5、0x05、0x90、0x6E、0x0F、0x4E、/* DPC_CONFIG */ 0x00、0x40、0x95、0xB7、0xAA、0x40、0x9F、0xA7、0x99、 0x53、0x9F、0x97、0x99、0x5D、0x9F、0x97、0x99、0x5F、 0x9F、0x97、0x00、0x68、0x9F、0x07、0x00、0x6A、0x1F、 0x07、0x00、0x74、0x1F、0x07、0x00、0x78、0x1F、0x07、 0x00、0x7F、0x1F、0x07、0x00、0x81、0x1F、0x07、0x00、 0x8B、0x1F、0x04、0x00、0x8C、0x1F、0x04、0x00、0x96、 0x1F、0x04、0x00、0x98、0x1F、0x04、0x00、0xA1、0x1F、 0x02、0x00、0xA9、0x1F、0x00、0x00、0xAF、0x1F、0x00、 0x00、0xB8、0x1F、0x00、0x00、0xC2、0x1F、0x00、0x00 }; この問題はアンテナのマッチングによるものですか、それともレジスタの設定によるものですか? Re: When the PN7160 is set to LPCD mode, it cannot be activated from LPCD mode using a 2×2 cm antenn アンテナのインピーダンスを測定できましたか? 比較的低いように思われる。 Re: When the PN7160 is set to LPCD mode, it cannot be activated from LPCD mode using a 2×2 cm antenn こんにちは。弊社製品にご関心をお寄せいただきありがとうございます。 あなたのシステム構成にはいくつか制限事項がありますので、それについて説明したいと思います。 2cm×2cmのアンテナでも実装は可能ですが、少し大きめのアンテナサイズを使用することをお勧めします。 また、NFC ForumではP2Pは推奨しておらず、代わりにHCEと読み書きモードの使用を強く推奨していることを明確にしておきたいと思います。 イニシエータのアンテナサイズが小さすぎて、ターゲットの同調ずれを引き起こす可能性は非常に高い。 カードのような通常のPICCを使って、LPCDからリーダーを起動しようと試みたことはありますか?その結果はどうなるのでしょうか? スミスカートと試作品の回路図を、詳細な検討のために共有してください。 Re: When the PN7160 is set to LPCD mode, it cannot be activated from LPCD mode using a 2×2 cm antenn ご回答いただき、誠にありがとうございました。 現状では、P2Pの利用は互換性を確保するための妥協策である。アンテナの形状と基板レイアウトを再最適化しましたが、問題は解決していません。添付ファイルの最初の画像はアンテナの回路図で、「NFCアンテナツール」を使用してパラメータを生成したものです。2番目の画像はPN7160とそのペリフェラル回路の回路図です。3番目と4番目の画像はPCBレイアウトの上面図と下面図を示しています。5番目の画像は、NFCアンテナツールに入力したパラメータを示しています。非対称および対称チューニングシナリオの両方について、AN13219(PN7160アンテナ設計およびマッチングガイド)の23ページに従って、Q、目標インピーダンス、fEMCカットオフ、およびL0をそれぞれ20、13Ω、22MHz、および20、11Ω、14.6MHzに設定します。しかし、どちらの場合も、LPCD TRACEからの通知メッセージはそのまま残ります。 D (564760) PN7160_I2C: NCI << 0x6f 0x13 0x04 0x80 0x83 0x80 0x03。 アンテナに近づく際に指を使うか金属製の物体を使うかにかかわらず、測定値は変わらない。 Re: When the PN7160 is set to LPCD mode, it cannot be activated from LPCD mode using a 2×2 cm antenn ご返信ありがとうございます。しかし、現在VNA(ベクトルネットワークアナライザ)は持っていません。それでも問題が解決しない場合は、購入することにします。他に何か提案はありますか? Re: When the PN7160 is set to LPCD mode, it cannot be activated from LPCD mode using a 2×2 cm antenn また、「PN7160アンテナ設計およびマッチングガイド」を参照し、プログラムを使用してAGC値を読み取りました。 void Get_AGC ( SemaphoreHandle_t Semaphore_PN7160_IRQ ) {     uint8_t get [] = { 0x2F , 0x3D , 0x04 , 0x02 , 0xC8 , 0x60 , 0x03 };     uint8_t Answer [ 255 ];     uint16_t AnswerSize ;     ( 1 )​     {         printf ( " \n " );           NxpNci_HostTransceive ( Semaphore_PN7160_IRQ , get , sizeof ( get ), Answer , sizeof ( Answer ), & AnswerSize );         if (( Answer [ 0 ] != 0x4F ) || ( Answer [ 1 ] != 0x3D ) || ( Answer [ 3 ] != 0x00 )) ヤージュ             printf ( "エラー、パラメータ値を取得できません\n " );      }         それ以外 ヤージュ             printf ( " \n " );             printf ( "測定されたAGC値(LSB)= %.2X h" , Answer [ 4 ]);             printf ( " \n " );             printf ( "測定されたAGC値(MSB)= %.2X h" , Answer [ 5 ]);             printf ( " \n " );      }    } }   しかし、得られた結果は奇妙でした。それは、文書UM11495のTEST_ANTENNA_RSPの戻り値リストには記載されていません。読み取った値は0x06です。 (7600) PN7160_I2C: NCI >> 0x2f 0x3d 0x04 0x02 0xc8 0x60 0x03 D (7600) PN7160_I2C: NCI << 0x4f 0x3d 0x01 0x06 しかし、UM11495では考えられる結果が4つしか示されていません。 0x00: STATUS_OK 0x01: テスト実行が拒否されました(PN7160の状態が不正です) 0x04: STATUS_TEST_EXEC_FAILED 0x09: STATUS_INVALID_PARAM その他:RFU
記事全体を表示
USBハブの複数デバイス接続に関する問題 私はプロジェクト開発において、i.MX RT1060コントローラーを使用しています。複数のデバイス(MSD - ペン ドライブ、CDC - プリンター)を以下の順序で接続すると、USBハブの機能に問題が発生します。 Case 1 A) プリンター:添付イベント情報が発生し、正常に動作しています B) フラッシュドライブ: フラッシュドライブのアタッチイベントは発生しません。 フラッシュドライブを取り外すと、システムはUSB_HostReleaseDeviceResource内でハングアップします。 CASE 2 A) フラッシュドライブ:コネクテッドで正常に動作しています B) プリンター: アタッチイベントが発生しましたが、インターフェースが完全に完了していません。ポートオープンイベントのコールバックでエラーが発生しました。 フラッシュドライブを取り外すと、両方のデバイスの接続が切断されました。 CASE 3 フラッシュドライブとプリンターの両方が挿入されました:フラッシュドライブの接続イベントのみが発生し、正常に動作しています。 フラッシュドライブを取り外して再度接続すると、正常に動作します。 CDCデバイスの接続/切断ではイベントは発生しません。 CDCの機能を復旧させる唯一の方法は、システムを再起動することです。 調査結果: ハブをPCに接続して機能を確認すると、デバイスマネージャーに両方のデバイスが表示されます。このことから、問題はi.MX RT1060のUSBドライバの実装/USBの複合デバイス処理にあると結論付けます。 MSDデバイスとCDCデバイスの両方をハブ経由で確実に列挙および管理できるように、この問題を解決する方法はありますか? よろしくお願いいたします。 パヴァン #IMXRT1060 #nxp #マイクロコントローラ #USBハブ #USB複合デバイスの処理。 USB Re: USB hub multiple devices connection issue 上記について何かご提案はありますか? Re: USB hub multiple devices connection issue こんにちは、 @Gangapavan さん。 使用しているSDKのバージョンは何ですか?弊社のSDKに含まれているUSB関連のサンプルを基にプロジェクトを進めていますか?あなたのアプリケーションでは、MSDとCDCのためのUSB機能をどのように実装しましたか? 標準のUSBハブ操作を管理するために、弊社が提供する「usb」>「host」>「class」フォルダ内のUSBホストハブドライバを実装していますか? BR、 エドウィン。 Re: USB hub multiple devices connection issue こんにちは、@EdwinHzさん ご返信ありがとうございます。 私たちはSDKバージョン2.13.0を使用しています。私たちはSDKのサンプルをベースにしてアプリケーションを開発しました。 はい、上記で指定した場所にあるハブファイルも使用しています。 プロジェクトが本番稼働段階にあるため、この問題の迅速な解決が必要です。必要であれば、メールまたはご希望の方法でファイルを共有いたします。 ありがとうございます。 Re: USB hub multiple devices connection issue こんにちは、@EdwinHzさん 上記について何かご提案はありますか?
記事全体を表示
S32N55 HSE2 - SetAttribute(HSE_OTP_FOEM_ADKP_ATTR_ID) No Response in Synchronous Mode Hello, I am working on a customer project with the S32N55 platform and I am facing an issue when calling SetAttribute with HSE_OTP_FOEM_ADKP_ATTR_ID for the first time. --- [Environment] - Platform: S32N55 EVB (Silicon B0) - GrayVIP: 1.0.24 - FSS FW SDK: 1.13.0+ - Current Lifecycle: OEM_OPEN (confirmed via GetAttribute) - ADKP: never provisioned (first attempt) - HSE Timeout: CRYPTO_43_HSE_TIMEOUT_DURATION_U32 = 1,000,000,000 --- [Issue] When calling SetAttribute with HSE_OTP_FOEM_ADKP_ATTR_ID, HSE never returns a response in synchronous mode. Mu_Ip_IsResponseReady() never returns TRUE, resulting in a timeout regardless of the timeout value. Other SetAttribute calls (e.g. HSE_OTP_GO_SECURE_ATTR_ID) work correctly with the same synchronous mechanism. --- [Code] hseSrvDescriptor_t xLocalDesc = {0}; hseSetAttrSrv_t* pSetAttrReq; xLocalDesc.srvId = HSE_SRV_ID_SET_ATTR; pSetAttrReq = &(xLocalDesc.hseSrv.setAttrReq); pSetAttrReq->attrId = HSE_OTP_FOEM_ADKP_ATTR_ID; pSetAttrReq->attrLen = sizeof(hseAttrOtpFoemAdkp_t); /* 32 bytes */ pSetAttrReq->pAttr = Hse_Ip_ToAHBAddress((HOST_ADDR)pAdkpBuf); xHseIpReq.eReqType = HSE_IP_REQTYPE_SYNC; xHseIpReq.u32Timeout = CRYPTO_43_HSE_TIMEOUT_DURATION_U32; hseResp = Hse_Ip_ServiceRequest(u8MuInst, u8MuCh, &xHseIpReq, (hseSrvDescriptor_t *)Hse_Ip_ToAHBAddress( (HOST_ADDR)&g_hseShared.axHseSrvDesc[u8MuInst][u8MuCh])); /* HSE never responds - Mu_Ip_IsResponseReady() always returns FALSE */ --- [Pre-conditions verified before calling SetAttribute] 1. LC is OEM_OPEN (confirmed via GetAttribute) 2. ADKP has never been provisioned on this device 3. ADKP buffer is located in non-cacheable shared memory 4. Address is translated via Hse_Ip_ToAHBAddress() --- [Observation 1 - Async mode] Looking at the GrayVIP reference implementation (Fss_Firmware_ProgSecureFuseADK), SetAttribute for ADKP is called using an asynchronous mechanism with WaitEvent: RetVal = Fss_Sem_SetHseAttribute(&setAttr); if (E_OK == hseResponse) { WaitEvent(FSS_SEM_HSESETATTR_EVENT_NAME); RetVal = Fss_Sem_GetHseAsynResponse(); } This suggests that OTP write operations may require async mode on S32N55 HSE2. --- [Observation 2 - VGPIO Fuse Power Enable] In GrayVIP, Fss_Firmware_FuseProgramming() enables fuse programming power via VGPIO before writing Boot Config fuses: VGPIO_Type *pVgpio = (VGPIO_Type *)FUSE_VDD_EN_PORT_ADDRESS; pVgpio->OV[FUSE_VDD_EN_BANK].PMOS = (1 << FUSE_VDD_EN_PIN); pVgpio->OV[FUSE_VDD_EN_BANK].OE |= (1 << FUSE_VDD_EN_PIN); pVgpio->OV[FUSE_VDD_EN_BANK].OVS = (1 << FUSE_VDD_EN_PIN); However, Fss_Firmware_ProgSecureFuseADK() (ADKP write) does not explicitly call this power enable sequence. It is unclear whether: 1. HSE2 handles fuse power internally for OTP attribute writes, or 2. VGPIO fuse power enable is also required before SetAttribute(ADKP). Additionally, GrayVIP does not include a fuse power disable sequence after the write. We are concerned about whether leaving VGPIO fuse power enabled after the OTP write could cause unintended fuse writes or security issues. --- [Questions] 1. Is synchronous mode (HSE_IP_REQTYPE_SYNC) supported for SetAttribute(ADKP), or is async mode mandatory for OTP write operations on S32N55 HSE2? 2. Is VGPIO fuse programming power enable required before calling SetAttribute(HSE_OTP_FOEM_ADKP_ATTR_ID)? 3. If VGPIO fuse power enable is required, what is the correct procedure to disable it after the OTP write is complete? 4. Are there any additional prerequisites before calling SetAttribute(HSE_OTP_FOEM_ADKP_ATTR_ID) that may not be documented? This is a critical blocker for our customer project delivery. Any guidance would be greatly appreciated. Thank you. Re: S32N55 HSE2 - SetAttribute(HSE_OTP_FOEM_ADKP_ATTR_ID) No Response in Synchronous Mode Hello again @EddiePark, Please find my answers to your questions below: Is synchronous mode (HSE_IP_REQTYPE_SYNC) supported for SetAttribute(ADKP), or is async mode mandatory for OTP write operations on S32N55 HSE2? For What I can understand from the FSS firmware , it is not, as you can see, the Wait and Clear functions calls you mentioned are guarded by the conditional compilation #ifdef FSS_SEM_HSESETATTR_EVENT_NAME. This way you ensure you continue once the request has been processed. Is VGPIO fuse programming power enable required before calling SetAttribute(HSE_OTP_FOEM_ADKP_ATTR_ID)? No it is not, there are two kinds of one time programmable words handled by the HSE2, one is called fusebox and its handled by the  hseSrvProgFuse_t service, this one requires the VDD_EFUSE to be powered, which is controlled by a GPIO pin and a transistor in the S32N55 RDB. The other kind is usually called just OTP, these do not require the VDD_EFUSE to be powered on, that is why you don't need the GPIO to be turned on. You can check the power domains I am referring to in the reference manual, in particular in Figure 35. FSS power domains [page 241, S32N55 Reference Manual, Rev. 2, 2025-06-30]  If VGPIO fuse power enable is required, what is the correct procedure to disable it after the OTP write is complete? Depends on the board, in the S32N55 RDB it is controlled by the GPIO you see in the code, however, in a custom board that can be a jumper o an 0ohm resistor. Therefore in the RDB you can just turn off the pin and VDD_EFUSE will be powered off, you can also control it with J18, when having a jumper in that connector, VDD_EFUSE will be always ON, independently of the GPIO state. Are there any additional prerequisites before calling SetAttribute(HSE_OTP_FOEM_ADKP_ATTR_ID) that may not be documented? I was not able to find any information that might suggest an unknown prerequisite. Have you been able to use any other HSE2 service successfully?  Please let me know if you have any other question. Note that, as mentioned in the other post, the S32N55 is still a pre-production and thus, my expertise on this topic is not yet at the highest level. With that said, I will try to help you as much as I can. Re: S32N55 HSE2 - SetAttribute(HSE_OTP_FOEM_ADKP_ATTR_ID) No Response in Synchronous Mode Hello, We are trying to program the ADKP (Application Debug Key/Password) via HSE2 SetAttribute service on S32N55, but we are not getting any response from HSE2. --- ## Environment - Platform: S32N55 EVB - GrayVIP version: SW32N5_GRAYVIP_1_0_22_0 - FSS FW version: S32N_FSS_FW_R21-11_1.10.0 - EB Tresos version: 29.0.0 - Called from: FSS M7 core, inside Fss_FW_Init_Task() --- ## What We Tried ### Attempt 1: Synchronous mode (HSE_IP_REQTYPE_SYNC) ```c xLocalDesc.srvId = HSE_SRV_ID_SET_ATTR; pSetAttrReq->attrId = HSE_OTP_FOEM_ADKP_ATTR_ID; pSetAttrReq->attrLen = 32U; /* hseAttrOtpFoemKey_t size */ pSetAttrReq->pAttr = Hse_Ip_ToAHBAddress((HOST_ADDR)pAttr); RetVal = Sherpa_Cdd_Execute(&xLocalDesc); /* Sync */ ``` Result: Timeout - no response from HSE2 ### Attempt 2: Asynchronous mode (HSE_IP_REQTYPE_ASYNC_IRQ) ```c g_xSherpaHseIpReq.eReqType = HSE_IP_REQTYPE_ASYNC_IRQ; g_xSherpaHseIpReq.pfCallback = &Sherpa_Cdd_HseCallback; /* Poll bDone flag set by IRQ callback */ while ((FALSE == g_xSherpaCallbackParam.bDone) && (u32Timeout > 0U)) { u32Timeout--; } ``` Result: Timeout - bDone never set to TRUE (callback never called) ### Attempt 3: With VGPIO VDD_EFUSE Power Enable ```c /* Enable VDD_EFUSE via VGPIO */ pVgpio->OV[BANK].PMOS = (1U << PIN); pVgpio->OV[BANK].OE |= (1U << PIN); pVgpio->OV[BANK].OVS = (1U << PIN); ``` Result: ShutdownHook called (bus error on VGPIO register access) --- ## Current Implementation ```c Std_ReturnType SecureDebug_SetADKP(const uint8_t* pDebugKey) { /* 1. Check LC == OEM_OPEN */ eRetVal = Sherpa_Cdd_GetAttribute(HSE_OTP_LIFECYCLE_ATTR_ID, ...); if (HSE_LC_OEM_OPEN != *pLcInSharedMem) { break; } /* 2. Check if ADKP already programmed */ eRetVal = Sherpa_Cdd_GetAttribute(HSE_OTP_FOEM_ADKP_ATTR_ID, ...); if (E_OK == eRetVal) { /* Already programmed */ break; } /* 3. Copy 32-byte key to non-cacheable shared buffer */ memcpy(pAdkpInSharedMem, pDebugKey, HSE_OTP_FOEM_KEY_SIZE); __DMB(); __DSB(); /* 4. SetAttribute */ eRetVal = Sherpa_Cdd_SetAttribute( HSE_OTP_FOEM_ADKP_ATTR_ID, HSE_OTP_FOEM_KEY_SIZE, /* 32 bytes */ (void*)pAdkpInSharedMem); } ``` --- ## Questions 1. According to HSE2 Firmware Reference Manual Figure 12, if Input size == 16, HSE treats it as a plain AES-128 key. If Input size != 16, HSE treats it as a key handle. Is the ADKP size for S32N55 HSE2 16 bytes (AES-128) or 32 bytes? 2. Is VDD_EFUSE power (J18 jumper or VGPIO) required for HSE_OTP_FOEM_ADKP_ATTR_ID SetAttribute? (Previous NXP response said it is NOT required for OTP type, only for fusebox type) 3. Is Secure ADKP Provisioning (via RAM key slot + key handle) the recommended approach for S32N55 HSE2? ```c /* Import AES-128 key to RAM slot */ SecureStorage_CipherKey_Import(RAM_SLOT, pDebugKey, 16U); /* SetAttribute with key handle */ Sherpa_Cdd_SetAttribute(HSE_OTP_FOEM_ADKP_ATTR_ID, sizeof(hseKeyHandle_t), &keyHandle); ``` 4. Is there a prerequisite step (e.g. ADKP_MASTER fuse setting) before programming ADKP that we might be missing? 5. What is the correct MU instance to use for HSE_OTP_FOEM_ADKP_ATTR_ID SetAttribute on S32N55? Re: S32N55 HSE2 - SetAttribute(HSE_OTP_FOEM_ADKP_ATTR_ID) No Response in Synchronous Mode Hello @EddiePark, I will need to contact the internal team for a more specialized support about this. I will get back to you once I have an update from them. Thanks in advance for your patience. Re: S32N55 HSE2 - SetAttribute(HSE_OTP_FOEM_ADKP_ATTR_ID) No Response in Synchronous Mode Hello @EddiePark, I have received feedback, amazingly fast I must point out. In the release notes for for S32N5 HSE Firmware 1.0.24.0, the following is mentioned: HSE is going in shutdown while setting/getting key related OTP fuse like SRKH/ODAK, ADKP, MCK using SET/GET ATTR for OTP fuse. So, if you are using a version older than 1.0.24.0 this might be the reason for the issue. Please note that I needed to refresh my licenses for the S32N HSE FW to access version 1.0.24.0, so if you cannot already see that version (or newer) in your account you may need to contact your NXP representative to activate it. Please retest with a version 1.0.24.0 or newer and let me know if the behavior changed. Re: S32N55 HSE2 - SetAttribute(HSE_OTP_FOEM_ADKP_ATTR_ID) No Response in Synchronous Mode Hi Thank you for your early response. I will test using HSE_FW_S32N5_1_0_24_0. I will get back to you for the result of test Re: S32N55 HSE2 - SetAttribute(HSE_OTP_FOEM_ADKP_ATTR_ID) No Response in Synchronous Mode Hello, Thank you for your previous response regarding HSE_FW_S32N5_1_0_24_0. We have retested with HSE_FW_S32N5_1_0_24_0 and would like to share our results and ask one additional question. --- ## Update 1: ADKP Provisioning Result After upgrading to HSE_FW_S32N5_1_0_24_0, the ADKP provisioning is now working correctly. We confirmed the ADKP is successfully programmed by calling GetAttribute(HSE_OTP_FOEM_ADKP_ATTR_ID), which returns E_OK with a SHA3_384 reference value. The previous timeout/shutdown issue (reported in the release notes as a bug in versions older than 1.0.24.0) is now resolved. --- ## Update 2: Call Location We found that the call location also matters. The SetAttribute(HSE_OTP_FOEM_ADKP_ATTR_ID) must be called AFTER Fss_Btm_PlatformApi_SetFssCohortState(FSS_BTM_COHORT_RUNNING). Calling it earlier (e.g. immediately after Crypto_43_HSE_Init) resulted in no response from HSE2. --- ## Question: VDD_EFUSE Power Enable Requirement In our previous NXP Community post, it was stated that: "OTP attributes (HSE_OTP_FOEM_ADKP_ATTR_ID) do NOT require VDD_EFUSE power, unlike fusebox operations (hseSrvProgFuse_t)." However, we would like to reconfirm this, as we attempted to enable VDD_EFUSE via VGPIO and encountered a ShutdownHook (bus error): ```c VGPIO_Type *pVgpio = (VGPIO_Type *)SECURE_DEBUG_FUSE_VDD_ADDR; pVgpio->OV[SECURE_DEBUG_FUSE_VDD_BANK].PMOS = (1U << SECURE_DEBUG_FUSE_VDD_PIN); pVgpio->OV[SECURE_DEBUG_FUSE_VDD_BANK].OE |= (1U << SECURE_DEBUG_FUSE_VDD_PIN); pVgpio->OV[SECURE_DEBUG_FUSE_VDD_BANK].OVS = (1U << SECURE_DEBUG_FUSE_VDD_PIN); ``` Questions: 1. Is VDD_EFUSE power (J18 jumper or VGPIO) truly NOT required for HSE_OTP_FOEM_ADKP_ATTR_ID SetAttribute on S32N55? 2. If VDD_EFUSE is not required, why does ADKP provisioning only work after Fss_Btm_PlatformApi_SetFssCohortState()? Is this a timing/initialization dependency rather than a power supply issue? 3. What is the correct VGPIO address and pin configuration for VDD_EFUSE control on S32N55 EVB, in case it is needed for other OTP operations (e.g. MCK, SRKH)? Thank you.
記事全体を表示
MIMXRT1180-EVK LittleFS サンプルは、DCache が無効になっていない限り、外部フラッシュで失敗します。 こんにちは、 Zephyr LittleFS サンプル ( https://github.com/zephyrproject-rtos/zephyr/tree/main/samples/subsys/fs/littlefs ) を実行しようとしています。CM33コアを使用して外部フラッシュ(W25Q128JWSIQ)に書き込んでいますが、問題が発生しています。 サンプルをデフォルト設定で実行しようとすると、約90%の確率で失敗します。フラッシュメモリを消去してファイルシステムを再構築するオプションをオンにすると、ほぼ毎回失敗するようです。 失敗するタイミングは様々ですが、ログは通常次のような内容になります。 ネタバレ (ハイライトして読む) *** Zephyr OSビルドv4.3.0-6239-g28cd602a81eaを起動しています*** littlefs上のファイルを読み書きするためのサンプルプログラム w25q128jw@0 の 0xe20000 にある領域 3、1966080 バイト [00:00:00.022,000] main: フラッシュ領域を消去しています... 0 [00:00:00.028,000] littlefs: LittleFS バージョン 2.11、ディスクバージョン 2.1 [00:00:00.037,000] littlefs: w25q128jw@0:0xe20000 の FS は 480 個の 0x1000 バイトのブロックで、512 サイクルです [00:00:00.047,000] littlefs: パーティションサイズ: rd 16 ; pr 16 ; ca 64 ; la 32 [00:00:00.055,000] littlefs: WEST_TOPDIR/modules/fs/littlefs/lfs.c:1386:{0x0, 0x1} のディレクトリペアが破損しています [00:00:00.066,000] littlefs: マウントできません (LFS -84); フォーマット[00:00:00.118,000] littlefs: /lfs がマウントされました /lfs マウント: 0 /lfs: bsize = 16 ; frsize = 4096 ; blocks = 480 ; bfree = 478 ディレクトリ /lfs を一覧表示しています... [00:00:00.150,000] littlefs: WEST_TOPDIR/modules/fs/littlefs/lfs.c:2109:スーパーブロック0x0は書き込み不能になりました [00:00:00.161,000] fs: ファイルオープンエラー (-5) [00:00:00.167,000] main: 失敗: /lfs/boot_count を開けません: -5 [00:00:00.174,000] littlefs: /lfs がマウントされていません /lfs アンマウント: 0 *** Zephyr OSビルドv4.3.0-6239-g28cd602a81eaを起動しています***w25q128jw@0 の littlefsArea 3 の 0xe20000 にある 1966080 バイトのファイルを読み書きするサンプル プログラム[00:00:00.022,000] main: フラッシュ領域を消去しています... 0[00:00:00.028,000] littlefs: LittleFS バージョン 2.11、ディスク バージョン 2.1[00:00:00.037,000] littlefs: w25q128jw@0:0xe20000 の FS は 480 個の 0x1000 バイトのブロックで構成され、512 サイクル[00:00:00.047,000] があります。 littlefs: パーティションサイズ: rd 16 ; pr 16 ; ca 64 ; la 32[00:00:00.055,000] littlefs: WEST_TOPDIR/modules/fs/littlefs/lfs.c:1386:{0x0, 0x1}[00:00:00.066,000] でディレクトリペアが破損しています littlefs: マウントできません (LFS -84); フォーマット中[00:00:00.118,000] littlefs: /lfs マウント済み/lfs マウント: 0/lfs: bsize = 16 ; frsize = 4096 ; blocks = 480 ; bfree = 478ディレクトリ /lfs を一覧表示中...[00:00:00.150,000] littlefs: WEST_TOPDIR/modules/fs/littlefs/lfs.c:2109:スーパーブロック 0x0 が書き込み不能になりました[00:00:00.161,000] fs: ファイルオープンエラー (-5)[00:00:00.167,000] main: 失敗: /lfs/boot_count を開けません: -5[00:00:00.174,000] littlefs: /lfs アンマウント /lfs アンマウント: 0 ある時点で「スーパーブロック0x0が書き込み不能になりました」というエラーが発生し、サンプルが失敗します。 Kconfigオプション「CONFIG_DCACHE=n」でDCacheを無効にするとサンプルが確実に動作することがわかったので、これはキャッシュの問題だと考えています。 ネタバレ (ハイライトして読む) *** Zephyr OSビルドv4.3.0-6239-g28cd602a81eaを起動しています*** littlefs上のファイルを読み書きするためのサンプルプログラム w25q128jw@0 の 0xe20000 にある領域 3、1966080 バイト [00:00:00.060,000] main: フラッシュ領域を消去しています... 0 [00:00:00.069,000] littlefs: LittleFS バージョン 2.11、ディスクバージョン 2.1 [00:00:00.127,000] littlefs: w25q128jw@0:0xe20000 の FS は 480 個の 0x1000 バイトのブロックで、512 サイクルです [00:00:00.139,000] littlefs: パーティションサイズ: rd 16 ; pr 16 ; ca 64 ; la 32 [00:00:00.151,000] littlefs: WEST_TOPDIR/modules/fs/littlefs/lfs.c:1386:{0x0, 0x1} のディレクトリペアが破損しています [00:00:00.164,000] littlefs: マウントできません (LFS -84); フォーマット[00:00:00.235,000] littlefs: /lfs がマウントされました /lfs マウント: 0 /lfs: bsize = 16 ; frsize = 4096 ; blocks = 480 ; bfree = 478 ディレクトリ /lfs を一覧表示しています... /lfs/boot_count 読み取り回数:0 (バイト数: 0) /lfs/boot_count に新しいブートカウント 1 を書き込みます: [wr:1] [00:00:00.297,000] main: テストファイル: /lfs/pattern.bin が見つかりません。作成してください。 ------ ファイル: /lfs/pattern.bin ------ 01 55 55 55 55 55 55 55 02 55 55 55 55 55 55 55 03 55 55 55 55 55 55 55 04 55 55 55 55 55 55 55 05 55 55 55 55 55 55 55 06 55 55 55 55 55 55 55 07 55 55 55 55 55 55 55 08 55 55 55 55 55 55 55 09 55 55 55 55 55 55 55 0a 55 55 55 55 55 55 55 0b 55 55 55 55 55 55 55 0c 55 55 55 55 55 55 55 0d 55 55 55 55 55 55 55 0e 55 55 55 55 55 55 55 0/55 55 55 55 55 55 55 10 55 55 55 55 55 55 55 11 55 55 55 55 55 55 55 12 55 55 55 55 55 55 55 13 55 55 55 55 55 55 55 14 55 55 55 55 55 55 55 15 55 55 55 55 55 55 55 16 55 55 55 55 55 55 55 17 55 55 55 55 55 55 55 18 55 55 55 55 55 55 55 19 55 55 55 55 55 55 55 1a 55 55 55 55 55 55 55 1b 55 55 55 55 55 55 55 1c 55 55 55 55 55 55 55 1d 55 55 55 55 55 55 55 1e 55 55 55 55 55 55 55 1f 55 55 55 55 55 55 55 20 55 55 55 55 55 55 55 21 55 55 55 55 55 55 55 22 55 55 55 55 55 55 55 23 55 55 55 55 55 55 55 24 55 55 55 55 55 55 55 25 55 55 55 55 55 55 55 26 55 55 55 55 55 55 55 27 55 55 55 55 55 55 55 28 55 55 55 55 55 55 55 29 55 55 55 55 55 55 55 2a 55 55 55 55 55 55 55 2b 55 55 55 55 55 55 55 2c 55 55 55 55 55 55 55 2d 55 55 55 55 55 55 55 2e 55 55 55 55 55 55 55 2f 55 55 55 55 55 55 55 30 55 55 55 55 55 55 55 31 55 55 55 55 55 55 55 32 55 55 55 55 55 55 55 33 55 55 55 55 55 55 55 34 55 55 55 55 55 55 55 35 55 55 55 55 55 55 55 36 55 55 55 55 55 55 55 37 55 55 55 55 55 55 55 38 55 55 55 55 55 55 55 39 55 55 55 55 55 55 55 3a 55 55 55 55 55 55 55 3b 55 55 55 55 55 55 55 3c 55 55 55 55 55 55 55 3d 55 55 55 55 55 55 55 3e 55 55 55 55 55 55 55 3f 55 55 55 55 55 55 55 40 55 55 55 55 55 55 55 41 55 55 55 55 55 55 55 42 55 55 55 55 55 55 55 43 55 55 55 55 55 55 55 44 55 55 55 55 55 55 55 45 55 aa [00:00:00.659,000] littlefs: /lfs がマウントされていません /lfs アンマウント: 0 *** Zephyr OSビルドv4.3.0-6239-g28cd602a81eaを起動しています***w25q128jw@0 の littlefsArea 3 の 0xe20000 にある 1966080 バイトのファイルを読み書きするサンプル プログラム[00:00:00.060,000] main: フラッシュ領域を消去しています... 0[00:00:00.069,000] littlefs: LittleFS バージョン 2.11、ディスク バージョン 2.1[00:00:00.127,000] littlefs: w25q128jw@0:0xe20000 の FS は 480 個の 0x1000 バイトのブロックで構成され、512 サイクル[00:00:00.139,000] があります。 littlefs: パーティションサイズ: rd 16 ; pr 16 ; ca 64 ; la 32[00:00:00.151,000] littlefs: WEST_TOPDIR/modules/fs/littlefs/lfs.c:1386:{0x0, 0x1}[00:00:00.164,000] でディレクトリペアが破損しています littlefs: マウントできません (LFS -84); フォーマット中[00:00:00.235,000] littlefs: /lfs マウント済み/lfs マウント: 0/lfs: bsize = 16 ; frsize = 4096 ; blocks = 480 ; bfree = 478 ディレクトリ /lfs を一覧表示中 .../lfs/boot_count 読み取り回数:0 (バイト数: 0)/lfs/boot_count 新しいブートカウントを書き込む 1: [wr:1][00:00:00.297,000] main: テストファイル: /lfs/pattern.bin が見つかりません。作成してください!------ファイル: /lfs/pattern.bin ------01 55 55 55 55 55 55 55 02 55 55 55 55 55 55 5503 55 55 55 55 55 55 55 04 55 55 55 55 55 55 55 5505 55 55 55 55 55 55 55 06 55 55 55 55 55 55 5507 55 55 55 55 55 55 55 08 55 55 55 55 55 55 55 5509 55 55 55 55 55 55 55 0a 55 55 55 55 55 55 550b 55 55 55 55 55 55 55 55 0c 55 55 55 55 55 55 55 550d 55 55 55 55 55 55 55 55 0e 55 55 55 55 55 55 55 550f 55 55 55 55 55 55 55 10 55 55 55 55 55 55 5511 55 55 55 55 55 55 55 12 55 55 55 55 55 55 55 5513 55 55 55 55 55 55 55 14 55 55 55 55 55 55 5515 55 55 55 55 55 55 55 16 55 55 55 55 55 55 55 17 55 55 55 55 55 55 55 18 55 55 55 55 55 55 55 55 19 55 55 55 55 55 55 55 1a 55 55 55 55 55 55 55 1b 55 55 55 55 55 55 55 1c 55 55 55 55 55 55 55 1d 55 55 55 55 55 55 55 1e 55 55 55 55 55 55 55 55 1f 55 55 55 55 55 55 55 20 55 55 55 55 55 55 55 21 55 55 55 55 55 55 55 22 55 55 55 55 55 55 55 23 55 55 55 55 55 55 55 24 55 55 55 55 55 55 55 25 55 55 55 55 55 55 55 26 55 55 55 55 55 55 55 27 55 55 55 55 55 55 55 28 55 55 55 55 55 55 55 29 55 55 55 55 55 55 55 2a 55 55 55 55 55 55 552b 55 55 55 55 55 55 55 2c 55 55 55 55 55 55 552d 55 55 55 55 55 55 55 2e 55 55 55 55 55 55 552f 55 55 55 55 55 55 55 30 55 55 55 55 55 55 5531 55 55 55 55 55 55 55 32 55 55 55 55 55 55 5533 55 55 55 55 55 55 55 34 55 55 55 55 55 55 5535 55 55 55 55 55 55 55 36 55 55 55 55 55 55 5537 55 55 55 55 55 55 55 38 55 55 55 55 55 55 5539 55 55 55 55 55 55 55 3a 55 55 55 55 55 55 553b 55 55 55 55 55 55 55 3c 55 55 55 55 55 55 553d 55 55 55 55 55 55 55 3e 55 55 55 55 55 55 553f 55 55 55 55 55 55 55 40 55 55 55 55 55 55 5541 55 55 55 55 55 55 55 42 55 55 55 55 55 55 5543 55 55 55 55 55 55 55 44 55 55 55 55 55 55 5545 55 aa[00:00:00.659,000] littlefs: /lfs アンマウント /lfs アンマウント: 0 しかし、DCache を有効にしたまま、フラッシュの変更 (書き込みと消去、ドライバレベルではなくサンプルレベル) のたびに "sys_cache_data_flush_and_invd_all()" を使用して DCache をフラッシュおよび無効化し、割り込みを "irq_lock()" でロックしても、やはり動作しません。 DCacheを無効にすることは一時的な回避策としては有効ですが、本番システムには理想的ではありません。動作させるために何か見落としている点があるのでしょうか? MCUXpresso SDKに付属しているフラッシュメモリにアクセスするサンプルは正常に動作するため、おそらくZephyrまたはその設定に問題があると考えられます。 フラッシュにアクセスする他のZephyrサンプルでも同様の挙動が見られ、DCacheを無効にした場合のみ安定したアクセスが可能になりますが、それらについては徹底的なテストは行っていません。 技術情報: ボード:NXP MIMXRT1180-EVK(CM33コア)をマイクロUSB経由でWindows PCからパススルーしてUbuntu VMに接続 OS: Zephyr v4.3.0-6239-g28cd602a81ea IDE: Ubuntu上のVS Code用MCUXpresso 26.3.72(Zephyr開発者ソフトウェアキット4.3付き) プロジェクトKconfig: ネタバレ (ハイライトして読む) # # 著作権 (c) 2019 Peter Bigot Consulting, LLC # # SPDX-License-Identifier: Apache-2.0 # # オプションでファイルシステムの再作成を強制する CONFIG_APP_WIPE_STORAGE=y CONFIG_DEBUG=y CONFIG_NO_OPTIMIZATIONS=y CONFIG_LOG=y CONFIG_PRINTK=y CONFIG_SHELL=y CONFIG_LOG_DEFAULT_LEVEL=3 CONFIG_LOG_BACKEND_UART=y CONFIG_LOG_MODE_IMMEDIATE=y CONFIG_UART_CONSOLE=y CONFIG_FILE_SYSTEM=y CONFIG_FILE_SYSTEM_LITTLEFS=y CONFIG_MAIN_STACK_SIZE=4096 CONFIG_FLASH=y CONFIG_FLASH_MAP=y # フラッシュメモリを確実に動作させるために必要な回避策 CONFIG_DCACHE=n ## Copyright (c) 2019 Peter Bigot Consulting, LLC## SPDX-License-Identifier: Apache-2.0##オプションでファイルシステムの再作成を強制します CONFIG_APP_WIPE_STORAGE=yCONFIG_DEBUG=yCONFIG_NO_OPTIMIZATIONS=yCONFIG_LOG=yCONFIG_PRINTK=yCONFIG_SHELL=yCONFIG_LOG_DEFAULT_LEVEL=3CONFIG_LOG_BACKEND_UART=yCONFIG_LOG_MODE_IMMEDIATE=yCONFIG_UART_CONSOLE=yCONFIG_FILE_SYSTEM=yCONFIG_FILE_SYSTEM_LITTLEFS=yCONFIG_MAIN_STACK_SIZE=4096CONFIG_FLASH=yCONFIG_FLASH_MAP=y# フラッシュを確実に動作させるために必要な回避策CONFIG_DCACHE=n どんなご協力でもありがたいです。 よろしくお願いします、 ジェイソン Re: MIMXRT1180-EVK LittleFS sample fails on external flash unless DCache is disabled こんにちは、エドウィンさん。 この問題解決にご協力いただきありがとうございます。しかし、ご提案いただいた解決策がよく理解できません。同じ例はFreeRTOSでも動作し、LWIPスタックやミドルウェアは一切関与していません。Zephyrでは動作せず、FreeRTOSでは動作する、単純なLittleFSフラッシュの読み書きの例です。 重要なバッファデータはキャッシュ不可能なメモリに格納する必要があることは理解していますが、Zephyrが提供するもの以外に、そのようなサブシステムやソフトウェアは存在しません。つまり、Zephyrドライバまたはサブシステム内で問題の原因となっている可能性のあるバッファを特定し、それらをキャッシュ不可能なメモリに移動させることを提案しているのですか? どのバッファーがよくある原因なのか、ご説明いただき、ご経験を共有していただけると幸いです。 よろしくお願いいたします トーマス Re: MIMXRT1180-EVK LittleFS sample fails on external flash unless DCache is disabled こんにちは、 @JasonPD さん。 この問題の原因は間違いなくキャッシュ関連であり、具体的には、以下の記事で説明されている内容です。 「i.MXRT でキャッシュされていないメモリを使用する」 前述のとおり、この問題はLwIPのようなミドルウェアを使用している場合に最も顕著に現れ、Dキャッシュを完全に無効にするのではなく、重要なデータをキャッシュ不可能なメモリ領域に配置することで解決できます。 問題の本質をより深く理解するために、その投稿と参照されているアプリケーションノート( i.MXRT L1キャッシュの使用)を確認し、記事の推奨事項に従ってLwIPミドルウェアが正しく機能するようにしてください。 BR、 エドウィン。 Re: MIMXRT1180-EVK LittleFS sample fails on external flash unless DCache is disabled さらに調べて、フラッシュドライバ「flash_mcux_flexspi_nor.c」を見てみました。その中に、書き込みと消去後に現金が無効化される仕組みが定義ガードによって保護されているのを見つけました。 #ifdef CONFIG_HAS_MCUX_CACHE 現在当社が独占的に使用しているCM33の場合、KConfファイルには次のように記載されています。 config SOC_MIMXRT1189_CM33 HAS_MCUX_XCACHE を選択してください CM7の場合は次のようになります。 config SOC_MIMXRT1189_CM7 HAS_MCUX_CACHE を選択します。 フラッシュドライバの定義ガードを次のように調整しました。 #if defined(CONFIG_HAS_MCUX_CACHE) || defined(CONFIG_HAS_MCUX_XCACHE) この変更により、フラッシュメモリへの書き込みと消去がエラーなく行えるようになりました。XIPとDCacheを再度有効にし、すべてのIRQ無効化を解除しました。今のところはうまくいっているようです。 NXPの視点から見て、この解決策は理にかなっているかどうか、ご意見をいただけますか?フラッシュメモリにアクセスする際、依然としてIRQを無効にする必要がありますか? よろしくお願いいたします トーマス
記事全体を表示
バイアグラをオンラインで購入(処方箋不要、プライムプロによる翌日配送) バイアグラをオンラインで購入(処方箋不要、プライムプロによる翌日配送) . バイアグラのご注文はこちら>>: https://mediprousa.shop/ . . . . . . . . . . . . DSC
記事全体を表示
S32K1 EEprom RTD 您好, 我不明白为什么我使用的 Eep_Ftfc_Example_S32K144 可以正常工作。 但如果我删除擦除和写入代码,只想读取先前存储的数据,则会出现错误"FTFC_EEP_IP_STATUS_BLOCK_INCONSISTENT" 。 我已经为设备设置了 " 保留分区 " 和 " 保留这个范围 " 从 0x100000000 到 0x1000fff。 因此,第二轮代码是 /* 初始化时钟 */ Clock_Ip_Init(&Clock_Ip_aClockConfig[0]); /* 仅在 EERAM 未分区时进行分区,代码为 0x4 */ Eep_DepartParitition(T_EEEPROM_SIZE); /* 初始化 Eep 驱动程序 */ Ftfc_Eep_Ip_Init(&EepFtfcCfg_VS_0); ///* 通过写入擦除值擦除内存 *///for (i=0; i < EEP_WRTESTPATT_SIZE; i+=4U) //{ //retjobResultType = ftfc_EEP_Ip_Ip_EP_EEP_ADD + i,FTFC_EEP_IP_PAGE_LONGWORD,FALSE);//if (FTFC_EEP_IP_IP_IP_IP_PAGE_IP_PAGE_IP_FALSE); //if (FTFC_EEP_IP_IP_IP_IP_IP_STATUS_OK! = retjobResultType) //{//Exit_Example (FALSE);//返回 0;//} //}///* 向 eeprom 设备写入一个或多个完整的 eeprom 页面 * ///for (i=0; i < EEP_WRTESTPATT_SIZE; i+=4U)/ /{/ /retjobResultType = Ftfc_EEP_Ip_Write (EPRESULTTYPE (E+=4U)//{/ /retjobResultType = Ftfc_Eep_Ip_Write EP_ERASE_START_ADD + i,dataWRTestPatt + i,FTFC_EEP_IP_PAGE_LONGWORD,FALSE); //if (FTFC_EEP_IP_STATUS_OK! = retjobResultType) //{/ /Exit_Example (FALSE);/ /返回 0;//}//} /* 比较 eeprom 内存区和应用程序数据缓冲区 */ for(i=0; i { retJobResultType = Ftfc_Eep_Ip_Compare(EEP_ERASE_START_ADD + i, dataWrTestPatt + i, FTFC_EEP_IP_PAGE_LONGWORD); if(FTFC_EEP_IP_STATUS_OK != retJobResultType) { Exit_Example(FALSE); return 0; } } 提前谢谢您。 Re: S32K1 EEprom RTD "FTFC_EEP_IP_STATUS_BLOCK_INCONSISTENT" 可能是由块加法对齐引起的,除了在初始分区时保留此范围" 从 0x10000000 到 0x1000ffffff 以外,您能否提供更多有关 EEPROM 地址设置的信息? Re: S32K1 EEprom RTD 嗨,@ck182、 一旦在 FlexNVM 上启用 EEE,应用内核就不再能直接访问 FlexNVM(备份)。此时,只能访问作为 EEPROM 的 FlexRAM。 如果 FlexNVM 是使用 EEP_FTFC_LOAD_AT_RESET_ENABLED 进行分区的,则在 RESET 后,备份闪存的内容会自动复制到 FlexRAM(EEPROM)中,并设置 EEERDY 标志。 在 main() 开始时,请确认一下: EEERDY == 1, DEPART 包含有效的分区代码,且 有效数据存在于 FlexRAM(EEPROM)中? 此致, 丹尼尔 Re: S32K1 EEprom RTD 你好 db16122, 感谢您的重播。 我对"Eep_Ftfc_Ip_Example_S32K144" 原始示例未作任何改动。 此外,我还注意到,在执行这段代码时 retJobResultType = Ftfc_Eep_Ip_Write(EEP_ERASE_START_ADD + i, dataWrTestPatt + i, FTFC_EEP_IP_PAGE_LONGWORD, FALSE); 在示例中,它在 RAM 地址 0x14000000 处写入,这是正确的,但从未在 Flex Memory 中写入"某处" 。 我希望"somethings" 不仅在 ram 中写入,而且从地址 0x10000000 开始在 Flex 内存中写入,但我从未看到任何变化。 我不明白我错在哪里 我使用的是 DS3.4 和 RDT 1.01。 谢谢! Re: S32K1 EEprom RTD 请分享用于数据闪存和 EEPROM 设置的 FlexNVM 分区代码。它可能需要知道在 1000000 和 1000FFFF 之间哪个部分被设置为 EEPROM。您可能需要根据设置读取 EEPROM 数据。 更多详情,请参阅 AN11983 使用 S32K1xx EEPROM 功能
記事全体を表示
gd3162 config_en 引脚 您好,NXP团队,   我正在使用你们的 GD3162 驱动程序官方代码,在 MODE2 寄存器写入操作中遇到了异常问题,希望你们能帮助解决。   以下是该行动和现象的全部细节:   读取 MODE2 寄存器:返回 0x0660D4,即 CONFIG_EN = 0x0(红框)。 向 MODE2 寄存器(黄框)写入 0x86646F 写入 MODE2 寄存器后回读:返回 0x8660D3,CONFIG_EN 位仍为 0x0   请解释为何无法成功设置 CONFIG_EN 位,并就配置该寄存器的正确步骤提供建议。   谢谢! Re: GD3162 CONFIG_EN PIN 非常感谢!效果非常好。 Re: GD3162 CONFIG_EN PIN 你好,文涛、 请尝试以下方法: 低压和高压域均供电且稳定。如果 LV 在 HV 之前出现,则设备可能会标记 WDOG_FLT 直到 HV 通电;请在继续操作之前将其清除。否则,故障状态可能会阻止或立即 RESET 配置写入。两个功能域均有效后,通过向相应的 StatusX 位写入 “1” 来清除监视程序(和任何其他)锁存故障。   INTB 未断言故障未排除。如果由于锁存故障导致INTB处于低电平状态,请先按上述方法清除;恩智浦支持部门的官方顺序明确显示清除故障,然后输入配置。   步骤 1:在 MODE2 中设置 CONFIG_EN=1→"禁用 PWM 操作,INTB 保持高电平"。 第 2 步:(可选的)如果您计划重置,请设置 RESET=1(仍在 MODE2 中)→ “INTB 变低,寄存器重置为默认值;禁用 PWM。” 第 3 步:将 RESET 恢复为 0 → “INTB 返回高位;现在你可以写入配置寄存器了。” 保持配置状态(即保持 CONFIG_EN=1),直至写入所有配置寄存器;然后写入 CONFIG_EN=0 退出。   写入 MODE2 (CONFIG_EN=1),发送 MODE2 读数,放弃第一次读数,将第二次读数作为有效值。   BRs, Tomas
記事全体を表示
S32K142 ADC シングルサンプリング こんにちは。PWM信号を取得するためにADCを使用しています。ハードウェア平均化を無効にした後でも、ADCが平均値を表示し続けるのはなぜでしょうか?ADCはどこでデータ平均化を実行しているのでしょうか? PWM信号のハイレベルまたはローレベルの値を取得するにはどうすればよいですか?
記事全体を表示
清除 GPIO ISR 大家好, 我们尝试按照 IMXRT1176 参考手册从 CM7 内核获取 GPIO_DISP_B2_00 引脚的访问权限。 gpio_pin_config_t config = { kGPIO_DigitalInput, 0, kGPIO_IntRisingEdge, }; SETUP(IOMUXC_GPIO_DISP_B2_00_GPIO_MUX5_IO01, 1, AD_PULL_UP + AD_SLEW_SLOW); GPIO_PinInit(GPIO5, 1,&config ); 这发生在启动过程中的引脚复用器中。在应用程序的某处,我们会编写代码来初始化该 gpio 的中断: GPIO_PortClearInterruptFlags(GPIO5, 0xFFFFFFFF); GPIO_PortEnableInterrupts(GPIO5, 1<< 1); NVIC_SetPriority(GPIO5_Combined_0_15_IRQn, configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY); EnableIRQ(GPIO5_Combined_0_15_IRQn); volatile uint32_t a = GPIO_PortGetInterruptFlags(GPIO5); PRINTF (" %lu\ r\n ", a); 此代码打印: 4 294 901 757 这是 0x FFFE FFFD — >--> 0b1111 1111 1111 1110 1111 1111 1111 1101 如你所见,引脚 1 位看起来像 0。 因此,我们可以假设 RESET 对其产生了影响。 但是我不明白的是,为什么其他位设置为 1,为什么第 17 位设置为 0? 参考手册指出 1402/6259: ```当在 GPIO 输入上检测到活动状态(由 相应的 ICR 位确定)并正在等待服务时,将钳位该寄存器的第 n 位 中断状态(高电平有效)。寄存器 的值与 IMR 寄存器的值无关。 检测到激活状态后,相应位将保持设置状态,直至软件清除。 通过将1写入相应的位位置 ```来清除状态标志, 因此我假设所有值都应为0作为默认RESET状态。其他 GPIO 也遵循类似的模式,在 ISR 寄存器中设置了许多位。 谁能告诉我,我在这里误解了什么?感谢您的帮助 🙂 致以最崇高的敬意, Jakub Re: Clearing GPIO ISR 你好@jslota13245、 误解在于,GPIO ISR RESET 值仅描述 RESET 后立即的寄存器状态。它不能保证稍后在启动期间会读取什么软件。ISR 是一个锁存状态寄存器:一旦检测到配置的条件,该位将保持设置状态,直到软件将其清除,这与 IMR 无关。要确定当前启用了哪些中断源,我们可以使用GPIOx->ISR& GPIOx->IMR; 对于 RT1170,恩智浦还记录了勘误表 ERR050643:DISP_B2 引脚在初始上电期间可以看到短暂的内部上拉脉冲,因此在应用程序读取 ISR 之前,GPIO_DISP_B2_00 可能合法地处于待定状态。因此,启动后的非零ISR并不意味着重置失败。 致以最诚挚的问候, Gavin Re: Clearing GPIO ISR 亲爱的@Gavin_Jia, ,非常感谢你的详细答复。 1) 确认一下,您可能已经注意到了,在我之前发送的示例代码中,我们明确向状态寄存器写入 0xffffff ffff 以清除它,我们做了一些无操作循环,操作后我们几乎立即尝试读取它,并在 GPIO->ISR 中得到非零值。这意味着在清零/读取调用之间,硬件已在大部分引脚上注册了中断条件,这很难让人相信,因为我们根本没有使用它们。这发生在 GPIO 初始化的早期启动之后。So what you're suggesting is there is some hardware noise that may cause this behaviour when we write 0xffffffff to GPIO->ISR? 2) By the way, reading forums i found this thread: https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/GPIO-ISR-and-Clearing-ISR/m-p/1059441 答案如下: ''在您的情况下,您需要注意未配置为中断操作的位的中断状态将读作待处理。因此,你不能像 那样只检查中断状态,我想知道这是否是真的,因为这与观察到的行为有些吻合。但是我在参考手册中找不到任何关于它的信息。 再次感谢您的支持! 最美好的祝愿, Jakub
記事全体を表示
マター over Wi-Fi OTAアップデート失敗 - OtaSupport.cでASSERTエラーが発生 (RT1060) こんにちは、 現在、マター over Wi-Fiサーモスタットを開発中ですが、OTA(無線アップデート)の不具合が発生しています。興味深いことに、OTAは、 チップツールですが、 Appleホームアプリ。 環境: MCU: RT1060 フラッシュ: 32MB IoTプロトコル: Wi-Fi経由のマター 物質バージョン: NXP Matter 1.4.0.2.1 生態系: Apple ホームPod、iPhone 16 Pro(Apple ホームアプリ) エラーの詳細: このプロセスにより、以下のアサーションエラーが発生します。 エラー: ASSERT エラー " pMsg != NULL " ファイル: .../middleware/wireless/framework/services/OtaSupport/Source/OtaSupport.c ライン: 1283 関数: OTA_PostWriteToFlash 問題の概要: OTAアップデートは 成功 使用時に チップツール。 OTAアップデート 失敗する 使用時に Apple HomePodとiPhone 16 Pro(Apple Homeアプリ) Appleのエコシステム内でこのエラーがなぜ発生するのか、またはこのアサーションエラーを修正する方法を知っている人はいますか? OtaSupport.c? ご回答をお待ちしています。     Re: Matter over Wi-Fi OTA Failure - ASSERT ERROR in OtaSupport.c (RT1060) プラットフォーム:IW610 開発環境:VS Code 用 MCUXpresso を使用したサーモスタット開発:Windows 版 マター (24.12.71) OS: FreeRTOS 問題:OTAアップデート中に頻繁に発生する Re: Matter over Wi-Fi OTA Failure - ASSERT ERROR in OtaSupport.c (RT1060) こんにちは、 @pooisonner お使いのWi-Fiチップセットを教えていただけますか? また、SDKのバージョンも教えてください。どのサンプルコードを使用していますか? MCUXpresso IDE、またはVSCode用のMCUXpressoプラグインを使用していますか?RTOSまたはZephyr OSを使用していますか? さらに詳しい情報と手順を教えていただければ、より的確なサポートを提供できます。 よろしくお願いいたします。 Christine。 Re: Matter over Wi-Fi OTA Failure - ASSERT ERROR in OtaSupport.c (RT1060) こんにちは、 @pooisonner 再現手順の詳細を教えていただけますか? この問題が再現できるかどうか、まずは自分の環境で試してみたいと思います。 もし参照したリンクがあれば、そのリンクも私に教えてください。 こうすることで、私たちは同じ認識を共有し、問題を理解することができるでしょう。そうすることで、問題をできるだけ早く解決できるようお手伝いできます。 ご協力ありがとうございます。 よろしくお願いいたします。 Christine。 Re: Matter over Wi-Fi OTA Failure - ASSERT ERROR in OtaSupport.c (RT1060) こんにちは、 @pooisonner 再現手順の詳細を教えていただけますか? この問題が再現できるかどうか、まずは自分の環境で試してみたいと思います。 もし参照したリンクがあれば、そのリンクも私に教えてください。 こうすることで、私たちは同じ認識を共有し、問題を理解することができるでしょう。そうすることで、問題をできるだけ早く解決できるようお手伝いできます。 ご協力ありがとうございます。 よろしくお願いいたします。 Christine。 Re: Matter over Wi-Fi OTA Failure - ASSERT ERROR in OtaSupport.c (RT1060) こんにちは、 @pooisonner 再現手順の詳細を教えていただけますか? この問題が再現できるかどうか、まずは自分の環境で試してみたいと思います。 もし参照したリンクがあれば、そのリンクも私に教えてください。 こうすることで、私たちは同じ認識を共有し、問題を理解することができるでしょう。そうすることで、問題をできるだけ早く解決できるようお手伝いできます。 ご協力ありがとうございます。 よろしくお願いいたします。 Christine。 Re: Matter over Wi-Fi OTA Failure - ASSERT ERROR in OtaSupport.c (RT1060) こんにちは、 @pooisonner まだ私たちのサポートが必要ですか? それとも、既にご自身で問題を解決されましたか? もし引き続きサポートが必要な場合は、再現手順の詳細をお知らせいただけますでしょうか? もし参照したリンクがあれば、そのリンクも私に教えてください。 こうすることで、私たちは同じ認識を共有し、問題を理解することができるでしょう。そうすることで、問題をできるだけ早く解決できるようお手伝いできます。 ご協力ありがとうございます。 よろしくお願いいたします。 Christine。 Re: Matter over Wi-Fi OTA Failure - ASSERT ERROR in OtaSupport.c (RT1060) こんにちは、 @pooisonner まだ私たちのサポートが必要ですか? それとも、既にご自身で問題を解決されましたか? もし引き続きサポートが必要な場合は、再現手順の詳細をお知らせいただけますでしょうか? もし参照したリンクがあれば、そのリンクも私に教えてください。 こうすることで、私たちは同じ認識を共有し、問題を理解することができるでしょう。そうすることで、問題をできるだけ早く解決できるようお手伝いできます。 ご協力ありがとうございます。 よろしくお願いいたします。 Christine。
記事全体を表示
TDA1301T - シリアルプロトコルに関するドキュメント こんにちは、 現在、古いPhilips CD-iプレーヤー内のTDA1301Tと他のコンポーネント間の通信について調査しているのですが、シリアルプロトコルに関するドキュメントは入手可能でしょうか? データシートには、情報はリクエストに応じて提供されると記載されていますが、古いデータシートであることは承知しています。そのため、既に情報をお持ちの方がいらっしゃれば、共有していただけるとありがたいです。 アドバイスをいただければ幸いです。 皆さん、乾杯! Re: TDA1301T - Serial Protocol Documentation こんにちは、 @ogarveyさん 投稿ありがとうございます。 ご指摘のICは既に旧式化しており、それに関するドキュメントは削除されています。 ご迷惑をおかけして申し訳ございません。
記事全体を表示
S32K148 FlexCAN2 不工作 你好 我正在尝试启用 S32K148 上的 FlexCAN2,同时使用 Eclipse OpenBSW 项目。 FlexCAN0 正常工作,但 FlexCAN2 无法传输有效帧。 配置: MCU: S32K148 CAN 实例:FlexCAN2 别针 PB12 → CAN2_RX (ALT4) PB13 → CAN2_TX(ALT4) 外部收发器:以 5V 电压供电的 MCP2551 总线终端:总计 ~60 Ω 比特率500 kbps(经典 CAN) 观察到的行为 总线上只能观察到错误帧 发生位填充错误 未收到 ACK 问题 MCP2551 (5V 收发器)与 S32K148 FlexCAN I/O 电平兼容吗? PB12/PB13 ALT4 是 FlexCAN2 的正确引脚吗? FlexCAN0 和 FlexCAN2 之间是否存在需要考虑的特定时钟或配置差异? 如能得到任何指导,将不胜感激。 谢谢! Re: S32K148 FlexCAN2 not working 嗨,@sousou54、 1.我认为 MCP2551 的兼容性没有问题。 2.是的。 3.无需额外配置。CAN0/1/2 的时钟频率相同。 您可以尝试按步骤测试您的节点... 尝试在不使用收发器的情况下将 TX/RX 引脚连接在一起并发送信息。您应该会看到由于缺少 ACK 而反复出现的信息。TX 错误计数器为 0x80,模块处于错误被动状态。如果出现其他情况,则说明针脚设置有误。 将 TX/RX 引脚正常连接到收发器,并使其与总线断开连接。发送信息您应该会看到与上面相同的内容。如果没有,收发器可能被禁用或未终止。 我从 MCP2551 数据表中看到,您必须通过将 Rs 引脚连接到 Vss 来选择高速模式。 使用其他节点将收发器连接到总线(例如CAN 工具),发送/接收信息。如果检测到任何错误,很可能是 CAN 位定时不正确。确保所有节点使用相同的比特率和采样点。 您可以使用以下工具:MPC5xxx/S32Kxx/LPCxxxx:CAN / CAN FD 位定时计算。 最后,这是定制板,还是你在使用 S32K148EVB?如果这是定制板,请按照 AN5426:S32K1xx 硬件设计指南中的说明检查连接。 致以最诚挚的问候, Julián
記事全体を表示
[滥用] 发布者:@RishavKaaraTech /板:TapLinx-SDK /举报人:rkzelkdx rkzelkdx 报告了 @RishavKaaraTech 发布的帖子 RFIDDiscover 工具已被收购,但如何使用它 ,原因如下: 原因: 详情: < a href="https://hetnieuweteamwerken.be/forums/forum/speman-buy-low-price-hbqrl"> online最便宜的 speman < a href="https://slp.millingtonpubliclibrary.org/content/speman-buy-cod-fertility-pill"> 购买多伦多 speman < a href="http://www.familygalactictravel.com/node/3214"> 折扣speman saturday delivery fast < a href="https://hetnieuweteamwerken.be/forums/forum/speman-buy-low-price-hbqrl"> where to buy next speman < a href="https://oregonweddingday.com/your-couple-name-3695"> bestspeman 5kmtl 的价格 < a href="http://hubram.cz/content/speman-can-i-purchase"> 在哪里可以买到 speman < a href="http://en.sp-journal.ru/article/19262"> 药房speman canadian pharmacy < a href="https://cadel.ru/forum/speman-purchase-rx-bradford"> can i buy speman drug < a href="https://mnbride.com/your-couple-name-4220"> where to order next speman < a href="https://investor18.ru/investors/speman-generic-online-usa"> best价格 speman 检查 internet < a href="https://arendville.ru/speman-buy-low-price-hbqrl"> orderspeman store no script < a href="http://dev.nikol-buket.com/content/speman-pharmacy-online-germany"> pharmacy德国 speman 在线 < a href="https://jeunescathos-bxl.org/fr/content/speman-where-order-next"> 如何购买 speman < a href="http://xn--80aah2bgapnqg.xn--p1ai/job/speman-cost-price-online-why"> 如何订购 speman < a href="https://www.vgame.ca/node/47884"> 购买处方 speman 无需购买 < a href="https://dev.beautynbrushes.com/services-provided/short-cut-maroonimmortalep-1"> speman购买 hn8hb < a href="http://ph-ed-plus.nspu.ru/article/17987"> speman税务摊销收益 no rx https://www.rapidservice.com.ec/es/content/speman-buy-brand-shop-buy">speman 通过密码支付 < a href="https://darkmetalmush.net/history/speman-best-price-5kmtl"> cheapspeman no prescrip < a href="https://www.tripmayntra.com/speman-get-no-prescription-fedex"> buy处方 speman without buy < a href="https://www.rapidservice.com.ec/es/content/speman-buy-brand-shop-buy"> cheapspeman no prescrip < a href="https://museusvalenciapre.grupotecopy.es/en/node/4090"> getspeman no prescription fedex < a href="https://www.ziveknihy.sk/autor/speman-generic-pills"> buyingspeman florida < a href="https://www.rapidservice.com.ec/es/content/speman-buy-brand-shop-buy"> FDAapproved generic speman mogwt < a href="https://direct.needshub.com/node/28534"> how购买斯皮曼片 < a href="https://stage.cc.radiant.digital/node/3152"> want购买 speman < a href="http://wsb2.pl/content/speman-delivery-cheap"> 在网上购买 speman 药片 < a href="https://www.tripmayntra.com/speman-get-no-prescription-fedex"> 购买speman next day delivery < a href="https://www.intellectualpedia.org/countyelectron-speman-buy-low-price-hbqrl"> buy品牌 speman 商店购买 < a href="http://xn--80ab2anoq0a.xn--p1ai/art/speman-buy-mastercard-without-prescription"> 购买speman low price hbqrl < a href="https://www.thebiketube.com/topeak-francesca"> discountspeman from canada < a href="https://www.intellectualpedia.org/countyelectron-speman-buy-low-price-hbqrl"> purchasespeman 样品 < a href="http://pi5ny.com/node/5148"> generic speman fedex wyoming < a href="http://pi5ny.com/node/5148"> pharmacy speman store < a href="https://www.itconnecta.es/speman-cost-evohaler-trimethoprim"> cheapspeman no prescrip < a href="http://polden.info/story/speman-get-rx-no-prescription"> for sale speman ware < a href="http://dev.nikol-buket.com/content/speman-pharmacy-online-germany"> genericspeman fedex wyoming < a href="https://slp.millingtonpubliclibrary.org/content/speman-buy-cod-fertility-pill"> discounted speman purchase buy check < a href="http://xn--80aah2bgapnqg.xn--p1ai/job/speman-cost-price-online-why"> buyspeman missouri < a href="http://old-bxl.jeunescathos.org/fr/content/speman-cost-cheap-buy"> genericspeman middlesbrough 发表链接 :https://community.nxp.com/t5/TapLinx-SDK-TagWriter-and/RFIDDiscover-tool-acquired-but-how-to-use-it/m-p/2164324#M205 帖子作者 @RishavKaaraTech|Email Author 报告人:rkzelkdx |Email Reporter 报告的帖子有 3 个回复。
記事全体を表示
U4N-如何设置 Aion 2 私人服务器进行测试 为什么要设置私人服务器? 私人服务器可让您完全控制游戏环境。你可以 在没有时间压力的情况下,测试班级技能、轮换和连击。 尝试装备升级或强化。 反复运行 PvP 或 PvE 场景。 通过观察受控环境中的行为,更快地学习游戏机制。 对于许多玩家来说,这尤其有助于他们尝试在官方服务器上有风险或昂贵的策略。 开始前的准备工作 在建立私人服务器之前,您需要做好以下准备: 体面的电脑 私人服务器可以在本地运行,但性能取决于 CPU 和内存。配备至少 8GB 内存和现代 CPU 的中档机器足以进行小规模测试。 Aion 2 客户端副本 您需要游戏客户端来连接服务器。确保它与您计划运行的服务器版本一致。 服务器文件 Aion 2 的私人服务器文件经常在社区论坛中共享。查找明确标注用于测试或开发的版本。避免未知来源,降低恶意软件风险。 数据库软件 大多数私人服务器使用 MySQL 或 MariaDB 来存储游戏数据。您需要安装和配置其中一个数据库。 基本网络知识 你不需要成为一名网络工程师,但了解端口、IP 地址和防火墙的工作原理非常重要。客户端必须可以连接到服务器。 步骤 1:安装服务器软件 拿到服务器文件后,第一步就是安装: 提取文件将它们 放在计算机上的专用文件夹中。避免使用系统目录,以减少潜在冲突。 配置服务器设置 打开配置文件。最重要的设置包括 IP 地址:将其设置为本地计算机的 IP 或 127.0.0.1(仅用于本地测试)。 端口号:确保这些端口空闲。典型的 Aion 2 端口通常都包含在文档中。 数据库连接:输入数据库用户名、密码和数据库名称。 运行安装脚本 许多私有服务器包都附带用于初始化数据库的脚本。运行这些操作可创建必要的表格和默认数据。 启动服务器 执行服务器程序。监测控制台是否有任何错误消息。常见问题包括数据库凭证错误或端口已在使用中。 步骤 2:连接客户端 服务器运行后,您需要告诉您的 Aion 2 客户端与其连接。 修改客户端配置 查找配置文件,通常命名为 Aion2.ini 或类似文件。将服务器 IP 更改为您的私人服务器使用的 IP。 测试连接 启动游戏客户端并登录。如果遇到连接错误,请检查防火墙设置并确保服务器正在运行。 创建测试账户 在私人服务器上,您可以创建无限账户进行测试。使用这些账户来尝试不同的版本和装备设置。 步骤 3:使用服务器进行测试 连接后,您就可以开始使用服务器进行任何测试,而不会产生任何后果。一些实用的方法包括 技能轮换测试:运行假人或小怪来测量技能时机和伤害输出。 齿轮实验:测试不同的齿轮组合和升级。许多玩家还会模拟市场,查看物品对游戏进程的影响。 经济模拟:有些玩家喜欢模拟贸易、手工艺和基纳积累。如果您想测试 kinah 获取策略,私人服务器是最佳选择,因为您可以模拟大规模交易、物品种植,甚至使用 Aion 2 kinah 快速交付功能等快捷方式进行受控实验。 步骤 4:常见问题和解决方案 即使是经验丰富的玩家也会遇到常见问题。下面是几个问题及解决方法: 服务器崩溃:通常是由于服务器文件过时或不匹配造成的。确保服务器文件与客户端版本完全一致。 数据库错误:检查凭证和数据库名称。有时会丢失表结构;请重新运行初始化脚本。 延迟或性能缓慢:减少同时在线玩家或 NPC 的数量,并确保电脑符合推荐的规格。 连接问题:验证 IP 地址,在防火墙中打开端口,并确认客户端配置与服务器设置相匹配。 步骤 5:维护服务器 即使是测试,正确维护服务器也是非常有用的: 经常备份:定期备份数据库,避免丢失进度。 谨慎更新服务器文件:如果您下载了更新的版本,请在将其应用到主测试环境之前对其进行单独测试。 记录更改:记录对设置、技能或数据库所做的任何修改。这有助于排除意外行为的故障。 法律和道德方面的考虑 重要的是要记住,私人服务器存在于灰色地带。它们只能用于个人测试和学习,不得用于公开传播或商业目的。避免将私人服务器连接到官方账户,以保护您的数据并遵守游戏的服务条款。 建立一个私人 Aion 2 服务器是一种有效的学习和测试方法,而不会给您的主账户带来风险。按照这些步骤--准备正确的工具、安装服务器文件、配置客户端和维护服务器--您就可以安全地尝试使用技能、装备和游戏中的策略。对于对实际测试感兴趣的玩家来说,即使是像经济模拟这样复杂的过程,也可以在受控环境中进行处理,包括尝试有效管理游戏内货币的概念,如 Aion 2 kinah 快速交付。 私人服务器不仅有助于测试,还有助于更深入地了解游戏。只要有耐心、精心设置并注重细节,您就能在 Aion 2 中创造出改进游戏的宝贵工具。
記事全体を表示
S32K314のLIN通信問題について こんにちは。現在、S32K314 チップの LIN ドライブに取り組んでいます。どのように進めればよいか教えてください。NXPチップの取り扱いは初めてです。S32K314 の LIN の初期化コードと送受信コードはどうすれば見つかりますか?ペリフェラルを設定した後、初期化関数と送信関数を呼び出す「RTD」フォルダが内部にあることがわかりました。しかし、通信は失敗しました。開発のための提案をいくつかいただけませんか?これは私にとって非常に重要です。ありがとう。 Re: Regarding the LIN communication issue of S32K314 こんにちは、 どのような RTD を使用しているかはわかりませんが、RTD ドライバーのみ、または LIN スタック (適切にインストールされている場合) を使用した、参照できる LIN デモ例がいくつかあります。デモは直接 S32K314 用ではありませんが、参考として使用できます。 「ファイル > 新規 > 例からのS32DSプロジェクト」からインポートできます。 BR、ペトル Re: Regarding the LIN communication issue of S32K314 こんにちは。S32KDS のピン構成およびペリフェラル構成ツールを使用して LIN を構成しました。ペリフェラルの設定では、ドライバの Lpurat_Lin を使用して設定を行いました。コードを設定して更新した後、RTD フォルダーに LIN 関連のファイルがあることがわかりました。構成から取得したパラメータを使用して、Lpuart_Lin_Ip.cのLpuart_Lin_Ip_Init関数とLpuart_Lin_Ip_SendFrame関数に渡しました。開発用のファイル。しかし、バスは LIN データを検出せず、デバッグに Debug を使用すると、Lpuart_Lin_Ip_SendFrame 関数の関連ブレークポイントに到達できない状況も発生しました。 Re: Regarding the LIN communication issue of S32K314 こんにちは、 フレームが実際に送信されていることを確認するために、スコープ/アナライザーを使用して TX/RX/LIN ラインを測定できますか? LIN トランシーバが正しく接続され、電源が供給され、アクティブになっていることを確認してください。このCASEの場合、フレームを公開するだけで、完全なLINフレームが表示されるはずです。 そうでない場合、問題は割り込み処理に関連している可能性があるので、LPUART割り込みが適切に有効になっていることを確認してください。 BR、ペトル Re: Regarding the LIN communication issue of S32K314 Lpuart_Lin_Ip_HwSetIntMode(Base, LPUART_LIN_IP_INT_BREAK_DETECT, TRUE); こんにちは。この機能はモードの初期化中にのみ見つけました。オシロスコープを使用してバスをチェックしましたが、波形は検出されませんでした。さらに、私のチップは通常の電源環境で動作しています。 私が作成したコードの流れによると、この関数は割り込みを有効にし、同期間隔セグメントの検出を実行します。同期間隔セグメントが検出された場合、割り込みが発生し、同期セグメントの検出が行われ、続いてPID検出が行われます。
記事全体を表示
UART 経由でさまざまな長さのデータを受信するにはどうすればよいでしょうか? おい ! 私は s32k144 評価ボードを使用しており、MODBUS プロトコルを使用して UART 経由でデータを受信するために UART_PAL ライブラリを使用していました。while ループで非ブロッキング uart_receivedata() API を使用し、コールバックを使用して受信イベントをチェックし、データを受信していました。 受信するデータの長さが確実になるまでは問題なく動作していましたが、受信するデータの長さが固定されておらず、時間とともに変化する場合はどうすればよいでしょうか。 同様のスレッドをいくつか見ましたが、どのスレッドも絶対的な解決策を示していませんでした。適切な解決策をご指導ください。可能であれば、コードやスクリーンショットを提供してください。 スクリーンショットを添付しましたが、ここでは、switch ステートメント内で、受信されるデータの長さがさまざまなケースで不確実です。 解決策を教えてください@Robin_Shen よろしくお願いいたします。 アダルシュ。 Re: How to receive data of varying length over UART? こんにちは。485 で可変長データを受信する問題は解決したかお伺いしたいです。私も現在同じ問題に遭遇しており、解決できていません。 Re: How to receive data of varying length over UART? このガイドには記載されていないが、 @Robin_Shenが送信したリンクには記載されているものがもう 1 つあります。こちらにも記載させていただきます。 6.LPUART_DRV_StartReceiveDataUsingInt()関数でCTRL[IDLE]を有効にする このガイドを作成していただいた@Adarshnandaに心より感謝します。 Re: How to receive data of varying length over UART? HI 私はLPC804でUART経由でデータを受信しようとしています。mcuxpresso IDEsを使用していますが、どなたかコードを提供していただき、データを受信する手順を教えていただけませんか。 Re: How to receive data of varying length over UART? こんにちは@Robin_Shen 、 Threadをチェックしてみましたが、うまくいきました。唯一混乱する部分は、スレッドには DMA 経由でデータを受信することに関する回答がいくつかあり、割り込み経由でデータを受信することに関する回答もいくつかあることです。 INTERRUPTS を使用して UART_IDLE_LINE_RECEIVE を実装する場合に従うべき手順を簡単にまとめておきます。 LPUART ドライバを内部に追加する必要があることに注意してください。 1.LPUART_DRV_INIT 関数では、ペリフェラルレジスタを設定して IDLE LINE INTERRUPT を有効にし、IDLE フラグが設定される前に受信するアイドル文字の数を設定する必要があります。それについてはリファレンスマニュアルを参照してください。アイドル キャラクターを 8 人用に設定し、スクリーンショットをここに添付します。 2. LPUART_DRV_IRQHandler 内で、IDLE_LINE_DETECT フラグが設定されているかどうかを確認し、設定されている場合は関数 LPUART_DRV_RxIdleCallback を呼び出す必要があります (デフォルトでは存在しないため、ユーザーが定義する必要があります)。注意 - この関数は、IRQ_Handler の開始時に呼び出す必要があります。 3. ファイル (callbacks.h) の enum uart_event_t 内で、イベント UART_EVENT_IDLE_DETECT を定義します。 4. LPUART_DRV_RxIdleCallback を定義し、その関数プロトタイプを提供します。 5. その後、アプリケーションで使用できるようになります。 @Robin_Shen さん、ありがとうございます。これが他の人にも役立つことを願っています。 よろしくお願いいたします。 アダルシュ。 Re: How to receive data of varying length over UART? こんにちは、アダルシュさん 申し訳ありませんが、最近の S32K1 SDK/RTD ドライバーではアイドル検出は実装されていません。S32K144 LPUART IDLE ライン割り込み構成の説明を参照しましたか?LPUART アイドル ライン割り込みを取得するには、SDK ドライバを変更する必要があります。 よろしくお願いします、 ロビン --------------------------------------------------------------------------------- 注記: - この投稿があなたの質問への回答である場合は、「正解としてマーク」ボタンをクリックしてください。ありがとう! - スレッドは最後の投稿から7週間フォローされます。それ以降の返信は無視されます。 後ほど関連する質問がある場合は、新しいスレッドを開いて、閉じたスレッドを参照してください。 --------------------------------------------------------------------------------- Re: How to receive data of varying length over UART? 7. LPUART_DRV_GetReceiveStatus 関数が呼び出されて受信長が計算され、LPUART_DRV_AbortReceivingData 関数が呼び出されて最初のフレームが処理された後にデータの受信が再開され、受信バッファが 0 から開始されます。 これが私が追加したコンテンツです。デバッグは正常に完了しました。前回のコンテンツを共有してくださった専門家の皆様に感謝いたします。皆様、ありがとうございました。
記事全体を表示
LED 闪烁示例在 172HDQFP 上有效,但在 100HDQFP 上无效 我使用恩智浦提供的 LED 闪烁示例 MATLAB 仿真,并在S32K312 (172HDQFP)微控制器上运行。它在这个板上运行正常。 但是,当我在带有 S32K312 (100HDQFP) 的自定义主板上使用相同的示例时,它不起作用。 请帮我解决这个问题。 软件规格: MATLAB: 2025b S32K3x 的 MBDT: 1.8.0 S32DS: 3.5.0 Re: LED Blinking Example Works on 172HDQFP but Not on 100HDQFP 你好,@achauhan、 我们目前支持 172 个引脚的 S32K312 封装。对于使用 S32K312‑Q100 软件包的自定义板,最新的 S32K3 工具箱不提供官方支持。 您需要确保根据您的定制板设计正确布线所有引脚,因为代码包从 172 个引脚变为 100 个引脚,有些引脚要么缺失,要么分配给不同的功能。 在正式支持 S32K312-Q100 之前,您需要手动调整引脚配置,以匹配您的定制硬件设计。 请参考以下主题: - 引脚配置 -DIO 引脚配置 顺祝商祺! 德拉古
記事全体を表示