发新帖本帖赏金 5.00元(功能说明)我要提问
返回列表
打印
[技术问答]

【新唐“春蕾杯“活动】令人难忘的M058S

[复制链接]
2863|17
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 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打印

12864显示图


播放badapple

红外避障小车

双摇杆遥控器

led.part01.rar (2 MB)
led.part02.rar (2 MB)
led.part03.rar (2 MB)
led.part04.rar (418.32 KB)
led_car.part01.rar (2 MB)
led_car.part02.rar (2 MB)
led_car.part03.rar (1.63 MB)


打赏榜单

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兼容的片子吗

使用特权

评论回复
5
dongnanxibei| | 2016-3-17 19:15 | 只看该作者
新唐的优点就是同类产品有的优点,而同类产品的缺点,新唐很少有,新唐做的固件库也是很不错,模块化高。

使用特权

评论回复
6
springvirus|  楼主 | 2016-3-19 13:44 | 只看该作者
energyplants 发表于 2016-3-17 13:12
这个芯片的RAM有多大,新唐有和stm32F030兼容的片子吗

M058S有32KB Flash,4KB SRAM

使用特权

评论回复
7
天灵灵地灵灵| | 2016-3-19 21:16 | 只看该作者
片内存储单元可以应对很多复杂的应用程序的存储了。

使用特权

评论回复
8
maoxiaobu| | 2016-3-22 17:24 | 只看该作者
:)

使用特权

评论回复
9
springvirus|  楼主 | 2016-3-23 13:25 | 只看该作者
呵呵,还有赏金拿~~,非常感谢!

使用特权

评论回复
10
z_horse| | 2016-5-10 12:39 | 只看该作者
才用M058SAN 想用它产生100khz左右的方波 但是例程始终改不上去  求帮助

使用特权

评论回复
11
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 怎么然后示波器就出不来波形了

使用特权

评论回复
12
heisexingqisi| | 2016-5-12 23:06 | 只看该作者
楼主的液晶屏是什么接口的?

使用特权

评论回复
13
springvirus|  楼主 | 2016-5-13 10:15 | 只看该作者
z_horse 发表于 2016-5-12 12:43
这个地方我知道 但是我想把频率改到100khz 怎么然后示波器就出不来波形了

可以从SYS_Init中的PWM时钟源选择和PWM_ConfigOutputChannel()里的流程分析下
尤其是prescaler,CMR,CNR这几个关键值

使用特权

评论回复
14
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

使用特权

评论回复
15
稳稳の幸福| | 2016-5-15 10:41 | 只看该作者
接口类似SPI的那种接口。

使用特权

评论回复
16
z_horse| | 2016-5-15 11:22 | 只看该作者
springvirus 发表于 2016-5-13 10:15
可以从SYS_Init中的PWM时钟源选择和PWM_ConfigOutputChannel()里的流程分析下
尤其是prescaler,CMR,CNR ...

谢谢

使用特权

评论回复
17
heisexingqisi| | 2016-5-16 18:59 | 只看该作者
springvirus 发表于 2016-5-13 10:17
引脚如下

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

非常感谢,以前没用过这种LCD的,都是用LED数码管,

使用特权

评论回复
发新帖 本帖赏金 5.00元(功能说明)我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

127

主题

4553

帖子

14

粉丝