[STM32F0] 求助同时有示波器和STM32F030F4P6的兄弟帮忙

[复制链接]
1888|12
 楼主| yjmwxwx 发表于 2019-7-10 17:55 | 显示全部楼层 |阅读模式


最近想用STM32F030F4P6作为NE602的时钟,由于我的示波器比较垃圾测不了频率高一点的波形,所以求助有示波器的兄弟帮忙测测看波形到底是什么样子多少频率。

帮忙测测 PB1 和 PA10

截图_2019-07-10_17-54-31.png

固件
1.zip (395 Bytes, 下载次数: 5)





sky.sun.zz 发表于 2019-7-10 20:41 | 显示全部楼层
使用CUBEMX配置的,48MHZ拿去用吧:
CUBEMX_f030.rar (5.04 MB, 下载次数: 4)
 楼主| yjmwxwx 发表于 2019-7-10 20:51 | 显示全部楼层
sky.sun.zz 发表于 2019-7-10 20:41
使用CUBEMX配置的,48MHZ拿去用吧:


谢谢你,我先下载你这个看看。

我想让有示波器的兄弟帮忙测测看,不知道到底能到多少MHZ
 楼主| yjmwxwx 发表于 2019-7-10 22:49 | 显示全部楼层


淘宝买了一些拆机的NE602,想用单片机输出两个频率,然后用NE602变频输出音频,但是没能测的示波器,感觉像瞎子摸象。STM32F030F4P6用8M晶振,PLL16倍频,就是不知道能不能设置16倍频,TIM1设置PSC=0, ARR=1, 输出为翻转模式。
测试电路就是下图
截图_2019-07-10_22-36-48.png

PDF

ne602.pdf (30.4 KB, 下载次数: 4)



 楼主| yjmwxwx 发表于 2019-7-12 09:48 | 显示全部楼层
本帖最后由 yjmwxwx 于 2019-7-12 10:14 编辑

截图_2019-07-12_10-13-51.png

原来NE602电源接错了,为啥PA10和PB1是相同频率的高频方波,PA7输出一个低频方波,喇叭里会出来这个低频方波的声音,是不是买的拆机的NE602是坏的?
 楼主| yjmwxwx 发表于 2019-7-12 10:56 | 显示全部楼层
本帖最后由 yjmwxwx 于 2019-7-12 11:01 编辑


换了个电路,接外部振荡器,也能出来音频。 STM32 8M晶振PLL=16,定时器PSC=0,ARR=14,翻转模式。
1.zip (386 Bytes, 下载次数: 3)

喇叭听到音频能证明买的拆机NE602是好的吗? 以前没玩过这个不懂

截图_2019-07-12_11-00-38.png




Dick Hou 发表于 2019-7-13 10:34 | 显示全部楼层
yjmwxwx 发表于 2019-7-12 10:56
换了个电路,接外部振荡器,也能出来音频。 STM32 8M晶振PLL=16,定时器PSC=0,ARR=14,翻转模式。

030最高工作频率48M,你8M*16=?
 楼主| yjmwxwx 发表于 2019-7-13 13:28 | 显示全部楼层
本帖最后由 yjmwxwx 于 2019-7-13 13:29 编辑
Dick Hou 发表于 2019-7-13 10:34
030最高工作频率48M,你8M*16=?

16倍频只用定时器,不跑程序

看网上很多人做网分玩,也想学学怎么做,但是没买SI5351时钟芯片想用单片机定时器代替,但是只能产生低频的两路想差音频的信号,还要买专门时钟芯片,靠单片机行不通。

 楼主| yjmwxwx 发表于 2019-7-13 14:50 | 显示全部楼层
本帖最后由 yjmwxwx 于 2019-7-13 15:00 编辑

截图_2019-07-13_13-59-17.png


实物图
IMG_20190713_142811.jpg

IMG_20190713_142815.jpg


截图_2019-07-13_14-39-24.png

截图_2019-07-13_14-38-52.png



视频(声音太小听不到)
https://v.youku.com/v_show/id_XNDI3MTgzNDYyMA==.html?spm=a2h3j.8428770.3416059.1

用定时器只能输出两路低频的想差音频的信号,频率再高了耳朵听不到了,这个可以用了,不过就是频率低点。
STM32F030F4P6, 8M晶振PLL=16。 TIM1和TIM3输出,TIM1 PSC=0,ARR=60,翻转模式。 TIM3 PSC=0, ARR=61,翻转模式

程序后面BKPT停住,读出的寄存器数据还没错误

截图_2019-07-13_13-52-59.png
程序所有文件
ne602.zip (8.14 KB, 下载次数: 4)

程序代码
  1. @@单片机stm32f030f4p6
  2.         @[url=home.php?mod=space&uid=72445]@[/url]  pwm ne602时钟
  3.         @作者:yjmwxwx
  4.         @时间:2019-06-30
  5.         @编译器:ARM-NONE-EABI
  6.          .thumb
  7.                  .syntax unified
  8.         .section .data

  9. yjmwxwx:
  10.         .equ STACKINIT,                        0x20001000
  11.         .section .text
  12. vectors:
  13.         .word STACKINIT
  14.         .word _start + 1
  15.         .word _nmi_handler + 1
  16.         .word _hard_fault  + 1
  17.         .word 0
  18.         .word 0
  19.         .word 0
  20.         .word 0
  21.         .word 0
  22.         .word 0
  23.         .word 0
  24.         .word _svc_handler +1
  25.         .word 0
  26.         .word 0
  27.         .word _pendsv_handler +1
  28.         .word aaa +1        @_systickzhongduan +1               [url=home.php?mod=space&uid=72445]@[/url] 15
  29.         .word aaa +1     [url=home.php?mod=space&uid=72445]@[/url] _wwdg +1          [url=home.php?mod=space&uid=72445]@[/url] 0
  30.         .word aaa +1     @_pvd +1            @ 1
  31.         .word aaa +1     @_rtc +1            @ 2
  32.         .word aaa +1     @_flash +1          @ 3
  33.         .word aaa +1        @ _rcc + 1          @ 4
  34.         .word aaa +1      @_exti0_1  +1      @ 5
  35.         .word aaa +1      @ _exti2_3 +1      @ 6
  36.         .word aaa +1       @_exti4_15 +1     @ 7
  37.         .word aaa +1                         @ 8
  38.         .word aaa +1         @_dma1_1  +1    @ 9
  39.         .word aaa +1    @_dma1_2_3 +1        @ 10
  40.         .word aaa +1       @_dma1_4_5 +1     @ 11
  41.         .word aaa +1         @_adc1 +1          @ 12
  42.         .word aaa +1       @_tim1_brk_up +1  @ 13
  43.         .word aaa +1        @ _tim1_cc +1    @ 14
  44.         .word aaa +1         @_tim2 +1       @ 15
  45.         .word aaa +1          @_tim3 +1      @ 16
  46.         .word aaa +1                         @ 17
  47.         .word aaa +1                                @ 18
  48.         .word aaa +1        @_tim14 +1    @ 19
  49.         .word aaa +1                         @ 20
  50.         .word aaa +1         @_tim16 +1      @ 21
  51.         .word aaa +1         @_tim17 +1      @ 22
  52.         .word aaa +1          @_i2c   +1     @ 23
  53.         .word aaa +1                         @ 24
  54.         .word aaa +1           @_spi   +1    @ 25
  55.         .word aaa +1                         @ 26
  56.         .word aaa +1         @_usart1 +1     @ 27
  57.         .align 2

  58. _start:


  59. _waisheshizhong:                         @ 外设时钟
  60.         @+0x14=RCC_AHBENR
  61.         @ 0=DMA @ 2=SRAM @ 4=FLITF@ 6=CRC @ 17=PA @ 18=PB @ 19=PC @ 20=PD @ 22=PF
  62.         ldr r0, = 0x40021000
  63.         ldr r1, = 0x60001
  64.         str r1, [r0, # 0x14]

  65.         @+0x18外设时钟使能寄存器 (RCC_APB2ENR)
  66.         @0=SYSCFG @5=USART6EN @9=ADC @11=TIM1 @12=SPI1 @14=USART1 @16=TIM15 @17=TIM16 @18=TIM17 @22=DBGMCU
  67.         ldr r1, = 0x800
  68.         str r1, [r0, # 0x18]
  69.         @+0X1C=RCC_APB1ENR
  70.         @ 1=TIM3 @ 4=TIM6 @ 5=TIM7 @ 8=TIM14 @ 11=WWDG @ 14=SPI @ 17=USRT2 @ 18=USART3 @ 20=USART5 @ 21=I2C1
  71.         @ 22=I2C2 @ 23=USB @ 28=PWR
  72.         ldr r2, = 0x102
  73.         str r2, [r0, # 0x1c]

  74. tim1chushiha:                                
  75.         ldr r5, = 0x40012c00 @ tim1_cr1
  76.         ldr r1, = 0
  77.         str r1, [r5, # 0x28] @ psc
  78.         ldr r1, = 60
  79.         str r1, [r5, # 0x2c] @ ARR
  80.         ldr r1, = 0x38
  81.         str r1, [r5, # 0x1c] @ ccmr2  CC3
  82.         ldr r1, = 0x100    @  CC3
  83.         str r1, [r5, # 0x20] @ ccer
  84.         ldr r1, = 0x8000
  85.         str r1, [r5, # 0x44] @ BDTR
  86.         ldr r1, = 60
  87.         str r1, [r5, # 0x3c]
  88.         movs r4, # 0xe1
  89.         str r4, [r5]
  90. tim3chushihua:                                
  91.         ldr r0, = 0x40000400 @ tim3_cr1
  92.         ldr r1, = 0
  93.         str r1, [r0, # 0x28] @ psc
  94.         ldr r1, = 61
  95.         str r1, [r0, # 0x2c] @ ARR
  96.         ldr r1, =   0x3800
  97.         str r1, [r0, # 0x1c] @ ccmr2
  98.         ldr r1, =  0x1000
  99.         str r1, [r0, # 0x20] @ ccer
  100.         ldr r1, = 61
  101.         str r1, [r0, # 0x40] @ ccr4
  102.         movs r1, # 0xe1
  103.         str r1, [r0]

  104. tim14chushihua:
  105.         ldr r0, = 0x40002000 @ tim14_cr1
  106.         ldr r1, = 127
  107.         str r1, [r0, # 0x28] @ psc
  108.         ldr r1, = 1000
  109.         str r1, [r0, # 0x2c] @ ARR
  110.         ldr r1, =   0x38
  111.         str r1, [r0, # 0x18] @ ccmr1
  112.         movs r1, # 0x01
  113.         str r1, [r0, # 0x20] @ ccer
  114.         ldr r1, = 1000
  115.         str r1, [r0, # 0x34] @ ccr4
  116.         movs r1, # 0xe1
  117.         str r1, [r0]


  118. io_she_zhi:
  119.         @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  120.         @a(0x48000000)b(0x48000400)c(0x48000800)d(0x48000c00)f(0x48001400)
  121.         @ 输入(00),通用输出(01),复用功能(10),模拟(11)
  122.         @偏移0x4 = 端口输出类型 @ (0 推挽),( 1 开漏)
  123.         @偏移0x8 = 输出速度  00低速, 01中速, 11高速
  124.         @偏移0xC = 上拉下拉 (00无上下拉,  01 上拉, 10下拉)
  125.         @偏移0x10 = 输入数据寄存器
  126.         @偏移0x14 = 输出数据寄存器
  127.         @偏移0x18 = 端口开  0-15置位
  128.         @偏移0x28 = 端口关
  129.         @0X20 = 复用低
  130.         @GPIO口0(0-3位)每个IO口占用4位
  131.         @ AF0 = 0X0000, AF1 = 0X0001, AF2 = 0X0010 AF3 = 0X0011, AF4 = 0X0100
  132.         @ AF5 = 0X0101, AF6 = 0X0111, AF7 = 0X1000
  133.         @0x24 = 复用高
  134.         @GPIO口8 (0-3位)每个IO口占用4位
  135.         @ AF0 = 0X0000, AF1 = 0X0001, AF2 = 0X0010 AF3 = 0X0011, AF4 = 0X0100
  136.         @ AF5 = 0X0101, AF6 = 0X0111, AF7 = 0X1000
  137.         @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

  138.         ldr r0, = 0x48000000
  139.         ldr r1, = 0x28208000
  140.         str r1, [r0]
  141.         ldr r1, = 0x40000000
  142.         str r1, [r0, # 0x20]
  143.         ldr r1, = 0x200
  144.         str r1, [r0, # 0x24]
  145.         
  146.         ldr r0, = 0x48000400
  147.         movs r1, # 0x08 @ pb1
  148.         str r1, [r0]
  149.         movs r1, # 0x10  @ tim3_4到PB1
  150.         str r1, [r0, # 0x20] @ ARRL

  151. shizhong:
  152.         ldr r2, = 0x40022000   @FLASH访问控制
  153.         movs r1, # 0x32
  154.         str r1, [r2]           @FLASH缓冲 缓冲开启
  155.         ldr r0, = 0x40021000 @ rcc
  156.         ldr r1, = 0x10001
  157.         str r1, [r0]
  158. denghse:
  159.         ldr r1, [r0]
  160.         lsls r1, r1, # 14
  161.         bpl denghse
  162. dengpllguan:
  163.         ldr r1, [r0]
  164.         lsls r1, r1, # 6
  165.         bmi dengpllguan
  166.         ldr r1, = 0x3d0002
  167.                   mov r0, r0
  168.         str r1, [r0, # 0x04]
  169.                   mov r0, r0
  170.         ldr r1, = 0x1010000
  171.         mov r0, r0
  172.         str r1, [r0]

  173. dengpll:
  174.         ldr r1, [r0]
  175.         lsls r1, # 6
  176.         bpl dengpll


  177.         bkpt # 1

  178. _nmi_handler:
  179.         bx lr
  180. _hard_fault:
  181.         bx lr
  182. _svc_handler:
  183.         bx lr
  184. _pendsv_handler:
  185.         bx lr
  186. _systickzhongduan:
  187. aaa:
  188.         bx lr









xiaoqizi 发表于 2019-8-7 11:42 | 显示全部楼层
感谢楼主的分享啊
木木guainv 发表于 2019-8-7 11:44 | 显示全部楼层
楼主最后怎么解决问题的啊
 楼主| yjmwxwx 发表于 2019-8-7 12:04 | 显示全部楼层
木木guainv 发表于 2019-8-7 11:44
楼主最后怎么解决问题的啊

这个没搞完去搞别的了,感觉用两个单片机一个做NE602时钟,一个做信号,两个单片机晶振频率不可能完全一样吧,不一样差频不就出来了,这个还没试验。。
木木guainv 发表于 2019-8-8 13:11 | 显示全部楼层
yjmwxwx 发表于 2019-8-7 12:04
这个没搞完去搞别的了,感觉用两个单片机一个做NE602时钟,一个做信号,两个单片机晶振频率不可能完全一 ...

哦 希望楼主解决问题哈
您需要登录后才可以回帖 登录 | 注册

本版积分规则

123

主题

2977

帖子

54

粉丝
快速回复 在线客服 返回列表 返回顶部