下的IAR工程,如图1.0.3所示为主函数。 图1.0.3 GPIO的主函数 1.1Ti Pin Mux Tool工具 PinMuxconfig()函数可由TI Pin Mux Tool工具生成
2022-04-26 17:17
本帖最后由 疯壳科技 于 2022-4-29 11:46 编辑 CC3200AI实验教程 ——疯壳·开发板系列 串口 串行接口分为异步串行接口和同步串行接口两种。异步串行接口统称为通用异步收发器(UART)接口,同步串行接口有SPI和I2C等,同步串行接口除了包含数据线外,还包含时钟线。 本次实验中我们使用的是UART,也就是异步串行通信接口。UART的相关标准规定了接口的机械特性、电气特性和功能特性等,UART的电气特性标准包括 RS-232C、RS-422、RS-423和RS-485等,其中RS-232C是最常用的串行通信标准。RS-232C是数据终端设备(DTE)和数据通信设备(DCE)之间串行二进制数据交换接口技术标准,其中DTE包括微机、微控制器和打印机等,DCE包括调制解调器MODEM、GSM模块和Wi-Fi模块灯。 RS-232C机械特性规定使用25针D型连接器,后来简化为9针D型连接器。RS-232C的电气特性采用负逻辑:逻辑“1”的电平低于-3V,逻辑“0”的电平高于+3V,这个TTL的正逻辑(逻辑“1”表示高电平,逻辑“0”表示低电平)不同,因此通过RS-232C和TTL器件通信时必须进行电平转换。 目前微控制器的UART接口采用的是TTL正逻辑,和TTL器件连接不需要电平转换。和采用负逻辑的计算机相连接时需要进行电平转换(我们一般使用USB转串模块)。 CC3200包含两个可编程UART接口(UARTA0~1),主要特性如下: a、可编程的波特率发生器,允许速度高达3Mbps; b、独立的16*8发送和接口FIFO,减轻CPU中断处理负载; c、可编程FIFO长度,包括提供传统双缓冲接口的单字节操作; d、FIFO触发阈值包括1/8、1/4、1/2、3/4和7/8; e、标准的异步通信起始、停止和奇偶校验位。 CC3200的UART接口具有以下可编程串行接口特性: a、可编程的5、6、7或8位数据; b、偶、奇或无校验生成/检测; c、1或2个停止位生成; d、支持RTS和CTS调制解调器握手; e、标准的FIFO阈值中断和传输结束中断。 CC3200的UART支持DMA,使用DMA可实现高效传输,UART具有单独的DMA发送和接收通道。支持当FIFO中有数据的单个请求接收和可编程FIFO阈值的突发请求接收以及FIFO中有空间的单个请求发送和可编程FIFO阈值的突发请求发送。 1.1寄存器 UARTDR为数据寄存器(也是FIFOs的接口)。 在发送数据时,如果FIFO使能了,则写入该寄存器的数据会发送到发送FIFO 中。如果FIFO关闭,数据会被存储在发送保持寄存器中(发送FIFO最低一个字)。写该寄存器意味着通过串口发送。 在接收数据时,如果FIFO使能了,数据字节和4位状态位被发送到12位宽的接收FIFO中。如果FIFO关闭,数据字节和状态被存储在接收保持寄存器中(接收FIFO中的最低一个字)。可以通过读取该寄存器来获取接收数据。如图1.0.1所示为UARTDR寄存器,如图1.0.2为其位定义。 图1.0.1 UARTDR寄存器 图1.0.2 UARTDR寄存器位定义 UARTRSR_UARTECR是接收状态寄存器/错误清除寄存器。除了UARTDR寄存器之外,接收的状态位也可以通过UARTRSR寄存器获取。如果从该寄存器读取状态信息,则状态信息对应与在读取UARTRSR寄存器之前的UARTDR的状态信息。当有溢出条件发生时,状态位中的溢出标志位会立刻被置位。UARTRSR寄存器不能被写。写任何值到寄存器UARTECR中将会清除帧、校验、打断和溢出错误。复位会清零所有的位。如图1.0.3所示为UARTRSR_UARTECR寄存器,如图1.0.4为其位定义。 图1.0.3 UARTRSR_UARTECR寄存器 图1.0.4 UARTRSR_UARTECR寄存器位定义 UARTFR为标志寄存器。在复位之后,TXFF、RXFF和BUSY标志位为0,TXFE 和RXFE位为1。RI和CTS位指示调制解调器的控制流和状态。这里需要注意的是,调制解调位只在UART1中有效,在UART0中是保留位。如图1.0.5所示为UARTFR,图1.0.6为其位定义。 图1.0.5 UARTFR寄存器 图1.0.6 UARTFR寄存器位定义 UARTIBRD寄存器是波特率除数的整数部分。复位之后所有的位被清零。最小值为1(当UARTIBRD为0时),此时UARTFBRD寄存器无效。当改变UARTIBRD 寄存器时,只有在当前的字节传输完成之后才生效。波特率除数的任何改变都必须在写UARTLCRH寄存器之后。如图1.0.7所示为UARTIBRD寄存器。 图1.0.7 UARTIBRD寄存器 UARTFBRD寄存器是波特率除数的小数部分。复位之后所有的位被清零。当修改UARTFBRD寄存器的值时,只有在当前字节发送或者接收完成之后才会有效。波特率除数的任何改变都必须在写UARTLCRH寄存器之后。如图1.0.8所示为UARTFBRD寄存器。 图1.0.8 UARTFBRD寄存器 UARTLCRH寄存器是线控制寄存器。该寄存器控制串口的数据长度、校验和停止位的选择。当更新波特率除数寄存器的时候,必须也要重写该寄存器。因为波特率除数寄存器的写选通信号和该寄存器是连接在一起的。如图1.0.9所示为UARTLCRH寄存器,图1.1.0为其位定义。 图1.0.9 UARTLCRH寄存器 图1.1.0 UARTLCRH寄存器位定义 UARTCTL是控制寄存器。在复位之后,除了发送和接收使能位之外,其它位都被清零。UARTEN位用于使能UART模块。在配置串口模块时必须将该位清零。如果在串口进行发送或者接收的操作时关闭串口模块功能,则在完成当前发送或者接收操作之后才关闭。如图1.1.1所示为UARTCTL寄存器,如图1.1.2为其位定义。 注意:在UART使能的状态下,UARTCTL寄存器不能被改变,否则结果是无法预测的。修改UARTCTL寄存器时建议按照下面的操作进行: 1、关闭UART; 2、等待当前字节的发送或者接收操作完成; 3、通过清零UARTLCRH寄存器中的FEN位来清除发送FIFO; 4、重新写控制寄存器; 5、使能UART模块。 图1.1.1 UARTCTL寄存器 图1.1.2 UARTCTL寄存器位定义 UARTIFLS是选择FIFO产生中断阈值的寄存器。可以使用该寄存器来定义FIFO的阈值,同时UARTRIS寄存器中的TXRIS和RXRIS位被触发。产生中断是基于一个发送操作超过阈值而不是等于阈值。也就是说FIFO中的数据超过规定的阈值之后才会产生中断。例如,如果接收的触发阈值设置为一般(8字节),那么在串口模块接收到第9个字节的时候才会产生中断。在复位之后,TXIFLSEL和RXIFLSEL位被配置,所以FIFOs在接收一半时触发中断。如图1.1.3所示为UARTRIS寄存器及其位定义。 图1.1.3 UARTIFLS及其位定义 UARTIM是中断掩码置位/清零寄存器。读取该寄存器则获得当前中断的掩码值。进行置位时,对应的中断将被发送到中断控制器。清零操作则对应的中断不会被发送到中断控制器。如图1.1.4所示为UARTIM寄存器,如图1.1.5为其位定义。 图1.1.4 UARTIM寄存器 图1.1.5 UARTIM寄存器位定义 UARTRIS是源中断状态寄存器。可以读取到当前中断源。写操作无效,如图1.1.6所示为UARTRIS寄存器,如图1.1.7为其位定义。 图1.1.6 UARTRIS寄存器 图1.1.7 UARTRIS寄存器位定义 UARTMIS是中断掩码状态寄存器。读该寄存器获取对应中断的掩码值。写操作无效。如图1.1.8所示为UARTMIS寄存器,如图1.1.9为其位定义。 图1.1.8 UARTMIS寄存器 图1.1.9 UARTMIS寄存器位定义 UARTICR是中断清零寄存器。置位则对应的中断被清除(清除中断源寄存器和中断掩码寄存器中对应的位),清零操作无效。如图1.2.0所示是为UARTICR寄存器,如图1.2.1为其位定义。 图1.2.0 UARTICR寄存器 图1.2.1 UARTICR寄存器位定义 UARTDMACTL是DMA控制寄存器。如图1.2.2所示为UARTDMACTL寄存器及其位定义。 图1.2.2 UARTDMACTL寄存器及其位定义 1.2实验现象 打开CC3200_Uart_Demo文件夹里的工程,该工程主要是把CC3200的UARTA0的波特率为115200bps,8位数据位,1个停止位,无奇偶校验位,如图1.2.3所示。 图1.2.3 串口参数设置 当串口接收到数据后,把接收到的数据再通过串口发送出去,编译工程,打开Uniflash,把bin文件下载到CC3200板子上(具体步骤请参考GPIO小节)。 把“CH340G_VCC”和串口选择的第一个“RXD”和第二个“TXD”拨码开关均拨到“ON”。 插上USB数据线接到电脑,打开串口助手,选择串口号,波特率设置为115200bps,按下板子的复位可见串口打印,如图1.2.4所示。 图1.2.4 复位时串口打印 在发送框内输入疯壳的网址,点击发送,串口助手收到CC3200的回传,如图1.2.5所示。 图1.2.5 串口助手收到回传视频地址:http://www.fengke.club文件下载请点击:
2022-04-29 11:42
CC3200AI实验教程 ——疯壳·开发板系列 中断 接口数据传送控制方式有查询、中断和DMA等,中断是重要的接口数据传送控制方式。中断控制分为全局和局部两级,全局中断由NVIC控制,局部中断由外设控制。 嵌套向量中断控制器NVIC支持多个内部异常和多达240个外部中断。从广义上讲,异常和中断都是暂停正在执行的程序转去执行异常或中断处理程序,然后返回原来的程序继续执行。从狭义上将,异常由内部事件引起,而中断有外部硬件产生。 异常和中断的处理与子程序调用有相似之处,但也有下列本质区别: 什么时候调用子程序是确定的,而什么时候产生异常和中断时不确定的。子程序的起始地址由调用程序给出,而异常和中断程序的起始地址存放在地址表中。 子程序的执行一般是无条件的,而异常和中断处理程序的执行要先使能。 CC3200的NVIC具有下列特性: a、确定的、快速的中断处理,总是12个时钟周期; b、每个中断的优先级可编程(0~7,0表示最高优先级); c、3~8位优先级配置; d、动态重新分配中断优先级; e、中断优先级分组允许选择中断优先级分组和中断子优先级的数量。低延迟中断和异常处理; f、中断信号电平和边沿检测。 1.1寄存器 本小节将使用的GPIO外部中断来实现按键的功能。每个GPIO端口的中断功能通过7个寄存器来进行控制。这些寄存器用来选择中断源、中断优先级和边沿特性。当一个或者多个GPIO输入引起中断时,一个单中断信号输出到整个GPIO端口的中断控制器。 下面三个寄存器定义了引起中断的边沿或检测: a、GPIOIS:GPIO 中断检测寄存器; b、GPIOIBE:GPIO中断边沿寄存器; c、GPIOIEV:GPIO中断时间寄存器。 中断功能通过GPIO中断掩码(GPIOIM)寄存器来进行使能和关闭。 当一个中断条件产生时,有两个地方可以查看中断信号的状态:GPIO源中断状态(GPIORIS)寄存器和GPIO掩码中断状态(GPIOMIS)寄存器。正如名称暗示的那样,GPIOMIS寄存器只显示可以发送给中断控制器的中断条件。GPIORIS 寄存器表示一个 GPIO引脚达到了产生中断的条件,但是不一定会发送给中断控制器。 如果是GPIO电平检测中断,产生中断的电平信号必须保持到中断服务的产生。一旦输入的信号解除中断产生的逻辑信号,对应的GPIORIS寄存器中的源中断寄存器位将被清零。对于GPIO边沿检测中断,GPIORIS寄存器中的RIS位通过向寄存器GPIOICR中的对应位写入1来进行清零。GPIOMIS寄存器中的对应位反应源中断状态位的掩码值。 当编辑中断控制寄存器时,应当将中断全部关闭(GPIOIM清零)。如果对应的位使能的话,则写任何中断控制寄存器都会产生不必要的中断 GPIOIS是中断检测寄存器。置位则对应的引脚进行电平检测,清零则对应的引脚进行边沿检测。在复位时,所有的位清零。如图1.0.1所示。 注意:为了防止产生错误的中断,在配置中断检测寄存器和边沿寄存器的时候,应当清零GPIOIM寄存器中的IME位来屏蔽中断引脚。配置GPIOIS寄存器的IS位和GPIOIBE寄存器的IBE位。清除GPIORIS寄存器。最后通过置位GPIOIM寄存器中的IME位来打开引脚。 图1.0.1 GPIOIS寄存器 GPIOIBE寄存器允许双边沿来触发中断。当GPIOIS寄存器设置为检测边沿时, 则设置GPIOIBE寄存器来配置对应的引脚来检测上升和下降沿,而忽略 GPIOIEV 寄存器中的对应位的配置。清零一位则配置为引脚受GPIOIEV寄存器的控制。复位之后,所有的位都被清零。如图1.0.2所示。 注意:为了防止产生错误的中断,在配置中断检测寄存器和边沿寄存器的时候,应当清零GPIOIM寄存器中的IME位来屏蔽中断引脚。配置GPIOIS寄存器的IS位和GPIOIBE寄存器的IBE位。清除GPIORIS寄存器。最后通过置位GPIOIM寄存器中的IME位来打开引脚。 图1.0.2 GPIOIBE寄存器 GPIOIEV寄存器是中断事件寄存器。置位该寄存器中对应的位来配置对应的引脚检测上升沿或者高电平,这取决于GPIOIS 寄存器对应位的配置。清零该寄存器中的对应位则对应的引脚检测下降沿或者低电平,这取决于GPIOIS寄存器中对应位的配置。复位之后所有的位都清零。如图1.0.3所示。 图1.0.3 GPIOIEV寄存器 GPIOIM寄存器是中断掩码寄存器。置位该寄存器中的对应位,则对应引脚上产生的中断将通过组合中断信号发送给中断控制器。清零则对应的引脚产生的中断不会发送给中断控制器。复位之后所有的位都清零。如图1.0.4所示。 图1.0.4 GPIOIM寄存器 GPIORIS寄存器是源中断状态寄存器。当对应的引脚达到中断条件时,该寄存器中对应的位被置位。如果中断掩码(GPIOIM)寄存器中的对应位被置位,则发送中断信号到中断控制寄存器。某一位读取为0,则说明对应的引脚没有产生中断。对于电平触发中断,引脚上的中断信号必须保持到中断服务。一旦中断信号达不到中断逻辑检测要求,则GPIOIS寄存器对应的RIS位将被清零。对于一个GPIO边沿检测中断,GPIORIS寄存器中的RIS位通过置位GPIOICR寄存器中对应的位进行清零。GOUIMIS寄存器中的位反映RIS位的掩码值。如图1.0.5所示。 图1.0.5 GPIORIS寄存器 GPIOMIS寄存器是掩码中断状态寄存器。如果寄存器中对应位被置位,则对应的中断将被发送到中断控制器。如果某一位被清零,则无论是否有中断产生, 中断都会被屏蔽掉。GPIOMIS寄存器是中断掩码之后的状态。如图1.0.6所示。 图1.0.6 GPIOMIS寄存器 GPIOICR寄存器是中断清零寄存器。对于边沿检测中断,置位GPIOICR寄存器中对应的位,则会清除GPIORIS和GPIOMIS寄存器中对应的位。如果中断是电平检测,则该寄存器中的对应位没有影响。另外,向该寄存器中写入0也没有任何影响。如图1.0.7所示。 图1.0.7 GPIOICR寄存器 1.2实验现象 本实验在是官方CC3200SDK_1.2.0中Interrupt例程代码的基础上修改得来的,打开Interrupt_Demo,由于本次实验用到串口和按键,所以在mian函数的PinMuxConfig()中配置了串口0的输入输出以及GPIO_13和GPIO_22的方向为输入。 本次实验的关键是在ButtonIntInit()函数中,该函数如图1.0.8所示。 图1.0.8 ButtonIntInit()函数 在该函数中吧GPIO_13与GOIO_22配置为下降沿触发,触发的中断函数为Button1IntHandler()以及Button2IntHandler(),进入中断后,首先清除标志位,然后通过串口0打印出“Button1”以及“Button2”。 打开Uniflash,把编译后生成bin文件下载到板子上(参考GPIO小节),把串口选择的拨码的第一个“RXD”以及“CH340G_VCC”拨到ON,这里我们用到了串口0的接收,打开串口调试助手,选择对应的串口号,波特率设置为115200,打开串口,a按下复位,可以看到串口打印信息如图1.0.9所示。 图1.0.9 复位时串口打印 按下板子上的SW2和SW3可以看到串口打印信息如图1.1.0所示。 图1.1.0 按下按键后串口打印 配套资料:http://www.fengke.club 详情地址:http://shop115904315.taobao.com/ 文件下载请点击:
2022-05-05 16:46
CC3200AI 实验教程 ——疯壳·开发板系列开发环境搭建CC3200 的开发涉及到多种开发环境及工具,例如集成开发环境IAR 或者Code Composer Studio(CCS)、固件下载工具
2022-07-27 10:14
寄存器 打开配套的代码例程,打开GPIO文件夹下的IAR工程,如图1.0.3所示为主函数。 图1.0.3 GPIO的主函数 1.1Ti Pin Mux Tool工具 PinMuxconfig()函数
2022-07-27 18:15
CC3200 开发环境的搭建CC3200 的开发涉及到多种开发环境及工具,例如集成开发环境IAR 或者Code Composer Studio(CCS)、固件下载工具 CCS UniFlash
2022-04-24 16:53
本帖最后由 疯壳科技 于 2022-4-25 17:18 编辑 CC3200AI实验教程——开发板系列 CC3200简介随着工业4.0时代的到来,物联网(IOT)作为这个时代最基本也是最重要的技术,变成各路传统半导体制造商的香饽饽,蓝牙、WiFi以及Zigbee等技术迎来大爆发。作为目前唯一能够连接物与互联网的无线通信技术,WiFi技术也就显得愈加重要。CC3200是美国德州仪器公司(TI)针对无线连接SimpleLink Wi-Fi和物联网(IoT)解决方案最新推出的一款MCU,同时也是业界第一个具有内置Wi-Fi的MCU,CC3200采用高性能ARM Cortex-M4内核,主频为80MHz,高达256KB的RAM,64KB的ROM用于存放设备初始化固件、BOOTLOADER、外设驱动库,如图1.0.1为CC3200芯片。 图1.0.1 CC3200芯片CC3200主要包含三大块:MCU、WiFi网络处理器和电源管理三大部分。如图1.0.2所示为CC3200的内部组成结构图。图1.0.2 CC3200内部组成结构图CC3200包含有丰富的MCU外设资源,例如有27个独立可编程、可复用的通用输入输出接口(GPIO)、2路通用的异步通信收发器(UART)、1路高速串行通信接口SPI、一路高速I2C接口、一个多通道音频串行接口(McASP),支持2个I2S通道、一个SD/MMC接口、8位并行摄像头接口、4个通用定时器,可支持16位脉冲宽度调制(PWM)模式以及4通道的高达12位模数转换器(ADC)。CC3200的Wifi网络处理器可以提供快速安全的WLAN和因特网连接,其结构如图1.0.3所示。图1.0.3 CC3200网络处理器结构图其特性如下:a、特有Wi-Fi片上互联网(Internet-On-a-Chip);b、专用ARM MCU,完全免除应用MCU的Wi-Fi 和互联网协议处理负担 ,Wi-Fi和互联网协议存放在ROM 中;C、 包含802.11b/g/n射频、基带、MAC、Wi-Fi 驱动和Supplicant ,内置TCP/IP协议栈;d、 具有 行业标准BSD套接字应用编程接口(API) 支持同时8个TCP或UDP套接字 以及同时2个TLS和SSL套接字;e、强大的加密引擎,可以实现支持256 位AES加密的快速安全的互联网连接 支持 站点(STA)、接入点(AP)和Wi-Fi 直连(P2P)模式 , WPA2可保障个人和企业安全性;f、用于自主和快速Wi-Fi连接的SimpleLink连接管理器;g、 用于简单灵活Wi-Fi配置的智能配置(SmartConfig)技术、AP模式和WPS2。综合以上特性如表1.1所示。表1.1 CC3200网络处理器特性表图4CC3200内置DC-DC转换器,支持宽电压(2.1V~3.6V)范围输入,具有低功耗特性:在休眠状态下电流可低至4uA、低功耗深睡眠(LPDS)模式下电流可低至120uA、串口接收状态下(RX)电流可低至59mA、串口发送状态下(TX)电流可低至229mA。 资料地址:http://www.fengke.club文件下载请点击:
2022-04-25 17:17
CC3200AI实验教程——疯壳·开发板系列语音采集 音频采集板卡主要运用的是TI官方的方案TLV320AIC3254音频编解码器+TPA2012D2RTJ功率放大器,如图1.0.1为语音采集主板的实物图。 图1.0.1 语音采集主板的实物图 图1 TLV320AIC3254(有时也称为AIC3254)是一款灵活的低功耗,低电压立体声音频编解码器,具有可编程输入和输出,PowerTune功能,完全可编程的miniDSP,固定的预定义和可参数化信号处理模块,集成PLL,集成 LDO和灵活的数字接口,支持I2C和SPI。TLV320AIC3254的内部结构,如图1.0.2所示。 图1.0.2 TLV320AIC3254内部结构图 图2 如图1.0.3为语音采集主板TLV320AIC3254外围电路。 图1.0.3 TLV320AIC3254外围电路 图3 TPA2012D2是一款立体声的D类音频放大器(D类放大器),TPA2012D2为每个通道提供独立的关闭控制。使用G0和G1增益选择引脚可以将增益选择为6,12,18或24 dB,在语音采集板卡上主要是实现把采集回来的声音在通过耳机口播放出来的效果,其功能框图,如图1.0.4所示。 图1.0.4 TPA2012D2功能框图 图4 如图1.0.5为语音采集主板的TPA2012D2外围电路。 图1.0.5 TPA2012D2外围电路 图5 如需定制开发,请通过官网“疯壳”网页底部的“联系我们”进行联系 完整配套资料:http://www.fengke.club 对应开源套件地址:http://shop115904315.taobao.com/ 文件下载请点击:
2022-08-01 16:09
1.1.7所示。 图1.1.7 人脸识别信息 图16 点击人脸认证,则会比较人脸与特定的UID人脸进行比对,返回相似度。这里的UID已经记录为之前注册的人脸。串口返回如图1.1.8所示。 图
2022-06-15 19:17
FLASH启动,即把SOP2拨到“ON”。打开下载工具Uniflash,点击快速启动向导中的“新目标配置”,在弹出的配置对话框中选择CC3x Serial(UART) Interface,然后点击OK
2022-07-27 11:51