DSP 2812 为控制器。采用SPWM 双极性 逆变。 已通过实验验证
2021-09-07 23:10:35 2KB SPWM 单相全桥逆变
1
STM32F407单片机 24bit_ADC_电压采集+16bit_DAC_电压输出实验KEIL工程源码+AD7190 ADC模块+AD5689R DAC模块硬件PDF原理图
STM32F407单片机24bit_ADC_AD7190称重模块+16bit_DAC_电压输出实验KEIL工程源码 int main(void) { uint16_t data=0xFFFF/2; double temp,opa; float data_temp; int32_t weight_count; uint8_t cali_flag=0; /* 复位所有外设,初始化Flash接口和系统滴答定时器 */ HAL_Init(); /* 配置系统时钟 */ SystemClock_Config(); /* 初始化串口并配置串口中断优先级 */ MX_DEBUG_USART_Init(); /* 初始化LED */ LED_GPIO_Init(); KEY_GPIO_Init(); /* 初始化BEEP */ BEEP_GPIO_Init(); if(AD7190_Init()==0) { printf("获取不到 AD7190 !\n"); while(1) { HAL_Delay(1000); if(AD7190_Init()) break; } } printf("检测到 AD7190 !\n"); weight_ad7190_conf(); HAL_Delay(500); weight_Zero_Data = weight_ad7190_ReadAvg(6); printf("zero:%d\n",weight_Zero_Data); printf("硬石DAC(AD5689)模块模拟量电压输出\n"); AD5689_Init(); AD5689_WriteUpdate_DACREG(DAC_A,data); AD5689_WriteUpdate_DACREG(DAC_B,0xFFFF-data); printf("data:%d\n",data); opa=OPA_RES_R2/OPA_RES_R1; while(1) { weight_count=weight_ad7190_ReadAvg(3); data_temp=weight_count-weight_Zero_Data; weight=data_temp*1000/weight_proportion; printf("重量:%d->%.2f\n",weight_count,weight); HAL_Delay(200); if(KEY1_StateRead()==KEY_DOWN) // 清零 { weight_Zero_Data = weight_ad7190_ReadAvg(6); printf("zero:%d\n",weight_Zero_Data); cali_flag=1; } if(KEY2_StateRead()==KEY_DOWN) // 校准:必须先按“清零”键,然后把20g砝码放在称上,按下校准键 { if(cali_flag) { weight_count = weight_ad7190_ReadAvg(6); weight_proportion=(weight_count-weight_Zero_Data)*1000/100; printf("weight_proportion:%d\n",weight_proportion); } cali_flag=0; } if(KEY3_StateRead()==KEY_DOWN) { if(data>(0xFFFF-1000)) data=(0xFFFF-1000); data +=1000; AD5689_WriteUpdate_DACREG(DAC_A,data); AD5689_WriteUpdate_DACREG(DAC_B,0xFFFF-data); temp=(double)(data*2-0xFFFF)*2500*opa/0xFFFF; //temp为目标电源值,这里先放大1000倍(方便计算而已),等后面显示再还原 //data是数字量DA值,当data取值
AD7190 ADC模块PDF原理图+AD集成封装库,集成封装库列表: Library Component Count : 19 Name Description ---------------------------------------------------------------------------------------------------- AD7190 AD7190 BAS70-04LT1 70V,70mA,VF=0.41V@1mA Cap Capacitor Cap Pol Polarized Capacitor (Radial) DIODE Diode DIODE SCHOTTKY Schottky Diode HOLE Header 8 Header, 8-Pin Inductance2 Inductance Inductance_1 LED PR9 LMV331 General-purpose Low-voltage Comparators MCP6024 REF3xxx REF3xxx Res1 Resistor TPS6040x UNREGULATED 60-mA CHARGE PUMP VOLTAGE INVERTER TPS61040 DC-DC Boost Converter XTAL_2Pin Crystal Oscillator
CS5530的程序,我使用的是外部中断函数中读取的AD值数据,中英文数据手册百度文库就有,我也不上传了。给驱动有问题的朋友一个参考。
2021-09-07 14:07:06 3KB CS5530
1
ADS1115(16bit ADC)驱动程序
2021-09-07 14:03:46 3KB ADS1115 HAL库 STM32
1
ADS1118(16bit ADC)
2021-09-07 14:03:46 3KB ADS1118 HAL库 STM32
1
STM32F407IGT6单片机ADC实验+DAC实验例程7个合集KEIL工程源码+文档说明: ADC-单通道采集.rar ADC-单通道采集(DMA).rar ADC-双ADC慢速交叉模式.rar ADC-多通道采集(DMA).rar ADC-芯片温度读取.rar DAC-可调电压输出.rar DAC-正弦波.rar
时间交替ADC系统通过几片低速的ADC芯片进行并行交替采样,可以成倍地提高系统的采样频率,同时保持较高的分辨率[1]。但是由于芯片及具体实现过程中一些实际因素的影响,不可避免地会引入通道失配误差[2]。本文利用两片ADC芯片及外围电路来实现时间交替ADC系统,并通过Matlab软件对采样数据进行通道失配误差的估计和校正。Matlab仿真结果表明,该系统的采样率基本上达到了单片ADC的两倍,同时其通道失配误差通过算法校正后得到了有效地消除。
1
TI F2808 数据采集及幅值与频率的求解
2021-09-07 10:13:22 36KB TI ADC
1