基於STM32的恆流源設計

2021-10-25 10:07:08 字數 1396 閱讀 1003

本設計以stm32f103rct6為主控晶元,利用mos管的恆流區特點,設計恆流源。設計電流範圍為1-300ma。

基本原理圖:

q2為n溝道mos管,在正常工作情況下,運放與mos管之間構成深度負反饋,使得輸入控制電壓與vr虛短,近似相等。這可以得到負載電流

3.1.電源

電路圖如圖所示:

電源由+12v單電源輸入,產生了正負5v雙電源和+3.3v電源。+12v與-5v為運放電源,+5v為dac電源,+3.3v為stm32、oled電源。

3.2.dac控制

電路如圖所示:

lm385bd-2-5為dac提供電壓參考,參考電壓為2.5v。74lvc4245a為電平轉換器,使得3.3v電平與5v電平相容。dac1220為16/20位dac,使用時設定的是20位dac。

3.3.控制輸出

電路如圖所示:

運放使用opa2277u精密運放,經過第一級運放耦合後,再與mos管構成負反饋電路。mos管訊號為irf640,irf640的漏源極電阻小,為180m

dac1220採用spi時序控制,只利用了spi的時鐘線,主發從收線和片選。

/*

函式功能:使能器件

*/void enable_dac1220(u8 set)

void dac1220_toggle(void)

/*函式功能:dac1220寫入乙個位元組資料

引數: data:寫人的資料

spi時序

*/void dac1220_write(u8 data)}/*

函式功能:dac1220初始化

*/void init_dac1220(void)

/*函式功能:dac寫入編碼值資料

輸入到24位的資料暫存器

完整的電路圖與程式,我上傳到了csdn上,鏈結

基於STM32的串列埠通訊

序列通訊一般是以幀格式傳輸資料,即一幀一幀的傳輸,每一幀都含有起始訊號,資料資訊以及停止資訊等。資料各個位同時傳輸,速度快,但是占用引腳資源多。eg led1602 資料按位順序傳輸,占用引腳資源少,但是速度相對較慢。一位一位傳輸 bit iic spi 串列埠通訊 單工,半雙工,全雙工 同步通訊 ...

基於stm32的簡單多工切換設計

系統資料 1 當前的pid 2 所有的程序總數pamount 多工系統的初始化 1 設定msp值 2 設定臨時的psp值 因為這段實際上只在啟動定時器之前有效 3 設定control 1 1 設定雙堆疊 馬上會自動切換到psp上 4 設定pid 0,設定pamount 0 5 設定為程序資訊表起始位...

linux spi驅動分析 基於STM32

linux kernel 版本2.6.30,spi驅動基於platform device,platform driver驅動模型來編寫.spi分為主從裝置,乙個主裝置下可心掛接多個從裝置,linux驅動中使用struct spi master結構來表示乙個主裝置,使用struct spi devic...