[技术问答] 【新唐“春蕾杯“活动】令人难忘的M058S

[复制链接]
3569|17
 楼主| springvirus 发表于 2016-3-16 16:30 | 显示全部楼层 |阅读模式
本帖最后由 springvirus 于 2016-3-16 16:39 编辑

说起来,接触新唐的首款开发板就是NuTiny-SDK-M058S了,体积稍小,虽然M058SM0核的,但给我的第一感觉就是51单片机的扩展版,应该容易上手,仔细研究了下参考手册,片内资源还真不少,包括数量可观的IO,硬件I2CSPIADC以及UART,还有4个定时器。在焊接了规则引出相关端口的IO板子后,便开始了这款开发板的探索之旅。

首先,来到UART的城下,在提前做足研究例程的准备工作后,没费太多周折,便拿下。
关键点1printf调用的fputc已在retarget.c中实现,只需完成使用相关UART的初始化即可。
关键点2:为IP clock源中UART的选择以及IP clock的使能,还有P3.0P3.1RXDTXD复用功能的使能。

第二项,测试手头的MB85RS64铁电存储器,方案是模拟SPI读写相关地址数据。根据MB85RS64的手册构建读写涉及的OPCODE操作后,读写成功。

第三项,拜访下几个定时器大哥,方案是在一个8*8的点阵上,先实现一个箭头,继而仿电梯里楼层点阵的显示效果,实现箭头的移动。构思为使用一个定时器动态扫描一个点阵上的8列,实现静态显示一个箭头,再用另一个定时器溢出时,完成整体挪动各列,就实现了移动效果。
关键点1,测试两个定时器的溢出时间,使之实现稳定的显示效果。
最后测试的是实现动态扫描定时器的溢出时间为1ms,效果好,无闪烁,实现整体挪动各列的定时器溢出时间为200ms,移动速度适中,过程流畅。

第四项,通过读取SD卡,在12864上播放bad apple。播放过程中有些卡顿,用的模拟SPISD卡扇区数据。

第五项,实现了一个采集摇杆数据的遥控器。方案为用ADC的四个通道循环采集2个摇杆的电压变化,通过NRF24L01发送出去。

第六项,实现了一个红外避障的小车。方案为用红外发送接收一体化模块加IO的外部中断来判断前方是否有障碍,关键点是模块的安装必须准确。

通过几个实验的进行,证明了M058S可以满足常见的应用需求。
小体积加上宽电压支持,使用起来很是顺手,最后传下几个实验的实物图,还有两个工程,LED为众多实验共用的工程,LED_CAR为避障小车的工程

定时器

定时器

定时器

定时器
定时器

铁电读写

铁电读写
铁电读写

铁电读写+UART打印

铁电读写+UART打印
铁电读写+UART打印

12864显示图

12864显示图
12864显示图

播放badapple

播放badapple

播放badapple

播放badapple
播放badapple

红外避障小车

红外避障小车
红外避障小车

双摇杆遥控器

双摇杆遥控器
双摇杆遥控器

led.part01.rar (2 MB, 下载次数: 20)
led.part02.rar (2 MB, 下载次数: 13)
led.part03.rar (2 MB, 下载次数: 14)
led.part04.rar (418.32 KB, 下载次数: 15)
led_car.part01.rar (2 MB, 下载次数: 9)
led_car.part02.rar (2 MB, 下载次数: 9)
led_car.part03.rar (1.63 MB, 下载次数: 9)


打赏榜单

21ic小喇叭 打赏了 5.00 元 2016-03-23

gaoyang9992006 发表于 2016-3-16 16:46 | 显示全部楼层
很不错的开发经验分享。
 楼主| springvirus 发表于 2016-3-16 16:48 | 显示全部楼层
gaoyang9992006 发表于 2016-3-16 16:46
很不错的开发经验分享。

3克油~~
energyplants 发表于 2016-3-17 13:12 | 显示全部楼层
这个芯片的RAM有多大,新唐有和stm32F030兼容的片子吗
dongnanxibei 发表于 2016-3-17 19:15 | 显示全部楼层
新唐的优点就是同类产品有的优点,而同类产品的缺点,新唐很少有,新唐做的固件库也是很不错,模块化高。
 楼主| springvirus 发表于 2016-3-19 13:44 | 显示全部楼层
energyplants 发表于 2016-3-17 13:12
这个芯片的RAM有多大,新唐有和stm32F030兼容的片子吗

M058S有32KB Flash,4KB SRAM
天灵灵地灵灵 发表于 2016-3-19 21:16 | 显示全部楼层
片内存储单元可以应对很多复杂的应用程序的存储了。
maoxiaobu 发表于 2016-3-22 17:24 | 显示全部楼层
 楼主| springvirus 发表于 2016-3-23 13:25 | 显示全部楼层
呵呵,还有赏金拿~~,非常感谢!
z_horse 发表于 2016-5-10 12:39 | 显示全部楼层
才用M058SAN 想用它产生100khz左右的方波 但是例程始终改不上去  求帮助
z_horse 发表于 2016-5-12 12:43 | 显示全部楼层
springvirus 发表于 2016-5-10 15:53
当前避障小车用的是M058SBSP_v3.00.002,在PWM.c中有
uint32_t PWM_ConfigOutputChannel(PWM_T *pwm,
    ...

这个地方我知道 但是我想把频率改到100khz 怎么然后示波器就出不来波形了
heisexingqisi 发表于 2016-5-12 23:06 | 显示全部楼层
楼主的液晶屏是什么接口的?
 楼主| springvirus 发表于 2016-5-13 10:15 | 显示全部楼层
z_horse 发表于 2016-5-12 12:43
这个地方我知道 但是我想把频率改到100khz 怎么然后示波器就出不来波形了

可以从SYS_Init中的PWM时钟源选择和PWM_ConfigOutputChannel()里的流程分析下
尤其是prescaler,CMR,CNR这几个关键值
 楼主| springvirus 发表于 2016-5-13 10:17 | 显示全部楼层
heisexingqisi 发表于 2016-5-12 23:06
楼主的液晶屏是什么接口的?

引脚如下

#define LCD_RS   P20 //pin 27  1:输入数据 ;0:输入命令
#define LCD_RW   P21 //pin 28  1:读数据  0:写数据
#define LCD_EN   P22 //pin 29  LCM使能端
#define LCD_PSB  P23 //pin 30  串并口选择 1:并口模式; 0:串口模式;
#define LCD_DATA P0->DOUT

稳稳の幸福 发表于 2016-5-15 10:41 | 显示全部楼层
接口类似SPI的那种接口。
z_horse 发表于 2016-5-15 11:22 | 显示全部楼层
springvirus 发表于 2016-5-13 10:15
可以从SYS_Init中的PWM时钟源选择和PWM_ConfigOutputChannel()里的流程分析下
尤其是prescaler,CMR,CNR ...

谢谢
heisexingqisi 发表于 2016-5-16 18:59 | 显示全部楼层
springvirus 发表于 2016-5-13 10:17
引脚如下

#define LCD_RS   P20 //pin 27  1:输入数据 ;0:输入命令

非常感谢,以前没用过这种LCD的,都是用LED数码管,
您需要登录后才可以回帖 登录 | 注册

本版积分规则

128

主题

4602

帖子

14

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