主题中讨论的其他器件:HSS-2HCS10EVM
工具与软件:
大家好、团队成员:
我有关于在 TPS2HCS 上实施 CRC 的问题
1) 1)对于 CRC 启用数据传输、是24位、正确吗?
2)。 帧是28位还是32位?
帧格式 CRC 地址数据是否正确? 最好在数据表中添加启用 CRC 的 SPI 帧格式。
您是否有与之进行比较的参考表? 在启用 CRC 后未从器件获得任何内容。
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 后未从器件获得任何内容。
Tim、您好!
非常感谢您的快速回复、现在我正在使用 HSS-2HCS10EVM、这是否支持 CRC?
最好提供参考表、 目前如果我必须读取/写入以下寄存器、预期的 CRC 是什么
命令格式为
读取全局故障 0x040000 ->
读取 PWM CH1 0x0E0000 ->
写入 ILIM_CONFIG_CH1 -> 0x8F1638 ->
写入 DIAG_CONFIG_CH1 -> 0x904002 ->
未正确通信该器件
谢谢
Krishna
于年底在 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