- 博客(250)
- 资源 (5)
- 收藏
- 关注
原创 杰发科技AC7840——打印所有GPIO的PORT配置寄存器
该代码通过循环读取内存地址0x40085200开始的寄存器值,每次读取32个32位寄存器数据。外层循环5次(j=0-4),每次偏移0x100地址,对应端口P0-P4。内层循环读取每个端口的32个寄存器值,每5个寄存器换行显示。最终输出格式为"PxNN:0xvalue",其中x为A-E(对应P0-P4),NN为寄存器编号00-31。代码实现了对连续内存区域寄存器值的格式化读取和显示功能。
2026-02-02 21:07:02
106
原创 杰发科技AC7840——PWM触发多路ADC采样
本文探讨了PWM触发ADC采样的实际应用问题。通过测试发现:1) 初始化顺序会影响首次采样点位置,在20kHz PWM下需将CTU模块最后初始化;2) 采用向上计数模式+Init触发方式可使采样点位于PWM周期中间位置;3) 注入组存在中断丢失问题,需直接通过寄存器读取数据。实验数据显示两个ADC中断间隔约600ns,验证了硬件触发的精确性。文中提供了完整的ADC/PWM/CTU配置代码,并指出规则组测试存在异常情况待解决。
2026-01-27 15:45:17
441
原创 杰发科技AC7840——PWM触发ADC采样
本文分析了7840芯片PWM模块的关键特性,重点探讨了PWM波形异常问题及其解决方案。研究发现PWM存在初始电平配置问题,在低电平有效模式下,初始高电平会导致首个周期异常延长672us(超过正常周期666us)。通过将初始电平设为低电平可解决该问题。同时发现PWM在deinit时会产生电平"小尾巴",这是由模块关闭时的强制拉低导致。在ADC采样方面,确定了使用PWM最大值触发和init触发两种方式,其中init触发配合中心对齐模式能实现理想的中间点采样。
2026-01-23 11:29:34
761
原创 杰发科技AC7840/AC7843——standby模式保留ram数据
keil的sct中配置如下代码调用在休眠之前定义退出休眠后发现数据保留了。
2026-01-16 10:25:47
327
原创 Gitlab配置——无法添加秘钥,TortoiseGitPlink要求输入密码
查看getlab的help怎么搞都不行请教大佬之后提示git版本过高,于是在csdn下载上找了个2.14.2版本的git就ok了(git官网好像没有放历史版本下载了)想起来好像在win10笔记本上安装小乌龟时候也提示了小乌龟版本过高,不知道和这个有没有关系目前使用的是这两个版本。
2026-01-13 15:31:36
410
原创 杰发科技AC7840——CSE的CMAC校验
CMAC与MAC的主要区别在于CMAC是基于分组密码的认证算法。加密时需确保128bit数据存放在Flash而非RAM,否则会导致hardfault。由于7840芯片的大小端特性,需对原文、密码及结果进行翻转处理。在线CMAC计算工具(lddgo.net)支持带空格的输入,计算结果需与翻转后的数据比对验证。具体翻转操作可参考例程9中的实现方法。注意加密数据长度不足128bit或使用RAM数组都会导致程序异常终止。
2026-01-12 13:52:41
190
原创 杰发科技AC7840——CSE安全启动
本文简要介绍了安全启动的实现流程:1)加载boot_mac_key并设置引导参数,计算boot_mac值;2)通过修改前后的hex文件进行验证测试,结果显示修改后的文件因数据差异导致验证失败,而未修改文件能成功匹配mac值。该流程确保了系统启动的安全性验证机制。
2026-01-12 10:59:00
389
原创 杰发科技AC7840——关闭CSE模块
摘要:当CSE模块存在时无法执行全片擦除或测试后,需先关闭该模块。操作步骤包括:1)验证主密钥正确性;2)处理DBG指令返回409错误(需初始化随机数);3)完成擦除操作。整个过程强调密钥验证和随机数初始化对擦除功能的关键作用。(98字)
2026-01-12 10:04:58
174
原创 杰发科技AC7840——CSE加载秘钥和更新秘钥
问了大佬之后,知道了,blankkey作为更新masterkey的原因,是因为最开始时候所有的key都是空的,也就是ff,blankkey就是全ff,所以可以对所有的key进行更新,因此可以对masterkey进行更新,但是在masterkey更新之后,已经有了数据,就不能再用blankkey对masterkey进行更新,只能用masterkey对他自己更新,因此做了如下测试,都更成功了。复位之后也是无法再次更新,这个更新次数是放在flash里面的,更新次数必须比之前的大才行。修改次数和,秘钥也不成功。
2026-01-09 19:16:16
347
原创 杰发科技AC7840——测量时钟频率
摘要:通过GPIO配置可实现时钟频率输出,但电压随频率升高而降低。代码示例展示了如何设置GPIO为输出模式(PORTD_10),并输出不同频率的时钟信号(20MHz-120MHz)。可选的时钟源包括HSECLK、HSICLK、SPLLCLK等多种类型。实验表明,120MHz不分频时无法输出,而60MHz时电压降至480mV左右。系统时钟120MHz经6分频后可输出20MHz信号。
2026-01-09 11:03:52
289
原创 杰发科技AC7840——真随机数和伪随机数
本文对比了真随机数和伪随机数的生成机制。通过CSE_DRV_InitRNG初始化真随机数生成器,使用CSE_DRV_GenerateRND生成128位随机数。测试表明,在1.3亿次生成中未出现重复值,且1000万次生成耗时约1分钟。而使用CSE_DRV_ExtendSeed的伪随机数生成速度较慢,1000万次耗时约1分40秒。结果表明,硬件真随机数生成器具有高效性和良好的随机性,重复概率极低。
2026-01-09 09:38:19
166
原创 vscode关闭coplit功能
设置->搜索github copilot->点这个禁用功能就没了,不然老是看到他很烦,登录半天又登不上。搜了一圈没找到怎么关掉,百度ai搜出来了。正好公司给了通灵义码还挺好用。
2025-09-18 17:14:35
835
原创 iar cannot open source file “core_cm0plus.h“
把keil文件夹core_cm0plus.h的copy过来之后,发现还缺少其他文件,例如#include "cmsis_version.h"iar缺少core_cm0plus.h。只需要勾选cmsis即可。
2025-07-04 16:18:55
398
原创 杰发科技AC7801——使用内部晶振
IC_CLOCK_SRC_HSE改为IC_CLOCK_SRC_HSI即可。修改为内部HSI就是内部8M晶振。
2025-06-04 10:27:40
498
原创 杰发科技AC7840——CSE硬件加密模块使用(2)
不要随便修改主秘钥,本次跑代码过程中,对主秘钥进行修改,导致无法对cse模块恢复出厂设置。
2025-05-28 16:17:47
739
1
原创 通过Jflash合并Boot和App两个hex为一个hex的办法
1. 打开J-Flash软件,点击file->open data file选项打开bootloader文件boot.hex。3. 此时已经合并文件,再点击file->save data file as…保存合并后的文件即可。2. 再点击file->merge data file选择并打开app程序文件app.hex。jlink烧录调试工具自带了J-Flash工具,使用该软件工具来完成对hex文件的合并。
2025-05-26 21:55:58
758
原创 杰发科技AC7840——CSE硬件加密模块使用(1)
CSE_SECRET_KEY在17个用户KEY中体现。这里的CSE_CMD_RND在FuncID中体现了。最后的读取RNG值,可以看出计算结果在PRAM中。初次使用,添加和加载。
2025-05-22 21:23:44
632
原创 杰发科技AC7801——PWM获取固定脉冲个数
测试结果多了一个小脉冲,如果是边沿有效,可以减一个计数值。在初始化时候打开通道中断。在中断中对通道6开启计数。
2025-05-22 20:43:07
570
原创 杰发科技AC7840——使用内部温度
杰发的芯片都自带内部温度检测,在ADC通道中获取即可。7801自带了温度检测例程,7840不带,因此在这里分享一下相关温度检测代码。根据产线反馈,7840在常温时候25℃比较准,温箱测试,高温和低温下有5℃的误差。
2025-05-22 10:47:58
521
原创 杰发科技AC7840——如何把结构体数据写到Dflash中
测试之后,Dflash存储结构体数据,读写没问题。pflash中还有字符串数据,这个应该还要想办法解掉。8字节编程,因此如果结构体存放在Dfalsh中,进行写操作,需要写8字节的倍数。pack没有加DFlash算法,在keil中看不到数据,直接看hex可以看到。正常情况下,可以看到全局变量的结构体数据被存放在Pflash中。数字部分存在RAM中。
2025-05-20 14:51:19
561
原创 杰发科技AC7801——滴答定时器获取时间戳
杰发科技7801内部有一个滴答定时器,该定时器是M0+核自带的,因此可以直接用该定时器来获取时间戳。
2025-02-28 15:38:26
685
原创 杰发科技——使用ATCLinkTool解除读保护
注意:解除读保护会擦除flash中所有数据。使用atclinktool(在杰发官网下载该软件)读取的数据都是AA,擦除的时候提示读保护开启。
2025-01-03 19:05:23
1040
原创 杰发科技AC7840——EEP中RAM的配置
比如需要4096字节的eep空间,可以把RAM的地址改成E000,即E000-EFFF,共4096bytes即可。这个在RAM中使用没有限制,根据这个表格留下足够空间即可。sample和手册中示例代码的sram区地址定义不一样。
2024-11-20 16:02:08
563
原创 杰发科技AC7801——ADC定时器触发的简单使用
在需要多次采样结果的情况下,比如1s需要10w次的采样结果,可以考虑使用定时器触发采样,定时器设置多少的时间就会多久采样转换一次。再加上使用dma,采样的结果直接放在dma的数组里面。实现了自动采样,自动保存,使用非常方便。
2024-11-19 15:43:55
982
原创 杰发科技——Eclipse环境安装
默认路径:C:\Program Files (x86)\Arm GNU Toolchain arm-none-eabi\13.2 Rel1。默认路径:C:\Program Files (x86)\GnuWin32\bin\。搜索框输入tool打开toolchains。然后在项目中选择编译工具。
2024-09-23 18:08:57
707
原创 杰发科技Bootloader(3)—— 基于7801的APP切到Boot
2. 直接使用跳转指令,参考Boot跳转到App代码,把跳转地址改一下即可,然后在App中调用JumpTOBoot。为了方便在APP中跳转到Boot重新进行升级,有两种办法,7840同样可以使用。1. 调用reset接口进行复位,复位后会先进Boot,再自动跳转到App。
2024-09-09 14:06:20
1055
原创 杰发科技AC7840——CAN通信简介(8)_通过波特率和时钟计算SEG_1/SEG_2/SJW/PRESC
上述验证全部正确,计算60Mhz 500K 80%配置。因此设置预分频2来计算配置(之前默认0计算结果都错的)上述验证全部正确,计算60Mhz 5M 75%配置。并且普通CAN的分频也是2,用文心一言验证100K配置。用文心一言验证7.5M配置。用文心一言验证50K配置。因为1M的分频在2,
2024-08-21 03:25:15
701
原创 杰发科技AC7801——GPIO通过寄存器地址控制高低电平
通过这个寄存器来查看控制的是哪个ODR值,使用sample,发现是0x20080068的第7和第9位。使用51控制寄存器的代码来置高置低代码,注意变量需要用unsigned int来声明。
2024-08-21 00:55:42
517
基于proteus多周期cpu代码,包含实验报告、答辩ppt、源代码
2019-07-12
网上订餐系统(JavaWeb,jsp,spring等)
2018-06-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅