[MM32硬件] MM32F3277 MicroPython 实验板设计和软件测试

[复制链接]
2179|48
 楼主| 原来是wjc 发表于 2023-9-30 11:23 | 显示全部楼层
(2)测试结果
47401651794c02f0b8.png

▲ 图2.3.1 闪烁PB2对应的LED
2、测试IO操作最短时间
通过测试两次IO的高低电平的变化,来测试在MicroPython下对于IO口的最短操作时间。
 楼主| 原来是wjc 发表于 2023-9-30 11:24 | 显示全部楼层
测试代码
  1. from machine import Pin,ADC,UART,freq
  2. import utime

  3. led = Pin('PB2', Pin.OUT_PUSHPULL)

  4. while True:
  5.     led(1)
  6.     led(0)

 楼主| 原来是wjc 发表于 2023-9-30 11:24 | 显示全部楼层
测试结果
  通过测量LED端口的变化波形来看,执行初次GPIO操作所需要的时间大约为:17μ s \mu sμs。
14853651794ea0ab82.png
▲ 图2.3.2 相邻GPIO高低电平操作
 楼主| 原来是wjc 发表于 2023-9-30 11:24 | 显示全部楼层
测试输入功能
(1)测试代码
  1. from machine                import Pin
  2. import utime

  3. led = Pin('PB2', Pin.OUT_PUSHPULL)
  4. btn = Pin('PB7', Pin.IN_PULLUP)

  5. print("Test Pin input and output.")

  6. while True:
  7.     if btn.value() > 0:
  8.         led.high()
  9.     else: led.low()
 楼主| 原来是wjc 发表于 2023-9-30 11:25 | 显示全部楼层
测试结果
  使用杜邦线将 PB7 接地,可以观察到LED(PB2) 熄灭。
11364651795133fa73.png
▲ 图2.3.3 将PB7接地可以观察到PB2(LED)熄灭
 楼主| 原来是wjc 发表于 2023-9-30 11:25 | 显示全部楼层
四、测试DAC
8334065179526059c4.png
▲ 图2.3.4 测试DAC示例程序
 楼主| 原来是wjc 发表于 2023-9-30 11:25 | 显示全部楼层
设置输出
DAC端口:
DAC0:PA4
DAC1:PA5
 楼主| 原来是wjc 发表于 2023-9-30 11:25 | 显示全部楼层
测试代码
  1. from machine                import Pin,ADC,DAC

  2. dac0 = DAC(0)
  3. dac1 = DAC(1)
  4. print('Test DAC ...')

  5. dac0.write_u16(0x800)
  6. dac1.write_u16(0x400)
 楼主| 原来是wjc 发表于 2023-9-30 11:25 | 显示全部楼层
测试结果
  使用数字万用表测量:

DAC输出电压:
DAC0(PA4):1.649V
DAC1(PA5): 0.825V
 楼主| 原来是wjc 发表于 2023-9-30 11:26 | 显示全部楼层
输出电压曲线
(1)测试代码
  1. from machine                import Pin,ADC,DAC
  2. from math                   import *

  3. dac0 = DAC(0)
  4. dac1 = DAC(1)
  5. print('Test DAC ...')

  6. angle = [int((sin(i * pi * 2 / 100)+1.0)/2*0x600+0x200) for i in range(100)]
  7. print(angle)

  8. while True:
  9.     for a in angle:
  10.         dac0.write_u16(a)
  11.         dac1.write_u16(0xa00 - a)
 楼主| 原来是wjc 发表于 2023-9-30 11:26 | 显示全部楼层
测试结果
  使用示波器测量 DAC0,DAC1的波形。
841336517955ce8c92.png

▲ 图2.4.1 DAC0,DAC1的输出波形
 楼主| 原来是wjc 发表于 2023-9-30 11:26 | 显示全部楼层
测试ADC
1、测试ADC0
  1. from machine                import Pin,ADC,DAC
  2. import utime

  3. adc0 = ADC(0, init=True)

  4. while True:
  5.     print(adc0.read_u16())
  6.     utime.sleep_ms(200)
 楼主| 原来是wjc 发表于 2023-9-30 11:26 | 显示全部楼层
在PA0,输入直流电压,可以测试到输出0x0 ~ 0xffff数值。输出数据是右靠齐。

  注意:第一个ADC初始化的时候,需要将init=True参数代入。

2、ADC对应的端口
  ADC总共有16个通道,对应的外部端口分别是:

ADC端口:
CH0~7:PA0~PA7
CH8,CH9:PB0,PB1
CH10~CH13:PC0~PC3
CH14,CH15:NULL
 楼主| 原来是wjc 发表于 2023-9-30 11:27 | 显示全部楼层
测试UART
1、UART端口
UART端口(RX,TX):
UART1:PA10, PA9
UART2:PA3,PA2
UART3:PB11,PB10
UART4:PC11,PC10
UART5:PD2,PC12
UART6:PC7,.PC6
UART7:PE7,PE8
UART8:PD1,PD0
 楼主| 原来是wjc 发表于 2023-9-30 11:27 | 显示全部楼层
测试UART2
(1)测试发送
  1. from machine                import Pin,UART
  2. import utime

  3. uart2 = UART(1, 115200)

  4. print('Test UART.')

  5. while True:
  6.     _ = uart2.write(b'U')
  7.     utime.sleep_ms(10)
 楼主| 原来是wjc 发表于 2023-9-30 11:27 | 显示全部楼层
 在PA2(TX2)测量输出波形。


836651795a17218d.png
▲ 图2.6.1 PA2(TX2)测量得到波形
 楼主| 原来是wjc 发表于 2023-9-30 11:27 | 显示全部楼层
测试接收
  使用短路子将 RXD3与RXD1连接在一起,也就是将REPL的接收端口RXD1连接在UART3的接收端口。
 楼主| 原来是wjc 发表于 2023-9-30 11:27 | 显示全部楼层
测试代码
  1. from machine                import Pin,UART
  2. import utime

  3. uart2 = UART(2, 115200)

  4. print('Test UART.')
  5. buf = bytes(0)

  6. while True:
  7.     if uart2.any():
  8.         buf = buf + uart2.read(uart2.any())

  9.         if buf[-1] == 13:
  10.             print(int(buf))

  11.             buf = bytes(0)

  12.     utime.sleep_ms(10)
 楼主| 原来是wjc 发表于 2023-9-30 11:28 | 显示全部楼层
Ⅱ.测试结果
  1. >> Reset MicroPython...
  2. >> Wait for MicroPython coming back...
  3. >> Download MicroPython : 33 lines/707 characters.
  4. >> -------------------------------------------------------------------------

  5. Test UART.
  6. 333
  7. 3333
  8. 123
  9. Traceback (most recent call last):
  10.   File "<stdin>", line 22, in <module>
  11. ValueError: invalid syntax for integer
  12. >>>
 楼主| 原来是wjc 发表于 2023-9-30 11:28 | 显示全部楼层
合测试
一、测试DAC输出曲线
  通过UART3送入DAC转换数字,使用数字万用表测量DAC0输出的电压,并绘制输出曲线。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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