XRP7714是一款四輸出脈寬調制(PWM)分級降壓(step down)DC-DC控制器,并具有內置LDO提供待機電源。該器件在單個IC上為電池供電的產品提供了整套的電源管理方案,并且通過內含的I2C串行接口進行整體的編程配置
上傳時間: 2013-11-01
上傳用戶:xiaohuanhuan
14.1本章導讀所有LPC1300系列Cortex-M3微控制器的16位定時器塊都相同。14.2基本配制CT16B0/1采用以下寄存器進行配制:1)管腳:CT16B0/1管腳必須通過IOCONFIG寄存器塊進行配制(見“I/O配制寄存器IOCON_PIOn”小節)。2)功率與外設時鐘:在SYSAHBCLKCTRL寄存器中置位位7與位8(見表“系統AHB時鐘控制寄存器位描述”)。
上傳時間: 2013-11-16
上傳用戶:liuwei6419
第1章 集成運放應用電路設計須知 1.1 集成運放簡介 1.1.1 集成運放的內部框圖、分類和圖形符號 1.1.2 集成運放的引腳功能、封裝及命名方法 1.1.3 集成運放的參數 1.2 理想運算放大器 1.2.1 運放的理想參數及理想運放的電路模型 1.2.2 簡化設計的基本準則 1.3 選擇電阻器須知 1.3.1 電阻器系列及溫度系數 1.3.2 常用電阻器的結構與特點及參數 1.4 選用電容器須知 1.4.1 電容器容量系列、損耗及絕緣電阻 1.4.2 常用電容器的類型、特點及規格 1.5 集成運放的電源 1.5.1 集成運放電源的選擇 1.5.2 各類電源系列 1.5.3 集成運放電源使用注意事項 第2章 集成運放調零、相位補償與保護電路的設計 2.1 偏置電流補償電路及調零電路的設計 2.1.1 偏置電流補償電路的設計 2.1.2 調零電路的設計
上傳時間: 2013-10-09
上傳用戶:wanqunsheng
一、電阻 電阻在電路中用“R”加數字表示,如:R15表示編號為15的電阻。電阻在電路中的主要作用為分流、限流、分壓、偏置、濾波(與電容器組合使用)和阻抗匹配等。
上傳時間: 2013-11-23
上傳用戶:非洲之星
使用內聯匯編可以在 C/C++ 代碼中嵌入匯編語言指令,而且不需要額外的匯編和連接步驟。在 Visual C++ 中,內聯匯編是內置的編譯器,因此不需要配置諸如 MASM 一類的獨立匯編工具。這里,我們就以 Visual Studio .NET 2003 為背景,介紹在 Visual C++ 中使用內聯匯的相關知識(如果是早期的版本,可能會有些許出入)。 內聯匯編代碼可以使用 C/C++ 變量和函數,因此它能非常容易地整合到 C/C++ 代碼中。它能做一些對于單獨使用 C/C++ 來說非常笨重或不可能完成的任務。
上傳時間: 2013-11-06
上傳用戶:zhaiye
CH451 使用一個系統時鐘信號來同步芯片內部的各個功能部件,例如,當系統時鐘信號的頻率變高時,顯示驅動刷新將變快、按鍵響應時間將變短、上電復位信號的寬度將變窄、看門狗周期也將變短。一般情況下,CH451 的系統時鐘信號是由內置的阻容振蕩提供的,這樣就不再需要任何外圍電路,但內置RC 振蕩的頻率受電源電壓的影響較大,當電源電壓降低時,系統時鐘信號的頻率也隨之降低。在某些實際應用中,可能希望CH451 提供更長或者更短的顯示刷新周期、按鍵響應時間等,這時就需要調節系統時鐘信號的頻率。CH451 提供了CLK 引腳,用于外接阻容振蕩。當在CLK 引腳與地GND 之間跨接電容后,系統時鐘信號的頻率將變低;當在CLK 引腳與正電源VCC 之間跨接電阻后,系統時鐘信號的頻率將變高。因為CH451 的系統時鐘信號被用于芯片內部的所有功能部件,所以其頻率不宜進行大幅度的調節,一般情況下,跨接電容的容量在5pF 至100pF 之間,跨接電阻的阻值在20KΩ至500KΩ之間。跨接一個47pF 的電容則頻率降低為一半,跨接一個47KΩ的電阻則頻率升高為兩倍。另外,CH451 的CLK 引腳可以直接輸入外部的系統時鐘信號,但外部電路的驅動能力不能小于±2mA。CH451 在CLKO 引腳提供了系統時鐘信號的二分頻輸出,對于一些不要求精確定時的實際應用,可以由CLKO 引腳向單片機提供時鐘信號,簡化外圍電路。 單片機接口程序下面提供了U1(MCS-51 單片機)與U2(CH451)的接口程序,供參考。;**********************;需要主程序定義的參數CH451_DCLK BIT P1.7 ;串行數據時鐘,上升沿激活CH451_DIN BIT P1.6 ;串行數據輸出,接CH451 的數據輸入CH451_LOAD BIT P1.5 ;串行命令加載,上升沿激活CH451_DOUT BIT P3.2 ;INT0,鍵盤中斷和鍵值數據輸入,接CH451 的數據輸出CH451_KEY DATA 7FH ;存放鍵盤中斷中讀取的鍵值
上傳時間: 2013-11-22
上傳用戶:671145514
用途:測量地磁方向,測量物體靜止時候的方向,測量傳感器周圍磁力線的方向。注意,測量地磁時候容易受到周圍磁場影響,主芯片HMC5883 三軸磁阻傳感器特點(抄自網上): 1,數字量輸出:I2C 數字量輸出接口,設計使用非常方便。 2,尺寸小: 3x3x0.9mm LCC 封裝,適合大規模量產使用。 3,精度高:1-2 度,內置12 位A/D,OFFSET, SET/RESET 電路,不會出現磁飽和現象,不會有累加誤差。 4,支持自動校準程序,簡化使用步驟,終端產品使用非常方便。 5,內置自測試電路,方便量產測試,無需增加額外昂貴的測試設備。 6,功耗低:供電電壓1.8V, 功耗睡眠模式-2.5uA 測量模式-0.6mA 連接方法: 只要連接VCC,GND,SDA,SDL 四條線。 Arduino GND -> HMC5883L GND Arduino 3.3V -> HMC5883L VCC Arduino A4 (SDA) -> HMC5883L SDA Arduino A5 (SCL) -> HMC5883L SCL (注意,接線是A4,A5,不是D4,D5) 源程序: #include <Wire.h> #include <HMC5883L.h> HMC5883Lcompass; voidsetup() { Serial.begin(9600); Wire.begin(); compass = HMC5883L(); compass.SetScale(1.3); compass.SetMeasurementMode(Measurement_Continuous); } voidloop() { MagnetometerRaw raw = compass.ReadRawAxis(); MagnetometerScaled scaled = compass.ReadScaledAxis(); float xHeading = atan2(scaled.YAxis, scaled.XAxis); float yHeading = atan2(scaled.ZAxis, scaled.XAxis); float zHeading = atan2(scaled.ZAxis, scaled.YAxis); if(xHeading < 0) xHeading += 2*PI; if(xHeading > 2*PI) xHeading -= 2*PI; if(yHeading < 0) yHeading += 2*PI; if(yHeading > 2*PI) yHeading -= 2*PI; if(zHeading < 0) zHeading += 2*PI; if(zHeading > 2*PI) zHeading -= 2*PI; float xDegrees = xHeading * 180/M_PI; float yDegrees = yHeading * 180/M_PI; float zDegrees = zHeading * 180/M_PI; Serial.print(xDegrees); Serial.print(","); Serial.print(yDegrees); Serial.print(","); Serial.print(zDegrees); Serial.println(";"); delay(100); }
上傳時間: 2013-12-16
上傳用戶:stella2015
注:1.這篇文章斷斷續續寫了很久,畫圖技術也不精,難免錯漏,大家湊合看.有問題可以留言. 2.論壇排版把我的代碼縮進全弄沒了,大家將代碼粘貼到arduino編譯器,然后按ctrl+T重新格式化代碼格式即可看的舒服. 一、什么是PWM PWM 即Pulse Wavelength Modulation 脈寬調制波,通過調整輸出信號占空比,從而達到改 變輸出平均電壓的目的。相信Arduino 的PWM 大家都不陌生,在Arduino Duemilanove 2009 中,有6 個8 位精度PWM 引腳,分別是3, 5, 6, 9, 10, 11 腳。我們可以使用analogWrite()控 制PWM 腳輸出頻率大概在500Hz 的左右的PWM 調制波。分辨率8 位即2 的8 次方等于 256 級精度。但是有時候我們會覺得6 個PWM 引腳不夠用。比如我們做一個10 路燈調光, 就需要有10 個PWM 腳。Arduino Duemilanove 2009 有13 個數字輸出腳,如果它們都可以 PWM 的話,就能滿足條件了。于是本文介紹用軟件模擬PWM。 二、Arduino 軟件模擬PWM Arduino PWM 調壓原理:PWM 有好幾種方法。而Arduino 因為電源和實現難度限制,一般 使用周期恒定,占空比變化的單極性PWM。 通過調整一個周期里面輸出腳高/低電平的時間比(即是占空比)去獲得給一個用電器不同 的平均功率。 如圖所示,假設PWM 波形周期1ms(即1kHz),分辨率1000 級。那么需要一個信號時間 精度1ms/1000=1us 的信號源,即1MHz。所以說,PWM 的實現難點在于需要使用很高頻的 信號源,才能獲得快速與高精度。下面先由一個簡單的PWM 程序開始: const int PWMPin = 13; int bright = 0; void setup() { pinMode(PWMPin, OUTPUT); } void loop() { if((bright++) == 255) bright = 0; for(int i = 0; i < 255; i++) { if(i < bright) { digitalWrite(PWMPin, HIGH); delayMicroseconds(30); } else { digitalWrite(PWMPin, LOW); delayMicroseconds(30); } } } 這是一個軟件PWM 控制Arduino D13 引腳的例子。只需要一塊Arduino 即可測試此代碼。 程序解析:由for 循環可以看出,完成一個PWM 周期,共循環255 次。 假設bright=100 時候,在第0~100 次循環中,i 等于1 到99 均小于bright,于是輸出PWMPin 高電平; 然后第100 到255 次循環里面,i 等于100~255 大于bright,于是輸出PWMPin 低電平。無 論輸出高低電平都保持30us。 那么說,如果bright=100 的話,就有100 次循環是高電平,155 次循環是低電平。 如果忽略指令執行時間的話,這次的PWM 波形占空比為100/255,如果調整bright 的值, 就能改變接在D13 的LED 的亮度。 這里設置了每次for 循環之后,將bright 加一,并且當bright 加到255 時歸0。所以,我們 看到的最終效果就是LED 慢慢變亮,到頂之后然后突然暗回去重新變亮。 這是最基本的PWM 方法,也應該是大家想的比較多的想法。 然后介紹一個簡單一點的。思維風格完全不同。不過對于驅動一個LED 來說,效果與上面 的程序一樣。 const int PWMPin = 13; int bright = 0; void setup() { pinMode(PWMPin, OUTPUT); } void loop() { digitalWrite(PWMPin, HIGH); delayMicroseconds(bright*30); digitalWrite(PWMPin, LOW); delayMicroseconds((255 - bright)*30); if((bright++) == 255) bright = 0; } 可以看出,這段代碼少了一個For 循環。它先輸出一個高電平,然后維持(bright*30)us。然 后輸出一個低電平,維持時間((255-bright)*30)us。這樣兩次高低就能完成一個PWM 周期。 分辨率也是255。 三、多引腳PWM Arduino 本身已有PWM 引腳并且運行起來不占CPU 時間,所以軟件模擬一個引腳的PWM 完全沒有實用意義。我們軟件模擬的價值在于:他能將任意的數字IO 口變成PWM 引腳。 當一片Arduino 要同時控制多個PWM,并且沒有其他重任務的時候,就要用軟件PWM 了。 多引腳PWM 有一種下面的方式: int brights[14] = {0}; //定義14個引腳的初始亮度,可以隨意設置 int StartPWMPin = 0, EndPWMPin = 13; //設置D0~D13為PWM 引腳 int PWMResolution = 255; //設置PWM 占空比分辨率 void setup() { //定義所有IO 端輸出 for(int i = StartPWMPin; i <= EndPWMPin; i++) { pinMode(i, OUTPUT); //隨便定義個初始亮度,便于觀察 brights[ i ] = random(0, 255); } } void loop() { //這for 循環是為14盞燈做漸亮的。每次Arduino loop()循環, //brights 自增一次。直到brights=255時候,將brights 置零重新計數。 for(int i = StartPWMPin; i <= EndPWMPin; i++) { if((brights[i]++) == PWMResolution) brights[i] = 0; } for(int i = 0; i <= PWMResolution; i++) //i 是計數一個PWM 周期 { for(int j = StartPWMPin; j <= EndPWMPin; j++) //每個PWM 周期均遍歷所有引腳 { if(i < brights[j])\ 所以我們要更改PWM 周期的話,我們將精度(代碼里面的變量:PWMResolution)降低就行,比如一般調整LED 亮度的話,我們用64 級精度就行。這樣速度就是2x32x64=4ms。就不會閃了。
上傳時間: 2013-10-08
上傳用戶:dingdingcandy
電子發燒友網核心提示:醫療內窺鏡的市場發展帶來了各種挑戰,例如,要求增強功能,更高的精度,更好的處理性能,以及更小的體積等。本文介紹Altera高級醫療內窺鏡系統解決方案,它使用了1080p視頻設計工作臺、DSP 構建模塊、參考設計,以及 Stratix® V、Cyclone® V 和 Arria® V FPGA 等。通過下文介紹,資深專家向您支招,教你懂得如何通過采用基于FPGA的方法來縮短高級醫療內窺鏡系統的開發時間。 引言 對內窺鏡檢查的需求在不斷增長,同時還需要不斷改進檢查過程,增強醫療設備的功能。全球競爭不斷加劇,導致各種新功能的出現,新市場的變化也非常快,開發周期越來越短,工程團隊必須集中精力提高核心競爭力,加強系統知識。工程師需要靈活的硬件平臺和支持各種平臺的工作臺工具,使他們能夠針對新標準或者標準的變化而對產品進行更新。此外,設計團隊必須更高效的進行開發工作。Altera® 1080p 視頻設計工作臺和28-nm FPGA提供了靈活的系統方法來滿足當前以及不斷發展的功能需求。 不斷增長的全球需求 很多因素導致對內窺鏡檢查的需求越來越強。今后數十年內,世界60歲以上的人口數量將會大幅度增長,對醫療衛生服務的需求也會隨之增長。而且,胃腸道患病人口在不斷增加,需要進行檢查和治療。越來越多的醫生采用內窺鏡檢查方法。很多政府報銷政策鼓勵非置入式治療,這有利于患者更快的恢復,從而降低了治療總成本,患者的體驗會更好。 很多國家增加了在醫療基礎設施上的投入,特別是加大了醫療設備的采購。反過來,這些新市場需求也擴大了對下一代內窺鏡系統的需求。設計團隊體驗到需求的不斷增長,而全球競爭導致他們推遲其產品發布計劃。
上傳時間: 2013-12-19
上傳用戶:xc216
伺服舵機作為基本的輸出執行機構廣泛應用于 遙控航模以及人形機器人的控制中。舵機是一種位 置伺服的驅動器,其控制信號是PWM信號.,利 用占空比的變化改變舵機的位置,也可使用FPGA、 模擬電路、單片機來產生舵機的控制信號舊。應 用模擬電路產生PWM信號,應用的元器件較多, 會增加電路的復雜程度;若用單片機產生PWM信 號,當信號路數較少時單片機能滿足要求,但當 PWM信號多于4路時,由于單片機指令是順序執 行的,會產生較大的延遲,從而使PWM信號波形 不穩,導致舵機發生顫振。
上傳時間: 2013-11-20
上傳用戶:cjh1129