电子说
在电子设计的广阔领域中,微控制器(MCU)一直是各类应用的核心。今天,我们要深入探讨的是意法半导体(STMicroelectronics)ST10系列中的一颗璀璨之星——ST10R167 16位无ROM微控制器。它结合了高性能CPU、丰富的外设功能和强大的I/O能力,为众多应用场景提供了理想的解决方案。
文件下载:ST10R167-Q3/TR.pdf
ST10R167是ST10系列的一员,具备高达每秒1250万条指令的CPU性能,同时拥有丰富的外设功能和强大I/O能力。通过片内PLL实现高速RAM和时钟生成。这种高性能与多功能的结合,使其在工业控制、汽车电子、消费电子等领域都有广泛的应用前景。
该CPU采用4级指令流水线、16位算术逻辑单元(ALU)和专用特殊功能寄存器(SFR)。此外,还配备了独立的乘除单元、位掩码生成器和桶形移位器。在25MHz的CPU时钟下,大多数指令的执行周期仅需80ns。以移位和旋转指令为例,无论要移位的位数是多少,都能在一个指令周期内完成。多周期指令也经过了优化,如分支操作只需2个周期,16x16位乘法需5个周期,32/16位除法需10个周期。跳转缓存机制还能将循环中重复执行的跳转指令的执行时间从2个周期缩短至1个周期。这使得ST10R167在处理复杂任务时能够高效运行。
ST10R167采用冯·诺依曼架构,代码内存、数据内存、寄存器和I/O端口都组织在同一个16M字节的线性地址空间中。片内提供32K字节的ROM、2K字节的内部RAM(双端口)和2K字节的扩展RAM(单端口XRAM)。内部RAM可作为数据存储、系统堆栈、通用寄存器组和代码存储的空间,寄存器组最多可包含16个字宽(R0 - R15)和/或字节宽(RL0, RH0, …, RL7, RH7)的通用寄存器。XRAM的地址范围为00’E000h - 00’E7FFh,在启用(SYSCON寄存器的XPEN位2)时,可像访问外部内存一样以16位解复用总线模式进行访问,且无等待状态或读写延迟(在25MHz CPU时钟下访问时间为80ns),支持字节和字访问。但需注意,XRAM不能用于系统堆栈或寄存器组,也不支持单比特存储,因此不具有位寻址功能。特殊功能寄存器(SFR/ESFR)占用1024字节(2 * 512字节)的地址空间,用于控制和监控片内各单元的功能。CAN模块的地址范围为00’EF00h - 00’EFFFh,启用时需设置SYSCON寄存器的XPEN位2,访问时使用解复用地址和16位数据总线(支持字节访问),在25MHz CPU时钟下,需两个等待状态,访问时间为160ns。如果使用CAN模块,Port 4只能输出4条段地址线,这会将外部内存空间减少到5M字节(每个CS线对应1M字节)。为满足设计中对更多内存的需求,该微控制器最多可连接16M字节的外部RAM和/或ROM。
外部总线控制器(EBC)可实现所有外部内存的访问操作。它可以设置为单芯片模式(无需外部内存时)或四种不同的外部内存访问模式,包括16/18/20/24位地址和16位数据的解复用和复用模式,以及16/18/20/24位地址和8位数据的解复用和复用模式。在解复用总线模式下,地址通过Port1输出,数据通过Port0或P0L输入/输出;在复用总线模式下,地址和数据都通过Port0输入/输出。外部总线接口的时序特性(如内存周期时间、内存三态时间、ALE长度和读写延迟)可进行编程设置,以适应不同的存储器和外部外设。通过寄存器对ADDRSELx / BUSCONx最多可定义4个独立的地址窗口,用于访问不同的资源,并设置不同的总线特性。这些地址窗口采用分层结构,BUSCON4优先级高于BUSCON3,BUSCON2优先级高于BUSCON1,未被这4个地址窗口覆盖的所有访问都由BUSCON0控制。最多可生成5个外部CS信号(4个窗口加默认信号),以节省外部胶合逻辑。通过“Ready”功能支持对非常慢速的存储器的访问,还提供HOLD/HLDA协议用于总线仲裁,与其他总线主设备共享外部资源。总线仲裁通过设置SYSCON寄存器的HLDEN位来启用,启用后,引脚P6.7...P6.5(BREQ, HLDA, HOLD)由EBC自动控制。在主模式(复位后默认)下,HLDA引脚为输出;通过将DP6.7位设置为’1’可选择从模式,此时HLDA引脚切换为输入,直接连接从控制器和另一个主控制器,无需胶合逻辑。对于需要较少外部内存空间的应用,地址空间可限制为1M字节、256K字节或64K字节。使用16M字节的地址空间时,Port 4输出所有8条地址线;否则,输出4条、2条或不输出地址线。片选信号的时序也可进行编程设置,复位后,CSx线在ALE上升沿后半个CPU时钟周期改变;将SYSCON寄存器的CSCFG位置1后,CSx线在ALE上升沿改变。READY引脚的有效电平可通过BUSCONx寄存器的RDYPOL位设置。当为特定地址窗口启用READY功能时,该窗口内的每个总线周期都必须以关联BUSCON寄存器中RDYPOL位定义的有效电平结束。
ST10R167的中断响应时间为200ns至480ns,其架构支持多种机制,可快速灵活地响应来自微控制器内部或外部的各种服务请求。这些中断请求可由中断控制器或外设事件控制器(PEC)处理。与标准的中断服务不同,PEC服务只需从当前CPU活动中“窃取”一个周期,就能在任意两个内存位置之间进行单字节或字数据传输,并对PEC源或目标指针进行增量操作。除了连续传输模式外,每次PEC服务都会隐式递减一个单独的PEC传输计数器。当计数器达到零时,会执行标准中断,跳转到相应源相关的向量位置。PEC服务非常适合支持数据块的传输或接收,ST10R167拥有8个PEC通道,每个通道都具备这种快速中断驱动的数据传输能力。每个中断源都有一个专用的中断控制寄存器,包含中断请求标志、中断使能标志和中断优先级位字段。通过该寄存器,每个源可被编程为16个中断优先级之一。一旦CPU开始处理一个中断服务,只有更高优先级的服务请求才能中断它。对于标准中断处理,每个可能的中断源都有一个专用的向量位置。此外,还提供了快速外部中断输入,用于处理对精度要求较高的外部中断,这些输入具有可编程的边沿检测功能(上升沿、下降沿或双边沿)。软件中断通过“TRAP”指令结合单独的陷阱(中断)编号来支持。
ST10R167有两个16通道的CAPCOM单元,可支持在最多32个通道上生成和控制时序序列,在25MHz CPU时钟下,最大分辨率可达320ns。这些单元通常用于处理高速I/O任务,如脉冲和波形生成、脉冲宽度调制(PMW)、数模(D/A)转换、软件定时或相对于外部事件的时间记录。四个16位定时器(T0/T1, T7/T8)及其重载寄存器为捕获/比较寄存器阵列提供了两个独立的时间基准。定时器的输入时钟可编程为内部系统时钟的多个预分频值,也可从GPT2模块中定时器T6的溢出/下溢信号导出。此外,CAPCOM定时器T0和T7的外部计数输入允许相对于外部事件对捕获/比较寄存器进行事件调度。每个捕获/比较寄存器阵列包含16个双用途捕获/比较寄存器,每个寄存器可单独分配给CAPCOM定时器T0或T1(分别对应T7或T8),并可编程为捕获或比较功能。每个寄存器都有一个关联的端口引脚,用于触发捕获功能的输入引脚,或用于指示比较事件发生的输出引脚(CC24...CC27除外)。当捕获/比较寄存器被选择为捕获模式时,分配定时器的当前内容将在与该寄存器关联的端口引脚发生外部事件时被锁存(捕获)到该寄存器中。此外,还会为该捕获/比较寄存器生成一个特定的中断请求。可选择引脚的正、负或正负外部信号转换作为触发事件。所有被选择为五种比较模式之一的寄存器的内容会不断与分配定时器的内容进行比较。当定时器值与捕获/比较寄存器中的值匹配时,将根据所选的比较模式采取特定的操作。
通用定时器单元(GPT)是一个灵活的多功能定时器/计数器结构,用于与时间相关的任务,如事件定时和计数、脉冲宽度和占空比测量、脉冲生成或脉冲倍频。GPT单元包含五个16位定时器,分为两个独立的模块GPT1和GPT2。每个模块中的每个定时器可独立工作于多种不同模式,也可与同一模块中的另一个定时器级联。
脉冲宽度调制(PWM)模块可使用边沿对齐或中心对齐的PWM生成多达四个PWM输出信号,还可生成PWM突发信号和单触发输出。输出信号的电平可选择,并且PWM模块可以生成中断请求。该模块在不同分辨率下的PWM频率如下表所示:
| 模式0 | 分辨率 | 8位 | 10位 | 12位 | 14位 | 16位 |
|---|---|---|---|---|---|---|
| CPU时钟/1 | 40ns | 97.66KHz | 24.41KHz | 6.104KHz | 1.526KHz | 0.381KHz |
| CPU时钟/64 | 2.56ns | 1.526KHz | 381.5Hz | 95.37Hz | 23.84Hz | 5.96Hz |
| 模式1 | 分辨率 | 8位 | 10位 | 12位 | 14位 | 16位 |
|---|---|---|---|---|---|---|
| CPU时钟/1 | 40ns | 48.82KHz | 12.20KHz | 3.05KHz | 762.9Hz | 190.7Hz |
| CPU时钟/64 | 2.56ns | 762.9Hz | 190.7Hz | 47.68Hz | 11.92Hz | 2.98Hz |
ST10R167提供多达111个I/O线,分为八个输入/输出端口和一个输入端口。所有端口线都可进行位寻址,所有输入/输出线都可通过方向寄存器单独(逐位)编程为输入或输出。当配置为输入时,I/O端口会切换到高阻抗状态。五个I/O端口的输出驱动器可通过控制寄存器逐引脚配置为推挽或开漏操作。在内部复位期间,所有端口引脚都配置为输入。Port 2、Port 3、Port 7和Port 8的输入阈值可选择(TTL或类CMOS),类CMOS输入阈值通过输入滞后特性降低了噪声敏感性。输入阈值通过PICON寄存器中专门用于8个输入引脚块的位进行选择(Port2用2位,Port3用2位,Port7用1位,Port8用1位)。所有I/O端口的引脚还支持可选的可编程功能:Port0和Port1可在访问外部内存时用作地址和数据线;Port 2、Port 7和Port 8与CAPCOM单元的捕获输入或比较输出和/或PWM模块的输出相关联;Port 3包含定时器、串行接口、可选总线控制信号BHE和系统时钟输出(CLKOUT)的备用功能;Port 4在启用分段访问超过64K字节内存的系统中输出额外的段地址位A16到A23;Port 5用作A/D转换器的模拟输入通道或定时器控制信号;Port 6提供可选的总线仲裁信号(BREQ, HLDA, HOLD)和片选信号。所有未用于备用功能的端口线都可用作通用I/O线。
片上集成了一个10位A/D转换器,具有16个多路复用输入通道和一个采样保持电路。采样时间(用于加载电容器)和转换时间可进行编程设置,以适应外部电路。过冲错误检测/保护由ADDAT寄存器控制。当在下次转换完成时,前一次转换的结果尚未从结果寄存器中读取时,可选择生成中断请求,或暂停下次转换,直到前一次结果被读取。对于需要少于16个模拟输入通道的应用,剩余的通道输入可作为数字输入端口引脚使用。该AD转换器支持以下不同的转换模式:
全部0条评论
快来发表一下你的评论吧 !