用單片機的I/O口模擬I2C協議
I2C用IO模擬程序網上范例最多的就是51的程序了,這些范例的正確性無需懷疑.但是如果直接以它為藍本將它"AVR化",一不留神,就會有點問題了.
這要從I2C的硬件規范和AVR及51單片機的IO口說起.I2C要求SCL,SDA二線都有 線與 功能,即I2C驅動口應該是 漏極開路 電路,其高電平的維持是靠上拉電阻來實現的, 而低電平則需要驅動口的強下拉能力.
51單片機IO口正好完全符合這個特性.寫起I2C驅動頗為得心應手.但是AVR的IO口強大了,它輸出的高電平是實實在在的高電平,而不是靠什么上拉電阻來提供,只有10mA都不到的電流!于是如果直接使用 PORTB_Bit0 = 1這樣的操作,就不能滿足I2C的線與功能了,如果此時有別的設備要將SCL或者SDA拉低,那么結果就是二個IO口打架,誰贏誰輸不得而知,時間長了,多半是兩敗俱傷,芯片發熱吧.
當然AVR的IO口自然有辦法滿足I2C的電氣特性要求,不就是不能輸出1么,那么用它的高阻狀態即可(DDRB_Bit0=0,PORTB_Bit0=0即可),要輸出0么(DDRB_Bit0=1,PORTB_Bit0=0).
標簽:
I2C
AVR
程序
范例
上傳時間:
2016-07-19
上傳用戶:gxrui1991
現代雷達普遍采用相參信號處理,而如何獲得高精度基帶數字正交( I , Q) 信號是整個系統信號處理成敗的關鍵,以前通常的做法是采用模擬相位檢波器得到I、Q信號,其正交性能一般為:幅度平衡在2 % 左右, 相位正交誤差在2°左右,即幅相誤差引入的鏡像功率在- 34dB 左右。這限制了信號處理器性能的提高, 為此, 近年來提出了對低中頻直接采樣恢復I、Q 信號的數字相位檢波器。隨著高位、高速A/ D 的研制成功和普遍應用,使得數字相位檢波方法的實現成為可能。
對信號進行中頻直接采樣和數字正交處理后,產生的I 支路和Q 支路信號序列在時間上會錯開一個采樣間隔,需要進行定序處理,恢復成同步輸出的I、Q 兩路信號序列。
標簽:
信號處理
信號
現代雷達
基帶
上傳時間:
2016-12-27
上傳用戶:yxgi5