应用电子电路
在本节中,我们来完成控制模块的电路设计。首先我们需要对控制模块做一下简单的功能分析,也就是说我们先要了解控制模块都具有哪些功能,然后再逐步的完成这些功能。
实际上我们所做的控制模块除了本身的功能之外,还需要将电源模块和NanoPi两个电路板插在其上方组合在一起,所以我们的控制电路板的整体结构如下:
也就是说,控制模块是一个底板,上面带有几组插槽,电源模块和NanoPi通过引脚插入到底板当中完成组装。
此外,控制模块还需要接入超声波模块用于测量前方障碍物到车体的距离,以及一些预留的GPIO引脚。
现在我们来完成控制模块的电路设计,首先是芯片的选型,我们本来可以选用STM32F103RCT6作为控制模块的处理芯片,并在其上完成嵌入式程序的开发,但就目前情况来看此芯片价格高居不下,于是我们选用了STM32F407VET6,也就是说使用了Cortex-M4系列芯片来作为我们的处理芯片。
第一步,为STM32F407VET6加入到我们的电路原理图当中:
第二步,在12和12脚上加入外部晶振电路,其中晶振频率为8MHz,两个电容均为22pF:
第三步,为14脚加入复位电路,并将94脚BOOT0和37脚BOOT1通过下拉电阻接地:
第四步,为VBAT、VDD、VSS、VDDA、VERF接入电源并接入电容:
第五步,为72脚和76脚加入SWD固件烧写接口,即1.27mm间距孔(使用其它间距也可以,例如2.54mm间距):
第六步,为VCAP加入电容:
这样我们的STM32F407VET6的基础电路就完成,之后我们需要在相应的GPIO上加入我们定制的功能。
功能一:加入AD采集功能,我们使用PA0、PA1、PC2、PC3进行电压采集,分别是ADC1_CH0、ADC1_CH1、ADC1_CH12、ADC1_CH13,其中ADC1_CH0为我们的电源电压采集功能,其它通道为预留功能:
功能二:电机驱动信号PWM输出,我们使用TIM4的4个PWM输出脚PD12、PD13、PD14、PD15以及TIM3的4个PWM输出脚PC6、PC7、PC8、PC9,其中TIM3的4路PWM输出为预留功能:
功能三:使用HCSR04超声波测距功能,接入PD9和PD8,由于HCSR04的ECHO脚输出是5V,所以我们使用10K和20K分压电阻将其转为3.33V:
功能四:我们参考MPU6050电子陀螺仪的外围电路,将其加入到设计图当中,并将PA6和PA7接入到其中,也就是I2C1接口,其中PB6和PB7都加了10K的上拉电阻:
功能四:我们使用PE0和PE1两个引脚来作为系统的信号指示灯:
功能五:加入与电源模块的接口,此接口我们在前一节中已经完成,对应的连接到控制模块中。接口中输入5V电源,我们需要通过AMS1117电源芯片将其转为3.3V,同时加入一个LED电源指标灯,当电源工作正常时LED灯亮起:
功能六:加入NanoPi接口并将其USB接口引出,NanoPi与我们控制模块中有几个部分需要连接:
电源接口5V供电。
使用串口与STM32连接。
引出USB插槽到控制模块。
我们参考NanoPi Duo2的GPIO接口来完成相应的功能:
其中,U4为USB插座,用于插入USB摄像头;P3为NanoPi-Duo2自身的Debug接口;NanoPi的UART1和STM32的UART1相连,用于数据通信,注意Tx和Rx需要反相接入。
功能七:使用串口2作为STM32的Debug接口:
最后:引出预留的5V电源和3V电源以及一些GPIO脚:
这样,我们就基本上完成了控制模块的电路设计,整体设计原理图如下:
可以看到我们的STM32F407VET6和NanoPi-Duo2剩余了很多GPIO引脚没有被使用,包括I2C、SPI、UART、GPIO等功能,读者可以根据自己的需要加入相应的功能。我们将在下一节来对控制模块的电路进行布局和布线。
全部0条评论
快来发表一下你的评论吧 !