文章目录 文档目的XMOS简介评估板”xCORE VOCAL FUSION XP-VF3100-BASE”简介主处理器资源GPIO介绍GPIO简介连接FLASH的GPIOI2C使用的GPIOLED使用的GPIOButton使用的GPIO
文档目的
记录在XMOS的芯片平台上软件开发入门的过程。
硬件平台使用官方评估板”xCORE VOCAL FUSION XP-VF3100-BASE”IDE开发环境win10 下的 xTIMEcomposer Community_14.3.0 XMOS简介
XMOS是国外的半导体设计公司,设计用于“物联网的”高性能芯片,内核架构为多核平行架构的MIPS架构。
评估板”xCORE VOCAL FUSION XP-VF3100-BASE”简介
“xCORE VOCAL FUSION XP-VF3100-BASE”是USB Audio方案的一款评估板,主处理器型号是XVF3100-TQ128。
板子只记录和软件开发入门有关的部分,比如内核、内存,Flash大小,GPIO,定时器。
主处理器资源
2个TILE,之间通过xCONNECT links连接
16个core(每个tile 8个)
512KB SRAM(每片256KB)
2MB Flash
20个定时器(每片10个)
81个GPIO口
GPIO介绍
因为工程需要配置GPIO的资源,所以需要先熟悉GPIO。GPIO有1位的,4位的,8位的,16位的。具体看评估板的原理图和主芯片的数据手册。主要包括:
连接FLASH的GPIO控制LED的GPIO检测按键的GPIOI2C的GPIO GPIO简介
GPIO是和tile有关联的,不能在某个tile中操作另一个tile中的gpio。
GPIO属于哪个tile,是多少bit?需要根据主芯片的数据手册,手册记录的GPIO格式如下图:
用X0Dnn命名的,比如X0D00,是在tile0中的引脚,用X1Dnn命名的,比如X1D00,是在tile1中的引脚。
至于是多少bit的,要看图示描述中的1A0、4A0、或者8A0,第一个字符1表示1位的引脚,4表示4位的引脚,8表示8位的引脚;第二个字符A表示GPIO的名称PORT A;上标0表示bit0,比如8A的GPIO,上标有0-7,分别对应8个位;4A的GPIO,上标有0-3,分别对应4个位。
像X0D02这种,既可当4A0,也可以当8A0或者16A0。
这样,通过查数据手册,就能知道引脚的位和名称,以及位序号了。在程序中如何使用呢?XMOS为用户提供了库,库和开发环境xTIMEcomposer是需要购买开发板,根据开发板上的唯一号码来注册才能下载的。
使用xTIMEcomposer产生工程之后,有头文件定义了GPIO,比如文件“xs1_g4000b-512.h”,摘取一段如下:
#define XS1_PORT_8A 0x80000#define XS1_PORT_8B 0x80100#define XS1_PORT_8C 0x80200#define XS1_PORT_8D 0x80300#define XS1_PORT_4A 0x40000#define XS1_PORT_4B 0x40100#define XS1_PORT_4C 0x40200#define XS1_PORT_4D 0x40300#define XS1_PORT_4E 0x40400#define XS1_PORT_4F 0x40500#define XS1_PORT_1A 0x10200#define XS1_PORT_1B 0x10000#define XS1_PORT_1C 0x10100#define XS1_PORT_1D 0x10300
XS1_PORT_1A就是1A口,XS1_PORT_4A就是4A口,XS1_PORT_8A就是8A口。
假设,XS1_PORT_1A作为输出口,那么:
out port p = XS1_PORT_1A;p <: 1; // 输出高电平
所用的是xmos的xc语言,后面说明。
连接FLASH的GPIO
评估板Flash使用的GPIO pin如下所示
图中Port所述的P1B就表示XS1_PORT_1B,P4B0表示XS1_PORT_4B的bit 0,如此类推。后面描述不再赘述。
I2C使用的GPIO
评估板I2C使用的GPIO pin如下所示
LED使用的GPIO
评估板有13个LED,所用GPIO pin如下所示
Button使用的GPIO
评估板有4个button,使用的GPIO pin如下所示
本篇描述了评估板的硬件资源介绍,后续再描述xc软件开发,其中工程配置以及软件对硬件进行操作时,需要知道这些硬件资源的情况。