1、环境说明
器件:EP2C8Q208C8N
系统环境:WINDOWS XP SP3,QUARTUS 8.1,NIOS II IDE 8.1
本文为笔者实验日志,记录ads8321的基本驱动方式。
2、配置说明
NIOS II高性能版。
系统时钟:75MHz。
SPI配置如附图所示。
连接方式:
Ads8321 NIOS II SPI
DCLK ß--------à SPI_CLK
DOUT ß--------à SPI_MISO
CS_N ß--------à SPI_SS[1] (注:本实验有两个spi外设,ads8321为第二个外设)
关于NIOS II SPI的详细分析见:http://www.cnblogs.com/lwpo2008/archive/2009/08/11/1543909.html
3、程序
头文件包含:
1#include "altera_avalon_spi_regs.h"
2#include "altera_avalon_spi.h"
3
2#include "altera_avalon_spi.h"
3
测试函数:
alt_16 ReadAds8321(void)
{
alt_16 adResult;
alt_u8 receiveData[3];
//注意这里依据笔者实验连接选择从设备1(第二个参数)
//最后一个参数flag不能取ALT_AVALON_SPI_COMMAND_MERGE(非0)。
//本实验取0,是考虑到ads8321需要将CS_N拉高才能更新采样的时序要求
alt_avalon_spi_command(SPI_BASE, 1,0,NULL,3,receiveData,0);
//依据数据表说明,取出有用数据
adResult = receiveData[0]<<6;
adResult = (adResult<<2) | receiveData[1];
adResult = (adResult<<6) | receiveData[2]>>2;
return adResult;
}
{
alt_16 adResult;
alt_u8 receiveData[3];
//注意这里依据笔者实验连接选择从设备1(第二个参数)
//最后一个参数flag不能取ALT_AVALON_SPI_COMMAND_MERGE(非0)。
//本实验取0,是考虑到ads8321需要将CS_N拉高才能更新采样的时序要求
alt_avalon_spi_command(SPI_BASE, 1,0,NULL,3,receiveData,0);
//依据数据表说明,取出有用数据
adResult = receiveData[0]<<6;
adResult = (adResult<<2) | receiveData[1];
adResult = (adResult<<6) | receiveData[2]>>2;
return adResult;
}