您尚未登录。

#2 Re: Cortex M0/M3/M4/M7 » 国产王炸中的战斗机-普冉py32f003/py32f030(价格6毛起步) » 2023-07-20 09:58:20

@sh200436

感谢回复。 以前都是用定时器输出SPWM,需要DMA把正弦表里的数据传输到定时器,现在开两个DMA通道就有一个会不工作,不知道哪里怎么设置

#3 Re: Cortex M0/M3/M4/M7 » 国产王炸中的战斗机-普冉py32f003/py32f030(价格6毛起步) » 2023-07-19 12:43:43

@sh200436


请问下DMA多通道怎么配置?比如ADC用DMA通道1,定时器用DMA通道2,两个都开DMA只有定时器的DMA可以工作,手册看了又看不懂应该怎么设置

#4 Re: Cortex M0/M3/M4/M7 » 国产王炸中的战斗机-普冉py32f003/py32f030(价格6毛起步) » 2023-07-19 00:47:23

用PY32做的第一个制作,期间收小麦干农活打断了这几天才捡起来,简单写了个测试程序,但是不知道怎么开两个通道的DMA,只开了ADC的DMA,产生1KHZ正弦波是直接用1K方波滤波得到的,两个量程显示数字0.000-2.000欧,00.00-60.00毫欧。没写校准程序没画PCB,电路里面四个保护三极管和TVS都没焊接,别的和原理图一样,由于没制作第二个不知道哪里画没画错。

测试程序和JLCEDA原理图

led_nei_zu_yi.zip

github链接
https://github.com/yjmwxwx/py32/tree/master/led_nei_zu_yi

测试视频
https://www.bilibili.com/video/BV12h4y1576Q/?spm_id_from=333.999.0.0&vd_source=c212050d120d3457e1f6d0cd79c641de

电路图
SCH_PY32单片机版电池內阻测试仪_0-PY32单片机版电池內阻测试仪_2023-07-18.png

实物图
mpv-shot0002_20230719-0034.jpg
mpv-shot0007.jpg
mpv-shot0008.jpg

测60毫欧电阻
mpv-shot0021.jpg

测 0.5毫欧电阻
mpv-shot0029.jpg

测1毫欧电阻
mpv-shot0022.jpg

测2欧电阻
mpv-shot0014.jpg

#5 Re: Cortex M0/M3/M4/M7 » 国产王炸中的战斗机-普冉py32f003/py32f030(价格6毛起步) » 2023-04-17 12:39:22

IOsetting 说:

@yjmwxwx

PY32F0 的ADC精度不是很高, 从实际测试看, 勉强到8bit.

和STM32F030对比下, 看看差多少


搞不懂为什么我设置采集一个通道就是不能出正确数值,但是采集两个通道就正常了,两个100欧电阻串联分压,一端接3.3一端接GND,中间接PA0和PA1。

程序
https://github.com/yjmwxwx/py32/tree/master/adc

用JLINK读出DMA储存在内存的数据看还可以,STM32基本也这样

_2023-04-17_12-31-00.png

#6 Re: Cortex M0/M3/M4/M7 » 国产王炸中的战斗机-普冉py32f003/py32f030(价格6毛起步) » 2023-04-17 10:07:02

kekemuyu 说:

@yjmwxwx
编程语言和英文关系不大,只是符号而已

但是各种名字都是英文的,看起来头大,下载了官方程序看着像天书看不懂,还特意安装了KEIL想编译出来直接看反汇编结果编译出错也不知道怎么搞。

#7 Re: Cortex M0/M3/M4/M7 » 国产王炸中的战斗机-普冉py32f003/py32f030(价格6毛起步) » 2023-04-16 17:25:51

@yjmwxwx

C语言不熟练也不懂英文看不懂官方程序只能看手册自己写了,时钟设置成功了,就是PLL只能2倍频啊

shizhong:
        ldr r2, = 0x40022000   @FLASH访问控制
        movs r1, # 0
        str r1, [r2]          @0:flash没等待,1:flash等待
        ldr r0, = 0x40021000 @ rcc
        ldr r1, = 0x20008
        str r1, [r0, # 0x10]    @外部晶振选择
        ldr r1, [r0]
        ldr r2, = 0x10000
        orrs r1, r1, r2
        str r1, [r0]            @开外部振荡器
denghse:
        ldr r1, [r0]
        lsls r1, r1, # 14
	bpl denghse             @等外部振荡器

        ldr r1, = 0x01
        str r1, [r0, # 0x0c]    @PLL配置
        ldr r2, [r0]
        ldr r1, = 0x1000000
        orrs r1, r1, r2
        str r1, [r0]            @开PLL

dengpll:
        ldr r1, [r0]
        lsls r1, # 6
        bpl dengpll             @等PLL
        movs r1, # 0x02
        str r1, [r0, # 0x08]    @选择系统时钟

#8 Re: Cortex M0/M3/M4/M7 » 国产王炸中的战斗机-普冉py32f003/py32f030(价格6毛起步) » 2023-04-16 14:27:27

kekemuyu 说:

@yjmwxwx
谦虚了,看了内阻测试仪的代码,能写几千行汇编的人现在不多了

对于我们这些没上过多少学不会英文的C语言才难呢,我看了下官方提供的程序根本看不懂,里面那些英文看着就头大,对我来说都不如直接看固件反汇编

#9 Re: Cortex M0/M3/M4/M7 » 国产王炸中的战斗机-普冉py32f003/py32f030(价格6毛起步) » 2023-04-16 14:16:32

IOsetting 说:

@yjmwxwx

PY32F0 的ADC精度不是很高, 从实际测试看, 勉强到8bit.

和STM32F030对比下, 看看差多少


PY32还不没学到怎么用ADC,卡在开外部振荡器了,外部振荡器总是不起振,示波器测也没波形,可能我哪里搞的有问题,我的晶振是8MHZ的。

一般STM32 ADC比如显示36XX,后面两位XX是不稳定的,我去年试过国产N32只有后面一位是跳动的。

#10 Re: Cortex M0/M3/M4/M7 » 国产王炸中的战斗机-普冉py32f003/py32f030(价格6毛起步) » 2023-04-15 20:29:26

kekemuyu 说:

@yjmwxwx
直接上汇编呀,厉害了

汇编也不难正适合这种资源少的单片机,不过我是业余自学的不是专业的,写的汇编不怎么好也就勉强能用

#11 Re: Cortex M0/M3/M4/M7 » 国产王炸中的战斗机-普冉py32f003/py32f030(价格6毛起步) » 2023-04-15 20:26:12

@Gentlepig

汇编确实不需要main

编译器是ARM-NONE-EABI ,如果arm-none-eabi-ld报错的话就去掉-nostartfiles,我也不懂这个参数是干什么的,以前老版本不报错今天装了新版本的报错。

zhanding就是堆栈顶的意思,固件开头第一个32位就是堆栈顶,第二个32位就是程序入口


我前些日子用STM32F030F4P6做了一个电池内阻测试仪,看到PY32便宜就想移植下,要是能成功就能降低成本。

前些日子我搞的软硬件开源的简易电池内阻测试仪 https://oshwhub.com/yjmwxwx/jian-yi-dian-chi-nei-zu-ce-shi-y

#12 Re: Cortex M0/M3/M4/M7 » 国产王炸中的战斗机-普冉py32f003/py32f030(价格6毛起步) » 2023-04-15 09:05:23

我也买了点,真是便宜啊,点个灯试试



程序

	.thumb
	.syntax unified
vectors:
	.word zhanding
	.word kaishi + 1
	.equ zhanding, 0x20001000

kaishi:
__kai_pa_shi_zhong:	
	ldr r0, = 0x40021034
	movs r1, # 1
	str r1, [r0]
__pa_she_zhi:	
	ldr r0, = 0x50000000
	ldr r1, = 0xebfffffD
	str r1, [r0]

ting:
	movs r1, # 1
__led_kai:	
	str r1, [r0, # 0x18]
	ldr r2, = 0xfffff
__led_kai_yanshi:
	subs r2, r2, # 1
	bne __led_kai_yanshi
__led_guan:	
	str r1, [r0, # 0x28]
	ldr r2, = 0xfffff
__led_guan_yanshi:
	subs r2, r2, # 1
	bne __led_guan_yanshi
	b ting

led.zip

mpv-shot0002.jpg

mpv-shot0003.jpg

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn