国产芯片替代ST很容易,航顺HK32F103RET6替代STM32F103RET6,航顺芯片,航顺MCU_航顺芯片MCU的博客-程序员信息网_hk32f stm32 pack

技术标签: stm32  arm  单片机  

手里有几个STM32F103RET6应用的板子,整天被采购问询是否能用国产替代,成本快搂不住了。
这次又拿了HK的样片,作为替代,尝试一下。
开始没做任何修改,程序下载了就跑起来,让我还抱怨了一番,感觉是不是拿错片子了。
后面静下心来,详细测试了使用的各功能模块,
还是有点小问题的,不过非常好修改,作为应急替代使用,应该问题不大。
所以
补写个序,告知下本次替代容易至极,如果有同样需求,放心大胆的干吧!
随之而来的悲催就是
这几天的工作就大部分的成了拍照,留念,技术内容并不是很多,
有ST使用的底子,基本上不需要强制查阅手册之类的文档,完全无压力。

本来准备好的替代步骤,技术攻坚,变成了如下的“旅游回忆录”。

1、  先把芯片换了再说
换之前,先留个ST的影像,一会就换了它。


换好了,拿回办公位,
我的焊工还算可以吧,
只是酒精干了,杂质没有清理干净,引脚有些发白。


准备就绪,后面怎么办?
网上说的那么的神,直接烧ST的程序,行不行?

2、  直接原ST程序直接烧写
我无语,直接烧写原ST的程序,不做任何修改,居然能跑起来?
那我还玩什么?
都准备好一顿操作了,结果,给我直接憋在了开始~~~~
红色电源指示
蓝色闪烁程序运行指示

是我出现幻觉了么?
这是第一次接触航顺啊,怎么可能这么的顺利。
打开MDK,来确认下眼神,
确实把ST的程序,烧到了HK的片子里,直接就跑起来。
本来是打算挑挑毛病的呢。。。

好吧,既然事实已经如此,那么回过头来,看看当初STM32里到底使用了哪些资源。

整个程序基于HAL库
硬件初始化部分


程序是同事开发的,
我当前只是尝试验证是否满足芯片替代的条件,
程序开发的过程中,兼容了一些产品,初始化的资源,比实际使用的多一点,
下面验证下使用到的模块是否正常
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
GOIO:PC13
DMA1: 后来程序测试的过程中,发现并没有使用DMA
ADC1: ADC_CHANNEL_9 , ADC_CHANNEL_10,ADC_CHANNEL_11
USART: COM1 COM4
Timer(PWM) : TIM3
SPI2:这个实际没有用到,作为预留功能的。
DAC: DAC_CHANNEL_1
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

航顺芯片MCU型号选型表,料号

HK32F030MF4U6,HK32F030MD4P6,HK32F030MJ4M6,HK32F030MG6U6A,HK32F030MF4U6A,HK32F030MD4P6A,HK32F030MJ4M6A,HK32F0301MF4U6,HK32F0301MD4P6,HK32F0301MJ4M6,HK32F0301MG6U6A,HK32F0301MF4U6A,HK32F0301MD4P6A,HK32F0301MJ4M6A,HK32E032R4T5,HK32F04AR8T6,HK32F04AC8T6,HK32F04AC6T6,HK32F04AC4T6,HK32F04AK8T6,HK32F04AK6T6,HK32F04AK4T6,HK32F04AK8U6,HK32F04AK6U6,HK32F04AK4U6,HK32F04AG8U6,HK32F04AG6U6,HK32F04AG4U6,HK32F04AF8P6,HK32F04AF6P6,HK32F04ARBT6A,HK32F04AR8T6A,HK32F04ACBT6A,HK32F04AC8T6A,HK32F04AC6T6A,HK32F04AC4T6A,HK32F04AKBT6A,HK32F04AK8T6A,HK32F04AK6T6A,HK32F04AK4T6A,HK32F04AKBU6A,HK32F04AK8U6A,HK32F04AK6U6A,HK32F04AK4U6A,HK32F04AGBU6A,HK32F04AG8U6A,HK32F04AG6U6A,HK32F04AG4U6A,

HK32F04AFBP6A,HK32F04AF8P6A,HK32F04AF6P6A,HK32F04AF4P6A,HK32ASPIN010RBT6,HK32ASPIN010CBT6,HK32ASPIN010KBT6,HK32ASPIN010KBU6,HK32ASPIN010GBU6,HK32ASPIN010FBP6,HK32ASPIN010RBT6A,HK32ASPIN010CBT6A,HK32ASPIN010KBT6A,

HK32ASPIN010KBU6A,HK32ASPIN010GBU6A,HK32ASPIN010FBP6A,HK32ASAFE010RBT6,HK32ASAFE010CBT6,HK32ASAFE010KBT6,HK32ASAFE010KBU6,HK32ASAFE010GBU6,HK32ASAFE010FBP6,HK32U3019VET6,HK32U3019VDT6,HK32U3019VCT6,HK32U3019RET6,HK32U3019RDT6,HK32U3019RCT6,HK32H3009VET6,HK32H3009VDT6,HK32H3009VCT6,HK32H3009RET6,HK32H3009RDT6,HK32H3009RCT6,HK32T088RBT6,HK32T088C8T6,HK32HA030RBT6,HK32HA030C8T6,HK32HP103RET6,HK32HP103RCT6,HK32HP103CET6,

航顺芯片MCU型号选型表,替代ST料号,全兼容

HK32F030MF4P6替代STM8S003,HK32F0301MF4P6替代STM8S003,HK32F030MG6T6A 替代STM8S003,

HK32F030MF4P6A 替代STM8S003,HK32F0301MG6T6A替代STM8S003,HK32F0301MF4P6A替代STM8S003,

HK32F030R8T6替代STM32F030R8T6,HK32F030C8T6替代STM32F030C8T6,HK32F030C6T6替代STM32F030C6T6,

HK32F030K6T6替代STM32F030K6T6,HK32F030F4P6替代STM32F030F4P6,HK32F030R8T6A替代STM32F030R8T6,

HK32F030C8T6A替代STM32F030C8T6,HK32F030C6T6A替代STM32F030C6T6,HK32F030K6T6A替代STM32F030K6T6,

HK32F030F4P6A替代STM32F030F4P6,HK32F031C6T6替代STM32F031C6T6,HK32F031C4T6替代STM32F031C4T6,

HK32F031K6T6替代STM32F031K6T6,HK32F031K4T6替代STM32F031K4T6,HK32F031K6U6替代STM32F031K6U6,

HK32F031K4U6替代STM32F031K4U6,HK32F031G6U6替代STM32F031G6U6,HK32F031G4U6替代STM32F031G4U6,

HK32F031F6P6替代STM32F031F6P6,HK32F031F4P6替代STM32F031F4P6,HK32F031C6T6A替代STM32F031C6T6,

HK32F031C4T6A替代STM32F031C4T6,HK32F031K6T6A替代STM32F031K6T6,HK32F031K4T6A替代STM32F031K4T6,

HK32F031K6U6A替代STM32F031K6U6,HK32F031K4U6A替代STM32F031K4U6,HK32F031G6U6A替代STM32F031G6U6,

HK32F031G4U6A替代STM32F031G4U6,HK32F031F6P6A替代STM32F031F6P6,HK32F031F4P6A替代STM32F031F4P6,

HK32F042RBT6替代STM32F042RBT6,HK32F042R8T6替代STM32F042R8T6,HK32F042CBT6替代STM32F042C8T6,

HK32F042C8T6替代STM32F042C8T6,HK32F042CBU6替代STM32F042C8T6,HK32F042C8U6替代STM32F042C8T6,

HK32F051RBT6替代STM32F051RBT6,HK32F051R8T6替代STM32F051R8T6,HK32F051CBT6替代STM32F051C8T6,

HK32F051C8T6替代STM32F051C8T6,HK32F051CBU6替代STM32F051C8T6,HK32F051C8U6替代STM32F051C8T6,

HK32F072RBT6替代STM32F072RBT6,HK32F072R8T6替代STM32F072R8T6,HK32F072CBT6替代STM32F072C8T6,

HK32F072C8T6替代STM32F072C8T6,HK32F072CBU6替代STM32F072C8T6,HK32F072C8U6替代STM32F072C8T6,

HK32F072RBT6A替代STM32F072RBT6,HK32F072R8T6A替代STM32F072R8T6,HK32F072CBT6A替代STM32F072C8T6,

HK32F072C8T6A替代STM32F072C8T6,HK32F072CBU6A替代STM32F072C8T6,HK32F072C8U6A替代STM32F072C8T6,HK32F103RBT6替代STM32F103RBT6,HK32F103R8T6替代STM32F103R8T6,HK32F103CBT6替代STM32F103CBT6,HK32F103C8T6替代STM32F103C8T6,HK32F103VBT6A替代STM32F103VBT6,HK32F103V8T6A替代STM32F103V8T6,

HK32F103RBT6A替代STM32F103RBT6,HK32F103R8T6A替代STM32F103R8T6,HK32F103CBT6A替代STM32F103CBT6,HK32F103C8T6A替代STM32F103C8T6,HK32F103VET6替代STM32F103VET6,HK32F103VDT6替代STM32F103VDT6,

HK32F103VCT6替代STM32F103VCT6HK32F103RET6替代STM32F103RET6,HK32F103RDT6替代STM32F103RDT6,

HK32F103RCT6替代STM32F103RCT6,HK32W030CEU6替代NRF52832,HK32U1009VET6替代HK32F103VET6,

HK32U1009VDT6替代HK32F103VDT6,HK32U1009VCT6替代HK32F103VCT6,HK32U1009RET6替代HK32F103RET6,

HK32U1009RDT6替代HK32F103RDT6,HK32U1009RCT6替代HK32F103RCT6,

3、  既然程序跑起来了,突然觉得没事干了,验证下当前使用的资源,工作是不是正常吧。
3.1 IO输出(PC13)
   直接看程序运行状态指示,闪烁频率正常。
   还用到了其他IO,单纯的IO使用,问题不大。
3.2串口
   数据收发正常
3.3 DAC输出检测
   电压输出可控,正常。(开始着急了,这也正常?都正常我去哪找毛病?)
   实测DAC输出正常,但是在HK的应用笔记中,找到如下注意事项,
我想,在应用中,还是参考下应用笔记吧。

3.4ADC检测
开始没注意,一看ADC采样有数据,貌似正常,差点溜过去。
但是,我用了9,10,11三个通道,
那么,问题来了,
我之前的采样顺序是10,9,11
实际测试发现,通道顺序乱了,导致我的采样数据也乱了。
哈哈,终于找到了毛病,可以发泄和吐槽~~~
直到这里,才刚刚开始找HK的资源。
先换HK的pack,编译尝试一下,设置和芯片选择如下

选M3


至此,编译下载,问题没有解决,不是PACK包的事。

  接着在在HK的应用笔记中,看到了对多通道ADC使用的过程中的一些描述。

那么好,按照应用笔记试试,加延迟~
结果,哎,不是我想要的结果啊,
这下只能靠自己了~可别让我丢人啊~~
还有哪里呢?
既然是通道顺序乱了,
那么
ADC初始化里~

至此,更改完之后,ADC几个通道采样值正常了!!
缓口气,前面吹了半天,差点掉链子~
但是讲真,我还没搞明白为什么,
还特意的找个ST的板子验证了下,用ST的片子,我之前的设置没有问题,
用HK的,要改一下,
哪位大神,调试过ADC,还望指点~
这个后面,再看看HK的手册,既然当前adc的值正常了,这里先跳过了。

3.5没耐性了,基本用到的模块也都简单验证了,直接装到整机里,看看效果。
  替换原设备位置,整机检验,工作2h,设备状态稳定~~~~
  暂且认为替代成功,后面的验证,交给质量部门。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3.6忽悠忽悠同事,换到他的板子上试试。
由于替代比想象的容易
又扔给同事,把芯片换到他的板子上,
反馈我的信息是:
  程序直接下载就能用,
  串口,定时器没问题,
  有个i2c的器件,读不到数据(程序中使用了硬件i2c,这个应该不叫事,应用笔记中有提到,实在不行IO模拟也能解决。)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4、  浏览航顺官网
貌似都完事了,官网都没有打开,有点不合适。
也禁不住那个懒惰的小精灵,在头上叫着“是不是可以用ST去开发,然后简单修改就好了?”
但是,我要让那个勤劳的小精灵获胜,还是要回到官网去看看~~
http://www.hsxp-hk.com/companyfile/23/
在这里下载F103的PACK包,同时可以根据自己的需求,下载用户手册和数据手册。

航顺官网做的还是很工整的,资料很好找。

选型表,这个很多人会问,不用的时候,啥用没有。想找一找的时候,又找不到。记得顺便存一下,或者联系技术支持聊聊天。

后面应该会一点点的过度好航顺的库上去,毕竟用谁家的东西,就要用谁家的“灵魂”嘛。


5、  小结
或许是使用的资源有限,或许是运气好。
替代过程,非常的容易,基本上没有过多的查看HK的手册和应用笔记。
程序直接下载就能跑起来,
功能模块详细测试时,发现adc多通道采集时,通道采集顺序与预期不符,也是简单修正初始化部分,就能正常。
感觉如果产品已经定型,寻求芯片替代的话,真的可以考虑,
硬件不用修改,软件测试下功能模块就好了,
要求严格的话,测试下整机和环境适应性,应该问题不大。
在测试过程中,
选用ST和HK的pack进行编译,暂时没有发现不适应的状态,
不过,我这里是初步测试,应急使用可以参照,后期替换的过程中,应该会慢慢的转到HK的库上来。

后面附上,我下载的HK的应用笔记,供参考。

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/HK32MCU/article/details/120949506

智能推荐

计算机组成原理汇编语言设计实验,《计算机组成原理汇编语言程序设计》实验指导书.doc..._愷629的博客-程序员信息网

《计算机组成原理汇编语言程序设计》实验指导书,汇编语言实验指导书,微机原理与汇编语言,微机原理及汇编语言,汇编转c语言原理,汇编语言原理,汇编语言和编译原理,汇编语言编译原理,计算机原理与汇编语言,计算机组成原理与汇编《计算机组成原理与汇编语言程序设计实验计算机组成原理与汇编语言程序设计实验汇编语言是信息与计算科学专业的一门专业课,对开发高级应用程序有重大意义,学习汇编程序有利于理解计算机系统中软...

密码强度检测_haige807的博客-程序员信息网

密码强度提示是最近流行的一个功能,但是99%的案例都忽略了检测机制。 基本上都是把字符分成四类:数字、小写英文、大写英文、符号,然后按照组合复杂度来直接判断强弱程度: 单一,是弱密码。 两两组合,是中密码。 超过两种组合,是强密码。 方案一<SCRIPT language=javascript> //CharMode函数 //测试某...

serlvet运行jdbc报错,而主方法中运行不报错_servle调用jdbc方法出错_因为艾,所以爱的博客-程序员信息网

public static void main(String[] args) throws SQLException { Login login = checkusername("chenlu", "123456789"); System.out.println(login.getUsername()+":"+ login.getPassword());}上面这行代码是在主方法中用来测试的 String username = request.getParameter("u

iOS开发 调试 网络限速_小犀牛_的博客-程序员信息网_xcode限制网络

在iOS开发中,针对不同网络状况做一下测试处理是很有必要的。但是我发现还是有一些iOS开发者不太注意到不同网络环境下的调试问题,或者说不清楚如何调试这种情况。下面我将针对真机和模拟器分别做简单的说明。告诉大家如何模拟不同的网络状况。1.真机情况下其实Apple在iOS系统中预置了网络调试工具,但是只有添加过测试设备,并使用XCode连接下设备才能激活

tf.nn.sigmoid_cross_entropy_with_logits tf.nn.softmax_cross_entropy_with_logits_qq_25713443的博客-程序员信息网

https://blog.csdn.net/m0_37393514/article/details/81393819https://www.cnblogs.com/tangjunjun/p/11506093.html

基于QT实现的飞机大战游戏_yanrenning的博客-程序员信息网

一、课程设计内容与目标通过类的继承等来实现一个飞机小游戏,首先实现控制台版的飞机游戏,然后修改与显示相关的部分代码完成从控制台到图形界面的迁移过程。飞机游戏中要实现以下几个基本要素:玩家飞机发射子弹攻击敌机敌机可以发射子弹攻击玩家玩家飞机可以自由移动,敌机可以定向移动玩家飞机与敌机只有在真正边界相撞时才算相撞,且相撞时双方均要受到一定伤害在课程设计一中,我...

随便推点

python 使用plt.tricontour绘制逻辑回归决策边界(不规则空间下的等高线图)_搞测绘的的博客-程序员信息网_python 决策边界

前言最近在做有关逻辑回归的作业,需要绘制决策边界。绘制原理是:对于逻辑回归,其决策边界为θTX=0\theta^TX = 0θTX=0处,其中θ=[θ0,θ1,θ2,⋯ ,θn];X=[X0,X1,X2,⋯ ,Xn]\theta = [\theta_0,\theta_1,\theta_2,\cdots,\theta_n ]; X = [X_0,X_1,X_2,\cdots,X_n ]θ=[θ0​,θ1​,θ2​,⋯,θn​];X=[X0​,X1​,X2​,⋯,Xn​]。我们将训练所得的θ\thetaθ代

SQL-主键&外键的定义_水系产品汪的博客-程序员信息网_sql外键定义

primary key 主键需设置为不为空不重复&自增列not null auto_increment primary key一个表仅允许一个主键,但主键可由多列组成create table tb1 (id int not null auto_increment,department_id int,name char,age int,primary key(id,department_id))foreign key 外键外键由单列组成constraint

IText简介及示例_氺氺的博客-程序员信息网_itext例子

一、iText简介   iText是著名的开放源码的站点sourceforge一个项目,是用于生成PDF文档的一个java类库。通过iText不仅可以生成PDF或rtf的文档,而且可以将XML、Html文件转化为PDF文件。         使用iText非常方便,引入jar包,程序中就可以使用iText类库了。iText.jar包下载地址:http://www.itextpdf.com/

vpp下nat功能测试_YYilion的博客-程序员信息网

vpp中nat功能测试设置网络地址在运行vpp后,其会接管192.168.101.37和192.168.102.1的这两张网卡,再接管后这两张网卡是没有启动同时也没有ip地址,这里需要通过vpp的命令进行配置;set interface state GigabitEthernet2/1/0 upset interface ip address GigabitEthernet2/1/0 192.168.101.37/24set interface state GigabitEthernet2/

BRIEF特征描述子_happzhao的博客-程序员信息网_brief描述子

一、定义 BRIEF全称(Binary Robust Indenpendent Elementary Features) 它提供了一种计算二值串的捷径,而并不需要去计算一个类似于SIFT的特征描述子。它需要先平滑图像,然后在特征点周围选择一个Patch,在这个Patch内通过一种选定的方法来挑选出来ndn_d个点对。然后对于每一个点对(p,q)(p,q),我们来比较这两个点的亮度值,如果I

推荐文章

热门文章

相关标签