打印
[综合信息]

【SWM166-SPI-Y1.28C1测评】拆解 与 熟悉SDK

[复制链接]
1057|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
dvacos|  楼主 | 2023-12-24 22:48 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
非常感谢华芯微特 和 21IC提供的评测机会,拿到旋钮屏Demo后的拆解和一些开发上疑问
在昨天公布名单后,下午的快递就已经寄出,非常快速,今天早上本人就已经拿到了,于是中午午休的时候就开始了拆解,所以图片都是在没有环境光的情况下拍摄的,请见谅!

拿到手简单的观察了一下,发现是给客户演示的Demo,不是想象中的开发板的样子,并且网盘的资料中,没有FPC的引脚定义,和底板简单的测量一下后发现是有连接SWCLK SWDIO RX TX的足够简单的调试和开发了,但是我还是想拆开看看板子。
步骤如下:
1、卸下底部的三颗螺丝,并且挑开正面的排线,小心分开!

2、一只手捏着外框,另外一只手轻轻推动屏幕,外框可以取下来。

取下外框(金属的)的效果

外框

去掉塑料底框,使用镊子将倒扣抠出来,翘松的同时对外推,重复3次就可以取下

取下塑料底框之后,就可以看见PCB了,最后卸掉4颗螺丝即可,看见就PCB了
注意 注意 取下的时候需要小心,不要扯断屏幕的排线!!!!

下图就最后的拆解效果了
屏幕+PCBA大合照

PCBA

基本上是一个最小系统 +外挂16M Flash+LDO+编码器外围电路
开发环境
安装Pack包,Pack包可以在官方给的百度云上下载
双击安装就可以了,没什么问题
由于没有看见开发板相关的使用手册,也没有看见配套的原理图和layout图,找了一圈,只能老老实实的使用万用表,一根线一根线的测量通断。

最终的接线图如上,一个SWD接口,两个串口,PB7,与5v的正负极。
PS:我们插入micro-usb供电的时候,已经提供了5V的电源了,烧录的时候共地就可以了,所以SWD接口只要接3个就好咧。
3、接好线之后,发现一直无法连接到芯片,J-link可以正常连接其他芯片,于是乎拆开来测量,排线与座子的通断,结果是连接正常,但是没有找到正确的原理图,不能测量芯片引脚到座子的通断。
于是我更换了4个可以正常使用的J-Link,更换了2个ST-LinK,CMSIS 、1个DAP-Link,都不能连接!!
所以我就怀疑引脚虚焊了,以下的两个图看起来真的非常像虚焊!所以我补焊了芯片的四边焊盘。

在补焊之后,芯片可以正常连接了,所以怀疑是板子是虚焊+运输途中的震动导致的无法连接

终于连接成功了!!!!
4、打开SWM166的工程默认选择的却是SWM211的芯片 和 工程


修改后,发现无法下载 和 连接

选择了J-Link后,一直提示上图,所以只能死马当活马医,直接用SWM211X8下载,发现下载后可以正常运行!!!
但是下载几次之后又不能下载了,就算每次手动选择了J-Link还是会提示上图!!只能每次出现问题就重新解压一次原有工程,手动同步修改,很难受。

Keil 5 版本,希-望原厂可以解决一下下,顺便把开发相关文件补上(J-flash的下载算法之后要打包进PACK包里吧?现在找不到)。
5、熟悉代码

我主观的觉得代码的结构有点混乱,初始化相关的函数可以放在一个初始化函数内,而且相关的外设可以用宏来控制。而且没用的代码就删掉吧!此次的Demo里没有TP。

点RGB灯的函数在Show_**里面,屏蔽之后就没有灯光了。


6、控制刷图的代码就在Show_meau_First里面了。
//显示汉字
LCD_ShowImg(65, 50 ,ID + ICO_Font_BianPinJieDong);
可以看见显示文字都是贴图的,所以我们打开素材看看,进一步确认一下

素材证实了文字就是贴图的,但是为什么还是那么多锯齿?如果贴图也是那么多锯齿,还不如用点阵字库,点阵字库会更加节省空间。
//显示图标
将LCD_ShowImg(60,90,ID + ICO_Big_BianPinJieDong);

改成LCD_ShowImg(0,0,ID + ICO_Big_BianPinJieDong);

可以看见坐标轴的0,0是屏幕正对我们的左上角。
以上就熟悉了基本的刷图API了
查阅了一下按键扫描 和 菜单逻辑实现的代码,短时间内搞清楚有点困难,而且容易改出BUG,因为非常多的if esle组合而成的逻辑,所以我们需要一些Log(日志)来判断代码运行到哪里了,调试也是一种手段,但是我个人认为调试没有使用Log方便。

可以看见main函数的第二行就初始化了波特率为921600的串口,具体的配置可以到UART_InitStructure这个结构体里看一下注释。

呃,代码里缺少了一些头文件,手动添加#include "stdint.h" 这个标准库就没有这些警告了。
所以上面的代码是数据位8位,没有奇偶校验,1位停止位,并且使能串口RX TX的FIFO的相关配置和超时配置!

7、串口既然已经初始化完毕了,我们随便printf一些数据,但是烧录的时候又、又、又识别不到芯片了,重新解压工程也没有办法识别到芯片了,所以只能后续等我重新焊接后再来测试了。。。

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

18

主题

104

帖子

1

粉丝