版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
特AVRRISC118条指 大多数为单指令周328工作在8MHz时具有8MIPS的性能数据和非易失性程序内存4K/8K字节的可编程FLASH擦除次数1000256/512Peripheral特点两个具有比较模式的可预分频 8位定时器/计数一个可预分频具有比较捕捉和两个8/9/10位 功能的16位定时器/计数器片内模拟比较器可编程的看门狗定时器由片内振荡器生成8通道10全双工特别的MCU上电复位电路具有记数功能有独立振荡器的实时时钟低功耗空闲省电和掉电模式内外部中断源4MHz3V20条件下的功耗工作模式6.4mA空闲模式掉电模式<1I/O和封装32个可编程的I/O工作电压2.7V-6.0VAT90LS44344.0V-6.0VAT90S4434速0-4MHzAT90LS44340-8MHzAT90S4434描AT90S4434/8535AVRRISCCMOS8钟周期内执行一条指令AT90S4434/8535可以取得接近1MIPS/MHz的性能从而使得设计图 AVR32ALU算逻单元直接相连允许在一个时钟周期内执行的单条指令同时两个独立的寄存器这种结构提高了代码效率使AVR得到了比普通CISC单片机高将近10倍的性能AT90S4434/8535具有以下特点4K/8KFLASH256/512EEPROMSRAM32I/0口32/计数器内外中断源可编程的UART可编程的看门狗定时器SPI口以及三种可通过软件选择的节电模式工作于空闲模式时CPU将停止运行而寄存器定时器/计数器看门狗和中断系统继续工作掉电模式时振荡器停止工作所有功能都被而寄存器内容得到保留只有外部中断或硬件复位才可以退出此状态省电模式与掉电模式只有一点差别省电模式下T/C2继续工作以维持时间基准ATMELFLASHSPI接口或通用编程器多次编程通过将增强的RISC8位CPU与FLASH集成在一个内4434/8535AT90S4434/8535具有一整套的编程和系统开发工具宏汇编调试/仿真器仿真器SL-AVR评估板AT90S4434具有4K字节程序FLASH256字节EEPROM256字节SRAMAT90S8535具有8K字节程序FLASH512字节 512字节表 器比型256256512512管脚配置管脚定义 GND电源A口PA7…PA0A口是一个8位双向I/O口每一个管脚都有内部上拉电阻A收20mA的电流可直接驱动LED 当作为输入时如果外部被拉低由于上拉电阻的存在管脚将输出电流在复位过程中A口为三态即使此时时钟还未起振B口B8I/O口每一个管脚都有内部上拉电阻B20mA的电流可直接驱动LED当作为输入时如果外部被拉低由于上拉电阻的存在管脚将输出电流在复位过程中B口为三态即使此时时钟还未起振C口C8I/O拉低由于上拉电阻的存在管脚将输出电流C口的两个引脚还可以用作T/C2的振荡器在复位过程中C口为三态即使此时时钟还未起振D口D口是一个带内部上拉电阻的8I/O口输出缓冲器能够吸收20mA的电流当作为D口为三态/RESET复位输入超过50ns的低电平将引起系统复位低于50ns的脉冲不能保证可靠XTAL1XTAL2 A/D转换器的电源应该通过一个低通滤波器与VCC连接 A/D转换器的参考电源介于AGND与AVCC之间AGND模拟地晶体振荡器XTAL1XTAL2分别是片内振荡器的输入输出端可使用晶体振荡器或是陶瓷振荡器当使用外部时钟时XTAL2应悬空图 振荡器连图 外部时钟驱动配定时器振荡器PC6TOSC1PC7TOSC2而无需外部电容振荡器已经对32768Hz的晶振作了优化对外加信号的带宽为256KHz结构纵览4AT90S4434/8535AVRRISC快速寄存器文件包含328位可单周期的通用寄存器这意味着在一个时钟周期内ALU可以完成一次如下操作寄存器文件中的两个操作数执行操作将结果存回到6316位用于数据寻址的间接寻址寄存器指针以提高地址运算能力其中Z指针还用于查表功能ALU支持两个寄存器之间寄存器和常数之间的算术和逻辑操作除了寄存器操作模式通常的内存模式也适用于寄存器文件这是因为AT90S4434/853532个最低的数据空间地址$00$1F允许其象普通内存地址一样访I/O64CPU外设的控制寄存器T/CA/D转换器以及其他功能I/O内存可以直接也可以作为数据地址$20-$5FAVRHARVARD结构程序和数据总线分离程序内存通过两段式的管道Pipeline进行当CPU在执行一条指令的同时就去取下一条指令这种预取指的概念使得指相对跳转和相对调用指令可以直接2K/4K地址空间多数AVR指令都为16位长每个程序内存地址都包含一条16位或32位的指令当执行中断和子程序调用时返回地址于堆栈中堆栈分布于通用数据SRAM之中SRAMSPSP16图 内存映I/O空间中的控制寄存器和状态寄存器中的全局中断使能位组成每个中断都具有一个中断向量由中断向量组成的中断向量表位于程序区的最前面中断向量地址低通用工作寄存器文件图 通用工作寄存……… 作 X寄存器低字 X寄存器高字 所有的寄存器操作指令都可以单指令的形式直接所有的寄存器例外情况为5条涉及常数操作的指令SBCISUBICPIANDI和ORI这些指令只能通用寄存器文件的后半部分R16到R31632个地址虽然寄存器文件的实现与SRAM不同这种内存组织方式在寄存器方面具有极大XYZ寄存器寄存器R26~R31除了用作通用寄存器外还可以作为数据间接寻址用的地址指针图7 XYZ寄存器XZ
0 0 AVRALU与32个通用工作寄存器直接相连ALU操作分为3类算 逻辑和位操可编程AT90S4434/8535具有4K/8K字节的FLASH因为所有的指令为16位宽FLASH结构为2K16/4K16 FLASH的擦除次数至少为1000次AT90S4434/8535的程序计数器 为11/12位宽可以寻址到2048/4096个字的8ST90S4434/8535图 SRAM分352/608I/O和SRAM起始的96个地址为寄存器文件+I/O其后的256/512个地址用于寻址SRAM5种直接带偏移量的间接间接预减的间接后加的间接YZ63个地址带预减和后加的间接寻址模式要用到XYZ指针32个通用寄存器64个I/O寄存器256/512SRAM64K程序和数据寻址模式单寄存器直接寻址图9双寄存器直接寻址I/O直接寻址数据直接寻址
带偏移的数据间接寻址数据间接寻址带预减的数据间接寻址带后加的数据间接寻址
LPM指令寻址常数IJMPICALL可以按字节读写EEPROM的至少为100000次擦除EEPROM的由地址寄存器数据寄存器和控制寄存器决定内存和指令执行时AVRCPU由系统时钟驱动此时外部晶体直接产图20说明了由HARVARD结构决定了的并行取指和执行以及快速寄存器文件的概念1MIPS/MHz具有优良的性价比功能/时钟比功能/功耗比的流水线2021演示的是寄存器文件内部时序在一个时钟周期里ALU可以同时对两个寄存器操作数进行操作同时将结果存回到其中的一个寄存器中去2222表 地 16进 T/C寄存T/CT/C0 8T/C1T/C1T/C1T/C1T/C2 8T/C2CCDDSPISPISPIAVR4434/8535的所有I/O和都被放置在I/O空间IN和OUT指令用来不同的I/O地址以及在32个通用寄存器之间传输数据地址为$00-$1FI/OSBI和CBI指令进行位寻址而SIBCSIBSINOUT指令时地址必须在$00-$3F之间如果要象SRAM一样I/O寄存器则相应地址要加上$20在本文档里所有I/O寄存器的SRAM地址写在括号中为了与后续产品兼容保留未用的未应写0而保留的I/O寄存器则不应一些状态标志位的清除是通过写1来实现的CBI和SBI指令已置位的标志位时会回写1因此会清除这些标志位CBI和SBI指令只对$00-$1F有效I/O寄存器和控制寄存器在后续章节介状态寄存器SREGStatusITHSVNZC ITHSVNZC$3F$5F读/ 全局中断使能置位时使能全局中断单独的中断使能由个独立控制寄存器控制如果I则不论单独中断标志置位与否都不会产生中断I在复位时RETI指令执行后置位T位拷贝指令BLD和BST利用T作为目的或源地址BST把寄存器的某一位拷贝到 H半加标志位S符号位 二进制补码溢出标志位N负数标志位Z零标志位C进位标志位状态寄存器在进入中断和退出中断时并不自动进行和恢复这项工作由软件完堆栈指针8------76543210读/RRRRRR0000000000000000堆栈指针指向位于SRAM的函数及中断堆栈堆栈空间必须在调用函数或中断使能之前定义指针必须指向高于$60的地址用PUSH指令推数据入栈时堆栈指针将减一而当调用函数或中断时指针将减二使用POP指令时堆栈指针将加一而用RETRETI返回时复位和中断处理AT90S4434/853516个中断源每个中断源在程序空间都有一个独立的中断向量所有的中断都有自己的使能位当使能位置位且I也置位的情况下中断可以发生3在中断向量表中处于低地址的中断具有高的优先级所以RESET具有最高的优先级表 复位与中断向1硬件管 上电复位和看门狗复234T/C25T/C26T/C1789T/C1T/C0 UARTUARTUARTPPT2T2T1T1AT1BT1T0SPIP <指令复位源上电复 外部复 当/RESET引脚上的低电平超过50ns时MCU复看门狗复 在复位期间所有的I/O寄存器被设置为初始值程序从地址$000开始执行$000地址中放置的指令必须为RJMP相对跳转指令跳转到复位处理例程若程序不需中断则中断233定义了复位电路的时序和电图 复位逻表 复位电参 VCC=符参最小值典型值最大值单VPO(1)上电复位电压门 上V上电复位电压门 下V-V复位延迟周期FSTRT复位延迟周期FSTRT注1.除非电源电压低于 否则上电复位不会发WDT振荡周期数示于4看门狗振荡器的频率与工作电压有关具体参见后续章节的典型特性5溢出时间WDT周期数上电复位上电复位POR 保证器件在上电时正确复位如图23所示看门狗定时器驱动一个内部定时器此定时器保证MCU只有在VCC达到VPOT且过了一定时间之后才启动位于FSTRTMCU如果内置于片内的启动时间足够的话/RESETVCC如果在加上VCC的同时保持/RESET25图 MCU起动/RESET与VCC相图 MCU启动/RESET由外电路控外部复位外部复位由外加于/RESET引脚的低电平产生大于50ns的复位脉冲将造成复位施加VRST上升沿时tTOUT延时周期开始然后MCU启动图 工作期间的外部复看门狗复位当看门狗定时器溢出时将产生1个XTAL周期的复位脉冲在脉冲的下降 延时定图 工作期间的看门狗复MCU状态寄存器 543210------读/RRRRRR0000007…2EXTRF外部复位标志上电复位时这一位没有定义 外部复位时置位看门狗复位对其没有影PORF上电复位标志由上电复位置位表 复位后的PORF和复位源11如果要利用PORF和EXTRF来识别复位条件用户软件要尽早对其检查PORF和EXTRF的语句在对其之前执行如果某一位在外部复位或看门狗复位之前则复位表 复位源鉴复位源00011011中断处理AT90S4434/8535有2个中断控制寄存器GIMSK通用中断寄存器和TIMSK一个中断产生后全局中断使能位I将被后续中断被用户可以在中断例程里I置位从而开放中断RETII当程序计数器指向实际中断向量开始执行相应的中断例程时硬件清除对应的中断标志一些中断标志位也可以通过软件写1 当一个符合条件的中断发生后如果相应的中断使能位为0则中断标志位挂起并一直保持到中断执行或者被软件清除如果全局中断标志被则所有的中断都不会被执行直到I置位然后被挂起的各个中断注意外部电平中断没有中断标志 因此当电平变为非中断电平 中断条件即终通用中断寄存
------读/ 初始 5…0INT11请求使能INT0I都为1时外部引脚中断使能MCU通用控制寄存器MCUCR中的中断检测控制位1/0ISC11ISC101是上升沿中断还是下降沿中断或者是低电平中断即使管脚被定义为输出中断仍可产生INT00请求使能INT0I都为1时外部引脚中断使能MCU通用控制寄存器MCUCR中的中断检测控制位1/0ISC01ISC000是上升沿中断还是下降沿中断或者是低电平中断即使管脚被定义为输出中断仍可产生通用中断标志寄存器
76543210------读/RRRRRR000000005…0INTF1外部中断标志当INT1管脚有触发中断请求时INTF1置位1如果SREG中的I及GIMSK中的INT1都为1则MCU将跳转到中断地址$002中断例程执行后此标志被清除另外标志也可以通过对其写1来清除INTF0外部中断标志当INT0管脚有触发中断请求时INTF0置位1如果SREG中的I及GIMSK中的INT0都为1则MCU将跳转到中断地址$001中断例程执行后此标志被清除另外标志也可以通过对其写1来清除T/C中断寄存器76543210-读/R00000000位 OCIE2T/C2输出比较匹配中断使能TOIE2和I都为1时输出比较匹配中断使能T/C2的比较匹配发生TIFR的OCF2置位中断例 将执TOIE2T/C2溢出中断使能当TOIE2和I都为1 T/C2溢出中断使能当T/C2溢出或TIFR中的TOV2位置位时中断例程$004 TICIE1T/C1输入捕捉中断使能当TICIE1和I都为 输入捕捉中断使 当T/C1的输入捕捉发生 TIFR中的ICF1置位中断例程 OCIE1AT/C1A匹配中断使能当TOIE1A和I都为 输出比较A匹配中断使能当T/C1的比较A匹配发生TIFR中的OCF1A置位中断例程 OCIE1BT/C1B匹配中断使能当TOIE1B和I都为 输出比较B匹配中断使能当T/C1的比较B匹配发生TIFR中的OCF1B置位中断例程 TOIE1T/C1溢出中断使能当TOIE1和I都为1 T/C1溢出中断使能当T/C1溢出或TIFR中的TOV1位置位时中断例程 当TOIE0和I都为1 T/C0溢出中断使能当T/C0溢出或TIFR中的TOV0位置位时中断例程 T/C中断标志寄存76543210 -读/R00000000位 保OCF2T/C2输出比较标志当T/C2与OCR2的值匹配时OCF2置位此位在中断例程里硬件或者通过对其 来当SREG中的位 OCIE2和OCF2一同置位时中断例程得到执TOV2T/C2溢出中断标志位当T/C2溢出时TOV2置位执行相应的中断例程后此位硬件此外TOV2也可以通过写1 来当SREG中的位ITOIE2和TOV2一同置位时中断例程得到执行在模式中当T/C2在$0000改变记数方向时TOV2置位 输入捕捉标志位当输入捕捉发生时ICF1置位表明T/C1的值已经送到输入捕捉寄存器ICR1此位在中断例程里硬件或者通过对其写1来当SREG中的位ITICIE1A和ICF1一同置位时中断例程得到执行OCF1A输出比较标志当T/C1与OCR1A的值匹配时OCF1A置位此位在中断例程里硬件或者通过对其写1 来当SREG中的位IOCIE1A和OCF1A一同置位时中断例程得到执行OCF1B输出比较标志1B当T/C1与OCR1B的值匹配时OCF1B置位此位在中断例程里硬件或者通过对其写1 来当SREG中的位I OCIE1B和OCF1B一同置位时中断例程得到执行TOV1T/C1溢出中断标志位当T/C1溢出时TOV1置位执行相应的中断例程后此位硬件此外TOV1也可通过写1 来当SREG中的位ITOIE1和TOV1一同置位时中断例程得到执行 模式中当T/C1在$0000改变记数方向时TOV1置位TOV0T/C0溢出中断标志位当T/C0溢出时TOV0置位执行相应的中断例程后此位硬件此外TOV0也可以通过写1 来当SREG中的位ITOIE0和TOV0一同置位时中断例程得到执行外部中断INT0和INT1引脚触发应当注意如果中断使能则即使INT0/INT1配置为输出中断照样会被触发此特点提供了一个产生软件中断的方法触发方式可以为上升沿MCUMCUCR决定当设置为低电平触发时只要电平为低中断就一直触发中断响应时间AVR中断响应时间最少为4个时钟周期在这4个时钟期间PC 2个字节自动入栈而SP减2在通常情况下中断向量为一个相对跳转指令此跳转要花2个时钟周期如果中断在一个多周期指令执行期间发生则在此多周期指令执行完后MCU才会执行中断程中断返回亦需4个时钟在此期间PC将被弹出栈SREGI被置位如果在中断期AVR要注意AVR硬件在中断或子程序中并不操作状态寄存器SREGSREG的由用户软件对于那些由可以保持为静态的如输出比较寄存器1与T/C1值相匹配驱动的中断MCU控制寄存器76543210-读/R00000000位 保SESLEEP指令时SEMCUMCU进入休眠建议与SLEEP指令相连使用SM1/0表 睡眠模式选睡眠模式00011011INT1中断的边沿或电平表 中断1检测控描00011011注意改变ISC11/ISC10时首先要INT1清除GIMSK的INT1位否则可能不表 中断0检测控描00011011注意改变ISC01/ISC00时首先要INT0清除GIMSK的INT0位 否则可能不必要的中断INTn引脚的电平在检测边沿之前采样如果边沿中断使能则大于一个MCU时钟的脉冲将触发中断如果选择了低电平触发则此电平必须保持到当前执行的指令结束休眠模式进入休眠模式的条件是SE为1然后执行SLEEP指令使能的中断将唤醒MCU完成MCUSLEEPI/O内存的内容不会丢失如果在休眠模式下复位则MCURESET向量$000处开始运行闲置模式SM1/0全为0时SLEEPMCU进入闲置模式在此模式下CPU停止运行SPIUART模拟比较器ADC定时器/计数器看门狗和中断系统继续工作内外部MCUMCU为了减少功耗可以切断比较器的电源方法是置位ACSRACDMCU从闲置模式唤醒CPU将立即执掉电模式SM1/0为10时SLEEPMCU进入掉电模式在此模式下外部晶振停振而外部中断及看门狗在使能的前提下继续工作只有外部复位看门狗复位和外部电平中断INT0和INT1可以使MCU脱离掉电模式当使用外部电平中断方式将MCU从掉电模式唤醒时必须保持外部电平一定的时间这样可以可以减少MCU对噪声的敏感看门狗振荡时钟要对此电平采样两次如果电平为要求的电平则MCU唤醒标称的看门狗振荡器为1s 从施加掉电唤醒条件到真正唤醒有一个延迟时间此时间用于晶振重新启动并稳定下来唤MCUMCU又会回到掉电模式省电模式SM1/0为11时SLEEPMCUT/C2异步驱动即ASSRAS2T/C2在休眠时继续运行除了掉电模式的唤醒方式T/C2的溢出中断和比较匹配中断也可以将MCU从休眠方式唤醒在省电模式下如果由外部电平中断唤醒则在中断标志更新之前MCU要执行两个周期T/C23个周期在此期间处理器执行指令但是中断条件不可读中即使全局中断是的异步方式的T/C2中断也将把MCU从省电模式唤定时器/计数器AT90S4434/85353个通用定时器/计数器两个8T/C16T/CT/C2可以选择异步外部时钟而T/C0T/C110位的预分频定时器取得预分频的时钟T/C2有自己的单独预分频器T/C既可用作使用片内时钟的定时器也可用作对外部触发图 T/C1和T/C0的预分频4种可选的预分频时钟为CK/8 CK/256和CK/1024CK为振荡器时钟还可以选择CK外部时钟以及停止工作图 T/C2的预分频T/C2PCK2缺省地PCK2与系统主时钟连接若置位ASSRAS2T/C2PC6TOSC1异步驱动使得T/C2AS2置位则PC6TOSC1和PC7TOSC2从C口脱离引脚上即可外接一个时钟晶振也可以在PC6 上直接施加时钟信 此时钟频率必须低于MCU主时钟的 并且不能高30T/C0图 T/C0工作框T/C0的时钟可以选择CK预分频的CK或外部引脚输入另外还可以由T/C0控制寄存器TCCR0来停止它TIFR为状态标志寄存器TCCR0为控制寄存器而TIMSK控制T/C0T/C0由外部时钟信号驱动时为了保证CPU对信号的正确采样要保证外部信号的转换时间至少为一个CPU时钟周期MCU在内部CPU时钟的上升沿对外部信号进行采样在低预分频条件下T/C0具有高分辨率和高精度的特点而在高预分频条件下T/C0T/C0控制寄存器 6543210 ----读/ RRRR初始 00000007…3CS02CS01CS00时钟选择表 T/C0预分频选000001010011100101110外部引脚 下降111外部引脚 上升停止条件提供了一个定时器使能/的功能预分频的CK直接由时钟振荡器分频而T/C0767654321000000000T/C0是可以进行读/写的向上计数器只要有时钟输入T/C0就会在写入的值基础上向1630T/C1图 T/C1工作框T/C1CKCKT/C1控制寄存器TCCR1ATCCR1B来停止它TIFRTIMSKT/C1的中断T/C0CPU对信号的正确采样要保证外部信号的转换时间至少为一个CPU时钟周期MCU在内部CPU时钟的上升沿对外部信号进行采样在低预分频条件下T/C1具有高分辨率和高精度的特点而在高预分频条件下T/C1非常适用于低速功能如计时OCR1A/OCR1B作为数据源T/C1还可以实现输出比较的功能此功能包括比较匹配A发生时清除计数器和比较输出引脚的动作T/C1还可以用作89或10位的 调制器在此模式下计数器和OCR1A/OCR1B寄存器用于两个无尖峰干扰的中心对称的当输入捕捉引脚ICP发生相应时T/C1的值将被传到输入捕捉寄存器ICR1捕的设置由TCCR1B控制此外模拟比较器也可以设置为触发输入捕捉ICP图 ICP引脚原理44T/C1控制寄存器A76543210--读/RR00000000位 COM1A1COM1A01A1COM1A1和COM1A0决定T/C1的比较匹配发生时输出引脚OC1A的动作这是I/O口的第二功能相应的方向控制位要设置为1 以便将其配置为输出具体配置见表12COM1B1COM1B0比较输出模式1B位1和0表 比较1模式选描00011011X=A在模式这些位具有不同的功 细节见表1110选表 模式选择描00T/C1的操作无01T/C18位10T/C19位11T/C110位T/C1控制寄存器 6543210--读/RR00000000位 保ICNC1输入捕捉抑制器4个时钟ICNC1ICP-输入捕捉引脚的第一个上升/ICNC11时ICP44个采样值都有效时输入捕捉标志才置位采样频率为XTAL时钟ICES11边沿选择ICES1位为0时T/C1ICP若ICES1位为1则T/C1的值在ICP引脚电平的上升沿被传送到CTC1比较匹配时清除CTC1为1时比较A匹配发生后T/C1将复位为0若CTC1为0则T/C1将连续记数而不受比较匹配的影响由于比较匹配的检测发生在匹配发生之后的一个CPU1A比较匹配寄存器的值设置为C时定时器的记数方式为…|C-2|C-1|C|0|18时…|C-2,C-2,C-2,C-2,C-2,C-2,C-2,C-2|C-1,C-1,C-1,C-1,C-1,C-1,C-1,C-1|C,0,0,0,0,0,0,0在模式下这几位没有作CS12CS11CS10时钟选择表 T/C1预分频选描000001010011100101110外部引脚 下降111外部引脚 上升T/C1TCNT1H876543210读/0000000000000000此16位寄存器包含了T/C1的值当CPU这两个寄存器时为了保证高字节和低字节能够同时读写要用到一个8位的临时寄存器TEMP此寄存器在OCR1AOCR1B和ICR1的时候也要用到如果主程序和中断程序在寄存器时都要用到TEMP那么在适当CPUTCNT1HTEMP寄存器当CPUTCNT1L时TEMPTCNT1因此在写TCNT116位时首先要写TCNT1H当CPUTCNT1L时TCNT1L的数据将送入CPU同时TCNT1H将送入寄存器等到CPUTCNT1H时TEMP中的数据送入CPU因此在读16位TCNT1时T/C1是向上记数器或上/下记数器在 若T/C1被置数则T/C1将在预置T/C1输出比较寄存器OCR1AHT/C1输出比较寄存器OCR1AH876543210读/0000000000000000876543210读/0000000000000000T/C1输出比较寄存器包含与T/C1值连续比较的数据如果T/C1OCR相等则比较匹配发生用软件写操作将TCNT1和OCR1A或OCR1B设置为相等不会比较匹配PORTD5PORTD4OC1AOC1B由于OCR1A/OCR1B为16位寄存器所以在时要用到TEMP寄存器以保证两个字节的同步更新其读写过程与读写TCNT1相同TCNT1ICR1TEMP寄存器TEMP则在主程序这些寄存器时要中T/C1输入捕捉寄存器ICR1H876543210读/RRRRRRRRRRRRRRRR0000000000000000ICES1ICPTCNT1ICR1同时ICF1置位由于ICR1为16位寄存器所以在时要用到TEMP寄存器以保证同时两个字节读写过程与读写TCNT1相同 模式后T/C1和输出比较寄存器OCR1A/OCR1B共同组成两个89或10位的无尖峰的自由运行的T/C1作为上/下计数器从0记数到 然后反向记数回 当计数器中的数值和OCR1A/OCR1B的数值低 9或10 一致 表 TOP值 频分辨率频8$00FF2559$01FF51110$03FF1023表 模式下的比较1模式选000110置位OC1 正向11置位 反向X=A注意在模式下OCR1A/OCR1B的低10位首先在一个临时的位置等到T/C1TOPOCR1A/OCR1BOCR1A/OCR1B时由于失步而出现奇数长度的脉冲图 失步的OCR1锁如果在执行写和锁存操作的时候OCR1A/OCR1B读到的是临时位置的数表 OCR1X=$0000或TOP时的输10L10H11H11LX=A 模式下当计数器达到$0000时将置位TOV1此时发生的中断与正常情况下的中34T/C2图 T/C2工作框T/C2PCK2PCK2另外还可以由T/C2TCCR2来停止它TIFR为状态标志寄存器TCCR2为控制寄存器而TIMSKT/C2的中断在低预分频条件下T/C2具有高分辨率和高精度的特点而在高预分频条件下T/C2非常适用于低速功能如计时OCR2作为数据源T/C2还可以实现输出比较的功能此功能包括比PD7OC2的动作T/C1还可以用作8位调制器在此模式下计数器和OCR2寄存器用于无尖峰干扰的中心对称的T/C0控制寄存器76543210-2读/00000000位 保2COM21/20比较匹配模式位表 比较模式选000110OC211CTC2比较匹配时清除CTC2为 比较匹配发生后T/C2将复位为0若CTC2为0则T/C2将续记数而不受比较匹配的影响由于比较匹配的检测发生在匹配发生之后的一个CPU1比较匹配寄存器的值设置为C时定时器的记数方式为…|C-2|C-1|C|0|18时定时器的记数方式则为…|C-2,C-2,C-2,C-2,C-2,C-2,C-2,C-2|C-1,C-1,C-1,C-1,C-1,C-1,C-1,C-1|C,0,0,0,0,0,0,0在模式下这一位没有作CS02CS01CS00时钟选择表 T/C2预分频选描000001010011100101110111停止条件提供了一个定时器使能/的功能预分频的PCK2直接由时钟振荡器分频而T/C2767654321000000000T/C2是可以进行读/写的向上计数器只要有时钟输入T/C2就会在写入的值基础上向上T/C2输出比较寄存器76543210读/00000000T/C2T/C2值连续比较的数据如果T/C2OCR2相等则比较匹配发生结果由TCCR2决定用软件写操作将TCNT2OCR2设置为相等不会模式下的T/C2选择模式后T/C2和输出比较寄存器OCR2共同组成一个8位的无尖峰的自由运行的T/C2作为上/下计数器从0记数到TOP然后反向记数回到0当计数器中的数值和OCR2的数值一致时OCR2引脚按照 20的设置动作表 模式下的比较模式选000110置位OC2 正向11置位OC2 反向 在模式下OCR2首先在一个临时的位置等到T/C2达到TOP时才真正存入OCR2这样可以防止在写OCR2时由于失步而出现奇数长度的脉冲图 失步的OCR2锁如果在执行写和锁存操作的时候 读到的是临时位置的数表 OCR2=$0000或TOP时的输输10L10H11H11L在模式下当计数器达到$00时将置位TOV2此时发生的中断与正常情况下的中断异步状态寄存器
76543210----读/RRRR000000007…4AS2AS2置位时T/C2由TOSC1驱动PC6PC7I/OAS20则T/C2TCNT2OCR2TCCR2T/C2工作于异步模式时写TCNT2将引起TCN2UB置位当TCNT2从暂存寄存器更新完毕后TCN2UB由硬件TCN2UB为0 表明TCNT2可以写入新值了OCR2UB输出比较寄存器2更新忙T/C2工作于异步模式时写OCR2将引起OCR2UB置位当OCR2从暂存寄存器更新完毕后OCR2UB由硬件OCR2UB为0 表明OCR2可以写入新值了TCR2UBT/C控制寄存器2更新忙T/C2工作于异步模式时写TCCR2将引起TCR2UB置位当TCCR2从暂存寄存器更新完毕后TCR2UB由硬件TCR2UB为0 表明TCCR2可以写入新值了对TCNT2OCR2和TCCR2进行的机制是不同的读到的TCNT2为实际的值而OCR2和TCCR2则是从暂存寄存器中的T/C2的异步操作T/C2TCNT2OCR2TCCR2数据的损毁 OCR2TCCR2TCN2UBOCR2UBTCR2UB必要的话32768Hz256kHz因此256kHz1/4TCNT2OCR2TCCR2时数据首先传到暂存寄存器两个TOSC1正跳变后才锁存用户在数据从暂存寄存器写入目的寄存器之前不能写入新的数值3个寄存器具有TCNT2OCR2ASSR检查数据T/C2MCU的唤醒条件则在TCNT2OCR2TCCR2更新结束之前MCUT/C2止的如果在更新过程中MCU进入休眠模式则比较匹配中断不会发生T/C2作为省电模式的唤醒条件必须注意重新进入省电模式的过程中断逻TOSC1周期进行复位如果从唤醒到重新进入休眠的时间小于一个TOSC1周期中断将不再发生器件再也无法唤醒如果用户怀疑自己程序是否满足这一条件对 OCR2和TCCR2写入一个合适的若选择了异步工作模式T/C2的振荡器将一直工作除非进入掉电模式用户应该注意此振荡器的稳定时间可能长达1秒钟因此建议用户在器件从掉电模式唤醒或上电时至少等待1秒钟后再使用T/C2省电模式唤醒过程中断条件满足后在下一个定时器时钟里唤醒过程启动在MCU时3个周期中断标志置位在此期间MCU执行其他指令但中断条件还不可读中断例程也不会执行在异步模式下中断标志的同步需要3个处理器周期加一个定时器周期输出比较引脚的变化与定时器时钟同步而不是处理器时钟看门狗定时器VCC=5V1MHz通8种可以改变看门狗复位时间间隔看门狗复位指令是WDTWDTMCU4434/8535从复位为了防止不关闭看门狗需要有一个特定的关闭程图 看门狗定时看门狗定时器控制寄存器76543210---读/RR76543210---读/RRR000000007…5看门狗关闭使能14个时钟后硬件对其WDE看门狗使能在同一个指令内对WDTOE和WDE写逻辑 即使WDE已经为在4个时钟之 对WDE写逻辑WDP2…0预分频器表 看门狗定时器预分频选000001010011100101110111注意WDT应该在看门狗使能之前执行一次如果看门狗在复位之前使能则看门狗定时器有可能不是从0开始记数EEPROM读/EEP2.5~4ms一字节如果用户要操作EEPROM应当注意如下问题在电源滤波时间常数比较大的电路中上电/下电时VCC上升/下降会比较慢此时MCU将工作于低于晶振所要求的电源电压在这种情况下程序指针有可能跑飞并执行EEP写指令为了保证EEP的数据完整性EEPROM写操作需要执行一个特定的写时序具体参看后续内容EEPROM读/写操作时CPU2个周期然后再执行后续指令8-------76543210读/RRRRRRR0000000XXXXXXXXXEEARH和EEARLAT90S8535的512字节的EEPROMAT90S4434则没有EEPROM的地址是线性的0EEPROM据寄存器76543210读/00000000EEPROM写操作EEDRDDAR单元的数据对于读操作EEDR是从地址EEAR的数据 6543210 ---读/ RRRR初始 00000007…3IEERIE置位时EEPROM准备好中断使能EEWE为0时EEPROM准备好中断将产生constant中断EEMWEEEWE为1EEPROMEEMWE为1时置位EEWE将把数据写入EEPROM的指定地址若EEMWE为0则EEWE不起作用EEMWE置位后4个周期硬件对其EEPEEWEEEPROM写时序如下第23在置位EEMWE的4个周期 经过写时间VCC=2.7V时为4ms左右VCC=5V时为2.5ms左右之后EEWE硬件用户可以凭此位判断写时序是否已经完成EEWE置位后CPU要停止2个周期注意发生在步骤45之间的中断将导致写操作失败如果一个操作EEP的中断打断了EEP操作RRAREEDR寄存器可能被修改引起EEP操作失败建议此时关闭全局中断标志I当EEP地址设置好之后需置位EERE以便将数据读入EEDREERE表示EEPROM的数据已经读入EEDREEPROM数据的只需要一条指令且无需等待EERE置位后CPU要停止2个周期用户在EEP时应该检测EEWE如果一个写操作正在进行写EEAR和EEDR将中EEP的写入使得结果无法预测防止EEPROM数据毁坏由于电源电压过低CPUEEPROM有可能工作不正常造成EEPROM数据的毁坏这种情况在使用独立的EEPROM器件时也会遇到EEPROM数据损坏有两种可能一是电压低至EEPROM写操作所需要的最低电压二是CPU本身已经无法正常工作当电压过低时保持/RESET信号为低这可以通过外加复位电路BOD 来完成有些AVR产品本身就内含BOD电路看有关有效防止对EEPROM的误操作串行外设接口串行外设接口SPI允许AT90S4434/8535和外设之间进行高速的同步数据传输全双 3线同步数据传4可以从闲置模式唤 作为从机工作图 SPI方框主从CPU的SPI连接见图38PB7 SCK为主机的时钟输出 从机的时钟输出把数据写入主机SPI数据寄存器的操作将启动SPI时钟产生器数据从主机的PB5MOSI移出从从机的PB5MOSI 移入移完一个字节后SPI时钟停止并设置发送结束标志 时如果SPCR的SPIESPI中断使能置位则中断若要选择某器件为从机需要将从机选择输入PB4 拉低主从机的移位寄存器可以看成一个分布式的16位循环移位寄存器当数据从主机移向从机的同时数据也从从机移向主机这说明在移位过程当中主从机进行了数据交换图 SPI主从连SPI在发送方向有一个缓冲器而在接收方向有两个缓冲器这意味着在移位周期没有完全SPISPI数据寄存器之前当SPI功能使能后 SCK和/SS引脚被自动配置成如表 SPI引脚配引方向主机方向从机/SS引脚功能当SPI配置为主机时SPCR的MSTR置位 用户可以决定/SS引脚的方向若/SS配置为输出则此引脚可以用作普通的I/O口而不影响SPI如果/SS配置为输入则/SS必须保持为保证SPI的正常工作若系统配置为主机/SS为输入但被外设拉低则SPI控制器会将此低电平解释为有一个外部主机将自己选择为从机为了防止总线SPI系统遵循以下如果SPCR的MSTR位为0则SPI为从机MOSI和SCK为输SPSRSPIF置位SPI中断和全局中断开放因此在SPI主机使用中断方式进行数据发送时/SS有可能被拉低中断例程必须要检测MSTR置位如果检测到MSTR被用户必须置位MSTR以便重新进入主机模式如果SPI配置为从机则/SS一直为输入当/SS为低时 SPI功能激活MISO成为输出引脚而其他成为输入如果/SS为高则所有相关引脚都为输入SPI不接收任何数据要注意的是若/SS拉高SPI逻辑将复位如果在发送过程中/SS被拉高则数据传输马上中断数据模式SCK相位极性与数据有4种组合CPHA和CPOL控制组合的方式见下图图39 SPI传输格式CPHA=0DORD=0图 SPI传输格式CPHA=1SPI控制寄存器76543210读/00000000SPIESPISPESPIDORD数据次 DORD为1LSB先发送DORD为0MSB先发MSTR置位时选择主机模式否则为从机如果MSTR为1/SS为输入但被拉低MSTR被SPIF置位用户必须重新设置MSTR进入主机模 SPR1SPR0SPI表 SCK和时钟频率之间的关00011011SPI状态寄存器76543210------读/RRRRRR000000005…0SPIFSPI串行发送结束后SPIF置位即使此时/SS被拉低作为输进入中断例程后SPIF自动复位或者可以通过先读SPSRSPDRSPIFSPI发送当中对SPI数据寄存器SPDRWCOLWCOL可以通过先读SPSR紧接着读SPDR来SPI数据寄存器76543210读/XXXXXXXX波特率发生器可以产生大量的波特 893个独立的中断发送结 发送数据寄存器空接收结数据发送UARTUDRUDR的数据若前一个字符的停止位已经移出移位寄存 若前一个字符的停止位还没有移出移位寄存器则要等到停止位移出后UDR的数据图 UART发送如果1011位收发器移位寄存器为空UDR中的数据将传送到移位寄存器此时UDRE置位表明UART可以接收下一个数据当数据送入移位寄存器的时候移位寄存器的0位起始位自动而位9和10停止位置位如果选择了9位数据格式UART的CHR9置位则UCRTXB8将送到移位寄存器的位9UART首先在TXD引脚送出起始位然后是数据低位如果UDR里有新数据则UART会在停止位发送完毕只有自动加载数据在加载数据的同时UDRE置位并一直保UDR如果UDR没有新数据而且停止位也已经输出一个bit的长度则发送结束标志TXC置位UCRTXENUART发送器当TXEN为0时PD1I/O为1时UARTPD1强迫其为输出数据接收图 UART16RXD时候检测到低电平则认为这是起始位的下降沿起始位检列开始假定采样1为第一次检测到低电平的时刻CPU8910RXD3次连续采样如果有两个或全部采样值为高则认为当前信号是一个虚起始位要丢弃MCU将开始等待新一次的1到0的转换MCU810343时3时3个采样值当中必须要有两个以上为高否则USRFE置位在读UDR之前用户应该检查不管停止位有效与否接收到的数据都将被送入UDRUSRRXC置位UDR实际上是两个物理上分离的寄存器一个用于发送一个用于接收UDR时的是接收UDR而在写UDR时的是发送UDR如果数据格式为9位则UCR的RXB8在数据传送到UDR时加载到发送移位寄存器的位9如果在UDR之前UART又接收到一个数据则USR的OR置位这表明数据无法转移到UDR而丢失了OR一直保持到UDR被因此如果波特率比较高或者CPU负载比较重用户应该在读UDR时首先检测OR标志如果RXEN为0则不工作PD0可以用作普通I/O口而若RXEN置位则 UCRCHR919位要发送的第9UCRTXB8要在写UDR之前设置而接收到的第9位是RXB8UART数据寄存器76543210读/00000000UDR实际上是两个物理上分离的寄存器一个用于发送一个用于接收UDR时访问的是接收UDR而在写UDR时的是发送UDRUART状态寄存器 543210U---读/RRRRRRRR001000002…0RXCUDR但是不管数据是否有误如果RXCIE为1则RXC置位时将引起接收结束中断RXC在读UDR时自动被清除如果采用中断方式则中断例程必须读一次UDR以清除RXC否则中断结束后又会中TXC置位表示数据已经从发送移位寄存器发送出去且UDR中没有新的要发送的数据在半双工通信应用当中由于发送器在发送完数据之后要立即转换到接收模式所以这个标志如果TXCIE已置位则TXC置位将发送结束中断进入中断例程后TXC自动或者用户可以对其写1以达到的目的UDR传送到发送移位寄存器后UDRE置位表明发送器已经准备好接收新的要当UDRIE置位则只要UDRE为1UART发送结束中断就可以执行写UDR将复位UDRE如果利用中断方式发送数据则在UART数据寄存器空中断例程里必须写UDR以清除UDRE否则中断将连续发生复位后UDRE的初始值为1表明发送器就FEMCU检测到帧错误如 检测到停止位为0 当检测到数据停止位为1 时FE复位OR如果UDR未读而新的数据又已进入移位寄存 则OR置UART控制寄存器 6543210读/RW00000010RXCIE接收结束中断使能TXCIE发送结束中断使能UDRIEUART数据寄存器空中断使能RXEN使能UART接收接收将导致TXCOR和FE无法置位同时也不能复位已经置位的标TXEN不能立即关闭发送器如果发送器当前正在发送的话只有等到发送完毕后发送CHR99MCU99位字符的读/RXB8/TXB89位RXB8接收的第9位TXB8发送的第9位发送字符的第9位波特率产生器波特率计算式中BAUD=
BAUD
ffCK=UBRRUART波特率寄存器的内容0-表 UB 26378211000532110632110743210UB 864321753218632197432UB 19175386397485-UART波特率寄存器UART波特率寄存器 6543210读/00000000模拟比较器模拟比较器比较正输入端PB2AIN0 和负输入端PB3AIN1 的值如果PB2AIN0的电压高于PB3AIN1的值比较器的输出ACO将置位此输出可用来触发模拟比较器中断上升沿下降沿或电平变换 也可以触发T/C1的输入捕捉功能其框图如图44所44模拟比较器控制和状态寄存器 543210-读/RR00000000位 保ACD模拟比较器当ACD为1 时模拟比较器的电源将切断可以在任何时候对其置位以关闭模拟比较器这样可以减少器件的功耗改变ACD时要注意模拟比较器的中断否则有可能不ACO模拟比较器输出 模拟比较器中断标志位ACIACIS1ACIS0决定如果ACII都为1则CPU执行比较器中断例程进入中断例程后ACI被硬件此外ACI也可以通过对此位写1来达到的目的要注意的是如果ACSR的另一些位被SBI或CBI指令修改时ACI亦被ACIE模拟比较器中断使能ACIE为 ACIC模拟比较器输入捕捉使能ACIC为 T/C1的输入捕捉功能由比较器中断触发此时比较器的输出与的输入捕捉前端直接相连T/C1的输入捕捉噪声抑制和边沿选择仍然适用ACICT/C1没有关联为了使能比较器驱动的T/C1输入捕捉中断ACIS1ACIS0模拟比较器中断模式选择表 中断模式00 0110ACO11ACO注意改变ACIS1/ACIS0时要注意模拟比较器的中断否则有可能不必要的中模数转换器1065- s8AT90S4434/8535具有10位精度的逐次近型AD转换器ADC与一个8通道的模拟多路器相连这样就允许A口作为ADC的输入引脚ADC包含一个采保放大器ADC框图见图45ADCAVCCAGNDAGNDGND相连AVCCVCC的差别不能大于0.3VAREFAGND图 ADC框操ADC可以工作于两种模式单次转换及自由运行方式在单次转换模式下用户必须启动每一次转换而在自由运行方式下ADC会连续采样并更新ADC数据寄存器ADCSR的ADFR位用于选择模式ADC由ADCSR的ADEN位控制使能使能ADC后第一次转换将一次哑转换过程以ADCAD12个ADC时钟周期ADSCAD转换在转换过程中ADSC一直保持为高转换结束后ADSC硬件如果在转换过程当中通道改变了ADC首先要完成当前的转换然后通道才会改变ADC产生10位的结果ADCH和ADCL为了保证正确数据系统采用了如下保护逻读数据时首先要读ADCL一旦开始读ADCLADC对数据寄存器的就被了也就是说如果了ADCL那么即使在读ADCH之前另一次ADC结束了两个寄存器ADC结果更新此次转换的数据将丢失当读完ADCH之后ADC才能继续对ADCH和ADCL进行ADC结束后会置位ADIF即使发生如上所说的由于ADCH未被而丢失转换数据的情况ADC结束中断仍将触发预分频器图 ADC预分频ADC有一个预分频器可以将系统时钟调整到可接受的ADC时钟50–200kHz ADCSR的ADPS0–ADPS2用于产生合适的ADC时钟一旦ADCSR的ADEN置位预分频器就开始连续不断地记数直到ADENADSC的作用是对ADC进行初始化AD转换在ADC时钟的上升沿启动采样-保持要花费1.5倍ADC时钟在第13个时钟ADC转换结束数据进入ADC数据寄存器对于单次转换模式在进行下一次转换时需要一个额外的ADC时钟如图47所示然后转换可继续进行如果此时ADSC为1的话而在自由运行模式下ADC结果写入寄存器后立即进行下一次转换工作于200kHz的自由运行模式具有最快的转换速度65s 亦即15.4kSPSSamplingsPerSecond 转换时序见表27图 首次转换的时 单次转换模表 ADC时条采样周期得到结果的周期总的转换周期数总的转换时间 125-130–265–270–图 单次转换的时49ADC噪声抑制功能ADCCPU核引入的噪声的功能使能ADC选择单次转换模 并使能转换结束中ADEN=ADSC=ADFR=ADIE=进入空闲状 一旦CPU停止ADC将开始转ADC转换结束中断之前没有发生其他中断ADCADC多址选择寄存器76543210-----读/RRRRR000000007…3MUX2…MUX0ADC控制和状态寄存器76543210ADPSADPS读/00000000ADENADCADSCADC当ADC工作于单次转换模式时这一位必须设置为1以启动每一次转换而对于自由运ADEN置位之后还是一同进行ADC都将进行一次哑转换以初始化ADCADSCADC数据寄存器之前差一个ADC时钟ADSC变为低这样就允许在当前转换完成之前ADSC变低之时对下一次转换进行初始化一旦当前转换彻底完成立即就可以进行新的一次转换过程在哑转换过程当中ADSC保持为高ADFRADC自由运行模式选择ADC工作于自由运行模式ADCADIFADCADC完成及数据更新完成后ADIF置位如果IADIE置位则ADC结束中断发生在中断例程里ADIF硬件写1也可以对其因此要注意对ADCSR执行读-修改-ADIEADCADPS2…ADPS0ADC预分频器选择表 ADC预分频器选分频因子000200120104011810010ADC数据寄存器ADCL8------76543210读/RRRRRRRRRRRRRRRR0000000000000000扫描多个通道由于模拟通道的转换总是要延转换结束因此自由运行模式可以用来扫描多个通道而不中断转换器一般情况下ADC转换结束中断用于修改通道但需注意中断在转换结果可读时触发在自由运行模式下下一次转换在中断触发的同时启动ADC噪声消除技术AT90S4434/8535EMI从而影响模拟测量精度如果转换精度要求很高则需要应用如下技术以减少噪声AT90S4434/8535PCB上要有独立的地线层模拟地线与使模拟信号通路尽量 要使模拟走线在模拟地上通 并尽量远离高速数字通A口的一些引脚用作数字输出口则在ADC图 ADC电源连注意AVCCA口输出驱动提供电源因此A口有输出引脚RC网络不要使用ADC特性TA=- -符参条典型单VREF=12VREF=ADC=4VREF=ADC=VREF>VREF>零误差1sVCC-VCC+VV6KM注1AVCC2AVCC所有AVRI/O端口都正的读-修改-写功能这意味着用SBI或CBI指令改变某些管脚的方向值/使能上拉时不会无意地改变其他管脚的方向值/使能上拉AA8I/O口A3I/O地址数据寄存器PORTA$1B$3B数据方向寄存器DDRA$1A$3A和输入引脚PINA$19$39PORTADDRA可读可写PINA20mA的电流能够直接驱动LED当管脚被拉低时如果上拉电阻已经激活则引脚会输出电流A口的第二功能是ADC的模拟输入端如果A口的一些引脚用作数字输出口则在ADC转换过程中不要改变其状态否则会破坏转换结果在掉电模式时数字输入的触发器与引脚相断开这样接近VCC/2的模拟输入就不会造成大的功耗A口数据寄存器76543210读/00000000A口数据方向寄存器76543210读/00000000A口输入引脚地址76543210读/RRRRRRRR PINA不是一个寄存器这个地址用来A口的物理值PORTA时读到的是A口锁存的数据而PINA时读到的是施加于引脚上的逻辑数值A口用作通用数字I/O时A8PAn通用I/O引脚DDRA中的DDAn选择引脚的方向如果DDAn为1则PAn为输出脚如果DDAn为0则PAn为输入脚在复位期间A口为三态口表 A口的配上注00N三 高01Y10N011N1n76…0
图 A口示意图PA0-BB8I/O口B3I/O地址数据寄存器PORTB$18$38数据方向寄存器DDRB$17$37和输入引脚PINB$16$36PORTBDDRB可读可写PINB20mA的电流能够直接驱动LED当管脚被拉低时如果上拉电阻已经激活则引脚会输出电流表 B口第二功管第二功能 T/C0 T/C1 SPI SCKB口的第二功能时DDRBPORTB B口数据寄存器 76543210 7读/00000000B口数据方向寄存器76543210读/00000000B口输入引脚地76543210读/RRRRRRRR PINB不是一个寄存器这个地址用来B口的物理值PORTB时读到的是B口锁存的数据而PINB时读到的是施加于引脚上的逻辑数值 B口用作通用数字I/O时B8PBn通用I/O引脚DDRB中的DDBn选择引脚的方向如果DDBn为1则PBn为输出脚如果DDBn为0则PBn为输入脚在复位期间B口为三态口表 B口的配上注00N三 高01Y10N011N1n76…0B口的第二功能SCKSPI的主机时钟输出从机时钟输 配置为从机 的值而当SPI为主机时SCKPB7DDB7 SPI的主机数据输入从机数据输 配置为主机 的值SPI为主机时MISOPB6DDB6 SPI的主机数据输出从机数据输 配置为从机 的值SPI为主机时MOSIPB5DDB5 从机选择信号配置为从机时此引脚配置为输入而不管DDB4的值/SS为低将激活SPI配置为主机时此引脚的方向由DDB4控制如果DDB4为1则上拉仍然可以由PORTB4控制 当配置为输入 无上拉电 为模拟比较器的负输入 当配置为输入 无上拉电 为模拟比较器的正输入 T/C1 T/C0B口示意图图 B口示意 PB0和图 B口示意 PB2和图 B口示意图图 B口示意图图 B口示意图图 B口示意图CC8I/OC口有3个I/O地址数据寄存器PORTC$15 数据方向寄存 DDRC$14和输入引脚 PORTC和DDRC可读可写PINC只可所有的管脚都可以单独选择上拉电阻引脚缓冲器可以吸收20mA的电流 当管脚被拉低时如果上拉电阻已经激活则引脚会输出电流C口数据寄存器76543210读/00000000C口数据方向寄存器 6543210 读/ 初始 0000000C口输入引脚地址 6543210读/RRRRRRRRPINC不是一个寄存器这个地址用来C口的物理值PORTC时读到的是C口锁存的数据而PINC时读到的是施加于引脚上的逻辑数值C口用作通用数字I/O时C8PCn通用I/O引脚DDRC中的 选择引脚的方向如果 为1则PCn为输出脚如果 为0则PCn为输入脚在复位期间C口为三态口表 C口的配00N三 高01Y10N011N1 6…0图 C口示意 图 C口示意图 CDD8I/OD口有3个I/O地址数据寄存器PORTD 和输入引 PORTD和DDRD可读可写PIND只可D20mA的电流能够直接驱动LED当管脚被拉低时如果上拉电阻已经激活则引脚会输出电流表 D口第二功管第二功能 OC1AT/C1AD口数据寄存器76543210读/00000000D口数据方向寄存器 6543210 读/ 初始 0000000D口输入引脚地址 6543210 读/ RRRRRRR PIND不是一个寄存器这个地址用来D口的物理值PORTD时读到的是D口锁存的数据而PIND时读到的是施加于引脚上的逻辑数值D口用作通用数字 通用I/O引脚DDRD中的DDDn选择引脚的方向如果DDDn为1则PDn为输出脚如果DDDn为0则PDn为输入脚在复位期间D口为三态口表 D口的配00N三 高01Y10N011N1 6…0D口的第二功能 OC1APD5可以用作T/C1PD5OC1A也是 发送数据引脚发送器使能 引脚自动配置为输出而不管 接收数据引脚使能 引脚自动配置为输入而不管 若此时为1则上拉有D图 D口示意图图 D口示意图图 D口示意图PD2和图 D口示意图PD4和图 D口示意图图 D口示意图程序编程程序和数据锁定位AT90S4434/8535具有两个锁定位如表35表 锁定保护模程序锁定位保护类型模111201300注意 在并行编程模式 熔断位编程也被要先编程熔断 然后编程锁定熔断位AT90S4434/8535有两个熔断位SPIENSPIEN编程为 串行程序使能缺省值 FSTRT编程为0 后MCU选择短起动时间缺省值为 订购缺省值为0 串行不能熔断位只能在并行程序时擦除命令不影响熔断厂以其位置为对于AT90S4434 $1EAtmel 4K 当$01地址为$92 器件为 $1EAtmel 8K 当$01地址为$93 器件为3$00$01和AT90S4434/85354K/8KFLASH256/512EEPROM在出厂时已经被擦除为1器件支持+12V高压并行编程和低压串行编程+12V只用来使能高压编程不会有明显的电流流过FLASHEEPROM片内集成了自擦和自定时除功能在编程时要注意电源电压要满足要求36型串行编程并行编程4.0V–4.5V–2.7V–4.5V–4.0V–4.5V–2.7V–4.5V–并行编程FLASHEEPROM图 并行编信号命名当驱动/WE或/OE时执行加载表 管脚命编程时的信号名称管功O 器件忙 可以接受新命I输出使 低电I写脉冲I字节选择0低字 1高字II双向数据总 /OE为低时输表 XA1和XA0编XTAL1给正脉冲后的操作00加载FLASH或EEPROM的地址BS决定 01加载数据BS决定 101 命令字节编命令字节执 01000010000100010000000000000000进入编程模式拉低/RESET和 等待至少给/RESET11.5~12.5VBS在/RESET加上+12V100ns之内发生动作将导致器件无法进入编程模式擦FLASHEEPROM以及锁定位在FLASHEEPROM完全擦除之前锁定位不会擦除擦除过程不影响熔断位擦除命令必须在对FLASHEEPROM重新加载擦除设置 XA0为 使能命令加BS为设置DATA为1000 擦除命XTAL1一个正脉冲给/WEtWLWH_CERDY/BSY设置 XA0为 使能命令加BS为设置DATA为0001 XTAL1一个正脉冲加载地设置 XA0为 使能地址加设置BS为 选择地址的字设置DATA=地址的字节$00-给XTAL1一个正脉冲加载地址的字设置 XA0为 使能地址加设置BS为 选择地址的低位字DATA=地址的低位字节XTAL1一个正脉冲设置 XA0为 使能数据加 DATA=数据的低位字节 XTAL1一个正脉冲设置BS为 选择低位数给/WR一个负脉冲开始编程数 RDY/BSY波形见图68加载数据的字设置 XA0为 使能数据加设置DATA=数据的字节XTAL1一个正脉冲写数据的字设置BS为 选择数给/WR一个负脉冲开始编程数 RDY/BSY波形见图69器件在编程时保存加载令和地址为了有效地进行编 请注意以下几当 多个内存地址 命令只需加载一仅在编程新的 256字节时才需要加载地址字因为擦除之后所有的FLASH和EEPROM的内容都为1 故数据为$FF时可以EEPROM的编程FLASHEEPROM和厂标的6869 A加载命令0000 B加载地址的字节 加载地址的低位字 设置BS为1此时可以读FLASH数据的字设置/OE为 A加载命令0001 AT90S8535B加载地址的字节 加载地址的低位字 加载数据的低位字 A加载命令0000 AT90S8535B加载地址的字节 加载地址的低位字 设置/OE和BS为0此时可以从DATA总线数据的低位字设置/OE为编程熔断位 A加载命令0100 加载数据的低位字 Bitn 代表要编 代表要擦Bit5=SPIENBit0 Bit7-6,4-1 1这些位是保留给/WRtWLWH_PFBRDY/BSY编程锁定位 A加载命令0010 加载数据的低位字 Bitn 代表要编Bit2=LockBit2Bit1=LockBit1Bit7-3,0 1这些位是保留 锁定位只能在擦除上时清读熔断位和锁定位 A加载命令0000设置/OE为0BS为1此时可以从DATA总线数Bit7=LockBit1Bit6=LockBit2Bit5=SPIENBit0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 大同机车厂考勤制度
- 云师大晚考勤制度
- 员工补考勤制度
- 商厦考勤制度
- 软件研发企业项目总监岗位面题分析
- 关桥小学教师考勤制度
- 公司财务人员考勤制度
- 车牌识别道闸系统施工方案
- 安卓课程设计xml
- 投行业务市场调研报告及分析
- 防御性驾驶培训
- 芯粒数学描述与组合优化理论突破
- 心血管手术中自体血液回收红细胞质量的多维评估与临床意义探究
- 建设工程工程量清单计价标准(2024版)解读课件
- 会议活动工作流程培训
- 2026年山东铝业职业学院单招综合素质考试必刷测试卷及答案1套
- 平面构成-比例与分割课件
- 《中国现代文学史(1917-2013)上册》配套教学课件
- 物理性污染控制全套教学课件
- 节能检测课件
- 中药学考研习题
评论
0/150
提交评论