3.0.0 版本遇到MCAL工程打不开的情况可以参考:https://forum.ytmicro.com/topic/530/win10-打开mcal工程报-worker-terminated?_=1777532487956
使用的demo工程Etmr_Pwm_Complementary_Demo,
测的tmer1的ch4和ch5,
问题:发现实测(312ns)的死区时间和理论(375ns)的不一致有偏差
主频48mhz,计算公式:(1+1)*(8+1)/48mhz=375ns
过程:
YCT配置
bfa6633f-bcc4-4b9c-a360-e6c352ddc49c-image.png
手册公式计算:
96262fe5-1b50-4d52-b003-8655a2c62191-image.png
实测波形
d1fc9746-4394-486b-bc3c-db40119acd07-image.png
看到的话尽快回复一下
软件版本:MD2 0.9.1
MC0 2.3.0
1、同步发送缺帧问题
使用UART硬件进行串口通信,使用DMA,连续调用同步发送,发现同步发送不完全。
4e01cf3b-9346-4ce2-88d1-ad9c74908549-img_v3_0211h_ae0f27eb-07dd-4fe7-bc9e-2065a75d32eg.png
5203a91d-2794-4523-a65b-652eb4685e9e-img_v3_0211h_f8463101-d811-4334-a2ef-8ea1202e1e7g.png
原因:
同步发送内部依然使用DMA进行发送(新版本使用轮询的方式,DMA只作用于异步通信),当DMA将数据搬入FIFO完成时,在软件层面上被认为搬移完成,但其实硬件还未来得及将FIFO中的数据发送到总线上。此时立即再次调用同步发送就会导致发送不完全的问题。
解决方案:
调用完同步发送后稍加延时,让硬件将FIFO数据发送完成后再进行新的发送请求。
c7dc7885-a999-40f1-aa3c-4ec54cf3c25f-img_v3_0211h_f34c1946-6232-41c9-aa2b-b0fab4fe5a0g.png
2、UART IP使用DMA配置IDLE中断
存在BUG,当UART使用DMA进行通信时,IDLE如果触发,没有及时清理标志位,导致一直进入中断。
解决方案:
在触发IDLE中断时结束通信的同时及时清除标志位。
21c8931b-44e1-4908-b148-921c852a3850-img_v3_0211h_e8f34736-c807-492a-af68-3dd7803c627g.png
附上MCAL MD2 CddUart模块 DMA+IDLE中断参考DEMO
CddUart_Idle_Demo.zip
开发JTAG保护,使用论坛最新的驱动后,在FLASH_DRV_EraseSector时返回error了,目前使用flash_driver_bin_20260411+SDK1.4;之前使用去年的flashdriver+SDK1.3验证成功过。
请帮忙分析一下,谢谢。
地址为:#define EFM_CUS_NVR_ADDR (0x10000000)
长度为:#define FEATURE_EFM_NVR_ARRAY_SECTOR_SIZE (0x800u)
flash_driver_bin_20260411.zip
aea6d09f-0244-45fc-b1be-98f769536456-25a2c485d7f488adbff908ad89848a4e.png d87e2b70-8f92-44f9-9ed8-263839ccdfc3-cb9098cb0e026c06c65a43e91fbd1651.png
程序调用CLOCK_DRV_Init,返回值为STATUS_SCU_CLK_SWITCH_TIMEOUT。程序就运行不下去了。
410546bd-4962-4308-a394-87f9159aa745-image.png
e3ee154d-a10f-4f59-b027-2e4dbf9d7177-image.png
扒源码发现是
CLOCK_SYS_SetScuConfiguration ->
CLOCK_SYS_ConfigureSystemClock(SCU_SYSTEM_CLOCK_SRC_SIRC); ->
在这个函数里,没有设置成要设的SIRC,超时了。
但是我跑I2C的例程,是可以正常初始化的,IIC的例程可以正常运行。看了一下SCU和CMU的配置,IIC和SPI也是一样。
950ef82e-7d44-4d40-91c8-3703b8132a0d-image.png
只有IPC的配置不一样。
d52511fe-bac1-46fb-a9c7-9918a50fbfd7-image.png
所以这里求助下,这是什么原因?
YTM32B1MD2x 支持硬件加密 (HCU),目前支持的基础算法有
AES-ECB AES-CBC AES-CMAC SHA-256 RSA-1024/2048/3072/4096 ECC-192/256/384 ECDSA其中 AES 相关算法仅支持 128-bit 密钥长度
ECDSA 仅支持 任意 ECC-256 曲线 + SHA-256
目前封出 HCU 的静态库,具体如何使用可参考下方 Demo,以及 使用说明
另外,AES 相关算法所使用的密钥可存储在 HCU_NVR (0x1100_1A00 ~ 0x1100_1DFF),该区域不可读,擦除与编程受 Customer Key 保护。密钥存储单元为 16字节(128-bit),共可存储 64 组密钥。
RSA 所用到的公钥,或私钥可存储在 RSA_NVR (0x1100_1200 ~ 0x1100_19FF),该区域不可读,擦除与编程受 Customer Key 保护。密钥存储单元为 512字节 (4096-bit),共可存储 4 组密钥。
上述提及的 HCU_NVR 与 RSA_NVR 使用方法也在 Demo 中有展示。
YTM32B1MD2x_HCU_Demo.zip
YTM32B1MD2x HCU Demo 使用说明.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哦...