CW32 USB VAmeter(CW32充电检测仪-双向直通版)使用体验
产品图片:
此款产品团购自“CW32社区商城小程序”,并且按照产品规格要求购买了0.96寸TFT,拿到手后,第一时间打开购买信息中提到的资料链接。
其实第一时间是欣赏来着,怎么说呢?沉金工艺很棒,而且被大牛李工玩出了花了,电流流向清晰明了!!后面打印出3D外壳,安装后,按键手感也很不错,嘎嘣脆!
注:此款产品在立创开源平台链接为:
CW32L010充电检测仪 - 立创开源硬件平台
在资料链接中下载了最新的程序:
Docs
烧录时,遇到了问题,链接中的KEIL支持库安装有问题,向开发者大牛李工咨询后,在武汉芯源官网的固件库中下载了最新的支持库。链接如下:
https://www.whxy.com/uploads/fil ... heralLib_V1.0.2.zip
安装好后,又遇到Keil 的AC6无法编译通过的情况,再次向大牛李工咨询后,才知道目前AC6有很多兼容问题,只能使用AC5。没办法,继续下载AC5版本Keil MDK537(此版本安装过程请咨询百度),其中有一点说明:当安装完毕,配置好第5版本的编译器后,编译一直提示找不到授权路径,我按照网络教程设置环境变量也不行,重新配置编译器目录也失败了。最后恢复原状,通过右键管理员打开,成功编译!!!
到这一步,成功算是接近尾声了,满心欢喜地把珍藏多年的ST-LINKv2请出来,再拿出给予厚望的测试夹,开始了长达几十分钟的偿试接线过程,PDD几块几包邮的信号测试夹完美**,老老实实地用起了公母杜邦线,最终还是无法摆脱手动狗头的命运(用手按着插头,主要是不想焊接排针,因为后续要上外壳的)。
第一次接线上电后,提示找不到设备,我明明安装了link驱动的,再检查电脑的设备管理器,也正常识别出link设备,无法识别板子?板子坏了吗?重新安装一遍link驱动也没解决。最后静下心来仔细观察了电路图的下载接口,发现上面标明的是3V,而我接的是5V,抓紧改了过来,这里庆幸芯源的芯片支持宽电压电源,否则人为原因报废。还有另一点,手一抖,把正负极接反了,“我雷哥去!”芯片牛X。
经过前面多重磨难,终于得以取得真经!~~~本文到此结束,谢谢观看!
等~~~
显示不对,看人家的都是这个shai,我这边怎么是反的?不光是反的,而且边缘还有杂色!
取经百度、群友与大牛李工后,说是各厂家屏幕的寄存器设置不一致。解决方案有几种,而且CW32官方QQ群中也有修复后的例程下载,我这边偿试了中景园的0.96寸实例中的写法,备注如下:
/******************************************************************************
函数说明:设置起始和结束地址(因每家寄存器设定不一样导致出现各种显示问题,本函数解决了边缘杂色的问题)
入口数据:x1,x2 设置列的起始和结束地址
y1,y2 设置行的起始和结束地址
返回值: 无
******************************************************************************/
void LCD_Address_Set(u16 x1,u16 y1,u16 x2,u16 y2)
{
if(USE_HORIZONTAL==0)
{
LCD_WR_REG(0x2a);//列地址设置
LCD_WR_DATA(x1+26);
LCD_WR_DATA(x2+26);
LCD_WR_REG(0x2b);//行地址设置
LCD_WR_DATA(y1+1);
LCD_WR_DATA(y2+1);
LCD_WR_REG(0x2c);//储存器写
}
else if(USE_HORIZONTAL==1)
{
LCD_WR_REG(0x2a);//列地址设置
LCD_WR_DATA(x1+26);
LCD_WR_DATA(x2+26);
LCD_WR_REG(0x2b);//行地址设置
LCD_WR_DATA(y1+1);
LCD_WR_DATA(y2+1);
LCD_WR_REG(0x2c);//储存器写
}
else if(USE_HORIZONTAL==2)
{
LCD_WR_REG(0x2a);//列地址设置
LCD_WR_DATA(x1+1);
LCD_WR_DATA(x2+1);
LCD_WR_REG(0x2b);//行地址设置
LCD_WR_DATA(y1+26);
LCD_WR_DATA(y2+26);
LCD_WR_REG(0x2c);//储存器写
}
else
{
LCD_WR_REG(0x2a);//列地址设置
LCD_WR_DATA(x1+1);
LCD_WR_DATA(x2+1);
LCD_WR_REG(0x2b);//行地址设置
LCD_WR_DATA(y1+26);
LCD_WR_DATA(y2+26);
LCD_WR_REG(0x2c);//储存器写
}
}
void LCD_Init(void)
{
long i;
LCD_GPIO_Init();//初始化GPIO
LCD_RES_Clr();//复位
for(i=0;i<10000;i++);
LCD_RES_Set();
for(i=0;i<10000;i++);
LCD_BLK_Set();//打开背光
for(i=0;i<10000;i++);
LCD_WR_REG(0x11); //Sleep exit
for(i=0;i<200000;i++); //Delay 120ms
LCD_WR_REG(0xB1); //Normal mode
LCD_WR_DATA8(0x05);
LCD_WR_DATA8(0x3C);
LCD_WR_DATA8(0x3C);
LCD_WR_REG(0xB2); //Idle mode
LCD_WR_DATA8(0x05);
LCD_WR_DATA8(0x3C);
LCD_WR_DATA8(0x3C);
LCD_WR_REG(0xB3); //Partial mode
LCD_WR_DATA8(0x05);
LCD_WR_DATA8(0x3C);
LCD_WR_DATA8(0x3C);
LCD_WR_DATA8(0x05);
LCD_WR_DATA8(0x3C);
LCD_WR_DATA8(0x3C);
LCD_WR_REG(0xB4); //Dot inversion
LCD_WR_DATA8(0x03);
LCD_WR_REG(0xC0); //AVDD GVDD
LCD_WR_DATA8(0x0E);
LCD_WR_DATA8(0x0E);
LCD_WR_DATA8(0x04);
LCD_WR_REG(0xC1); //VGH VGL
LCD_WR_DATA8(0xC5); //C0
LCD_WR_REG(0xC2); //Normal Mode
LCD_WR_DATA8(0x0d);
LCD_WR_DATA8(0x00);
LCD_WR_REG(0xC3); //Idle
LCD_WR_DATA8(0x8D);
LCD_WR_DATA8(0x2A);
LCD_WR_REG(0xC4); //Partial+Full
LCD_WR_DATA8(0x8D);
LCD_WR_DATA8(0xEE);
LCD_WR_REG(0xC5); //VCOM
LCD_WR_DATA8(0x06); //1D .06
LCD_WR_REG(0x36); //MX, MY, RGB mode
if(USE_HORIZONTAL==0)LCD_WR_DATA8(0x08);
else if(USE_HORIZONTAL==1)LCD_WR_DATA8(0xC8);
else if(USE_HORIZONTAL==2)LCD_WR_DATA8(0x78);
else LCD_WR_DATA8(0xA8);
LCD_WR_REG(0x3A);
LCD_WR_DATA8(0x55);
LCD_WR_REG(0xE0); //positive gamma
LCD_WR_DATA8(0x0b);
LCD_WR_DATA8(0x17);
LCD_WR_DATA8(0x0a);
LCD_WR_DATA8(0x0d);
LCD_WR_DATA8(0x1a);
LCD_WR_DATA8(0x19);
LCD_WR_DATA8(0x16);
LCD_WR_DATA8(0x1d);
LCD_WR_DATA8(0x21);
LCD_WR_DATA8(0x26);
LCD_WR_DATA8(0x37);
LCD_WR_DATA8(0x3c);
LCD_WR_DATA8(0x00);
LCD_WR_DATA8(0x09);
LCD_WR_DATA8(0x05);
LCD_WR_DATA8(0x10);
LCD_WR_REG(0xE1); //negative gamma
LCD_WR_DATA8(0x0c);
LCD_WR_DATA8(0x19);
LCD_WR_DATA8(0x09);
LCD_WR_DATA8(0x0d);
LCD_WR_DATA8(0x1b);
LCD_WR_DATA8(0x19);
LCD_WR_DATA8(0x15);
LCD_WR_DATA8(0x1d);
LCD_WR_DATA8(0x21);
LCD_WR_DATA8(0x26);
LCD_WR_DATA8(0x39);
LCD_WR_DATA8(0x3E);
LCD_WR_DATA8(0x00);
LCD_WR_DATA8(0x09);
LCD_WR_DATA8(0x05);
LCD_WR_DATA8(0x10);
LCD_WR_REG(0x21); //Display inversion
//delay1ms (120);
for(i=0;i<200000;i++);
LCD_WR_REG(0x29); //Display on
}
电路原理图如下:
从图中可以看出,TypeC公头与母座是直通的,INA199A支持双向检测电流,所以在电压范围:DC5V~24V、电流范围:0~5A内是可以随便正反插拔的。
此款产品,如今已稳定运行若干天,内置的板子温度测量值在30左右,已测试过65W氮化镓快充,也偿试了带有EMARK的线,结果有些失望,板子黑屏无显示,看板子线路原理图,只接了DP、DN,EMark线估计走了其它协议进行检测)。
详细的故障解决方案都收录在本产品的资料合集中:
Docs
好了,感谢各位~~~ 另外,友情提示一下,这个绿色外壳在公头处尺寸偏小,需要双双割掉一层皮才可以。要么在打印前调整下开口尺寸。
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/wdf2gy/article/details/143859448
|