Multi Source Translation Content

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

Multi Source Translation Content

讨论

排序依据:
Consulting on the compatibility of FS27 RTD and BMS GEN2 RTD Hi Experts, The customer's new BMS project wants to use S32K358 + FS27 + BMS GEN2 SDK. I learned from the BMS team that: BMS GEN2 SDK AUTOSAR 4.4 R21-11 Version 0.9.1 CD05 and BMS GEN2 SL SDK AUTOSAR 4.4 R21-11 Version 0.9.1 CD05 will be available next week. This supports S32K3 RTD 6.0.0 integration. The BMS GEN2 SDK will be migrated to S32K3 RTD 6.0.0 in BMS release v1.0.0 somewhere in Q1 '26. In other words, the BMS GEN2 SDK will be compatible with S32K3 RTD 6.0.0 in the near future. The customer needs a 24V platform and therefore wants to use FS27 instead of FS26. I found the following two versions of FS27 from Automotive SW - SBC/PMIC - Real Time Drivers: S32K3xx SBC FS27 R21-11 0.8.0 based on S32K3 RTD 5.0.0 SBC FS27 R23-11 1.0.0 based on S32K3 RTD 7.0.0 Q1. The customer is concerned that the drivers for FS27 and BMS GEN2 SDK are incompatible because the S32K3 RTD versions do not appear to be consistent.  If S32K3 RTD 6.0.0 is selected in the BMS GEN2 SDK, will there be any problems if the customer uses S32K3xx SBC FS27 R21-11 0.8.0 or SBC FS27 R23-11 1.0.0? Q2. Does the FS27 have a driver based on S32K3 RTD 6.0.0? Would you please help me? Thank you for the help in advance! Best Regards, Robin Here is the information of customer: Contact Name                TengHsaing Wen Email (Contact)              [email protected] Company                        XINGMOBILITY AA SW - External Device Priority: MEDIUM Source: Direct Customer Re: Consulting on the compatibility of FS27 RTD and BMS GEN2 RTD Hi Viktor, Thank you for your information. The "BMS GEN2 SDK AUTOSAR 4.4 R21-11 Version 0.9.1 CD05" based on S32K3 RTD 6.0.0 is not yet available for download. Once it becomes available for download, I will at least test whether it can be compiled successfully. Best Regards, Robin Re: Consulting on the compatibility of FS27 RTD and BMS GEN2 RTD Hello Robin, there is no dedicated release for RTD 6.0.0, but the latest version (FS27 1.0.0) should be backwards compatible with it. In case of any issues, please let us know. Best regards, Viktor Re: Consulting on the compatibility of FS27 RTD and BMS GEN2 RTD The topic has been redirect to the team to investigate it. Contact point: Razvan Tilimpea / Cristian Durla or Viktor Obr Re: Consulting on the compatibility of FS27 RTD and BMS GEN2 RTD Hi Viktor, "BMS GEN2 SDK AUTOSAR 4.4 R21-11 Version 0.9.1 CD05" is now available for download.  The customer questioned whether the AUTOSAR versions of the two drivers, R23-11 and R21-11, would differ significantly and cause compatibility issues if they were paired with SBC FS27 R23-11 1.0.0. Best Regards, Robin Re: Consulting on the compatibility of FS27 RTD and BMS GEN2 RTD Hi @viktorobr , "BMS GEN2 SDK AUTOSAR 4.4 R21-11 Version 0.9.1 CD06" is now available for download.  The customer questioned whether the AUTOSAR versions of the two drivers, R23-11 and R21-11, would differ significantly and cause compatibility issues if they were paired with SBC FS27 R23-11 1.0.0. Best Regards, Robin Re: Consulting on the compatibility of FS27 RTD and BMS GEN2 RTD Hi Robin, compatibility between different Autosar versions is tricky, we would have to compare all of the drivers used by both of the components you try to integrate and I'm not 100% familiar with the BMS SDK. I can tell you that between the FS27 versions and the drivers it uses we didn't notice major changes between R21-11 and R23-11, there might be some minor differences that will appear right away when you combine the components in one project (version specific macros etc.), but from functional point of view it should still behave the same. Best regards, Viktor
查看全文
i.MX RT1061 Serial non-QuadSPI NOR flash boot Hi, I have a project using the i.MX RT1061 with a W25Q128JVSIQ external flash. I'm looking to also support the W25Q128JVSIM (due to availability). However, the W25Q128JVSIM doesn't come with the QE-bit (Quad Enable) locked to enabled. When trying to boot from it I see what I assume is the boot ROM trying to execute a Fast Read Quad I/O without first enabling the QE-bit (see screenshots for the two first commands sent). It seems to first read the FlexSPI Configuration Block (which is expected), but then the quad read fails and nothing happens (bootloader isn't started). I suspect I have to ensure the QE-bit is enabled during production for this to work, but I was curious whether the i.MX RT1061 supports booting from non-QuadSPI NOR flash at all? It kind of seems that only Quad and Octal flash are supported (see screenshot for BOOT_CFG1 fuse)? Thanks, Daniel i.MXRT 106x Re: i.MX RT1061 Serial non-QuadSPI NOR flash boot Hi @Habib_MS, Thanks for your reply! Hmm...my understanding was that the quad_mode_setting would only be applied when calling flexspi_nor_get_config, am I misunderstanding something? Is there a way to configure the BootROM to access the flash as QuadSPI through the FlexSPI Configuration Block? Thanks, Daniel Re: i.MX RT1061 Serial non-QuadSPI NOR flash boot Hello @MulattoKid, Booting from non (serial)‑QuadSPI NOR flash is supported. for more details about which flash devices are supported, please refer to Chapter 9.6 “Boot devices” in the RM. I also understand that you highlighted the BOOT_CFG1[3:2] bits in your image. These fields are used by the auto‑probe mechanism, as described in their definition. Therefore, these bits only provide additional information about the flash device rather than controlling its configuration. Concerning the QE bit configuration of the QSPI NOR flash: normally, selecting the correct boot option configuration is sufficient. BR Habib Re: i.MX RT1061 Serial non-QuadSPI NOR flash boot I've found why the BootROM sends quad read commands right after reading the FCB: it's because our bootloader had a custom LUT specified in the FCB. Changing the LUT entry for reading also changed the SPI traffic. As mentioned, the reason I'm looking at this is that I want to be able to support both W25Q128JVSIQ and W25Q128JVSIM, with W25Q128JVSIM not having the QE bit set by default from the factory. I want to set the QE bit during our own production. The way I've been investigating is through using a JLink script to control the FLexSPI peripheral directly. However, I'm having some trouble. I have a command sequence for reading out the Status Register-2 of the W25Q128JVSIM, but it only works if the MCU has first booted into our application (which it fails to do unless the QE bit is already set). If the flash is empty and the BootROM doesn't have anything to boot the JLink script doesn't work, so I'm wondering if there's anything additional setup that's required to configure the FlexSPI peripheral? Here's the script for reference: ExitOnError 1 Device MIMXRT1061xxx5B SelectInterface SWD Speed 4000 Connect halt // Enable clock w4 0x400FC078, 0xFFFFFFFF // Reset module w4 0x402A8000, 0x00000002 sleep 20 w4 0x402A8000, 0x00000000 sleep 20 // Clear errors w4 0x402A8014, 0xFFFFFFFF w4 0x402A80B4, 0xFFFFFFFF sleep 20 // 2) Update LUT to include Read Status Register 2 and Write Status Register 2 commands w4 0x402A8018, 0x5AF05AF0 // Write magic value (i.MX RT1060 reference manual rev3, p.1612) sleep 20 w4 0x402A801C, 0x2 // Unlock LUT (i.MX RT1060 reference manual rev3, p.1612) sleep 20 // LUT entry structure (i.MX RT1060 reference manual rev3, p.1709): // [31:26] = opcode1 // [25:24] = num_pads1 // [23:16] = operand1 // [15:10] = opcode0 // [ 9: 8] = num_pads0 // [ 7: 0] = operand0 // #include // // #define OPERAND_0(x) (x << 0) // #define NUMPADS_0(x) (x << 8) // #define OPCODE_0(x) (x << 10) // #define OPERAND_1(x) (x << 16) // #define NUMPADS_1(x) (x << 24) // #define OPCODE_1(x) (x << 26) // // #define kFLEXSPI_Command_STOP 0x0 // #define kFLEXSPI_Command_SDR 0x1 // #define kFLEXSPI_Command_RADDR_SDR 0x2 // #define kFLEXSPI_Command_WRITE_SDR 0x8 // #define kFLEXSPI_Command_READ_SDR 0x9 // #define kFLEXSPI_1PAD 0x0 // // #define FLEXSPI_LUT_SEQ(cmd0, pad0, op0, cmd1, pad1, op1) (OPERAND_0(op0) | NUMPADS_0(pad0) | OPCODE_0(cmd0) | OPERAND_1(op1) | NUMPADS_1(pad1) | OPCODE_1(cmd1)) // // int main() // { // printf("WriteEnable: 0x%08X\n", FLEXSPI_LUT_SEQ(kFLEXSPI_Command_SDR, kFLEXSPI_1PAD, 0x06, kFLEXSPI_Command_STOP, kFLEXSPI_1PAD, 0)); // printf("ReadStatusRegister2: 0x%08X\n", FLEXSPI_LUT_SEQ(kFLEXSPI_Command_SDR, kFLEXSPI_1PAD, 0x35, kFLEXSPI_Command_READ_SDR, kFLEXSPI_1PAD, 0x04)); // printf("WriteStatusRegister2: 0x%08X\n", FLEXSPI_LUT_SEQ(kFLEXSPI_Command_SDR, kFLEXSPI_1PAD, 0x31, kFLEXSPI_Command_WRITE_SDR, kFLEXSPI_1PAD, 0x04)); // // return 0; // } // Each command sequence in the LUT is 4 entires with each entry being 4 bytes (one word) w4 0x402A82E0, 0x24040435 // LUT[14 * 4] = Read Status Register-2 command sequence sleep 20 w4 0x402A8018, 0x5AF05AF0 // Write magic value (i.MX RT1060 reference manual rev3, p.1612) sleep 20 w4 0x402A801C, 0x1 // Lock LUT (i.MX RT1060 reference manual rev3, p.1612) sleep 20 // Read Status Register-2 w4 0x402A8080, 0x80000000 // Clear sequence pointer for port A w4 0x402A8014, 0x1F // Clear pending status w4 0x402A80A0, 0x0 // Set base address w4 0x402A80B8, 0x1 // Reset RX FIFO w4 0x402A80A4, 0xE0001 // SEQID=14, SEQNUM=1, 1 byte w4 0x402A80B0, 0x00000001 // Trigger IP command sleep 50 Re: i.MX RT1061 Serial non-QuadSPI NOR flash boot Hello @dafela, You can use the FlexSPI NOR APIs to enable the QE bit, using the configuration mentioned in my previous message. For additional details on the different methods available to enable the QE bit, please refer to item 19 in this post. You can also find more information about the FlexSPI ROM API in Section 9.13.2 of the RM. On the other hand, if you need guidance on using J-Link, this post provides a general overview along with several useful considerations that may help you. BR Habib Re: i.MX RT1061 Serial non-QuadSPI NOR flash boot Thanks, I'll take a look
查看全文
MMA8693 加速度计的参考寄存器设置 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 我能否使用 MMA8693 找到新项目的参考寄存器设置? 现在我只想让它感知到明显的动作。(例如:停止 → 移动) 我想可能是在图形用户界面上找到的。 加速度传感器 Re: Reference register setting for MMA8693 accelerometer <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 嗨,HJ、 对不起,我昨天不在办公室,耽误了您的回复。 无论选择的动态范围如何,运动和瞬态检测功能的阈值分辨率都是 0.0625g/LSB,而且无法提高。您说得没错,瞬态检测功能只适用于 MMA8652FC,而且除非 HPF_BYP 位被设置,否则它分析的是高通滤波数据。 此致, 托马斯 Re: Reference register setting for MMA8693 accelerometer <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 嗨,托马斯、 我删除了之前的问题,因为我找到了问题所在。 门槛有问题。 我还有一个问题。 是否有可能使 MMA8653 不受重力等直流因素的影响而变得更加灵敏? 我想,如果使用 MMA8652 及其 HPF,可能会很容易。 但我的客户想用 MMA8653 找到路。 请给我一点提示。 谢谢! Re: Reference register setting for MMA8693 accelerometer <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 谢谢! Re: Reference register setting for MMA8693 accelerometer <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 嗨,HJ、 能否请您说明所用加速度计的确切零件编号?如果是 MMA8653FC,则可以使用嵌入式移动侦测功能。有关该功能的更多信息,包括寄存器设置示例,请参阅AN4070。 希望对您有所帮助。 此致, 托马斯 PS: 如果我的回答有助于解决您的问题,请标记为"正确" 或 "有帮助"。谢谢。
查看全文
Zephyr SDK install error in Windows: setup.cmd Toolchain download failed Recently some Windows users started reporting issues installing the Zephyr SDK, required for building Zephyr applications.  Users first ran into this issue using NXP's MCUXpresso Installer, but had the same issue trying to manually install the Zephyr SDK. The root cause is that setup.cmd and these other tools use wget to download the individual toolchain packages.  And apparently recent changes in Windows or security settings interpret this wget download as unsecure, and wget is blocked. Context The Zephyr SDK is a package of multiple toolchains that support all the hardware platforms and CPU architectures available in Zephyr.  The binary bundle releases for download are available in two options: Minimal and Full.  For example, these bundles can be downloaded here for v0.17.4, currently the latest release. The Full bundle is a large download and includes all the toolchains and other tools in that download package.  The Minimal bundle is much smaller and does not contain any toolchains and allows users to choose the toolchains to download and install.  Minimal has an extra step after download to run the setup script and the user selects the tools to download.  In Windows, this script is setup.cmd. If installing the Minimal bundle and wget downloads are blocked for setup.cmd, then the Zephyr SDK install fails.  MCUXpresso Installer v25.12 and other install options use the Minimal bundle, and can be blocked by this issue. Workaround NXP is working on improving the MCUXpresso Installer to address this issue.  But in the meantime, downloading and installing the Full bundle avoids using wget and avoids this issue.   Download the Full bundle, here for v0.17.4, and extract the bundle in your user folder.  After extracting, the full Windows path will be  C:\Users\ \zephyr-sdk-0.17.4 .  West and other build tools will find this folder during the build.  The Zephyr SDK can also be installed elsewhere using an environment variable, see the Zephyr SDK documentation.  After extracting, run the setup.cmd to finish setup.  But with the Full install, setup.cmd will not need to download with wget. Be aware, this article was written when v0.17.4 was the latest release of the Zephyr SDK.  Check here for the latest release. Return to Zephyr Knowledge Hub
查看全文
CIFAR10 TFLM Quick Build Guide catalogs I. Overview II. Environment Preparation 2.1 Virtual environment 2.2 Using Google Colab III. Core Steps 3.1 CIFAR10 dataset 3.2 Model creation 3.3 Model Training 3.4 Model Transformation 3.5 Inference Validation 3.6 Benchmark Performance 3.7 Full Implementation 3.7 Simplified version (Colab) IV. TFLite Micro Deployment V. Quick Verification Application Examples VII. Conclusion Reference Spoiler (Highlight to read) more details, please see the attachment. more details, please see the attachment. I. Overview CIFAR-10 : Alex Krizhevsky, University of Toronto The CIFAR-10 public dataset, and one of the most classic and commonly used entry-level benchmark datasets in computer vision, contains 60,000 32x32 color images (50,000 training, 10,000 testing) in 10 categories, such as airplanes, cars, birds, cats, and more. tflm_cifar10 : Demonstrates how to run a CIFAR-10 image classification model in real-time on a microcontroller from NXP using the TensorFlow Lite Micro framework. That is, a pre-trained convolutional neural network model for the CIFAR-10 dataset is deployed to the MCU, giving it the ability to recognize 10 classes of common objects (airplanes, cars, birds, cats, etc.). Model: a lightweight CNN model with 3 convolutional layers, ReLU activation layer, pooling layer and a fully connected layer. Input: 32x32 pixel color image. Output: probability that an image belongs to one of the 10 categories in CIFAR-10. This document: provides the complete process of building for the CIFAR10 dataset, from the dataset, model training transformation, deployment of inference of the rapid implementation of the program, can be used as an example of the tflm_cifar10 (inference-based) front complement, this paper does not involve the deployment and optimization of the end-side. ... """ CIFAR10 快速训练、测试、部署与推理完整流程 """ import os os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' # 减少TensorFlow日志 import tensorflow as tf import numpy as np import time import matplotlib.pyplot as plt print(f"TensorFlow版本: {tf.__version__}") print(f"NumPy版本: {np.__version__}") class CIFAR10QuickPipeline: def __init__(self): """初始化管道""" self.model = None self.tflite_model = None def load_data(self, sample_size=1000): """加载简化数据集""" print("\n1. 加载CIFAR10数据集...") (x_train, y_train), (x_test, y_test) = tf.keras.datasets.cifar10.load_data() # 预处理 x_train = x_train.astype('float32') / 255.0 x_test = x_test.astype('float32') / 255.0 # 使用少量数据(快速训练) x_train_small = x_train[:sample_size] y_train_small = y_train[:sample_size] x_test_small = x_test[:200] y_test_small = y_test[:200] # 转换为独热编码 y_train_onehot = tf.keras.utils.to_categorical(y_train_small, 10) y_test_onehot = tf.keras.utils.to_categorical(y_test_small, 10) print(f"训练数据: {x_train_small.shape}") print(f"测试数据: {x_test_small.shape}") return (x_train_small, y_train_onehot), (x_test_small, y_test_onehot) def create_simple_model(self): """创建简化CNN模型""" print("\n2. 创建简单CNN模型...") model = tf.keras.Sequential([ # 输入层 tf.keras.layers.Input(shape=(32, 32, 3)), # 卷积层1 tf.keras.layers.Conv2D(8, (3, 3), padding='same', activation='relu'), tf.keras.layers.MaxPooling2D((2, 2)), # 卷积层2 tf.keras.layers.Conv2D(16, (3, 3), padding='same', activation='relu'), tf.keras.layers.MaxPooling2D((2, 2)), # 全连接层 tf.keras.layers.Flatten(), tf.keras.layers.Dense(32, activation='relu'), tf.keras.layers.Dropout(0.2), tf.keras.layers.Dense(10, activation='softmax') ]) model.compile( optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'] ) model.summary() self.model = model return model def train_model(self, x_train, y_train, x_test, y_test, epochs=10): """训练模型""" print("\n3. 训练模型...") # 回调函数:早停 callbacks = [ tf.keras.callbacks.EarlyStopping( monitor='val_loss', patience=3, restore_best_weights=True ) ] history = self.model.fit( x_train, y_train, epochs=epochs, batch_size=32, validation_data=(x_test, y_test), callbacks=callbacks, verbose=1 ) # 评估模型 test_loss, test_acc = self.model.evaluate(x_test, y_test, verbose=0) print(f"\n测试准确率: {test_acc:.4f}") return history def convert_to_tflite(self): """转换为TFLite格式""" print("\n4. 转换为TFLite格式...") # 转换为TFLite converter = tf.lite.TFLiteConverter.from_keras_model(self.model) # 优化配置 converter.optimizations = [tf.lite.Optimize.DEFAULT] converter.target_spec.supported_types = [tf.float32] # 转换 tflite_model = converter.convert() # 保存模型 with open('cifar10_model.tflite', 'wb') as f: f.write(tflite_model) # 保存为字节数组(用于嵌入式部署) self.save_as_c_array(tflite_model) self.tflite_model = tflite_model model_size = len(tflite_model) / 1024 print(f"模型大小: {model_size:.1f} KB") return tflite_model def save_as_c_array(self, tflite_model): """保存为C数组格式""" c_array = '// 自动生成的CIFAR10模型数组\n' c_array += '#include \n\n' c_array += 'const unsigned char cifar10_model_tflite[] = {\n' # 每行显示12个字节 for i in range(0, len(tflite_model), 12): line_bytes = tflite_model[i:i+12] c_array += ' ' + ', '.join(f'0x{b:02x}' for b in line_bytes) + ',\n' c_array += '};\n\n' c_array += f'const unsigned int cifar10_model_tflite_len = {len(tflite_model)};\n' with open('cifar10_model_array.h', 'w') as f: f.write(c_array) print("C数组已保存: cifar10_model_array.h") def test_tflite_inference(self, x_test, y_test, num_tests=10): """测试TFLite推理""" print(f"\n5. 测试TFLite推理 ({num_tests}个样本)...") if self.tflite_model is None: with open('cifar10_model.tflite', 'rb') as f: self.tflite_model = f.read() # 加载TFLite模型 interpreter = tf.lite.Interpreter(model_content=self.tflite_model) interpreter.allocate_tensors() input_details = interpreter.get_input_details() output_details = interpreter.get_output_details() # 类别名称 class_names = ['飞机', '汽车', '鸟', '猫', '鹿', '狗', '青蛙', '马', '船', '卡车'] correct = 0 times = [] for i in range(min(num_tests, len(x_test))): # 准备输入 input_data = x_test[i:i+1] # 推理 start_time = time.perf_counter() interpreter.set_tensor(input_details[0]['index'], input_data) interpreter.invoke() inference_time = time.perf_counter() - start_time times.append(inference_time) # 获取输出 output = interpreter.get_tensor(output_details[0]['index']) predicted_class = np.argmax(output[0]) actual_class = np.argmax(y_test[i]) # 检查是否正确 if predicted_class == actual_class: correct += 1 print(f"样本 {i+1}: 预测={class_names[predicted_class]:<5} " f"实际={class_names[actual_class]:<5} " f"时间={inference_time*1000:.1f}ms " f"{'✓' if predicted_class == actual_class else '✗'}") accuracy = correct / num_tests avg_time = np.mean(times) * 1000 print(f"\n推理统计:") print(f" 准确率: {accuracy:.1%} ({correct}/{num_tests})") print(f" 平均推理时间: {avg_time:.1f}ms") print(f" 推理速度: {1000/avg_time:.0f} FPS") return accuracy, avg_time def benchmark_performance(self, x_test): """性能基准测试""" print("\n6. 性能基准测试...") interpreter = tf.lite.Interpreter(model_content=self.tflite_model) interpreter.allocate_tensors() input_details = interpreter.get_input_details() # 预热 test_input = x_test[0:1] for _ in range(10): interpreter.set_tensor(input_details[0]['index'], test_input) interpreter.invoke() # 基准测试 num_runs = 100 start_time = time.perf_counter() for _ in range(num_runs): interpreter.invoke() total_time = time.perf_counter() - start_time avg_time = total_time / num_runs * 1000 print(f"基准测试结果:") print(f" 总推理次数: {num_runs}") print(f" 总时间: {total_time*1000:.1f}ms") print(f" 平均推理时间: {avg_time:.1f}ms") print(f" 推理速度: {1000/avg_time:.0f} FPS") return avg_time def save_model_summary(self): """保存模型摘要""" summary = [] self.model.summary(print_fn=lambda x: summary.append(x)) with open('model_summary.txt', 'w') as f: f.write('\n'.join(summary)) f.write(f"\n\n模型信息:") f.write(f"\n参数数量: {self.model.count_params():,}") f.write(f"\n保存时间: {time.ctime()}") print("模型摘要已保存: model_summary.txt") def main(): """主函数""" print("=" * 60) print("CIFAR10 快速训练、测试、部署管道") print("=" * 60) # 创建管道 pipeline = CIFAR10QuickPipeline() # 1. 加载数据 (x_train, y_train), (x_test, y_test) = pipeline.load_data(sample_size=2000) # 2. 创建模型 pipeline.create_simple_model() # 3. 训练模型 history = pipeline.train_model(x_train, y_train, x_test, y_test, epochs=15) # 4. 保存模型摘要 pipeline.save_model_summary() # 5. 转换为TFLite pipeline.convert_to_tflite() # 6. 测试推理 pipeline.test_tflite_inference(x_test, y_test, num_tests=20) # 7. 性能测试 pipeline.benchmark_performance(x_test) print("\n" + "=" * 60) print("流程完成!生成的文件:") print(" 1. cifar10_model.tflite - TFLite模型") print(" 2. cifar10_model_array.h - C数组格式") print(" 3. model_summary.txt - 模型摘要") print("=" * 60) if __name__ == "__main__": main() ... VII. Conclusion The purpose of this paper is to take a common image classification scenario (CIFAR10) as an example, so that readers can quickly understand the complete process from data building, model creation, training, inference and validation, which can be used as an example of the tflm_cifar10 (end-side inference-based) front complement, this paper does not involve the end-side deployment and optimization.
查看全文
RT1170 以太网中的自由缓冲区超出范围问题 您好, 我正在尝试从自定义板上的自定义项目中执行基本的以太网测试。作为该项目(该项目集成了不同的模块,如SD卡、CAN、GPIO、ADC、以太网和EEPROM)的一部分,基本的以太网发送和接收有待验证。但我在 ping 发送前遇到"freed buffer out of range 错误" 。我已经完成了与以太网有关的所有基本初始化和配置。我看到出现错误的原因是函数"ethernetif_rx_free" (enet_ethernetif_kinetis.c) 中的 LWIP_ASSERT("Freed buffer out of range", ((idx>= 0)&& (idx< ENET_RXBUFF_NUM))); 其中的 idx 值为负数。这一完整的功能可在 EVK 套件上使用。 还能缺少什么?请提出建议。 Re: Freed Buffer out of Range Issue in Ethernet for RT1170 大家好 这个问题也发生在我的 RT1024 客户板上,当我在某个地方放了一个断点然后它就停止了,然后恢复正常运行更有可能导致这个错误。 此致敬礼! Ping Re: Freed Buffer out of Range Issue in Ethernet for RT1170 如果示例项目在您的自定义板中运行良好,则问题似乎出在软件方面。 您使用的不是 FreeRTOS 对吗? 似乎有什么东西干扰了示例的行为,可能是缺少某些配置,或者只是示例流程受到应用程序其他部分的影响。 我建议你尝试使用最新的软件开发工具包版本,即2.15.000。如果您的问题在此版本中仍然出现,那么恐怕您的应用程序流程出现了问题。 此致, 丹尼尔 Re: Freed Buffer out of Range Issue in Ethernet for RT1170 您好, 是的,在自定义板中实现合并的源代码时会出现问题。但是,没有与其他接口合并的 Ethernet_PING 的单个来源在自定义板中运行良好。当以太网的单个源与其余接口合并时,就会出现问题。 Re: Freed Buffer out of Range Issue in Ethernet for RT1170 如果我没有理解错的话,当您运行 SDK 示例时,它是可以工作的。但当您添加自定义应用程序时,问题就出现了。你能确认吗? 此致, 丹尼尔 Re: Freed Buffer out of Range Issue in Ethernet for RT1170 您好, 实际上,以太网的各个源代码在自定义板中运行良好。当我尝试集成代码时,以太网无法正常工作。我观察到EIR 寄存器的第 25 (RXF)、26 (TXB) 和 27 (TXF) 位被设置为 0,RDAR 寄存器的第 24 位被更新为 0,但在以太网的工作代码中,这些寄存器被设置为 "1"。 我怀疑这些寄存器更新是由中断处理的,但我无法在自定义项目代码库中找到负责这些更新的特定处理程序。请帮帮我。 Re: Freed Buffer out of Range Issue in Ethernet for RT1170 请仔细检查是否有任何外围更改(例如:......)。为了让 EVK 示例在您的定制硬件中运行,您的项目中需要哪些外围实例? 如果您已经验证了这一点,看来问题出在硬件方面。 您是否已经用 HDG 验证了您的设计? 此致, 丹尼尔 Re: Freed Buffer out of Range Issue in Ethernet for RT1170 您好, 我使用的是 SDK 11.6.1 版。我正在尝试测试 lwip_ping_bm_cm7 示例。在 EVK 中运行正常。 但是,当尝试将所有源代码与以太网连接时,它在自定义板上不起作用。如果我们面临"Freed Buffer out of range" ,可能会出现什么问题?请帮我解决这个问题。 Re: Freed Buffer out of Range Issue in Ethernet for RT1170 您好, 您使用的是哪个版本的 SDK? 您用来测试的 SDK 示例是什么? 如果我理解正确,应用程序在 EVK 中运行正常,对吗? 此致, 丹尼尔
查看全文
PCIe: i.MX 95: 複数の MSI IRQ ベクトルを割り当てる こんにちは、 PCIe2 インスタンス経由でコネクテッドされた i.MX95 ベースのシステムで ATH12K Wi-Fi モジュールを使用しています。 linux-imx lf‑6.12.y ベースのカーネルではこのセットアップは失敗しますが、lf‑6.6.y ベースのカーネルでは期待どおりに動作します。 カーネル ドライバは 16 個の MSI 割り込みを正常に要求し、受信します。しかし、その後、Wi-Fi モジュールの起動に失敗します。 [ 5.888139] ath12k_pci 0001:01:00.0:iommuグループ5に追加 [ 5.888506] ath12k_pci 0001:01:00.0:BAR 0 [mem 0xa10000000-0xa101fffff 64bit]: 割り当て済み [ 5.888553] ath12k_pci 0001:01:00.0:有効化デバイス (0000 -> 0002) [ 5.889315] ath12k_pci 0001:01:00.0:MSIベクター: 16 [ 5.889334] ath12k_pci 0001:01:00.0:ハードウェア名: wcn7850 hw2.0 [ 6.475718] ath12k_pci 0001:01:00.0:チップID 0x2 チップファミリー 0x4 ボードID 0xff soc_id 0x40170200 [ 6.475743] ath12k_pci 0001:01:00.0:fw_version 0x110cffff fw_build_timestamp 2025-06-25 09:26 fw_build_id QC_IMAGE_VERSION_STRING=WLAN.HMT.1.1.c5-00302-QCAHMTSWPL_V1.0_V2.0_SILICONZ-1.115823.3 [ 7.647106] ath12k_pci 0001:01:00.0:制御応答完了、ポーリングを受信できませんでした。 [ 8.675241] ath12k_pci 0001:01:00.0:サービス接続タイムアウト [ 8.681002] ath12k_pci 0001:01:00.0:HTTへの接続に失敗しました: -110 [ 8.692180] ath12k_pci 0001:01:00.0:コアの起動に失敗しました: -110 カーネルメーリングリスト[1]では別のPCIeデバイスに関する関連した議論がありましたが、まだ私たちのシステムで動作する構成には至っていません。 どうすれば最善の進め方でしょうか? 再開まで今しばらくお待ちください。 最大 [1] https://lore.kernel.org/all/1819305.VLH7GnMWUR@steina-w/ Re: PCIe: i.MX 95: Allocate Multiple MSI IRQ Vectors こんにちは、 i,MX95 はまだ初期段階であり、一部の構成はデザインされていません。しかし、PCIe2経由でATH12Kを搭載したi.MX95は lf-6.12.y ですが、 lf-6.6.y で作業中ですこれは、新しいカーネルの PCIe または Wi-Fi スタックにおける回帰またはドライバー相互作用の変更を示唆しており、PCIe パワーマネージメント (ASPM)、MSI マッピング、または ATH12K の特定の PCIe エンドポイントの癖に関係している可能性があります。多くの場合、カーネル パッチを適用するか、新しいカーネルのブート引数で ASPM を無効にすることで解決できます。dmesg で PCIe エラーを確認し、デバイスツリーを比較し、NXP/Linux カーネル メーリング リストで関連するコミットを探します。  考えられる原因とトラブルシューティングの手順を次に示します。 1. カーネルログを確認する ( dmesg ) PCIe エラーを探す: 障害が発生した lf-6.12.y カーネルの dmesg で、「PCI」、「MSI」、「ATH12K」、「Error」、「Firmware」、または「Timeout」メッセージを検索します。 ファームウェアのロード: ath12k ファームウェアが正しくロードされているかどうか、および初期化中にエラーが発生していないかどうかを確認します。  2. PCIe電源管理(ASPM) 一般的な問題:新しいカーネルでは、多くの場合、Active State パワーマネージメント (ASPM) がデフォルトで有効になっています。これにより、組み込みシステム上の ATH12K などの PCIe デバイス、特に古いファームウェア/ハードウェアで問題が発生する可能性があります。 ASPM を無効にしてみてください:カーネル ブート引数 (U-Boot または GRUB など) に pcie_aspm=off を追加して、再度テストします。  3. Devicetree/DTBの違い DTB の比較:両方のカーネル ( .dtb ファイル) で使用されるデバイス ツリー BLOB (DTB) を生成して比較します。特に割り込み、電源ドメイン、または互換性プロパティに関連する、 pci2 の PCIe ノードの変更を探します。  4. カーネルドライバー/ファームウェアの回帰 特定のコミット: ATH12K ドライバ ( ath12k )、 mac80211 、または lf-6.12.y のコア PCIe/Arm コードによって、セットアップを壊す変更が導入された可能性があります。 メーリング リストを検索: ath12k 、 i.MX95 、およびそれ以降のカーネル (6.12+) に関するパッチやディスカッションについては、Linux カーネル メーリング リスト (LKML) および NXP のリストを確認してください。  5. MSIの取り扱い 割り込み再マッピング:割り込みを受信すると、その処理方法 (MSI-X と MSI、割り込み再マッピング) が微妙に変わる場合があります。 proc/interrupts で割り込みをチェックします。カーネル間で割り込みの分布またはカウントが異なるかどうかを確認します。  6. ファームウェアブロブ ファームウェア バージョン:新しいカーネルのドライバと互換性のある、ATH12K 用の正しいファームウェアを使用していることを確認します。新しいドライバには新しいファームウェアが必要になる場合があります。  要約すると、 dmesg から始めてASPMを無効にしてみてください。これらは、組み込みプラットフォームの新しいカーネルでPCIe Wi-Fiの障害が発生する最も一般的な原因です。   よろしくお願いします。 Re: PCIe: i.MX 95: Allocate Multiple MSI IRQ Vectors 提案は問題をデバッグするための良い指針でしたが、解決策を見つけることができませんでした。つまり、すべての MSI IRQ ベクトルがドライバ内の IRQ ルーチンをトリガーしたわけではありません。 最終的には、ath12k ドライバーを変更して、1 つの MSI IRQ のみを要求するようにすることで、この問題を回避しました。 現在の Linux マスターにはこの問題は発生しないことに注意してください。 よろしくお願いします。 最大
查看全文
S32DS3.5 デバッグ s32g274 PEMicro を使用 S32g274 M7 コア用の S32DS3.5 デバッグ ツールを使用して、CAN などの外部ペリフェラルのレジスタの値を表示するにはどうすればよいですか? Re: S32DS3.5 debug s32g274 use PEMicro こんにちは、 @sdx111 ご投稿ありがとうございます。 次の方法を試してみることをお勧めします。 私の側でテストしたところ、問題なく動作しました お役に立てれば幸いです。 BR チェイン Re: S32DS3.5 debug s32g274 use PEMicro こんにちは、 @sdx111 ご返信ありがとうございます。 これは新しい質問であり、このトピックのタイトルとは直接関係がないため、他のユーザーが検索/参照しやすいように、次回は新しい投稿を作成することをお勧めします。ご理解のほどよろしくお願いいたします。 この問題に関しては、私の意見では、最初の elf (ブートローダーなど) をロードし、第 2 段階にジャンプする前にブレークポイントを挿入し、さらに image2 (アプリケーションなど) のシンボルもロードして、デバッグをさらに続行することができます。 BR チェイン Re: S32DS3.5 debug s32g274 use PEMicro ブートローダの実行後に APP プログラムにジャンプし、APP プログラムにブレークポイントを追加したいと考えています。デバッグの設定方法を知りたいです。 Re: S32DS3.5 debug s32g274 use PEMicro もう一つ問題があります。S32G274 の M コア用のブートローダーと APP プログラムを持っています。S32DS コンパイラを使用して、ブートローダの APP へのジャンプとその後の動作をデバッグおよびテストするにはどうすればよいですか? Re: S32DS3.5 debug s32g274 use PEMicro こんにちは、 @sdx111 ご返信ありがとうございます。 あなたが言及したようなケースでは、たとえば、通常はブートローダを QSPI にフラッシュし、M コア アプリケーションの先頭に無限ループを追加し、QSPI 経由でボードを起動してデバッガ経由でボードを接続し、最後に M コア elf をロードしてさらにデバッグします。このようなCASEをデバッグするには、他にもいくつかの方法があるはずですが、これは単なる例です。 BR チェイン
查看全文
iMX93の全コアにZephyrを搭載 こんにちは、 iMX93 のすべてのコアで RTOS を実行したいと考えています。それは可能ですか? Zephyr の Web サイトを見ると、FRDM-IMX93 ボードの M33 コアで Zephyr を実行するプロジェクトがあるようです。また、A55 コアで Zephyr を実行するプロジェクトもあります。 しかし、両方実行することはできますか?両方の A55 プロセッサで別々の Zephyr プロジェクトを実行できますか? チップの初期化はどのように機能しますか。クロックやメモリコントローラの初期化のようなものですか?誰がそんなことをするのでしょうか? 不可能な場合は、MCUXPresso を使用して M33 コア上で RTOS を実行し、チップを初期化することはできますか?両方の A55 コアに Zephyr を使用しますか? すべてのコアで RTOS を実行する方法は何ですか? Re: Zephyr on all cores of a iMX93 こんにちは@simmania 2x A55 で実行される 2 つの Zephyr プロジェクトの場合、これはサポートされません。サポートされているフレームワークは、Linux を実行する A55 --> Jailhouse --> Zephyr を実行するその他の A55 であるため、Jailhouse がハードウェアのアイソレータを管理する必要があります。 不可能な場合は、MCUXPresso を使用して M33 コア上で RTOS を実行し、チップを初期化することはできますか?両方の A55 コアに Zephyr を使用しますか? --> i.MX93は、ブートROMからM33を起動する低消費電力ブートをサポートしています。目的を達成するには、SDKのコードを大幅に書き換える必要があります。根本的な問題は、DDRを誰が初期化するかです。ドキュメントによると、U-Bootを維持するのが最適な選択です。U-BootはM33とA55プロセッサの両方でZephyrを同時にロードできるためです。 https://docs.zephyrproject.org/latest/boards/nxp/imx93_evk/doc/index.html よろしくお願いします、 志明 Re: Zephyr on all cores of a iMX93 NXPの社員によると、銛を使えば可能だという。 NXPのテクニカルサポートは、それは不可能だと言っています。 非常に紛らわしい。 Re: Zephyr on all cores of a iMX93 iMX93のAコアとmコアの両方がZephyrリリースをサポートしています。ZephyrランディングページにアクセスしてMPU Zephyr使用ガイドを入手してください。Aコアとmコアの両方でZephyrを同時に実行したい場合は、NXPのHarpoonリリースを探してください。 https://www.nxp.com/design/design-center/software/embedded-software/zephyr-os-for-edge-connected-devices:ZEPHYR-OS-EDGE Re: Zephyr on all cores of a iMX93 Harpoonのドキュメントで、以下の記述を見つけました。 Harpoonは、Linuxディストリビューション上で並列動作する1つ(または複数)のCortex-Aコア上で動作するRTOS上で、リアルタイム処理能力が要求されるアプリケーションを開発するための環境を提供し、64ビットArmアーキテクチャを活用して高いパフォーマンスを実現します。 つまり、一部のコアではまだLinuxが必要なのです。つまり、iMX93の全コアでZephyrを実行することは不可能のようだ。 Re: Zephyr on all cores of a iMX93 @simmania コアユーザーガイドはこちら UG10199:NXP MPU Cortex-Aコア Zephyrユーザーガイド | NXPセミコンダクターズ Zephyrのウェブページには、すでに93 Aコアとmコアのサポートについて記載されています。 i.MX93 EVK — Zephyrプロジェクトドキュメント 銛ユーザーガイド UG10170:Harpoonユーザーガイド|NXPセミコンダクターズ Re: Zephyr on all cores of a iMX93 ご回答ありがとうございます。 しかし、私たちはまだiMX93を使った開発を行っておらず、私たちにとってはまだ明確な答えが出ていません。 私たちは現在、新しいプロジェクトで使用するハードウェアを選定しているところです。今私たちが知りたいのは、Linuxを必要とせずにZephyrをすべてのコアで実行できるかどうかだけです。 Re: Zephyr on all cores of a iMX93 @simmania 1 つの A コアで Harpoon を実行し、別の A コアで Zephyr を実行し、mcore で Zephyr を実行することもできます。あるいは、A コアでネイティブ Zephyr を実行し、mcore Zephyr を実行する BootROM を使用することもできます。 プログラム flash.bin を UUU を使用して SD/eMMC に書き込む — MCUXpresso SDK ドキュメントを参照してください。 ステップ4でzephyr.binをimx-mkimage/i.MX9のm33_image.binにコピーしてフラッシュbinを作成します 対応するLinux BSPリリースからブートイメージとimx-mkimageソースリポジトリを入手してください。imx-mkimage/i.MX9に配置する必要のあるブートイメージは以下のとおりです。 - u-boot-imx93evk.bin-sd (rename to u-boot.bin) - u-boot-spl.bin-imx93evk-sd (rename to u-boot-spl.bin) - bl31-imx93.bin (rename to bl31.bin) - mx93a0-ahab-container.img - lpddr4_dmem_1d_v202201.bin - lpddr4_dmem_2d_v202201.bin - lpddr4_imem_1d_v202201.bin - lpddr4_imem_2d_v202201.bin Re: Zephyr on all cores of a iMX93 実際、私はついにFRDM iMX93上で、両方のA55コアを使用してSMPでZephyrを動作させることに成功しました。鍵は「```west flash -r spsdk``` でした」でした。 Re: Zephyr on all cores of a iMX93 リアルタイムエッジソフトウェアユーザーガイドの第3.3章「柔軟なリアルタイムシステム」を参照してください。 表30は、i.MX 93プラットフォーム上で実行可能なすべてのAMPシステムを示しています。 また、 hetogeneous-multicore は、これらの可能なすべての AMP システムを実行するためのハローワールドの例を提供します。たとえば、i.MX 93 は構築でき、Realtime Edge も次の事前構築済みバイナリ イメージを提供します。 i.MX93の各Cortex-Aコアで2つのZephyrを実行するための重要な技術的ポイント: 1. リソースの割り当て 第3.3.2.2章の技術的なポイントを参照し、リソースの競合を避けるために、これら2つのZephyrインスタンスには異なるUARTとRAMメモリを使用してください。 heterogeneous-multicoreを使用せずに Zephyr のサンプルを構築することもできますが、リソース割り当ての方法についてはheterogeneous-multicoreを参照することができます。 2. 起動方法 現在、ubootコマンドを使用してこれら2つのZephyrインストールを起動できます。最初のZephyrは「cpu release」コマンドを使用して起動し、次に「go」コマンドを使用して起動します。詳細については、ユーザーガイドを参照してください。 また、Real-time Edgeで提供されるCortex-Aコアの統合ライフマネジメントをサポートするには、TF-A、U-BootなどのReal-time Edgeリポジトリを使用する必要があります。 そして、次回のRealtime Edgeリリース(7月リリース予定)では、「高速起動」という新機能が提供されます。この新機能により、TF-Aはこれら2つのZephyrインスタンスを1秒未満で起動できるようになります。 この件に関して他に何かお手伝いが必要な場合は、遠慮なくお知らせください。ありがとうございます。 Re: Zephyr on all cores of a iMX93 それは素晴らしいですね! 銛を使う?しかし、Harpoonのドキュメントにはこう書かれている。 「システムはLinux上で起動し、Jailhouseハイパーバイザがハードウェアを分割して、LinuxとゲストRTOSを並行して実行します。」 私たちは、LinuxなしでZephyrがすべてのコアで動作することを望んでいます。 Re: Zephyr on all cores of a iMX93 答えはイエスですが、これ以上の詳細情報は提供できません。さらに質問がある場合は、 @Jiafei_Pan までお問い合わせください。 Re: Zephyr on all cores of a iMX93 同時に2つのZephyrアプリケーションを実行することについて話しているのですか、それともSMPを使用して両方のコアをスケジューリングに利用できるようにしているアプリケーションについて話しているのですか? 2番目のケースには非常に興味があるのですが、うまく動作させることができません。 Re: Zephyr on all cores of a iMX93 @Jiafei_Pan さん、Harpoon を導入せずに A コアと mcore 上で 2 つの Zephyr を実行できるようにする方法について何か情報を提供していただけますか。ありがとう!
查看全文
FreeMASTER Plugin Config Failure I was able to successfully conduct the CAN communication connection test in Figure 1, but after clicking OK, the fault as shown in Figure 2 occurred. How can I solve this problem? In addition, I have used mbdt for freemaster development on S32K344, but I have not succeeded in polling mode CAN communication. Is it not supported? If it is supported, could you provide me with a sample, preferably for the S32K3 series Re: FreeMASTER Plugin Config Failure Now I have also implemented the polling mode and tested the connection of the can based freemaster. The effect is the same as the above picture. I will continue to seek help Re: FreeMASTER Plugin Config Failure Hi @zuozuo, Are you using the MATLAB or S32 Design Studio as your primary development environment ? In the later case - did you try the example applications that come with FreeMASTER Driver Update site ? In case you are using MATLAB, a dedicated team is handling the MatLAB Toolbox and I will move your query to MBDT community space. Re: FreeMASTER Plugin Config Failure quickly ran from another computer with an earlier version of the pc side software and it worked fine. so i manually copied the connection string to the Option field and it worked. so the issue is either on the 1.16.0 or the PC admin previlage..  Re: FreeMASTER Plugin Config Failure Hello, one thing to try is to re-register the CAN communication plug-in in your system. Please close the FreeMASTER, and navigate to installation location. Then run the register.bat "As administrator". See more details in one of the earlier posts in this forum. Regards, Michal Re: FreeMASTER Plugin Config Failure Hi, Michal, thanks for the hint but it does not seem to work. by pasting a plain text string i could open the port. the computer that i had an older version of Freemaster 3.2 no longer works after i upgraded it to the latest version. i ran the register.bat as admin but the same error message appears. now two computers give me the same error. Re: FreeMASTER Plugin Config Failure Hello, according to the method shown in your picture, I am using the freemaster3.2 version of the host computer. I have tried on both a Windows 11 and a Windows 10 computer, but neither worked, Re: FreeMASTER Plugin Config Failure I use the mbed toolchain to generate the underlying driver code for freemaster. Currently, both polling mode and interrupt mode can successfully connect with the host computer, and there are no issues with the slave computer. The only problem is that the freemaster host computer cannot save its own configuration options in the freemaster host computer project。 Re: FreeMASTER Plugin Config Failure I use the matlab toolchain to generate the underlying driver code for freemaster. Currently, both polling mode and interrupt mode can successfully connect with the host computer, and there are no issues with the slave computer. The only problem is that the freemaster host computer cannot save its own configuration options in the freemaster host computer project. Re: FreeMASTER Plugin Config Failure Hello the CAN plugin version 1.16.0 (in FreeMASTER 3.2.6.3) indeed adds the CAN-FD support for ZLG and some other vendors. It also adds support for the new ZLG ZCAN library. After  the registrer.bat has been run, we can be sure the plug-in is correctly registered in the system.   I cannot replicate the issues you are facing. The connection string for the ZCAN devices appears normally in my  case:  drv=ZCAN;port=1;bitrate=500000;cmdid=0x7aa;rspid=0x7aa;tmo=500 Please try the following: Paste the ZCAN string to the Options dialog manually and then open the plug-in configuration. Then close it without making any changes. Will it still show the error? Just as an experiment, try to enable the CAN-FD mode for the USBCANFD_200U device and press OK. Try to select another CAN driver, for example IXXAT, even if you do not have any physical device, then press OK. Please let me know if it shows the error in all 3 cases. Thanks, Michal Re: FreeMASTER Plugin Config Failure Hello zuozuo, I am facing the same issue. can you please share any example model with me or just tell me how I can resolve the issue. I also noticed one thing, when there is only one CAN instance with single TX and Rx CAN object ID its working, but when we add more can instances each having tx CAN objectId and rx CAN objectId its not working, if you have solution please share with me. Thanks. Re: FreeMASTER Plugin Config Failure Thank you for your reply. I tested the above three steps, and each of them would report the error: "The plugin configuration dialog failed. Try to specify the connectstring manually". Additionally, I have run register.bat in administrator mode. Re: FreeMASTER Plugin Config Failure Hello! 1. I manually added the information you provided to the command bar, then clicked "configure", and after entering, I clicked "ok", everything was normal. 2. Since I manually added the command information you provided correctly, everything has been normal. Whether I check or uncheck "canfd" is normal, even if I clear the command line, reconfigure it, and then click "ok", everything is still normal. 3. I use Kvaser, and everything is normal Re: FreeMASTER Plugin Config Failure I am using PEAK CAN and still face this issue. Can you share simulink model. My S32DS studio example is working in Design Studio. Re: FreeMASTER Plugin Config Failure I use kvaser for CAN connection and testing, and everything works successfully; however, when I use the zlg driver, the aforementioned issues occur. Re: FreeMASTER Plugin Config Failure Hello, we are trying to analyze and resolve the issue, but unfortunately we were not able to replicate it on any of our test platforms. Please use the manually-edited connect string until this is fixed. One question: when ZLG/ZCAN driver is selected, does the error appear when you press  the CANCEL button in the plug-in dialog? Thanks, Michal Re: FreeMASTER Plugin Config Failure I am using the PEAK CAN Re: FreeMASTER Plugin Config Failure Hello,  we have identified the problem in FreeMASTER CAN plug-in and we are working on a fix. It appeared the plug-in has internally depended on Kvaser CAN driver and was not working correctly when Kvaser software was missing. It appears the Kvaser files are required even if using ZLG or any other CAN interface. Before the fix is released in the upcoming FreeMASTER 3.2.7, a quick workaround is to install the latest Kvaser driver pack to your Windows system. You can download the Kvaser drivers here. Thanks to all of you who had reported the issue and described the symptoms. Please reply to this message if installing the latest Kvaser drivers does not help to resolve the issue. Thanks, Michal Re: FreeMASTER Plugin Config Failure Yes,It's useful. Re: FreeMASTER Plugin Config Failure Hello, theoretically yes, you may need to install Kvaser drivers even in case you use a PEAK device. The dependency on some Kvaser files causes the Plug-in configuration dialog to fail when creating a connection string regardless of the device selected. It may happen by some lucky coincidence that the issue will not appear with PEAK or other devices, but if it does, installing the Kvaser driver shall always help. This issue will be fixed in future FreeMASTER version. Regards, Michal Re: FreeMASTER Plugin Config Failure Even for PEAK-CAN we need to do this? Re: FreeMASTER Plugin Config Failure Note that the version 3.2.7 has been released. The issue discussed in this thread shall now be fixed. Regards, Michal
查看全文
RW612 - WiFi 信道状态信息(CSI) 我目前正试图从 FRDM-RW612 中提取 CSI 数据。我假设我缺少导致 CSI 回调无法运行的关键元器件,因为错误配置参数确实会导致固件宣布错误,例如频道配置不正确等。不幸的是,我仍然无法获得 CSI 的任何回调。 如有任何帮助,我们将不胜感激! Re: RW612 - WiFi Channel State Information (CSI) 亲爱的@rb_ots、 我们为客户提供了《渠道状态信息 (CSI) 应用笔记》。(AN14281) 该应用程序可指导您逐步在 FRDM-RW612 上进行 CSI 测试。 您可以通过链接访问 AN,这是一份在线文件。 https://docs.nxp.com/bundle/AN14281/page/topics/about_this_document.html 请试试看 此致, 卫东 Re: RW612 - WiFi Channel State Information (CSI) 是的!这正是我要找的东西,帮了我大忙。
查看全文
如何:使用 NXP Vision SDK 示例项目中的现有代码在 S32DS 中创建新的 Makefile 项目 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 本文档详细介绍了如何在 S32 Design Studio 中创建新项目,以及如何使用 NXP Vision SDK 示例项目中提供的现有代码和 makefile 进行构建。如果您使用来自任何其他来源的代码创建新的 makefile 项目,则过程可能会有所不同。 在从现有代码创建新的 makefile 项目之前,我们需要向环境变量 PATH 添加一些路径和几个新的环境变量。添加这些路径和变量主要有 3 种方法。哪种方法取决于您的需要。 方法 1 路径和变量可以单独添加到每个项目。如果您只希望这些更改影响少数项目,这将很有用。或者如果您的项目需要不同的路径和变量。注意:这些更改将在项目创建后进行(如下面的步骤 15 - 17 所示) 方法 2 路径和变量可以添加到 S32DS 内的整个工作区。这些在 S32DS 之外是不可见的,因此不会影响整个 Windows 环境。如果您有大量对路径和变量有共同要求的项目,并且不希望它们在 S32DS 之外的任何工具中可见,这将非常有用。 方法 3 路径和变量可以全局添加到 Windows 环境中,并将影响所有已安装的工具。不推荐使用这种方法。 选择方法后,将以下路径添加到 PATH 变量(使用 S32DS 的默认安装设置显示的路径): C:\NXP\S32DS.3.1\S32DS\build_tools\gcc-6.3-arm32-eabi\bin C:\NXP\S32DS.3.1\S32DS\build_tools\gcc-6.3-arm64-eabi\bin C:\NXP\S32DS.3.1\S32DS\build_tools\gcc-6.3-arm64-linux\bin C:\NXP\S32DS.3.1\S32DS\build_tools\msys32\mingw32\bin 或者在 Eclipse 中(可以使用变量,如果 S32DS 安装布局在未来版本中发生变化,则无需更新这些变量) ${S32DS_ARM32_TOOLCHAIN_DIR} ${S32DS_ARM64_LINUX_TOOLCHAIN_DIR} ${S32DS_ARM64_TOOLCHAIN_DIR} ${S32DS_GCC_TOOCHAIN_DIR} 还需要添加以下 Windows 系统变量: 变量名称:S32V234_SDK_ROOT 变量值:C:\NXP\S32DS_Vision_v2018.R1\S32DS\s32v234_sdk 变量名称:APU_TOOLS 变量值:C:\NXP\S32DS_Vision_v2018.R1\S32DS\APUC 以下步骤演示了基于上述方法 1 的过程。 1)启动S32DS for Vision 2)点击“新建” 3)选择“使用现有代码的 Makefile 项目” 4)选择下一步 5)输入项目名称。 6)对于“现有代码位置”, a)选择“浏览… ”,然后选择目录C:\NXP\S32DS.3.1\S32DS\software\VSDK_S32V2_RTM_1_3_0\s32v234_sdk\demos\isp\isp_sonyimx224_rgb_yuv_gs8    b) Click OK 7)对于“索引器设置工具链”,选择与您所需的构建配置相匹配的选项。对于我们这里的示例,我们将选择“ ARM Linux 64 位目标二进制工具链”。有关工具链选项的更多详细信息,请参阅 Vision 扩展包用户指南。这设置了一些工具链路径,但稍后我们将根据 VSDK 示例的特定需求设置更多路径。 8)点击完成 9) 在项目资源管理器中右键单击该项目。选择“属性” 10) 转到“C/C++ 构建”部分 11)转到“行为”选项卡,在“构建”旁边的字段中输入: ISP 示例:' allsub ' APEX 示例:' APU_COMP=nxp allsub ' 12)转到“构建器设置”选项卡,在“构建位置”部分更改“构建目录”的路径。点击“工作区... ”按钮 13) 在文件夹选择菜单中,选择子文件夹“ build-v234ce-gnu-linux-d ”,然后单击“确定” 14)转到“环境”部分 15)选择环境变量“ PATH ”,然后单击“编辑... ” 16)将路径变量添加到值字段,每个变量用逗号“;”分隔 ${S32DS_ARM32_TOOLCHAIN_DIR} ${S32DS_ARM64_LINUX_TOOLCHAIN_DIR} ${S32DS_ARM64_TOOLCHAIN_DIR} ${S32DS_GCC_TOOCHAIN_DIR} 单击OK。 17) Click 'Add...' 18) 单击“添加... ”,然后输入变量名称“ APU_TOOLS ”和值“ ${S32DS_APU_TOOLCHAIN_DIR} ” 单击OK。 19)单击“确定”关闭“属性”菜单。 20)点击“构建” 21) 构建完成后,将创建二进制文件(ELF)
查看全文
MCU V10.x.よくあるご質問(FAQ) <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> この辺りでは、Freescaleの CodeWarriorツール、その機能、およびそれを使用して何ができるかについていくつかの質問がありました(そして、あまりにも多くのこと!!があります)。   MCU V10.xに関する前回の投稿に関して、この FAQガイド は、特に初心者やすべてを明確で大音量で取得したい場合に非常に役立つことがわかりました。 それが私にとってもあなたにとっても役立つことを願っています!!   このFAQガイドには、Microcontrollers V10.xに関するよくある質問または最も予想される質問がリストされています 。このドキュメントでは、FAQ は 、インストール、 IDE、エディタ、プロジェクト管理、プロジェクト、コンパイラ、アセンブラ、リンカ、デバッガ、 デバッガ シェル、USBTAP、イーサネット TAP、プロファイリングおよび解析ツール など、関連するマイクロコントローラ V10.x 機能に基づいて さまざまなカテゴリに分類されています。   章 説明 IDEとインストール IDE関連のFAQを一覧表示します プロジェクト・マネジメント プロジェクト管理関連のFAQを一覧表示します プロジェクト プロジェクト関連のFAQを一覧表示します コンパイラ コンパイラ関連のFAQを一覧表示します Linker リンカー関連の FAQ を一覧表示します Debugger デバッガー関連の FAQ を一覧表示します デバッガー シェル デバッガーシェル関連のFAQを一覧表示します プロフィルおよび分析ツール プロファイラー関連のFAQを一覧表示します   こちらをご覧ください!       全般
查看全文
适用于 ARM 2018.R1 的 S32 Design Studio - 更新 4 现已发布 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />       产品发布公告 汽车微控制器和处理器 ARM ® 2018.R1 版 S32 设计工作室  Update 4          新增内容 适用于 S32K14x 的 S32 SDK 1.9.0 BETA 版。这是一个累积更新 - 它包含之前更新的所有内容(更新 1 、更新 2 、更新 3 ) 要在新项目向导中选择新的 SDK,必须将工具链更改为“ARM Bare-Metal 32 位目标二进制工具链” 安装说明 此更新适用于 在线的 (通过 Eclipse Updater)或 离线安装(直接下载链接) 在线的 安装: 进入菜单“帮助”->“安装新软件...”对话框  select predefined update site "S32DesignStudio - http://www.nxp.com/lgfiles/updates/Eclipse/S32DS_ARM_2018.R1/updatesite" 选择所有可用项目并单击“下一步”按钮   离线安装: 转到 S32 Design Studio for ARM 产品页面 -> 下载部分或使用 直接链接下载更新存档 zip 文件 启动 S32DS 并转到“帮助”->“安装新软件...” 添加一个新的 “Archive” 仓库,然后浏览并选择您在之前步骤中下载的更新归档.zip 文件。 选择所有可用项目并单击“下一步”按钮。   这将启动更新安装过程。 概述
查看全文
Single channel ABS SB0401 Monitoring Module Issue Hello @nxp , I’m using the SB0401 Single-Channel ABS module IC with an NXP S32K31xEVB-Q48 MCU as the SPI master. I transmit the monitoring/module data once every 10 ms, but the SB0401 monitoring module appears to reset/restart repeatedly (about once every 50 ms). Along with this, my SPI “error count” increases on every SPI transfer. Below are the setup and my specific questions. HW/SW setup MCU (SPI Master): S32K31xEVB-Q48 (S32K31x family) Device: SB0401 (Single-Channel ABS module IC) Interface: SPI (LPSPI) (DMA based transfers) Periodic transmission: every 10 ms Observed issue: SB0401 monitoring module reset/restart every ~50 ms (see attached logs) Observed behavior The error counter increments for every SPI byte/word transfer. I read AR (seed) from SB0401 message 18 and calculate MR based on that AR. Despite sending frames periodically, the SB0401 monitoring module resets/restarts. Questions MR calculation vs AR (Message 18) My error count increases on every SPI transfer. I calculate MR using the AR value received from SB0401 message 18. Is it expected that an error counter would increment on every transfer in this condition, or does it indicate MR/AR logic is incorrect? Please confirm the correct MR computation flow/timing relative to AR (message 18) and any common pitfalls (e.g., using stale AR, wrong byte/bit extraction, timing window, counter alignment). ACK position when writing Message 0 If I write data into Message 0 at TxBuf[0], where should I check the acknowledgement? Example: For a write in TxBuf[0], does the ACK appear in RxBuf[0] (same word) or in RxBuf[1] (next word)? If there is a defined “ACK occurs in the following SPI word/frame” rule, please share the exact mapping. Reference SW / CDD driver Is there any reference CDD / example driver for SB0401 (C source or AUTOSAR-style CDD integration) that can be shared for guidance? If not shareable, can you recommend the official SB0401 software package / app note / reference implementation details to follow? Re: Single channel ABS SB0401 Monitoring Module Issue Hi Is possible to show your company and project information here? Re: Single channel ABS SB0401 Monitoring Module Issue Hi @guoweisun     yeah ok.     Company:  Ettiksoft technologies Pvt ltd.     project:  Two-wheeler single channel ABS.  Re: Single channel ABS SB0401 Monitoring Module Issue This part doesn't have CDD or other software drive and the reference schematic also need customer sign NDA then share. Re: Single channel ABS SB0401 Monitoring Module Issue Let me check again for the reference code about this special part. Re: Single channel ABS SB0401 Monitoring Module Issue For the example code I can't post here, could you please submit ticket from case port? Home Re: Single channel ABS SB0401 Monitoring Module Issue hello @guoweisun    ok.  Any other reference code is there, like this module behaviour. 
查看全文
LS1028A 2.5G SGMII 以太网无法与 QCA8081 配合使用 我们在 LS1028A 的 Serdes Lane A 上使用 QCA8081 PHY 实现 2.5G SGMII。 我们启用了 QCA8081 驱动程序 (CONFIG_QCA808X_PHY=y),并更新了 rcw(rcw_1500_sdboot.rcw) 和 dts(ls1028a-rdb.dts)如下图所示。 rcw: SRDS_PRTCL_S1_L0=1 SRDS_PRTCL_S1_L1=5 SRDS_PRTCL_S1_L2=11 SRDS_PRTCL_S1_L3=11 dts: &enetc_mdio_pf3 { sgmii_phy0: ethernet-phy@24 { reg =<0x18>; }; }; &enetc_port0 { phy-handle =<& sgmii_phy0>; phy-mode ="2500base-x"; status ="okay"; }; 观察结果: Ping 在 2.5G 模式下不起作用。但 1G 模式正常。 2.5G 的 Ethtool 输出: root@ls1028ardb:/home/user# ethtool eno0 eno0 的设置: 支持的端口:[ ] 支持的链接模式: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full 2500baseT/Full 支持暂停帧使用:对称只接收 支持自动协商:是 支持 FEC 模式:未报告 广告链接模式: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full 2500baseT/Full 广告暂停帧使用:对称只接收 广告自动协商:是 宣传的 FEC 模式:未报告 链接伙伴宣传的链接模式: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full 2500baseT/Full 链接伙伴宣传的暂停帧使用:对称只接收 链路合作伙伴宣传的自动协商:是 链路合作伙伴宣传的 FEC 模式:未报告 速度:2500Mb/s 双工:全 自动协商:开 主从配置文件:首选从 主从状态:从 端口:双绞线 PHYAD:24 收发器:外部 MDI-X:关(自动) 支持唤醒:g 唤醒:d 检测到链接:是 Dmesg 日志: root@ls1028ardb:/home/user# dmesg | grep eno0 [ 13.165970] fsl_enetc 0000:00:00.0 eno0: 从 eth0 重命名 [ 13.721100] fsl_enetc 0000:00:00.0 eno0: PHY [0000:00:00.3:18]驱动程序 [Qualcomm QCA8081] (irq=POLL) [ 13.722673] fsl_enetc 0000:00:00.0 eno0: configuring for phy/2500base-x link mode [ 17.813736] fsl_enetc 0000:00:00.0 eno0: Link is Up - 2.5Gbps/Full - flow control rx/tx 如有遗漏,请提出宝贵意见。 Re: LS1028A 2.5G SGMII ethernet not working with QCA8081 感谢您的答复。 是的,我们还尝试了 SRDS_PRTCL_S1_L0 的 1 和 6 请参见所附 RCW 文件: /* * SerDes 协议 - 0x85bb * * 频率: * 内核 -- 1500 MHz * 平台 -- 400 MHz * DDR -- 1600 MHz * DDR 数据速率 -- 1.600 GT/s */ #include<../ls1028asi/ls1028a.rcwi> SYS_PLL_RAT=4 MEM_PLL_RAT=16 CGA_PLL1_RAT=15 CGA_PLL2_RAT=12 HWA_CGA_M1_CLK_SEL=1 HWA_CGA_M2_CLK_SEL=7 HWA_CGA_M3_CLK_SEL=6 HWA_CGA_M4_CLK_SEL=3 DDR_REFCLK_SEL=2 DRAM_LAT=1 BOOT_LOC=21 FLASH_CFG1=3 SYSCLK_FREQ=600 IIC2_PMUX=6 IIC3_PMUX=2 IIC4_PMUX=2 IIC5_PMUX=2 IIC6_PMUX=3 CLK_OUT_PMUX=2 EC1_SAI4_5_PMUX=5 EC1_SAI3_6_PMUX=5 USB3_CLK_FSEL=39 ENETC_RCW=3 GTX_CLK125_PMUX=2 SRDS /* PCIe 控制器的勘误表 */ #include<../ls1028asi/a008851.rcw> #include<../ls1028asi/a010477.rcw> #include<../ls1028asi/a009531.rcw> /* 增加 FSPI 时钟频率 */ #include<../ls1028asi/fspi_speed.rcw 我们为 Serdes 接口使用 100MHz 的参考时钟。 用于 QSGMII(2.5G)的 Serdes 通道 B分布式 4 端口)正在工作。 Re: LS1028A 2.5G SGMII ethernet not working with QCA8081 SRDS_PRTCL_S1_L0=1 SRDS_PRTCL_S1_L1=5 SRDS_PRTCL_S1_L2=11 SRDS_PRTCL_S1_L3=11 配置是否 srds_prtcl_s1_l0=0x1 srds_prtcl_s1_l1=0x5 srds_prtcl_s1_l2=0xb srds_prtcl_s1_l3=0xb   能否请您提供输入和 RCW 设置的 PLL 频率信息? 谢谢! Re: LS1028A 2.5G SGMII ethernet not working with QCA8081 我们还使用125MHz的参考时钟进行了测试,并观察到了相同的结果。 Re: LS1028A 2.5G SGMII ethernet not working with QCA8081 亲爱的 June-Lu 我们计划对 SerDes 配置进行以下修改,以支持 SerDes 通道 A 上的 2.5G SGMII 操作: 按照 2.5G SGMII 操作的要求,将 SD1_REF_CLK1_P/N 和 SD1_REF_CLK2_P/N 的 SerD es 参考时钟更改 为 156.25 MHz 。 (目前我们使用的时钟发生器相同的时钟频率,仅测试 SerDes Lane A ) 将 SerDes PLL 参考时钟选择位[945:944] 从现有值 “00” 更新 为“10”。 你能帮我们做这个改变吗? 更改 协议选择至 "65BB用于所需的 SerDes 通道配置。 请确认是否需要进行其他更改(PLL 设置、SerDes 寄存器、RCW/DTS 更新或 PHY 相关配置)以支持这一更改? 期待您的支持。 同时附上我们的框图,供您参考。 谢谢 谨致问候 Re: LS1028A 2.5G SGMII ethernet not working with QCA8081 1.如果 SerDes 将 SD1_REF_CLK1_P/N 和 SD1_REF_CLK2_P /N 的参考时钟均设置为 156.25 MHz,那么如何实现 Q SGMII 和 PCIe。 2.SRDs_pll_ref_clk_sel_s1=2,请参阅 https://github.com/nxp-qoriq/rcw/blob/LSDK-21.08/ls1028asi/ls1028a.rcwi 由于这不是官方配置,您可以尝试一下。 谢谢!
查看全文
发送时 CAN 忙 嗨,恩智浦社区、 我重定向了 CanIf_RxIndication 函数。当将 CAN 模块设置为环回模式时,测试成功,发送和接收的数据一致。 然而,当我退出环回模式时,却无法发送报文,Can_43_FLEXCAN_Write 函数返回 0x02(忙)。 MCU 的 tx 引脚与 rx 引脚数据同步,而不是预期发送的数据。Rx 数据比 tx 数据慢约 130ns,而且是连续发生的(大约每秒发送一帧)。 收发器是 TJA1043。我已将 STB 和 EN 引脚设置为高电平。CANH 和 CANL 保持不变。 下面是 ESR 寄存器的信息。请帮助排除可能的原因。 非常感谢! Re: CAN is busy when transmit Hi@Johnson97 在你提供的项目中,你的时钟配置完全错误。 您的 FXOSC 时钟为 20MHz 您设置的 MFI 为 120,ODIV2 为 4,超出了 PLL VCO 输出频率(240)的范围。 您必须遵循参考手册中的要求: 供你参考: 最后,不要忘记重新配置 FlexCan 的波特率设置。 Re: CAN is busy when transmit 抱歉,为该项目购买的 Autosar 软件包已指定使用此版本的 RTD。 因此,我需要根据该版本配置 mcal,并验证其是否无误。 您能安装这个版本并帮我排除故障吗? Re: CAN is busy when transmit Hi@Johnson97 您能否将 RTD 更新到新版本,或者修改 S32 DS 上的测试例程,以便我为您进行检查?(我还没有安装 RTD 版本)。 Re: CAN is busy when transmit 请查看随附的文件。RTD 软件包的版本是 sw32k3_s32m27x_rtd_rtd_r21-11_4.0.0_p19_d2403 Re: CAN is busy when transmit Hi@Johnson97 请分享您的项目,我将花一些时间为您进行审查。 Re: CAN is busy when transmit 非常感谢。问题已经解决。 除上述问题外,CAN 波特率相关寄存器的配置也与手册中规定的有效值不符。 微控制器 tx 引脚的波形符合预期。随后的问题应与收发器有关。 再次感谢您!
查看全文
S32K358 多核调试器 我 按照文件 S32K32X_Multicore_Project_Quick_Start_Guide.pdf 中的说明 删除了 路径 C:\NXP\S32DS.3.6.0\eclipse\plugins\com.pemicro.debug.gdbjtag.pne_5.9.2.202409131555\supportFiles_ARM\NXP\S32K3xx 中的 s32K358.mac 文件 ,但 core2 仍然无法调试。能否请您帮助排除故障并找出问题所在? 回复: S32K358 multicore Debug 您能帮我调试一下项目吗? 回复: S32K358 multicore Debug 已经解决了,是启动文件错了
查看全文
重金求A1006UK 开发工程师,有做过的工程师联系我, I am requesting a development engineer for A1006UK at a high cost. Engineers who have worked before have contacted me. Thank you very much, vx jesssaid 重金求A1006UK 开发工程师,有做过的工程师联系我,重谢,vx jesssaid Facebook 13922881086 回复: 重金求A1006UK 开发工程师,有做过的工程师联系我, There is an old project that uses this ic, if you have done this project contact me, thank you!
查看全文
使用CLRC66303HN 在16-slots模式无法读取15693标签 我使用的SDK版本是 NxpNfcRdLib_RC663_v07.14.00_Pub.zip  使用one slot  读取标签速度非常快,但是改成16 slots后,经常报错0x201或者0x203        我的修改逻辑是把所有的 |  PHPAL_SLI15693_FLAG_NBSLOTS替换为 /* | PHPAL_SLI15693_FLAG_NBSLOTS */ 还有哪里漏改了吗? 具体修改如下:   diff --git a/Middlewares/Third_Party/nxp/NxpNfcRdLib/comps/phacDiscLoop/src/Sw/phacDiscLoop_Sw_Int_V.c b/Middlewares/Third_Party/nxp/NxpNfcRdLib/comps/phacDiscLoop/src/Sw/phacDiscLoop_Sw_Int_V.c index a2b1dd9..317b4b2 100644 --- a/Middlewares/Third_Party/nxp/NxpNfcRdLib/comps/phacDiscLoop/src/Sw/phacDiscLoop_Sw_Int_V.c +++ b/Middlewares/Third_Party/nxp/NxpNfcRdLib/comps/phacDiscLoop/src/Sw/phacDiscLoop_Sw_Int_V.c @@ -47,7 +47,7 @@ phStatus_t phacDiscLoop_Sw_DetTechTypeV( /* Inventory request with one slot */ status = phpalSli15693_Inventory( pDataParams->pPalSli15693DataParams, - pDataParams->sTypeVTargetInfo.bFlag | PHPAL_SLI15693_FLAG_NBSLOTS | PHPAL_SLI15693_FLAG_INVENTORY, + pDataParams->sTypeVTargetInfo.bFlag /*| PHPAL_SLI15693_FLAG_NBSLOTS*/ | PHPAL_SLI15693_FLAG_INVENTORY, 0, NULL, 0, @@ -106,7 +106,7 @@ phStatus_t phacDiscLoop_Sw_Int_CollisionResolutionV( /* Symbol 0 */ status = phpalSli15693_Inventory( pDataParams->pPalSli15693DataParams, - pDataParams->sTypeVTargetInfo.bFlag | PHPAL_SLI15693_FLAG_NBSLOTS | PHPAL_SLI15693_FLAG_INVENTORY, + pDataParams->sTypeVTargetInfo.bFlag /*| PHPAL_SLI15693_FLAG_NBSLOTS*/ | PHPAL_SLI15693_FLAG_INVENTORY, 0, aMaskBuffer, bMaskBitLength, diff --git a/Middlewares/Third_Party/nxp/NxpNfcRdLib/comps/phpalSli15693/src/Sw/phpalSli15693_Sw.c b/Middlewares/Third_Party/nxp/NxpNfcRdLib/comps/phpalSli15693/src/Sw/phpalSli15693_Sw.c index a99ad24..d507f8e 100644 --- a/Middlewares/Third_Party/nxp/NxpNfcRdLib/comps/phpalSli15693/src/Sw/phpalSli15693_Sw.c +++ b/Middlewares/Third_Party/nxp/NxpNfcRdLib/comps/phpalSli15693/src/Sw/phpalSli15693_Sw.c @@ -1839,7 +1839,7 @@ phStatus_t phpalSli15693_Sw_InventoryExt( /* Clear INVENTORY, AFI and NBSLOTS flag */ if((status & PH_ERR_MASK) != PH_ERR_SUCCESS) { - pDataParams->bFlags &= (uint8_t)~(uint8_t)(PHPAL_SLI15693_FLAG_INVENTORY | PHPAL_SLI15693_FLAG_AFI | PHPAL_SLI15693_FLAG_NBSLOTS); + pDataParams->bFlags &= (uint8_t)~(uint8_t)(PHPAL_SLI15693_FLAG_INVENTORY | PHPAL_SLI15693_FLAG_AFI /*| PHPAL_SLI15693_FLAG_NBSLOTS*/); } /* Verify the exchange status. */ @@ -1967,7 +1967,7 @@ phStatus_t phpalSli15693_Sw_InventoryExt( }while(bAllBlocksRead == 0U); /* Clear INVENTORY, AFI and NBSLOTS flag */ - pDataParams->bFlags &= (uint8_t)~(uint8_t)(PHPAL_SLI15693_FLAG_INVENTORY | PHPAL_SLI15693_FLAG_AFI | PHPAL_SLI15693_FLAG_NBSLOTS); + pDataParams->bFlags &= (uint8_t)~(uint8_t)(PHPAL_SLI15693_FLAG_INVENTORY | PHPAL_SLI15693_FLAG_AFI /*| PHPAL_SLI15693_FLAG_NBSLOTS*/); pDataParams->bExplicitlyAddressed = 0; Re: 使用CLRC66303HN 在16-slots模式无法读取15693标签 你好@a751116023 请尝试以下步骤: 1.初始化阅读器。 将协议设置为 ISO15693。 启用避免碰撞功能。 选择时间段 = 16(用于多标记方案)。 2。启动存货命令。 读取器发送存货命令,标签随机选择一个时段进行响应。 读者收集回复: 如果一个时隙内只有一个标签 → 获取 UID。 如果碰撞发生在一个时隙 → 无法识别,标记为"不完整" 。 3.记录识别的标签。 将成功读取的 UID 储存到列表中。 向识别到的标签发送选择命令,将其从随后的防碰撞中移除。 4.循环直至完成。 重复步骤 2-4,直到 所有标签 UID 均已识别,或重试次数已达上限。 Re: 使用CLRC66303HN 在16-slots模式无法读取15693标签 我把 Middlewares\Third_Party\nxpNfcRdLib\intfs\phacDiscLoop.h 里的 PHAC_DISCLOOP_CFG_MAX_VICINITY_CARDS_SUPPORTED 改成0x10后 好像是执入16 SLOTS了。现在还有个问题 Examples\NfcrdlibEx4_MIFAREClassic\NfcrdlibEx4_MIFAREClassic.c 一次只能读取一张卡 给这张卡休眠之后继续读取 还是只读取到这一张卡 怎么解决?
查看全文