本設計以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...