PIC18F2585/2680/4585/4680
PIC18F2585 / 2680 /四千六百八十零分之四千五百八十五牧师A1芯片勘误表
在PIC18F2585 / 2680 /四千六百八十○分之四千五百八十五牧师A1部分你
已收到功能符合设备数据
片( DS39625C ) ,除了异常
如下所述。所有数据表澄清的问题
相关的PIC18F2585 / 2680 /四千六百八十〇分之四千五百八十五将
报道在一个单独的数据表勘误表。请检查
Microchip网站对任何存在的问题。
所有在此列出的问题将来会解决
在PIC18F2585 / 2680 /四千六百八十分之四千五百八十五硅修订。
下面芯片勘误表仅适用于
PIC18F2585 / 2680 /四千六百八十零分之四千五百八十五设备与这些
设备/版本标识:
产品型号
PIC18F2585
PIC18F2680
PIC18F4585
PIC18F4680
器件ID
0001 1010 100
0001 1010 110
0001 1010 101
0001 1010 111
修订ID
0 0010
0 0010
0 0010
0 0010
2.模块: ECCP
当关闭状态时,输出端口
针对该事件的持续时间为不活动状态。后
导致停机的事件结束时,
ECCP模块立即使PWM输出
付诸表决,并不会等待,直到开始
在下一个PWM周期。
解决
禁用自动重启功能的软件,民调
Timer2的中断标志( TMR2IF )和不
清除ECCPASE位,直到TMR2IF设置。
日期代码,涉及到这个问题:
所有的工程和生产设备。
3.模块: ECCP
ECCP1 ,配置了自动关机与
比较1 ,破坏了PWM占空比的脉冲。
此外,它并不始终同步
脉冲的周期的开始,并在
脉冲的结束可以发生在内的任何时刻
期。
解决
无。
日期代码,涉及到这个问题:
所有的工程和生产设备。
的设备ID ( DEVID1和DEVID2 )位于
地址3FFFFEh : 3FFFFFh在设备的
配置空间。他们表示在二进制中的
格式为“ DEVID2 DEVID1 ” 。
1.模块: ECCP
当使用位监控关闭条件
测试的ECCPASE位( ECCP1AS<7> )或
在ECCPASE位执行位操作,
该设备可能会产生意想不到的效果。
解决
之前,在执行位测试或位操作
ECCPASE位,复制ECCP1AS注册到
工作寄存器并执行测试或操作
那里。
避免在ECCPASE位这些操作
在ECCP1AS寄存器,该模块将运行
正常。
在例1中, ECCPASE位操作
在W寄存器执行。
4,模块: ECCP
自动关闭事件将导致ECCP
引脚( P1A , P1B , P1C , P1D )吸取更大的电流
超过预期。发生这种情况时, ECCPAS1或
ECCPAS0位设置和自动关机
事件发生。
解决
无。
日期代码,涉及到这个问题:
所有的工程和生产设备。
实施例1:
MOVF
BTFSC
BRA
ECCP1AS ,W
WREG , ECCPASE
SHUTDOWN_ROUTINE
日期代码,涉及到这个问题:
所有的工程和生产设备。
2007 Microchip的技术公司
DS80202G第1页
PIC18F2585/2680/4585/4680
5.模块: ECCP
自动关闭源, FLT0 ,具有逆
从说明书中极性
第16.4.7节
“增强型PWM自动关机”
该装置的
数据表。 FLT0上的逻辑,高电压电平将
生成ECCP1关机。
解决
反转在该程序的源代码中的逻辑。
日期代码,涉及到这个问题:
所有的工程和生产设备。
8.模块: ECCP和CCP
当ECCP1和CCP1配置为PWM
模式下,用1: 1 Timer2预分频器和占空比设定
到的期间减去1 ,这可能导致在PWM
输出(多个)保持在逻辑低电平。
清除PR2寄存器来选择最快
期间也可能导致输出(多个)保持在
一个逻辑低输出电平。
解决
为了确保可靠的波形,验证
选择占空比不等于10位
之前写这些地点期内减1 ,或
用1 : 4或1:16 Timer2预分频。同时,验证了
PR2寄存器不写入00H 。
所有其他的占空比和周期设置将功能
在器件数据手册中描述。
该ECCP与CCP模块仍然有能力
10位的精度。
日期代码,涉及到这个问题:
所有的工程和生产设备。
6.模块: ECCP
如果在使用调试命令暂停发放
的在线调试器( MPLAB
ICD 2 )中,
ECCP模块可完全冻结。但是,如果
关闭已启用,由FLT0触发
脚, ECCPASE位被置位,输出
驱动到它们的关闭状态时,由定义
PSSAC1 : PSSAC0和PSSBD1 : PSSBD0位,
不管是调试过程中存在的
停了下来。
解决
无。
日期代码,涉及到这个问题:
所有的工程和生产设备。
9.模块:定时器/定时器3
当Timer1或Timer3配置为一
外部时钟源和CCP1CON或
ECCP1CON寄存器被配置为与0x0B中
(比较模式,触发特殊事件) ,定时器
不重置一个特殊事件触发。
解决
修改后的固件复位定时器寄存器
检测的比较匹配条件 - TMRxL
和TMRxH 。
日期代码,涉及到这个问题:
所有的工程和生产设备。
7.模块: ECCP
在10位寻址模式下,当重复启动
发出其次是高地址字节和
写命令,一个ACK没有发出。
解决
有两种可用的变通:
1.单主机环境:
在单主机环境中,用户必须
发出停止,然后一开始,接着是写
到的地址的高,那么,地址的低
随后的数据。
2.多主机环境:
在多主机环境中,用户必须
发出重复启动,发送一个虚写
命令到不同的地址,发出另一个
重复启动,然后发送一个写入
原文地址。此过程将防止
丢失的公交车。
日期代码,涉及到这个问题:
所有的工程和生产设备。
10.模块:定时器/定时器3
当Timer1 / Timer3的是外部时钟
同步模式和外部时钟周期
是1和2个T之间
CY
,中断可能
偶尔被跳过。
解决
无
日期代码,涉及到这个问题:
所有的工程和生产设备。
DS80202G第2页
2007 Microchip的技术公司
PIC18F2585/2680/4585/4680
11.模块: MSSP
当MSSP被配置为SPI主
模式, SDO引脚不能被设置禁用
在TRISC<5>位。 SDO引脚始终输出
SSPBUF的状态的内容,而不管
TRIS位。
在从模式下从选择启用,
SSPM3 : SSPM0 =
0010
( SSPCON1<3 : 0> ),则
SDO引脚可以通过将一个逻辑高电平被禁用
SS引脚上( RA5 )的水平。
解决
无。
日期代码,涉及到这个问题:
所有的工程和生产设备
解决
避免写SSPBUF ,直到数据传输
完成后,由SSPIF位的设置表示
(PIR1<3>).
验证WCOL位( SSPCON1<7> )显然后
写SSPBUF ,以确保在任何潜在的转移
进度不会被损坏。
日期代码,涉及到这个问题:
所有的工程和生产设备。
13.模块: MSSP
在目前的实现中,我
2
C中间模式
操作如下:
1.波特率发生器的我
2
下在主
模式比规定的速度慢
设备数据表的表17-3 。
本次修订硅,使用的值
代替那些在示出的表1所示的
设备数据表的表17-3 。该
差异示于
胆大
文本。
2.使用下面的公式来代替一
的寄存器17-4 ( SSPCON1 )所示
器件的数据手册位的描述,
SSPM3 : SSPM0 =
1000.
SSPADD = INT ( (F
CY
/F
SCL
) – (F
CY
/1.111兆赫) ) - 1
12.模块: MSSP
在我之后
2
C传输开始时, SSPBUF
寄存器可以被最多10吨写入
CY
前
更多的写操作被阻止。数据传输
如果SSPBUF是在写入可能已损坏
这次。
WCOL位随时设置写入SSPBUF
转移过程中发生。
表1:
F
OSC
40 MHZ
40 MHZ
40 MHZ
16兆赫
16兆赫
16兆赫
4兆赫
4兆赫
4兆赫
注1 :
I
2
C时钟速率W / BRG
F
CY
10兆赫
10兆赫
10兆赫
4兆赫
4兆赫
4兆赫
1兆赫
1兆赫
1兆赫
F
CY
* 2
20兆赫
20兆赫
20兆赫
8兆赫
8兆赫
8兆赫
2兆赫
2兆赫
2兆赫
BRG值
0Eh
15h
59h
05h
08h
23h
01h
08h
00h
F
SCL
( 2翻转的BRG )
400千赫
(1)
312.5千赫
100千赫
400千赫
(1)
308千赫
100千赫
333千赫
(1)
100千赫
1兆赫
(1)
在我
2
C接口不符合400 kHz的我
2
C规范(该规范适用于大于
100千赫兹)中的所有细节,但也可使用小心其中需要较高频率的应用。
2007 Microchip的技术公司
DS80202G第3页
PIC18F2585/2680/4585/4680
14.模块: MSSP
当系统处于空闲状态RCEN被置位。在
正常运行时, RCEN的设置应
由模块忽略,而系统不是空闲的。
解决
等待系统进入空闲状态。这就要求
以下位检查复位:
ACKEN , RCEN , PEN , RSEN和SEN 。
日期代码,涉及到这个问题:
所有的工程和生产设备。
18.模块: ECCP
当操作要么Timer1或Timer3作为
计数器,具有预分频值不是1: 1 ,和
操作ECCP在比较模式,与
特别
EVENT
TRIGGER
(CCP1CON
位
CCP1M3 : CCP1M0 =
1011),
特殊事件
定时器触发复位,一旦发生,因为
是TMRxH之间的匹配: TMRxL和
CCPR1H : CCPR1L 。
这不同于PIC18F458 ,其中特别
定时器事件触发复位时就下
侧翻的预分频计数器,赛后
与TMRxH : TMRxL和CCPR1H : CCPR1L 。
解决
为了实现在相同的定时器复位期间
PIC18F4680系列的PIC18F458系列一
定的时钟源,加1的值
CCPR1H : CCPR1L 。
换句话说,如果CCPR1H : CCPR1L = X的
PIC18F458 ,实现在同一个复位周期
在PIC18F4680系列, CCPR1H : CCPR1L = X + 1 ,
其中所述预分频为1 ,2,4或8个视
T1CKPS1 : T1CKPS0位值。
日期代码,涉及到这个问题:
所有的工程和生产设备
15.模块: MSSP
在SPI模式下, SDO输出可在以后更改
比特' 0'输出非活动时钟边沿。这可能
影响了读取数据的一些SPI组件
SCK的无效沿后300纳秒。
解决
无
日期代码,涉及到这个问题:
所有的工程和生产设备。
16.模块:直流特性( BOR )
参数D005 (V值
BOR
)在
第27.1节“直流特性:电源
电压是多少?
器件数据手册,行程的时候
点BORV1 : BORV0 =
11,
是不适用的
作为该装置可以重置最小值以下
工作电压的装置。
解决
无。
日期代码,涉及到这个问题:
所有的工程和生产设备。
17.模块: BOR / HLVD
由于制造公差,选择最低
设置欠压复位( BORV1 : BORV0 =
11)
或低电压复位( LVV =
0000)
是不推荐
谁料,因为它可能会导致实际欠压
复位或低电压检测低于最低
允许V
DD
的2.0V 。
解决
使用下一个最高BOR或HLVD电压阈值
老来确保低V
DD
检测到它之前下降
下面2.0V 。
日期代码,涉及到这个问题:
所有的工程和生产设备。
DS80202G第4页
2007 Microchip的技术公司
PIC18F2585/2680/4585/4680
19.模块:中断
如果在双周期指令时发生中断
可修改状态, BSR或WREG寄存器,
寄存器的未修饰的值将被保存
到相应的快速返回(影子)
注册。当从中断快速回报,
未经修改的值将恢复到状态,
BSR或WREG寄存器。
例如,如果具有高优先级的中断期间发生
荷兰国际集团的指令“ MOVFF
TEMP , WREG “
该
MOVFF
指令将完成和WREG
将被装入的价值
温度
前
跳转到ISR 。但是,以前的值
WREG将被保存到快速返回寄存器
在ISR分支。当从接口返回
中断与快速回报, WREG的前一个值
在快速返回寄存器写入WREG 。
这导致WREG包含它的值是
执行前
MOVFF TEMP , WREG 。
受影响的说明:
MOVFF
MOVSF
MOVSS
FS , Fd中
ZS, Fd中
[ Zs的],[间Zd ]
解决
1.汇编语言程序设计:
a)如果任何两个周期指令是用来
修改WREG , BSR和STATUS
注册,不使用
RETFIE FAST
指令从中断返回。
相反,保存/恢复WREG , BSR和
通过每例8-1软件状态
在器件数据手册。另外,
如果是
MOVFF ,
使用
MOVF
指令写入到WREG代替。
例如,可以使用:
MOVF
TEMP ,W
MOVWF BSR
而不是
MOVFF TEMP , BSR 。
b)
作为另一种替代方案中,以下
解决如例2中可以
被使用。此示例覆盖
通过快速返回寄存器
以虚拟呼叫
FOO
用快速选择
在高优先级的中断服务程序。
哪里
Fd
是WREG , BSR或状态;
哪里
Fd
是WREG , BSR或状态;和
其中目标是WREG , BSR和STATUS 。
实施例2:
ISR @ 0x0008处
通话
美孚:
POP
:
:
RETFIE
富, FAST
;存储WREG , BSR ,当前状态值第二次
;清除富调用的返回地址
;在这里插入高优先级ISR代码
快
2, C语言程序设计:确切的工作
围绕依赖于编译器中使用。请
请参阅您的C编译器文档
更多的细节。
如果使用的是Microchip的MPLAB
C18 C编译器,
确定高和低优先级的中断处理
通过使用dler用作“低优先级”
编译interruptlow
指令。
该指令指示编译器不使用
该
RETFIE FAST
指令。如果适当高
优先级的中断位被设置在IPRx寄存器,
然后中断被视为高优先级
尽管
编译interruptlow
指令。
的代码段,在实施例3中所示
下一个页面,显示出各地的工作
使用C18编译器。
2007 Microchip的技术公司
DS80202G第5页