This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具与软件:
大家好、团队成员:
我有关于在 TPS2HCS 上实施 CRC 的问题
1) 1)对于 CRC 启用数据传输、是24位、正确吗?
2)。 帧是28位还是32位?
帧格式 CRC 地址数据是否正确? 最好在数据表中添加启用 CRC 的 SPI 帧格式。
您是否有与之进行比较的参考表? 在启用 CRC 后未从器件获得任何内容。
Krishna
因此、这将在 RTM 版数据表中可用的最新版本中更新、但启用 CRC 后、32位。 找到下图:
我们还没有参考表、但可以根据需要生成参考表(需要几天时间)。
此致、
TIM
Tim、您好!
非常感谢您的快速回复、现在我正在使用 HSS-2HCS10EVM、这是否支持 CRC?
最好提供参考表、 目前如果我必须读取/写入以下寄存器、预期的 CRC 是什么
命令格式为
读取全局故障 0x040000 ->
读取 PWM CH1 0x0E0000 ->
写入 ILIM_CONFIG_CH1 -> 0x8F1638 ->
写入 DIAG_CONFIG_CH1 -> 0x904002 ->
未正确通信该器件
谢谢
Krishna
Krishna
我们计划在年底之前更新、以便在 GUI 中实施 CRC。 我会查看您请求的格式、在 EVM (EVM 具有 JTAG 端口、我可以在其中沙盒代码)上对其进行测试、并在一周结束时收到具有确切写入序列的回复。
此致、
TIM
于年底在 GUI 中实施。 我将查看 y
Timothy
请告诉我有关请求的任何更新信息吗?
谢谢!
Krishna
Krishna
我目前正在处理这项工作。 您能告诉我您在 GUI 中想要什么、具体而言吗? 现在我添加了一个 CRC 按钮、启用该按钮后、对高侧开关的所有写入都将具有额外的 CRC 帧。 它还会在读取"Console"视图时提供 CRC 结果。 这就够了吗?
为了说明其价值、我在 Patrick 实现的功能基础上稍微更新了该函数:
static uint8_t crcGetResult(uint8_t* dataBuffer, uint8_t len) { uint8_t crc_start = 0x0F; uint8_t crc_polynomial = 0x03; uint8_t crc_result = crc_start; uint8_t bitnum = 0; uint8_t bytenum = 0; for(bytenum = 0; bytenum < len; bytenum++) { for(bitnum = 0; bitnum < 8; bitnum++) { if((((dataBuffer[bytenum] >> (7-bitnum)) & 0x01) ^ ((crc_result & 0x08) >> 3)) > 0) { crc_result = crc_polynomial ^ ((crc_result << 1) & 0x0F); } else { crc_result = (crc_result << 1) & 0x0F; } } } for(bitnum = 0; bitnum < 4; bitnum++) { if(((crc_result & 0x08) >> 3) > 0) { crc_result = crc_polynomial ^ ((crc_result << 1) & 0x0F); } else { crc_result = (crc_result << 1) & 0x0F; } } return (crc_result); }
这只是简单的 C 代码、应该能够在任何主机(GCC、Windows 等)下编译。
此致、
TIM
Tim、您好!
感谢您的响应、能够与芯片通信、启用了 CRC 选项、实现了技巧、Micro 我们使用的是小端字节序格式、我必须交换字节
查找参考表以匹配在软件中完成的 CRC 计算与参考表相同。
谢谢!
Krishna