ARM手记之芯唐M0系列
编号的通道开始。
2. 每路 A/D 转换完成后, A/D 转换数值将装载到相应数据寄存器中.
3. 当所有被使能的通道数依序完成一次A/D转换后,ADF位(ADSR 寄存器)置位。若此时 ADIE 置位,将产生ADINT中断请求,当 A/D 转换完成后. 使能的最小编号通道将开始新的转换。
4. 只要ADST保持 1,就重复步骤2 ~ 3。当 ADST 位清 0, A/D 转换将停止,但无法保证最小通道使能通道的转换结果之正确性。
5)比较模式下的A/D转换结果监控
ADC控制器提供2组比较寄存器 ADCMPR0和ADCMPR1监控 A/D 转换模块的2路转换结果值。可通过软件设定CMPCH[2:0] 来选择监控那路通道,而CMPCOND 位被用来检查转换值小于或大于等于CMPD[11:0]指定值,当CMPCH指定的通道转换完成时,比较行为将会被自动的触发一次,当比较结果与设定值匹配,比较计数器将加1,否则比较计数器清0。当计数器的值与(CMPMATCNT+1)匹配,CMPF位将置1,将产生ADINT中断请求。在扫描模式下软件可应用于监控外部模拟输入pin脚电压变化。
6)外设DMA 请求
当 A/D 转换完成,结果装载到ADDR 寄存器且VALID 置位。如果ACDR寄存器PTEN位置位, ADC控制器将产生PDMA请求(P_nDRQ) ,以便用户将数据传输到用户指定的内存空间,而无需CPU参与。不管选择哪个通道,PDMA操作的源地址都是ADPDMA。如果ADC工作在单周期或连续扫描模式,当PDMA传输转换结果时,ADC将继续转换选择的下一通道,用户可通过读ADPDMA监控当前PDMA传输数据。
13.模拟比较器CMP
NUC1XX 系列包括2 路模拟比较器,当正级输入大于负极输入(可选择内部参考电压)时,比较器输出为逻辑1,反之为逻辑 0;每一路比较器可配置成:当输入值发生改变时产生中断。软件可 写 0 到 CMP0 位 CMPF1 以停止中断请求。2路模拟比较器共用同一个中断请求。
14.USB设备控制器
NUC1xx系列包含一组全速USB 2.0 设备控制器和收发器,符合USB 2.0规范,支持control/bulk/interrupt/isochronous 传输类型。在该设备控制器里,包含2个主接口:APB总线和由USB PHY收发器出来的USB总线,CPU通过APB总线编程控制寄存器,在该控制器内置有512字节的SRAM作为数据缓存。输入或输出传输,需要通过AHB从接口或SIE向SRAM写数据或从SRAM读数据。用户需要通过BUFSEGx为每个端点缓存设置有效的SRAM地址。在USB功能有效前,用户需要在缓冲段寄存器配置每个端点的有效起始地址(地址范围0x4006 0100-0x4006 02ff)。
USB设备控制器具有6个可配置的端点,每个端点可配置为IN或OUT类型。所有的操作包括control,bulk,interrupt,isochronous传输都由断点模块来执行。端点控制模块还可以用来管理数据同步时序,端点状态控制,当前起始地址,当前事务状态和每个端点的数据缓存状态。
该控制器提供1个中断向量、4个不同的中断事件,包括唤醒功能、设备插拔事件、USB事件(如IN ACK,OUT ACK等)和BUS事件(如suspend和resume等),用户需要在中断事件状态寄存器(USB_INISTS)检查相关事件标志以得知发生何种中断,然后检测相关USB端点状态寄存器(USB_EPSTS)以得知该端点上发生何种事件。总线中断告之用户一些总线事件,如USB复位、中止、暂停、恢复,用户可以读特殊功能寄存器“ATTR”获取总线事件。
USB设备有一个软件禁用功能,用于模拟设备没有跟主机相连的情况。
SIE是设备控制器的前端,处理最多的USB 协议包。处理功能包括: - 包识别,处理时序
- SOP, EOP, RESET, RESUME信号检测/产生
- Clock/Data分离
- NRZI 数据编解码与比特填塞(bit-stuffing)
- CRC产生和校验 (for Token and Data)
- Packet ID (PID) 产生和校验/解码
- 串-并/并-串转换
数字锁相环DPLL:USB数据的比特率为12MHz, DPLL采用的48MHz的频率由时钟控制器产生,锁定RXDP与RXDM的输入数据,12MHz的比特率时钟也是由DPLL转换来的。
插拔去抖动:USB设备可以进行热插拔操作,为了监测USB设备被拔出的状态,设备控制器提供了硬件去抖动以防止在USB插拔时产生的抖动问题,悬空检测中断产生于USB进行插拔操作的10ms后,用户可以通过读取“FLODET”寄存器的值,来应答USB插拔;“FLODET”代表在当前总线上没有经过去抖动处理的状态,若用户要通过这个标志来检测USB的状态,则需要添加软件去抖动功能。
当芯片进入掉电模式时,USB 自动关闭PHY省电,此外,在特殊环境下,用户可以给特殊功能寄存器ATTR[4]写入“0”关闭PHY进入省电状态。
与USB外设通信处理:用户
ARM芯唐M0系 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)