RFSOC47DR-8通道ADC + 8通道DAC PCIe数据处理卡

概述

该板卡基于 Xilinx 公司 RFSOC 系列芯片,最大提供 8 个 9.8GSPS 14 位 DAC 输出通道与 8 个5GSPS 14 位ADC 输入通道。板卡支持外部 Sync 同步信号输入,外部 Refclk 参考时钟输入和外部Trig 触发信号输入,可以完成多板卡同步输出、同步输出和同步采样功能。QT305 的金手指侧可以支持 8 Lane PCIe3.0 高速Serdes 通道,最高支持 8.0Gbps 波特率,为数据采集卡提供了大带宽的数据传输。板卡支持板载 56Gbit DDR4 SDRAM 存储,同时提供一个 USB3.0 接口,一个SATA 接口,一个 10/100/1000MBASE-T 以太网接口和一个 RS232 Console 调试接口。板卡支持 PCIe 金手指供电和 ATX 插头供电两种供电方式。上电后根据用户的选择方式不同,单板可以从Micro-SD 卡启动,QSPI Flash 启动,或者由JTAG 仿真器动态加载Bit 文件启动。
在这里插入图片描述
更多信息请加weixin-pt890111获取
 基于 Xilinx RFSOC ZU27DR 或 ZU47DR
 8 通道 ADC 采样
 8 通道 DAC
 PCI Express x8 GEN3 Interface
 4 核ARM Cortex-A53 处理器,主频最高 1.3G
 板载 7GB DDR4 SDRAM 缓存,最高支持 2400MT
 板载 x2 512Mb QSPI 配置 Flash
 X1 10/100/1000Mbps 以太网(RJ45)接口
 X1 Micro SD 卡
 X1 SATA 接口
 X1 USB2.0/USB3.0 接口
 X1 UART RS232 调试串口
 X15 GPIO 接口,支持 3.3V 和 5V 可选
 支持外参考时钟输入
 支持外部触发信号输入

在这里插入图片描述

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的示例代码,用于在 STM32F030 中实现多通道 ADC 8K 音频采样和 DMA 传输: ```c #include "stm32f0xx.h" #define BUFFER_SIZE 1024 uint16_t adc_buffer[BUFFER_SIZE]; void DMA1_Channel1_IRQHandler(void) { if (DMA_GetITStatus(DMA1_IT_TC1)) { // DMA 传输完成中断 // 处理采样数据 // ... DMA_ClearITPendingBit(DMA1_IT_TC1); } } void ADC1_IRQHandler(void) { if (ADC_GetITStatus(ADC1, ADC_IT_EOC)) { static uint16_t buffer_index = 0; // 读取 ADC 数据 adc_buffer[buffer_index++] = ADC_GetConversionValue(ADC1); // 如果缓冲区已满,则启动 DMA 传输 if (buffer_index >= BUFFER_SIZE) { DMA_Cmd(DMA1_Channel1, DISABLE); DMA_SetCurrDataCounter(DMA1_Channel1, BUFFER_SIZE); DMA_Cmd(DMA1_Channel1, ENABLE); buffer_index = 0; } ADC_ClearITPendingBit(ADC1, ADC_IT_EOC); } } int main(void) { // 启用 ADC 时钟 RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE); // 启用 DMA 时钟 RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE); // 初始化 ADC ADC_InitTypeDef adc_init; ADC_StructInit(&adc_init); adc_init.ADC_Resolution = ADC_Resolution_12b; adc_init.ADC_ContinuousConvMode = ENABLE; adc_init.ADC_ExternalTrigConv = ADC_ExternalTrigConv_T1_CC1; adc_init.ADC_ExternalTrigConvEdge = ADC_ExternalTrigConvEdge_Rising; adc_init.ADC_DataAlign = ADC_DataAlign_Right; adc_init.ADC_ScanDirection = ADC_ScanDirection_Upward; ADC_Init(ADC1, &adc_init); // 配置 ADC 通道 ADC_ChannelConfig(ADC1, ADC_Channel_1, ADC_SampleTime_55_5Cycles); ADC_ChannelConfig(ADC1, ADC_Channel_2, ADC_SampleTime_55_5Cycles); // 启用 ADC DMA 传输 ADC_DMARequestModeConfig(ADC1, ADC_DMAMode_Circular); ADC_DMACmd(ADC1, ENABLE); // 初始化 DMA DMA_InitTypeDef dma_init; DMA_StructInit(&dma_init); dma_init.DMA_PeripheralBaseAddr = (uint32_t)&ADC1->DR; dma_init.DMA_MemoryBaseAddr = (uint32_t)adc_buffer; dma_init.DMA_DIR = DMA_DIR_PeripheralSRC; dma_init.DMA_BufferSize = BUFFER_SIZE; dma_init.DMA_PeripheralInc = DMA_PeripheralInc_Disable; dma_init.DMA_MemoryInc = DMA_MemoryInc_Enable; dma_init.DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord; dma_init.DMA_MemoryDataSize = DMA_MemoryDataSize_HalfWord; dma_init.DMA_Mode = DMA_Mode_Circular; dma_init.DMA_Priority = DMA_Priority_High; DMA_Init(DMA1_Channel1, &dma_init); // 启用 DMA 传输完成中断 DMA_ITConfig(DMA1_Channel1, DMA_IT_TC, ENABLE); NVIC_EnableIRQ(DMA1_Channel1_IRQn); // 启用 ADC 转换完成中断 ADC_ITConfig(ADC1, ADC_IT_EOC, ENABLE); NVIC_EnableIRQ(ADC1_IRQn); // 启动 ADC 转换 ADC_Cmd(ADC1, ENABLE); ADC_StartOfConversion(ADC1); while (1) { // 等待 DMA 传输完成中断 } } ``` 这个代码仅供参考,具体实现方式可能需要根据具体的应用场景进行调整。需要注意的是,这个示例代码中只启用了两个 ADC 通道,如果需要使用更多的 ADC 通道,需要对代码进行相应的修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值