当前位置: 首页 > wzjs >正文

营口做网站的公司洛阳seo网络推广

营口做网站的公司,洛阳seo网络推广,陕西网站建设价格热线,寻花问柳专注做一家男人爱的网站目录 一、STM32G4 电机外设篇(二) VOFA ADC OPAMP1 VOFA1.1 VOFA上位机显示波形 2 ADC2.1 用ADC规则组对板载电压和电位器进行采样 3 OPAMP(运放)3.1 结合STM32内部运放和ADC来完成对三相电流的采样3.2 运放电路分析 附学习参考…

目录

  • 一、STM32G4 电机外设篇(二) VOFA + ADC + OPAMP
      • 1 VOFA
        • 1.1 VOFA上位机显示波形
      • 2 ADC
        • 2.1 用ADC规则组对板载电压和电位器进行采样
      • 3 OPAMP(运放)
        • 3.1 结合STM32内部运放和ADC来完成对三相电流的采样
        • 3.2 运放电路分析
    • 附学习参考网址
      • 欢迎大家有问题评论交流 (* ^ ω ^)

一、STM32G4 电机外设篇(二) VOFA + ADC + OPAMP

1 VOFA

1.1 VOFA上位机显示波形
  • 通讯协议
    1. JustFoat 只上传浮点数,0000807f结尾
      因为用DMA传输数据,更快
    2. FireWater 只用printf实现,比较慢
      在这里插入图片描述
  • 这里选用第一种方式来实现
  • 打开之前文章生成的Keil
    在/* USER CODE BEGIN PV */中添加如下代码
extern DMA_HandleTypeDef hdma_usart3_tx;
uint8_t DataB1[32] = "LED1 Toggle\r\n";
uint8_t DataB2[32] = "LED2 Toggle\r\n";
uint8_t DataB3[32] = "LED1 and LED2 open\r\n";#define RXBUFFERSIZE 256
char RxBuffer[RXBUFFERSIZE];
uint8_t aRxBuffer;
uint8_t Uart1_Rx_Cnt;float temp[1];
static uint8_t tempData[8] = {0, 0, 0, 0, 0, 0, 0x80, 0x7F};

在 /* USER CODE BEGIN WHILE */中添加如下代码

while(1)
{temp[0] += 0.01f;if(temp[0] > 6.28f){temp[0] = 0;}// printf("%f\r\n",temp[0]);memcpy(tempData, (uint8_t *)&temp, sizeof(temp));HAL_UART_Transmit_DMA(&huart3, (uint8_t *)tempData, 8);HAL_Delay(1);
}
  • 按照之前的文章进行接线,然后编译下载程序
  • 打开vofa+,按照图片操作连接串口,点击控件按钮,拖入左侧表格控件,右键添加Y轴数据,滚轮调整图标,就可以获得如图所示波形
    在这里插入图片描述
  • 可以用这个软件的一些其它控件来调整电机的Kp Ki,做出一个电机的控制窗口

2 ADC

2.1 用ADC规则组对板载电压和电位器进行采样
  • ADC是整个电机控制中非常重要的外设,涉及到母线电压(VBUS)和三相电流的采样,这两者直接作用于电机控制的FOC环路,直接影响电机的运行稳定
  • ADC的分类
    1. SAR ADC
    2. sigma delta ADC
    • 前者是逐次逼近的方法测值的,更快;后者是多次叠加的方法测量的,更加精准
  • ADC有单端输入和差分输入模式,差分输入模式在sigma delta ADC使用的更多,此处选择单端输入
  • 配置ADC1和ADC2时钟四分屏,12bit精度和右对齐
  • ADC1和ADC2使能规则组转换
    在这里插入图片描述
    在这里插入图片描述
  • 点击生成代码,打开Keil工程
    在/* USER CODE BEGIN 2 */中添加如下代码
 /* USER CODE BEGIN 2 */
HAL_UART_Receive_IT(&huart3, (uint8_t *)&aRxBuffer, 1);
HAL_ADCEx_Calibration_Start(&hadc1,ADC_SINGLE_ENDED);//自校验,减少采样误差
HAL_ADCEx_Calibration_Start(&hadc2,ADC_SINGLE_ENDED);/* USER CODE END 2 */
  • 在/* USER CODE BEGIN PV */中修改
float temp[2];
static uint8_t tempData[12] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x80, 0x7F};
/* USER CODE END PV */
  • 在/* USER CODE BEGIN WHILE */中修改
while(1)
{HAL_ADC_Start(&hadc1);HAL_ADC_Start(&hadc2);temp[0] = HAL_ADC_GetValue(&hadc1);temp[1] = HAL_ADC_GetValue(&hadc2) * 0.02094726f; //根据分压电阻计算memcpy(tempData, (uint8_t *)&temp, sizeof(temp));HAL_UART_Transmit_DMA(&huart3, (uint8_t *)tempData, 12);HAL_Delay(1);}/* USER CODE END WHILE */
  • VBUS在采样的时候一般要增加低通滤波器,电机在旋转的时候,母线电容一直处于充放电状态,大负载启动的时候,会有瞬时的母线电压补到母线电容中会导致波动,后面的实验会增加这个滤波器
  • 编译下载程序
  • 打开vofa上位机,复位开发板,连接上位机,实际效果如图所示
    在这里插入图片描述

3 OPAMP(运放)

3.1 结合STM32内部运放和ADC来完成对三相电流的采样
  • 打开之前的stm32cubemx项目

  • 使能三个运放

    1. standalone模式,增益是外置的(选这个)
    2. follower 跟随模式
    3. PGA 可编程增益模式,增益可以用软件更改
      在这里插入图片描述
  • 使能两个ADC中断
    在这里插入图片描述

  • ADC配置,使能采样通道,使能注入组
    在这里插入图片描述
    在这里插入图片描述

  • 点击生成代码,打开Keil软件

  • 使能运放,在112行左右插入代码

  /* USER CODE BEGIN 2 */HAL_OPAMP_Start(&hopamp1);HAL_OPAMP_Start(&hopamp2);HAL_OPAMP_Start(&hopamp3);
  • 在 /* USER CODE BEGIN WHILE */的while循环中插入如下代码
HAL_ADCEx_InjectedStart_IT(&hadc1);
HAL_ADCEx_InjectedStart_IT(&hadc2);//使能规则组转换,并产生注入组中断
  • 在USER CODE 4中添加如下代码
//注入中断处理程序
void HAL_ADCEx_InjectedConvCpltCallback(ADC_HandleTypeDef *hadc)
{/*Prevent unused argument(s)compilation warning */UNUSED (hadc);if(hadc == &hadc1){temp[2] = hadc1.Instance->JDR1;temp[2] = (temp[2]-0x7ef)*0.193359375f;temp[3] = hadc1.Instance->JDR2;temp[3] = (temp[3]-0x7ef)*0.193359375f;}if(hadc == &hadc2){temp[4] = hadc1.Instance->JDR1;temp[4] = (temp[4]-0x7ef)*0.193359375f;}
}
3.2 运放电路分析

在这里插入图片描述

  • R58,R59 作用是为了输入的正向端和负向端输入阻抗匹配
  • R52,R53 为分压电阻,作用是将输入正向端电压正向偏置1.65V
  • R56与 R59 形成负反馈增益,运放整体增益计算如下
  • 虚断:OP1_VINP 输入电压为 Vin;
  • 虚短:
    V i n R 59 = V o u t R 59 + R 56 \frac{Vin}{R59} = \frac{Vout}{R59 + R56} R59Vin=R59+R56Vout
    增益 G a i n = V o u t V i n = 1 + R 56 R 59 增益Gain = \frac{Vout}{Vin} = 1 + \frac{R56}{R59} 增益Gain=VinVout=1+R59R56
    在这里插入图片描述
    在这里插入图片描述
  • 修改Temp数组为5大小,修改DMA传输24bit
  • 编译下载程序,实验结果如下
    在这里插入图片描述

附学习参考网址

  1. STM32G4 FOC开发实战
  2. SAR ADC和sigma delta ADC的区别-CSDN博客
  3. 【运放2】如何理解运放的虚短虚断,他们有啥用?_哔哩哔哩_bilibili

欢迎大家有问题评论交流 (* ^ ω ^)

  • 如果板子有时候没反应就把电源都拔了重新接线上电,说不定就好了QAQ
http://www.dtcms.com/wzjs/52913.html

相关文章:

  • 家装室内设计培训班哪里广州营销优化
  • wordpress文章对齐方式百度地图优化
  • 黄骅市做网站价格怎么提高关键词搜索权重
  • 拼团网站建设一网信息一个简单便捷的新闻网站
  • wordpress怎么破解付费插件电商seo优化是什么
  • 新网备案成功了怎么做网站抖音推广
  • 设计风格好看的网站百度推广中心
  • 宝鸡网站建设天伟网络百度top排行榜
  • 网站设计大小深圳网站建设公司
  • 网站建设发展前景长沙百度搜索排名优化
  • 现在电商做的设计用的什么网站搜索引擎优化排名优化培训
  • 在线表情包制作网站seo课程哪个好
  • html网站要怎么做今日的重大新闻
  • 网站开发下单功能科学新概念seo外链平台
  • 北京互联网公司有多少家seo检测优化
  • 一起做网店类型的网站网站内容管理系统
  • 小说网站 做百度联盟郑州seo管理
  • 公司网站的意义如何在百度发布文章
  • 赣州做网站jx25电商营销推广方案
  • 网站的困难一个完整的产品运营方案
  • 宝鸡做网站的公司有哪些搜索引擎营销的英文简称
  • 做面条的网站守游网络推广平台
  • 杭州开发网站的公司uc浏览器关键词排名优化
  • 建立平台网站需要花多少钱注册城乡规划师教材
  • 青岛市建设监督管理局网站鞍山seo外包
  • 重庆网站制作技术网络推广经验
  • 做的比较好的教育网站济南疫情最新消息
  • 百度联盟 网站备案百度认证平台
  • 58桐城网站做装修推广是真的吗国际最新十大新闻事件
  • 公司网站更换域名seo推广要多少钱