赛元MB0036开发板概述
赛元MB0036开发板主控 MCU 芯片型号为 SC95F8767,集成触控模块及 ISP 烧录模块。其触控模块是一大特色,可以直接用于设计按键。新定义商城地址(新注册用户可免费申领MB0036)
开发板原理图及触控硬件设计方法
主控MCU中标注TKxx的引脚都可以用于设计触控按键开发。值得注意的是,开发板中对于外接低频晶振并未焊接元器件。
开发触摸按键时,需要添加CMOD参考电容,当采用高灵敏触控模式时,外接的CMOD电容容值范围位472~104,推荐使用103电容,CMOD参考电容的材质无特殊要求。
采用高可靠触控时,CMOD外接电容容值范围位332~473,同样推荐103电容,建议使用温漂小,精度高的电容。此外CMOD电容尽量靠近芯片。
设计触控按键时,由于原理位电容变化,因此走线时,距离芯片越远的按键,其触控面积应当越大。
其触摸按键形状设计方法
开发板中具体功能区域说明
1. 最上面红色位ISP烧录模块,采用的是CH340N,可用于ISP烧录
2. 黄色框位常规烧录接口,可以使用SC_Link Pro.(新注册的的用户有两张50元优惠券可以10元买个SC_Link Pro, 采用STM32F103C8T6设计,带屏幕的仿真器)
3. 绿色框位电压选择,链接type-c时,可以选择3.3V或者5V为芯片供电
4. 蓝色框中上面为滑条按键,下面为触控按键
易码魔盒EasyCodeCube
简介
易码魔盒(EasyCodeCube)是赛元推出的代码自动生成工具(文中后续简称魔盒),目的是简化开发过程,降低用户的开发门槛。使用赛元的产品开发简便,容易复制到其他项目,降低客户开发的成本。下载地址
功能特点
图形化编程 、用户无需关心底层代码
自动生成标准化的底层配置代码 、驱动代码、逻辑代码
完整的项目管理,易移植
丰富的功能模块和示例提供学习、开发
集成赛元配套工具,形成完整的软件生态
触控按键Demo
魔盒打开后的界面
在工程名称中输入新建的工程名称——>点击下一步会出现选择MCU界面
搜索SC95F8768,然后点击“点击这里开始工程”
选择TKDEMO-SpaceTouchKey,双击创建工程,在TK触控 Configuration中可以对触控引脚进行控制。
首先将P14~P21管脚设置输出模式,控制触控按键下的灯亮灭。再配置TK触控 Configuration中的普通按键通道,将TK2~TK7触控按键选中。
选中TK触控会在右边出现TK触控Configuration,选择TK2~TK7,作为触控按键输入方式
将MB0036开发板通过SC LINK Pro仿真器链接至电脑,点击TK触控Configuration中的配置按钮
点击已连接触控板,进入在板调教,随后会出现弹窗,点击确认即可
随后出现调控界面
通道选择在配置TK触控时已经设计好了,因此这里直接点击确认即可。6个触控按钮可以通过点击开始校准(从左至右分别表示TK2~TK7)。
以TK2为例,点击绿色的TK2开始校准:
启动调试,首先在界面上不要放任何东西,根据提示,再将手指放入TK2触控按键处。
触控调试完毕时,即可将TK2校准完毕
依次将TK3~TK7进行校准。校准完毕后的界面为
点击导出配置信息,即可将校准信息写入工程项目中,点击下一步或者用户程序配置。对程序过程进行配置。
可以点击生成按钮生成代码,也可以编译一下,看是否会出错。
这个表示编译无误,代码生成没问题。
通过进入UserCode代码块
添加代码
if(exKeyValueFlag!=0)
{
switch(exKeyValueFlag)
{
case 0x0004: P17 = ~P17; break;
case 0x0008: P14 = ~P14; break;
case 0x0010: P15 = ~P15; break;
case 0x0020: P20 = ~P20; break;
case 0x0040: P16 = ~P16; break;
case 0x0080: P21 = ~P21; break;
}
}
配置烧录参数,再次点击编译烧录,即可将代码烧录进去。
如果按键对灯无法控制,可能是触控参数未优化成功,可以打开S_TOUCHKEYCFG.H,将里面的代码替换为下述代码。
#ifndef __S_TOUCHKEYCFG_H__
#define __S_TOUCHKEYCFG_H__
#define SOCAPI_SET_TOUCHKEY_TOTAL 6
#define SOCAPI_SET_TOUCHKEY_CHANNEL 0x000000FC
#define SOCAPI_SET_TOUCHKEY_CHANNEL2 0x00000000
unsigned int code TKCFG[17] = {0,0,0,5,10,3000,200,100,2,0,0,4,0,1,65535,65535,24};
unsigned char code TKChannelCfg[9][8]={
0x05,0x25,0x04,0x08,0x0d,0x05,0x01,0x5E,
0x05,0x25,0x04,0x08,0x0f,0x05,0x01,0x5E,
0x05,0x25,0x04,0x08,0x0f,0x05,0x01,0x5E,
0x05,0x25,0x04,0x08,0x0c,0x05,0x01,0x5E,
0x05,0x25,0x04,0x08,0x11,0x05,0x01,0x5E,
0x05,0x25,0x04,0x08,0x0e,0x05,0x01,0x5E,
0x05,0x25,0x04,0x08,0x11,0x05,0x00,0xFA,
0x05,0x25,0x04,0x08,0x15,0x05,0x00,0xFA,
0x05,0x25,0x04,0x08,0x11,0x05,0x00,0xFA,
};
#endif
由于未作延时消抖等功能,因此按键会出现按一下闪一下的情况。有机会后面再优化。