dmzdmz666666

  • 2023-09-22
  • 回复了主题帖: 【HC32F448测评】+用高级定时器6输出PWM

    freebsder 发表于 2023-9-21 20:07 没有直接干的库函数吗?好复杂
    这就是库函数呀

  • 2023-09-20
  • 回复了主题帖: 【HC32F448测评】终篇

    freebsder 发表于 2023-9-20 19:08 希望国产越做越好!支持!
    是的呢  

  • 2023-09-16
  • 回复了主题帖: 【HC32F448测评】+DSP库配置+FFT分析

    学学学学学学学 发表于 2023-9-16 12:06 为什么我按着你上面的配置结果到stack那一步会报很多的错,报的错是有写东西重复定义,有些没定义
    具体是怎么样的

  • 2023-09-15
  • 回复了主题帖: 【HC32F448测评】+ADC采样+FFT分析

    学学学学学学学 发表于 2023-9-15 12:06 可以下载个VOFA,能自己画图
    有空我去试试  

  • 回复了主题帖: 【HC32F448测评】+ADC采样+FFT分析

    lugl4313820 发表于 2023-9-15 12:35 如果这样的话,实时性会受影响吗?
    会有影响的 所以像示波器会有死区时间 这个时间就是不采样 只显示  所以只能做到死区时间越来越短 也就是波形刷新率提高

  • 回复了主题帖: 【HC32F448测评】+ADC采样+FFT分析

    dmzdmz666666 发表于 2023-9-15 10:22 快了也会打断ADC采样 所以一般是采样好 再显示 跟示波器一样
    不知道 还没有研究   

  • 回复了主题帖: 【HC32F448测评】+ADC采样+FFT分析

    lugl4313820 发表于 2023-9-14 17:04 楼主很强呀,串口的话你把速率搞高点,应该没有什么压力吧。
    快了也会打断ADC采样 所以一般是采样好 再显示 跟示波器一样

  • 2023-09-13
  • 回复了主题帖: 【HC32F448测评】终篇

    Jacktang 发表于 2023-9-13 07:25 有一些未知的Bug难免,就是试错成本高点
    有时候就是不知道是Bug导致 还是自己程序没配置好导致 就很难受 卡在那里  

  • 回复了主题帖: 【HC32F448测评】+DSP库配置+FFT分析

    观赏桃 发表于 2023-9-13 16:27 有没有测过完成一次FFT需要多少时间呢?
    这个倒是没有测过  

  • 2023-09-12
  • 回复了日志: 是的 现在叫小华半导体 这是华大半导体的MCU事业部

  • 回复了主题帖: 【HC32F448测评】+ADC采样+FFT分析

    火辣西米秀 发表于 2023-9-12 07:29 同时开启定时器输出PWM波和FFT会死机,这个先开一个,慢慢增加,看看问题是哪个方面造成的
    主要现在没时间搞这个 下次有空再研究研究

  • 2023-09-11
  • 发表了日志: 【HC32F448测评】终篇

  • 发表了主题帖: 【HC32F448测评】终篇

    第十篇:终篇 对HC32F448的测评告一段落了,接下来讲一下我的个人体会,仅代表我个人哦。 优点: 宏观: 资料公开透明,基本齐全,且均提供中文版;提供的例程相对丰富,有利于本土开发者使用。立足本土,放眼海外 小华半导体的MCU产品线相对丰富,包含通用控制、电机控制、低功耗和车规,每款型号均有多种规格可以选择。 针对F460和F4A0型号有对应的初始化代码生成器,XHSC XHCode Setup.zip,类似于STM32的CubeMX,虽然没用过,但是有就好评。 微观: 通讯引脚可以很方便的在GPIO上映射,有利于后期PCB布局。   各个模块介绍相对完整。 不足: 个人觉得最大的问题也是国产MCU厂家共同的问题,就是生态。一方面虽然提供了数据手册、参考手册、勘误手册等,但是有些外设更加具体的用法没有介绍,像DMA、定时器、ADC等。以至于可能就是一两个配置没配置对或者理解错误,导致功能无法运行。虽然有提供较多的例程,但不是所有细节都能概括的。另一方面因为国产MCU相对用的人较少,所以开发资料也很少,对一些模块的驱动都需要自己编写,耗时耗力。 提供技术支持的渠道和时效不理想。官网提供了技术咨询的邮箱和电话,但是像程序这类电话咨询不方便,邮箱个人感觉时效性不高,因为我有个问题发到他们邮箱3天了,但还是没有消息,虽然人家可能比较忙,也没有义务帮你解答,但是一些小问题只需要厂家稍微指导一下,开发者就能豁然开朗,对开发者和厂家其实都是有利的,虽然我是个人开发者,但是选用了你们的产品,你们也不能不太重视吧,技术肯定是原厂就权威。除非你们的目标就是面对大客户。 最后,我当然相信认真设计MCU的企业给他们一定的时间会做的更好,会推出更多的应用笔记、编写更加实用的例程,更加实用的工具。像STM32的生态也不是一朝一夕就建立起来的,也是ST的工程师和无数开发者的共同努力下才越来越完善的,市面上有大把大把的资料和现成工程,还有针对越来越复杂外设配置的CubeMX等。现在工程师吐槽国产最多的就是资料太少了,使用成本过高,同时由于推出时间较短,可能还有一些未知的Bug,这个试错成本对于开发时间有限的使用者来说是比较高的,所以需要厂家共同努力,毕竟MCU设计起来是要有人用的,不好用或者很难用会直接不采用这款MCU而选择成熟、资料多的国外MCU,这对于厂家也是不利的。                                                                    最后,我还是很看好小华半导体的,也希望我以后遇到问题,实在解决不了,还有求助于原厂的机会,共同努力,谢谢    

  • 发表了主题帖: 【HC32F448测评】+ADC采样+FFT分析

    第九篇:ADC采样+FFT分析 接上一篇的配置,上一篇已经配置好DSP库了,接下来测试利用ADC采集模拟数据进行傅里叶分析。 首先参考例程对ADC进行配置,ADC的参数相对简单,需要注意的是它的时钟,它有两个时钟,包含转换时钟PCLK2,数字接口时钟PCLK4。转换时钟PCLK2有三个时钟源,包括系统时钟、PLLHQ、PLLHR,如果采用系统时钟,最高主频为50MHz,如果采用PLLHQ、PLLHR可以通过PLL倍频到60MHz,PCLK4与PCLK2一样,也有三个时钟源,这里为了方便,均采用系统时钟,PCLK2=50MHz,PCLK4=100MHz   ADC有好几种扫描模式,单次扫描、连续扫描、缓冲扫描等,这里我们选择连续扫描模式:stcAdcInit.u16ScanMode=ADC_MD_SEQA_CONT; 同时触发源选择软件触发: ADC_Start(CM_ADC1); 然后循环运行以下程序:查询状态位,然后清零,读取数据。 while(ADC_GetStatus(ADC_UNIT, ADC_EOC_FLAG) != SET); ADC_ClearStatus(ADC_UNIT, ADC_EOC_FLAG); ADC_DATA[ADCnum]=ADC_UNIT->DR10; 因为目前做不到实时分析,所以只能当数据满1024时,再进行FFT分析。输入一个1KHz方波,下图是ADC测得的波形   然后对该数据进行FFT分析,取前64个数据进行作图,可以发现有多个频率的信号,除了1KHz的基波,还有3KHz的3次谐波,5KHz的5次谐波等,这符合方波的特性:由多个频率的正弦波叠加而成。   下图是虚拟示波器测出来的波形及FFT分析的结果,基本一致。     上述是我目前能做到的效果,由于还没有解决下面提到的问题,还没办法实现更加实用的FFT效果: 1、没有通过DMA传输ADC数据的问题,因为没有解决相关问题,用DMA还不太熟,无法一次性转移如1024个ADC数据。 2、开启ADC的转换完成中断(ADC_INT_EOCA)后发现会卡死,会导致开发板上面的按键无法使用,主要原因可能是中断冲突,HC32的中断是很强大,但理解起来对我而言还是很吃力的,后续有机会要去研究一下。 3、发现同时开启定时器输出PWM波和FFT会死机,不知道为什么,还有一点,感觉FFT不太稳定,跟其他多个外设一起开会有问题,有机会也要研究一下。 4、因为波形都是通过串口输出数据,然后Excel画图,要更加直观的话需要显示在LCD上或者实时传输到上位机,上位机实时画线,这个要求更高,因为就类似于示波器了,要花更多的时间。  

  • 发表了日志: 【HC32F448测评】+ADC采样+FFT分析

  • 发表了日志: 【HC32F448测评】+DSP库配置+FFT分析

  • 发表了主题帖: 【HC32F448测评】+DSP库配置+FFT分析

    第八篇:DSP库配置+FFT分析 这篇文章将来测评HC32F448的DSP库和FFT HC32F448内核集成了FPU和DSP,支持完整DSP指令集,我们将用此进行FFT分析,关于FFT及傅里叶变换的相关知识,这里强烈推荐安富莱的《安富莱_STM32-V7开发板_第2版DSP数字信号处理教程(V2.7)》写的非常详细,非常好,给硬汉哥的开源精神点一个大大的赞 要使用DSP,要进行以下配置。 1、添加DSP库,这里我们可以通过CMSIS来配置,比较方便,这里使用的是1.8.0版本   2、然后点击魔术棒进行如下配置,要使能FPU,这样添加进来的lib就是arm_cortexM4lf_math.lib   4、添加对应的宏定义,使能FPU等功能,可以这么写 HC32F448,USE_DDL_DRIVER,__DEBUG,__TARGET_FPU_VFP,__FPU_PRESENT   5、修改stack的大小,stack负责存放函数的参数值,局部变量的值等,由编译器自动分配释放,具体的技术细节可以参考网络,这里就不再说了。因为FFT会涉及到比较多的参数传递和局部变量(我认为),所以要分配比较大的stack,具体是在startup_hc32f448.s进行修改,那具体要给多大呢,这里我自己的一个方法可以参考,不一定权威(参考正点原子的《MAP文件浅析》),但经过测试确实有用。我们在生成的工程里找到output文件夹,里面有 htm 文件,选择那个不是build_log的文件,我这里是Demo.htm   其包含了它是编译器在编译代码的时候生成的一个列表文件,包含了整个工程的静态调用图,最大的用处就是可以查看栈深度(最小深度),方便设置栈大小。可以直接由浏览器打开。   可以看到,程序的最大栈深度是17088字节,最大栈深时的调用关系为main ⇒ AdcPolling ⇒ FFT ⇒ arm_rfft_fast_f32 ⇒ arm_cfft_f32 ⇒ arm_cfft_radix8by4_f32 ⇒ arm_radix8_butterfly_f32 这也符合常理 不过需要注意的是,这里的最大栈深度仅仅是最低要求(静态栈),因为它并没有统计无栈深的函数(用内存管理)、递归函数、以及无法追踪的函数(函数指针)等所包含的栈(Stack)。 不过它给我们指明了最低需求,我们在分配栈深度的时候,就可以参考这个值来做设置,一般要高于静态栈不少。 我这里设置的FFT点数为4096,这种情况下stack应该是最多的,所以我这里就设置stack为Stack_Size  EQU  0x00005000,有20KB这样在点数取小于4096时,stack也都是足够的。如果运行过程中发现程序卡死,出现HardFault_Handler,可能就是这个设置太小了,至少我遇到的是这种情况。 配置好以后,接下来是程序。   这里的程序比较简单,这里就不在赘述了,因为FFT具有对称性,所以最后输出的结果可以只取一半(主要不取一半的话会有问题,目前没法解决) 接下来验证一下,生成一个sin序列,包含一个直流分量,100Hz,200Hz,500Hz的波形,采样率为1024,具体如下 Input_Data_f32 =1+sin(2*3.141592f*100*i/FFT_N)+sin(2*3.141592f*200*i/FFT_N)+sin(2*3.141592f*500*i/FFT_N); 通过串口打印数据,下图是它具体波形   然后将其FFT分解,因为采样率为1024,点数为1024,所以其分辨率为1Hz,就是每一个数据就代表一个频率,下图中第1点,第100点 第200点 第500点有尖峰,说明其中含有对应频率的波形,与输入的原始波形所包含的频率一致,FFT正确。                  

  • 2023-09-06
  • 回复了主题帖: 【小华HC32F48测评】关于通用定时器time0、adc、DMA的学习与测试

    请问上面的例程中对ADC的EOCF标志位是否需要清零,如果要 那程序在哪里呢

  • 2023-09-02
  • 回复了主题帖: 【HC32F448测评】+用DAC输出可调正弦波

    lugl4313820 发表于 2023-9-2 11:24 至此,DAC输出正弦波就测评好啦,基本处于可用状态。 有时候专业的事还得专业的设备来做吧。
    说的对 生成任意波还是交给DDS来吧  

  • 2023-09-01
  • 发表了日志: 【HC32F448测评】+用DAC输出可调正弦波

最近访客

< 1/4 >

统计信息

已有49人来访过

  • 芯积分:157
  • 好友:--
  • 主题:24
  • 回复:44
  • 课时:--
  • 资源:--

留言

你需要登录后才可以留言 登录 | 注册


现在还没有留言