little4_su 发表于 2018-8-29 17:07:43

PIC18F45K40同一程序不同批号程序不正常工作如何解决

之前一直用1737JTB批次的45k40的芯片调程序,一直好好的。项目完工后,烧写到1632EPV批次的芯片,完全不能工作。都是同一个型号的芯片,问题到底出在什么地方?不知大家有没有碰到过这种怪事?

gaolf_2012 发表于 2018-8-29 19:01:58

用ICD分别读出这俩芯片的版本再根据勘误手册看下版本区别,基本能解决。

little4_su 发表于 2018-8-29 20:45:47

gaolf_2012 发表于 2018-8-29 19:01
用ICD分别读出这俩芯片的版本再根据勘误手册看下版本区别,基本能解决。

datasheet里没有勘误部分,很郁闷

gaolf_2012 发表于 2018-8-29 21:01:46

有专门的文档

little4_su 发表于 2018-8-29 21:13:02

gaolf_2012 发表于 2018-8-29 21:01
有专门的文档

发个链接我看下,我一直找不到。而且这个PIC18F45K40的datasheet没有中文的

gaolf_2012 发表于 2018-8-29 21:24:28

明天在电脑上微芯官网看看,现在用手机上微芯官网简直如同自虐。

little4_su 发表于 2018-8-29 21:32:58

gaolf_2012 发表于 2018-8-29 21:24
明天在电脑上微芯官网看看,现在用手机上微芯官网简直如同自虐。

对了,程序在“器件ID版本a044”(批次1737JTB)上可以正常运行,而在“器件ID版本a043”(批次1632EPV)上是不能正常运行。我试了下最简单的程序,就是对段码显示芯片SM1632进行操作,a044可正常显示,a043就不行。非常的不爽!

funnynypd 发表于 2018-8-29 22:26:17

silicon errata.

gaolf_2012 发表于 2018-8-30 07:49:36

访问
www.microchip.com/wwwproducts/Devices.aspx?product=PIC18F45K40
即可.
不过今天上不去
$4.04
Sorry you didn't find what you were looking for...

labtech 发表于 2018-8-30 08:26:36

little4_su 发表于 2018-8-29 21:32
对了,程序在“器件ID版本a044”(批次1737JTB)上可以正常运行,而在“器件ID版本a043”(批次1632EPV) ...

043 044 的区别,这个文档不是描述的很清楚么?


labtech 发表于 2018-8-30 08:39:57

little4_su 发表于 2018-8-29 21:32
对了,程序在“器件ID版本a044”(批次1737JTB)上可以正常运行,而在“器件ID版本a043”(批次1632EPV) ...

主要看一下 3.1 哈?!
3.1 TBLRD Requires NVMREG Value to Point to
Appropriate Memory

little4_su 发表于 2018-8-30 09:25:44

labtech 发表于 2018-8-30 08:39
主要看一下 3.1 哈?!
3.1 TBLRD Requires NVMREG Value to Point to
Appropriate Memory

真不知如何感谢你,赞美你!按照你的指引去修改,终于把问题解决了。const 类型数据造成的问题,在器件ID版本a043(A3)和a044(A4)上要区分对待,勘误表中的3.1节中也特别说明了这一点。我暂时把const类型的数据注释掉后,就可以正常使用了。当初以为是配置位有所区别,用简单程序对某一端口进行操作时大家都能正常工作,然后加入显示后问题就来了,因为显示部分使用了const数据。

labtech 发表于 2018-8-30 09:27:31

little4_su 发表于 2018-8-30 09:25
真不知如何感谢你,赞美你!按照你的指引去修改,终于把问题解决了。const 类型数据造成的问题,在器件ID ...

{:shy:} {:shy:} {:shy:} {:shy:} {:shy:} {:shy:} {:shy:} {:shy:}

little4_su 发表于 2018-8-30 09:28:45

gaolf_2012 发表于 2018-8-30 07:49
访问
www.microchip.com/wwwproducts/Devices.aspx?product=PIC18F45K40
即可.


也谢谢你啊,要不然还真不知道有个勘误表

mengtiantang 发表于 2018-8-30 09:47:09

labtech 发表于 2018-8-30 08:26
043 044 的区别,这个文档不是描述的很清楚么?

学习了,自己原来这么菜

little4_su 发表于 2018-8-30 09:57:02

我发现这个不光是对const类型有区别,对全局变量都造成影响啊。显示段码表const uchar LED_SEG_TABL[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F}//0~9属于全局变量,虽然注释掉,但也不能显示。甚至uchar LED_SEG_TABL[]作为局部变量也不能显示,可不是const类型。我在全局变量声明了一个uchar led4=0x66,led5=0x6d,也不能显示。我把它们作为局部变量后,就可以正常显示了。区别好大啊
页: [1]
查看完整版本: PIC18F45K40同一程序不同批号程序不正常工作如何解决