什么是FPGA?是一种高速采集电压的芯片?

什么是FPGA?是一种高速采集电压的芯片?,第1张

FPGA是英文Field Programmable Gate Array的缩写,即现场可编程门阵列,它是在PAL、GAL、EPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。

FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个新概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。FPGA的基本特点主要有:

1)采用FPGA设计ASIC电路,用户不需要投片生产,就能得到合用的芯片。 --2)FPGA可做其它全定制或半定制ASIC电路的中试样片。

3)FPGA内部有丰富的触发器和I/O引脚。

4)FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。

5) FPGA采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容。

可以说,FPGA芯片是小批量系统提高系统集成悄枝度、可靠性的最佳选择之一。

目前FPGA的品种很多,有XILINX的XC系列、TI公司的TPC系列、ALTERA公司的FIEX系列等。

FPGA是由存放在片内RAM中的程序来设置其工作状态的,因此,工作时需要对片内的RAM进行编程。用户可以根据不同的配置模式,采用不同的编程方式。

加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA进入工作状态。掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用。FPGA的编程无须专用的FPGA编程器,只须用通用的EPROM、PROM编程器即裂运缓可。当需要修改FPGA功能时,只需换一片EPROM即可。这样,同一片FPGA,不同的编程数据,可以产生不同的电路功能。因此,FPGA的使用非常灵活。

FPGA有多肆模种配置模式:并行主模式为一片FPGA加一片EPROM的方式;主从模式可以支持一片PROM编程多片FPGA;串行模式可以采用串行PROM编程FPGA;外设模式可以将FPGA作为微处理器的外设,由微处理器对其编程。

下面是我以前用过的一个程侍指序,不过是MEGA32的,我没用过mega16,楼主只要将以下用到的控制寄存器修改成mega16的即可:

基本思想是初始化程序中设定好自动连续转换,再在中断服务程序中读取结果(每中断一次获得一个通道的转换结果值)。

void adc_init(void)

{

ADCSR = 0x00 // disable adc

ADMUX = 0xC0 // 参考电压选老银配择片内基准电压 2.56V,从PA0号通道开始

ACSR = 0x80 // 不用模拟比较器

ADCSR = 0x89// 启动ADC,转换结果右对齐,分频因子 2

ADC_chn = 0x00 // 选择第一个通道(PA0)

}

void adc_isr(void)

{

UINT ADC_value

ADCSR |= 0x10 // 清 AD 完成标志

ADC_value = ADCL// 先读低搏锋八位数据

ADC_value |= (int)ADCH <<8// 再读高二位数据并移至高字节

if ( ADC_chn == 0x00 )

{input[0] = ADC_value// 保存PA0的值

}

else if ( ADC_chn == 0x01 )

{input[1] = ADC_value// 保存PA1的值

}

else if ( ADC_chn == 0x02 )

{ input[2] = ADC_value// 保存PA2的值

}

。。。。。。。。

else if ( ADC_chn == 0x07 )

{ input[7] = ADC_value// 保存PA7的值

}

ADC_chn ++ // 通道号加 1

if ( ADC_chn >0x07 ) ADC_chn = 0x00

ADMUX = 0xC0 + ADC_chn // 切换通道

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12354050.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存