Changes from v2.7.7 to v2.7.8:
[feat]:upgrade patch tool to v3.8 [opt]:opt code generate process display [opt]:opt login logic [opt]:opt ghs support [opt]:add MC03 ghs supportf03ee3a9-c294-48d8-a62c-2fa055a9c2e4-image.png
f04d52c4-2d31-413a-9657-dc8960d56fb9-004ae79dd7d3a8165da3aa13ff6fa3f.png
如图,因为外部uart驱动芯片通讯协议需要在帧起始发送一个break,写了一个break发送函数,这个函数在使用中断进行发送时是能够正常发送的。根据下面的帖子修改成DMA发送之后直接进入了hardfault,这是什么原因?https://forum.ytmicro.com/topic/1440/linflexd-uart-dma-mode-demo-md1-me0/3?_=1768392405428
如下图所示,工具界面中默认开启了 -ffunction-sections 和 -fdata-sections。
原因: 生成的 cmake/gcc.cmake 脚本中使用 SET(CMAKE_C_FLAGS ...) 强制重置了编译参数,导致工具传入的这些标志被覆盖丢失。
后果: 链接器无法正确剔除未使用的代码(Dead Code Elimination)
关联问题:
https://forum.ytmicro.com/topic/1302/同样的工程vscode-gcc编译的二进制文件远远大于keil-mdk生成的?_=1763805564704
65761351-0095-445c-b8bd-577719c47dfd-image.png
c0a0e3cc-1b9e-4e8c-a7eb-9c0610679f16-image.png
void test_spi(void)
{
uint8_t tx_buffer[4] = {0};
uint8_t rx_buffer[4] = {0};
tx_buffer[0] = READ_TEMP_CMD;
tx_buffer[1] = 0x00;
tx_buffer[2] = 0x00;
tx_buffer[3] = calculate_crc8(tx_buffer,3);
// SPI_DRV_MasterDeinit(0);
}
Hello all,
I’ve recently observed an issue related to the eTMR interrupt.
When the MCU is running and I provide a PWM input, sometimes the interrupt does not occur at the edge transition as expected.
Below are pictures illustrating both the normal and abnormal cases for reference.
Normal case:
e4c98584-e12f-4404-8d4b-1308ca2b5046-image.png
Abnormal case 1:
3e995f9c-347b-4cdb-a4d9-d0b671401f0c-image.png
Abnormal case 2:
6a5f00be-fa68-47bf-b39d-361706a1a331-image.png
Could you please provide some advice on this issue?
行业内对CAN采样点的测量,基本都是使用Vector VH6501。经常会发生一种情况:按要求设置的采样点,为什么测量结果会差别很大,甚至会差别10%以上呢?
测量误差
三部分组成:VH6501每次缩短或增长的步进长度,用∆𝑡𝑀𝑒𝑠𝐻𝑤表示;网络的时延,用∆𝑡𝑅𝑒𝑐表示;重同步的误差,用∆𝑡TQ表示。
即测量误差 = ∆𝑡𝑀𝑒𝑠𝐻𝑤 + ∆𝑡𝑅𝑒 + ∆𝑡TQ
其中∆𝑡𝑀𝑒𝑠𝐻𝑤 , ∆𝑡𝑅𝑒误差一般比较小,CAN-FD采样点测试中会考虑;∆𝑡TQ是测量误差“看起来”大的主要因素。
∆𝑡TQ重同步误差
同步段(Sync Segment)是CAN 协议为减少累计误差而设计的,在任何情况下均仅为 1 个 TQ 长度。但是CAN协议并没有规定重同步后跳变沿一定要在同步段(Sync Segment) 的哪个位置,从同步段(Sync Segment) 的开始到结束均可以,因此这会带来 1 个 TQ 的误差。
例如:只有10个TQ,运气不好,你有几次测量在同步段(1个TQ)的末尾才识别到同步,这样计算采样点时,就少1个TQ,误差10%。
总结
测量误差大部分是由于 CAN 协议本身所带来的误差。“看起来”误差大,实际上只要设置正确,采样点是不会错的。当然,知道误差分布,可以尽可能改进,减少测量误差。
详细的分析参考Vevtor 官方的文档《VH6501 采样点测试误差及影响因素分析》0002_VH6501_采样点测试误差及影响因素分析.pdf
-
Announcements
Announcements regarding our community
-
Discussion & Question
A place to talk about whatever you want or ask a question
-
Blogs
Blog posts from individual members
快速上手云途开发生态
发帖前请查看
帮助改进和优化YT CONFIG TOOL,有机会抽取YTM32B1ME0 EVB哦...