- 博客(23)
- 收藏
- 关注
原创 安全密码算法:SM3哈希算法介绍
国密算法之一,哈希算法的一种,也是密码杂凑算法。可以将不定长的输入消息message,经过SM3算法计算后输出为32B固定长度的哈希值(hash value)。哈希算法的实质是单向散列函数(one-way hash function),其特点是,输入数据有1bit的改变都有很大概率会产生不同的散列值,因而很多场景中会使用散列值来验证输入消息的完整性。
2024-08-16 18:17:20
999
原创 ADI-DSP-BF706之CCES操作仿真及烧写程序
打开编辑,本来想把上次说的SPI写了,但想到可能刚开始接触这款DSP的读者对于烧录程序和刚开始上手使用会有些不太清楚,所以在此先讲一下基础的操作。1、开发平台:CCES 2.9.3.0,官网上就有该软件,链接:https://www.analog.com/en/design-center/evaluation-hardware-and-software/software/adswt-cces.html#software-relatedsoftware2、下载之后安装,安装没有什么特别的,就是安装路
2021-04-01 20:58:11
2420
1
原创 ADSP-BF706之同步信号触发机制
在这款dsp硬件手册中可以看到Trigger Routing Unit这个单元的知识介绍,在开发中我也用到了同步触发机制,使用的是软件触发,将Software-driven Trigger 0 作为TRU的master,EPPI和定时器作为slave。同步触发的运行机制如图所示,一端作为产生触发信号的master,另一端是响应的slave。触发信号的输入和输出都是在TRU触发路由单元进行,the master trigger register(MTR)产生一个触发信号,slave的slave select
2021-03-09 17:20:00
693
原创 ADSP-BF706 低功耗模式及唤醒
最近在做这个工作,就先写这一片低功耗模式和唤醒方式。在文档中,写有低功耗模式主要有两种:Deep sleep modeHibernate mode前者主要关闭内核和系统的时钟,当进入deep sleep mode 之后CCES不能仿真,处理器会进入idle状态。经测试,这种模式下,若4V的电压,进入低功耗后功耗为40mw左右,程序中各变量的状态保持。后者模式,能达到最小的功耗,因为它把内部的VDD_INT 电都关闭了,当唤醒之后,整个程序会重新运行一遍,这样的话没有存到flash的值就会重新清空。
2021-03-04 17:23:33
859
原创 ADSP-BF706UART串口之中断模式
上次说写uart的中断模式,今天才开始写,主要是把我之前通过测试的配置注在这里,开发的时候会比较多使用DMA模式,中断模式配置相对也比之复杂一些。1、初始化配置:void InitCoreUartx(uint8_t* buffer) //Uartx uartx,{ uint32_t temp_reg = 0, ClkDivide_1 = 0; uint32_t fcclk = 0u; uint32_t fsysclk = 0u; uint32_t
2021-03-01 20:18:32
543
4
原创 3. ADSP-BF706 之内部时钟与外部时钟
上一篇发了串口配置,格式真的一言难尽啊~~~~~上一篇也提到我要验证内部时钟和外部时钟的采样是否一样稳定,这篇就把实验结果写过来,同时请教一下大神一个问题:本部分的实验有两个:实验一、相同条件:同样的一版开发程序,同样的开发板,同样的正弦标准信号1MHz,同样的电源。变量1:程序是否配置外部PLL时钟50M给ADC采样数据。实验二、相同条件:同样的一版开发程序且都使用内部时钟100M,给ADC采样时钟50M,同样的正弦标准信号1MHz,同样的电源。变量2:电路板上是否有外部时钟芯片。结果:
2021-02-08 15:03:17
786
原创 ADSP-BF706之UART串口DMA模式
2. ADSP-BF706之UART串口DMA模式上一篇是时钟配置,我今天会进一步验证一下外部和内部时钟的稳定性,对于中断配置的话,我是在配置各个外设时顺便就配置的,所以就不单独列出来了,相关的配置会在文中提及。今天来梳理一下uart的DMA配置模式:UART的DMA模式配置分两步走:1、DMA配置。2、UART模式配置。DMA配置:a. 配置传输地址b. 一次发送/接收的数量,如果是中断模式,即接收或者发送多少个字节进入中断c. 地址增量d. 配置DMA控制寄存器首先在硬件手册上找到
2021-02-08 13:57:14
847
1
原创 ADSP-BF706简介 && 时钟配置
ADSP-BF706简介 && 时钟配置针对需要注意的点,尽我知道的概括。1、最大内核时钟400M,最大系统时钟200M,Core0最大运行时钟100M2、其中外设EPPI最大采集数据时钟频率,50M。3、若使用定时器产生PWM波,只有宽度和延时,无周期概念。4、可进行同步触发操作。5、外部flash可编程【进行编程时,flash相关文档很重要】。…一、先进行时钟配置,分别是内部时钟配置和外部PLL时钟配置,至于稳定性,可以用信号发生器产生一个标准正弦信号,再采集这个信号,分
2021-02-07 16:28:39
930
原创 DSP: ADSP-BF706
DSP之ADSP-BF706,序最近在用DSP来进行软件开发,ADSP-BF706用的人比较少,中文文档自然也相当少,使用的时候都是根据相关英文手册来进行开发,之后一段时间可能会整理开发过程,以及对已经实现的一些功能进行总结,希望对之后有使用这款DSP的同伴有一点用,虽然我经验也不丰富。...
2021-02-07 11:41:48
589
原创 兆易创新开发板所遇串口问题,芯片型号:GD32F405X
问题描述:在调试串口时,使用官方例程,串口助手上出现乱码现象。解决:在波特率,时钟频率等设置正确的前提下,还是出现乱码,换一种串口线检查是否是因为引脚输出的电平原因导致的乱码。使用GD32F405X开发板时,使用232串口是乱码,使用TTL串口就正确了。Ttl电平标准:输出 L: <0.8V ; H:>2.4V。输入 L: <1.2V ; H:>2.0V输入,低于1.2V就认为是0,高于2.0就认为是1。232电平标准:逻辑1的电平为-3~-15V,逻辑0的电平为+3~
2020-11-06 11:40:34
2025
原创 复旦微串口烧录程序hex文件
一、 说明:bootloader.hex文件里,支持 UART0(PF3,PF4), UART1(PB0, PB1), UART2(PB2,PB3)三路串口进行升级,默认通信参数 115200bps,无校验。我进行烧写时使用的是TTL串口。二、串口烧录步骤:1、 如果之前没有烧录bootloader.hex进开发板,先烧写BootLoader文件:bootloader 上位机不能向 mcu 烧写bootloader 引导程序,需使用仿真器事先将引导程序烧写进mcu。2、 烧写完BootLoader程
2020-09-23 16:15:48
2466
原创 FM33G0X之上电过程引脚配置
八、FM33G0X之上电过程引脚配置使用官方例程的代码初始化,在实际测试中会出现:配置成输出的引脚在上电过程中会将电平拉高,12v的输入电压,引脚可能会拉到3v,并持续一段时间,这对于实际应用中,是不应该出现的。比如一开始在io口配置中配置成输出,一般都会直接将之置为0,那上电过程中就不应该会出现拉高现象。固然有硬件原因,但若拉高幅值太大,那应该检查引脚是在什么时候置高的。针对上述问题,发现,在官方例程中的系统初始化:Init_System();------> Close_AllIO_GPIO_8
2020-06-28 14:04:12
801
2
原创 复旦微国产化HEX程序的JLINK烧写
一、工具1.下载器: J-LINK, V8 以上.2.下载器接插线:在有 20pin 的线上, 有箭头一端为 1pin,需要连接的引脚有VCC, GND,SWDIO, SWCLK.,引脚分布见下图:3.下载器的 USB 线,一端连接 JLINK,一端连接 USB 供电端。4.JLINK 安装驱动程序包。二、步骤1.连线:将接口和下载器接插线连接,上电。2、打开 J-Flash.exe,新建项目(create a new project) ,在 Target Device 下寻找当下使用的芯
2020-06-24 13:57:52
3606
原创 国产化芯片FM33G0系列之低功耗串口
七、低功耗串口首先,先看官方例程中的LP串口配置。void LPUart_Init(void){ LPUART_SInitTypeDef init_para; RCC_PERCLK_SetableEx(LPUFCKEN, ENABLE); //LPUART功能时钟使能 RCC_PERCLK_SetableEx(LPUARTCKEN, ENABLE); //LPUART寄存器总线时钟使能 GPIO_PF4AFSEL_PF4AFS_Set(GPIO_PF4AFSEL_PF4AFS_
2020-06-23 15:38:47
1592
原创 FM33G0系列之低功耗
五、FM33G0系列之低功耗复旦微芯片,低功耗模式有两种,一种是只内核休眠,一种是芯片完全休眠(内核+外设)。前者运行状态和进入低功耗状态的电流,差别不是很大,1mA以内,使用12v电压,总体不到10mW。其好处是,在唤醒时可以使用普通串口发送字节唤醒。芯片完全休眠,在deepsleep模式下,普通串口无法使用,仅低功耗串口可使用,所以可通过低功耗串口进行单字节唤醒。芯片完全休眠的电流应该会比只内核休眠低很多,但缺陷是低功耗串口在该模式下只能支持到最高 9600 波特率的数据接收。如果使用115200波特
2020-06-18 09:42:13
2757
原创 STM32之点阵显示
驱动点阵,其点阵和开发板相关信息:**开发板:**ALIENTEK 探索者 STM32F407。其中程序是从stm32l073移植过去的,仅仅是点阵显示的程序。**点阵信息:**HDLx-2416 Series,5×7Alphanumeric Displays,总共有四个显示点阵,每个5×7。没使用驱动芯片。引脚定义:因为无驱动芯片,所以直接引脚点亮。直接代码:/*主函数*/int main(void){ u8 key; HAL_Init();
2020-05-27 16:53:11
3960
原创 复旦微国产化开发板FM33G0系列之ADC采集
四、ADC采集复旦微FMG033系列的ADC是11位的。我直接上最主要的采集ADC代码吧://ADC外部输入通道测试uint32 Test_ADC_ExVolt(uint8_t Ch_selec){ uint16 ADCData[16]; uint08 i; volatile uint32 fVlotage = 0; uint32 fTempADC = 0; ADC_IO_Init(); //IO口配置为ADC输入 ADC_Init_TsetE
2020-05-20 17:00:00
1951
1
原创 STM32L0系列之按键中断所遇问题
前两天在使用stm32实现按键切换各种模式的过程中,遇到的一个小问题,仅此记录一下。在按键中断的回调函数中,用一个自定义的状态标志keyTriFlag来获得当前按键端口的电平。然后在另一个功能函数里面有一个while循环,一直在判断按键是否还在按下状态,如果按键松开,跳出循环。即 while(keyTriFlag == KEY_ON);当我只是普通定义这个状态标志位的时候:uint8_t keyTriFlag = KEY_OFF; 按键时会出现的情况:在仿真条件下,watch里面即使keyTriF
2020-05-16 14:19:45
1176
原创 国产化开发板FM33G0之普通串口通信
三 普通串口通信我程序中的通信采用的是中断接收单字节,在主函数里面用一个函数来进行数据处理,比如校验等操作。其实单片机的通信大致都是,时钟配置,IO口配置,打开io口时钟,打开串口时钟,将引脚配置成串口功能,然后设置中断以及初始化配置,只要初始化成功,几乎参照例程中的收发数据就能完成通信,然后再根据自己的需求来删减增加代码。针对以往遇到的问题,现在再看来,可以将通信总结为:初始化串口【几乎和例程中的Uartx_Init(UARTx);一致】:上代码:void Uartx_Init(UARTx
2020-05-16 14:04:40
1620
原创 国产化复旦微开发板FM33G0之定时器
二、定时器先来说一说我最近遇到的一个问题,这是一个关于延时和定时的问题。实现功能:在程序初始化时,给某引脚拉低之后(在此拉低相当于上电)延时3s,等待充电,然后再将该引脚拉高。所遇问题:一开始使用系统的嘀嗒定时器,但最久延迟1秒程序就复位或者跑飞了。我使用的时钟是默认的高频RC振荡器,频率是16M,Systick是24位的,这样算下来也是一次性能延时最多1s左右吧。此时我配置的看...
2020-05-05 12:58:24
2185
3
原创 国产化复旦微开发板FMG0系列学习过程
一、开始因为项目原因,开始接触复旦微国产化开发板,使用的系列是FMG0系列,除了官网论坛上有很多有用的知识点,很少有相关资料。用CSDN查资料也用了好一段时间,但从没有写过博客,这次就把使用复旦微开发板的过程记录下来吧,不知道能坚持多久,因为我是一位小白,使用单片机也不久,很多东西也许只是知道皮毛,希望看到博客的各大大佬能多指点指点,那是再好不过的了。写这个博客的初衷也是,一为了给自己的学习过...
2020-05-05 10:40:08
2012
4
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人