关于 CH582M 的几个疑问

1? CH582M 的最高系统时钟频率是多少?80MHz?

2? CH582M 的手册中说TMR 的中断标志寄存器(R8_TMRx_INT_FLAG) 中的 RB_TMR_IF_FIFO_OV FIFO 溢出 是什么意思? R8_TMRx_FIFO_COUNT,FIFO 内数据计数 是什么意思?

3? TMR 的 DMA 怎么用?有例程吗?

4? 启用 DC-DC 时,需要外接的电感有什么要求?

5? 支持外部有源振荡器吗?如何设置寄存器?

6? CH582M 的开发板的无源振荡器没有接地电容,是在芯片内置了,还是振荡器内置了接地电容。

7? 用 WCH-Link 接CH582M开发板,开启两线调试接口后,第一次烧录程序,总是提示“开发板芯片状态错误”,而无法烧录,第二次才可以。

8? 用 WCH-Link 接CH582M开发板,WCH-LinkUtility 为什么无法勾选 “Disable(Enable) MCU Code Read-Protect”(灰色的)。

9? 能用WCH-LinkUtility 开启两线调试接口吗?

10 可以像keil那样设置成调试后自动运行到main函数开始吗?

11 CH582M 的定时器有 PWM 输入功能吗?

12 CH582M 没有看门狗功能?

13 不焊晶振,VDCID和VSW的电压正常吗?

1.ch582m最高系统主频时80Mhz,

2.FIFO溢出(捕捉模式FIFO 满或PWM模式FIFO 空)标志位,写1清零,FIFO内数据计数,最大值8,可以查了fifo使用情况,

3.有TMR例程可供参考,

4.电感需要22uH 电阻2欧姆以内,电流大于100ma,

5.支持有缘晶体,无需配置,

6.无缘32M晶体推荐参数32M 10/12PF 10PPM 内置多档可调节匹配电容,

7.可以使用最新的MRS测试看看,我这边没有复现此问题,

8.ch582m没有读保护配置的功能,

9.不可以,只可以使用isp工具开启

10.将图片中红框中内容修改为main

Screenshot-81dac17b-43a5-4234-bf72-e7ccaa335c8f.png

11.有的,可参考TMR例程,

12.有看门狗功能,具体配置可参考此博客:https://www.cnblogs.com/debugdabiaoge/p/15770300.html

13.ch582m是必须外接32M高频晶体的,






6.无源32M晶体是在CH582M芯片内置 多档可调节匹配电容?

13.ch582m是必须外接32M高频晶体,VDCID和VSW的电压才正常?不接32M高频晶体,VDCID和VSW的电压就不对?

至于3. TMR 的 DMA  和11. CH582M 的定时器PWM 输入功能,是在CH583EVT软件包中吗?我仔细看看。


ch582m没有读保护的功能?不能加密?

确定:VDCID和VSW的电压正常,就说明32M高频晶体焊接无误?


内置可配置的匹配电容

emobile_2023-05-30_09-36-10.png

VDCOD和VSW电压正常,无法说明晶体焊接无误,如果确保其他都正常,可以用示波器测量下晶体管脚,

ch58x,isp工具下载是支持填入写保护地址,



那我用内置了接地电容振荡器是否晶振就不容易起振了?

BOOT脚拉低加电后,多长时间进入正常程序?


匹配电容与晶体要求不一致,会导致晶体频偏较大,

boot脚拉低若只是加电,会在boot程序中停留10s后运行用户程序,如用usb供电,另一端接电脑,那么会停留60s后运行用户程序,


如用usb供电,另一端接电脑,那么会停留60s后运行用户程序。

得接D+,D- 吧?


是的,如果没有数据线,电脑没有设别usb设备,也同样是10s。


运行 WchIspStudio后,选了多个目标程序文件下载后会出现什么情况?


ISP工具是支持同时下载多个hex固件的,只要地址不冲突就行,地址冲突会有提示的。


如果ch582m没有保护配置的功能,那么WchIspStudio的代码和数据保护模式是啥意思?


您好,可以理解为代码和数据保护模式就是读保护,使用isp烧录是必须开启的,否则无法烧录;当开启两线仿真时,代码和数据保护模式默认关闭。


使用 __HIGH_CODE 有什么缺点?在空间够的情况下,可以所有程序都用 __HIGH_CODE 吗?


调试时,看不见GPIO寄存器?



看了定时器部分,还是没看懂。

对于R32_TMRx_FIFO,我的理解是每个定时器都有1个FIFO,1个FIFO有8个存储空间,用R8_TMRx_FIFO_COUNT计数,计到8,RB_TMR_IF_FIFO_OV置一,然后下一次再FIFO指针再指向第1个地址,R8_TMRx_FIFO_COUNT也清零,RB_TMR_IF_FIFO_OV得程序清零,不自动清零。

应用于PWM,RB_TMR_PWM_REPEAT=0时,第一次产生波形,占空比由FIFO的第一个存储空间的数决定,第2次产生波形,占空比由FIFO的第2个存储空间的数决定,第8次产生波形,占空比由FIFO的第8个存储空间的数决定,然后第9次产生波形,占空比再由FIFO的第一个存储空间的数决定,以此类推。

我的疑问:我只写了一次R32_TMRx_FIFO,其它FIFO的存储空间是复位值,那 2-8次产生波形的占空比就不是我想要的了?

若想产生多个占空比的波形,怎么写FIFO 呢?能给个例程吗?


清零RB_TMR_MODE_IN 对应 PWM 模式和定时模式,但PWM 模式和定时模式又靠那个设置区分呢?


定时模式计数到R32_TMRx_CNT_END后,是继续从零计数,还是停止了?


串口的收发FIFO是独立的还是共用的?


按手册描述“串口接收数据超时中断 UART_II_RECV_TOUT 是指接收 FIFO 中至少有一个字节的数据,并且从上一次串口接收到数据和从上一次被系统取走数据开始,已经等待了相当于接收 4 个数据的时间。”,不是实际线路接收的数据之间超过4个数据时间没接收到数据?


?必须 R8_UARTx_MCR 寄存器中的 RB_MCR_INT_OE 置一,相应串口才能发出中断?


禁用 FIFO (RB_FCR_FIFO_EN=0) 与设置FIFO 的中断触发点是1字节(RB_FCR_FIFO_TRIG=0),有区别吗?还是禁用 FIFO就不产生FIFO中断了?



只有登录才能回复,可以选择微信账号登录