2013年7月30日 星期二

EMC 實驗室743 & 966 差異

無論是EN55022還是ANSI63.4均規定test site的最小尺寸為2R X 1.73R(R是測量距離也就是我们说得3m或是10m),由這個公式我們不難看出一個被CE或FCC認可的實驗室一定是長和寬大於6m,高由於天線1~4m升降的原因同樣也要至少大於4m。故7x4x3的實驗室是一个非標準的實驗室。無法準確測量產品的EMI。
由於測試場地的對稱性和轉桌設計的最小尺寸的關係以及天線的高度的問题我们不難看出9X6X6是一个標準的3m測量實驗室。
那你可能會問为什麼測量長度是9m啊?法規不是規定6m就可以了吗?
根據圖片中的D的定義他是d(產品旋轉的離開轉桌中心點最大位置,通常我们以轉桌的半徑產品所能旋轉的最大位置1m)+2m,也就是说旋轉中心點距離金屬接地平板邊缘通常3m,旋轉中心距離接收天線3m(我们常说的3m測試),由於測試設置的對稱性接收天線距離金屬接地平板的另一邊缘也為3m。這樣算出了測試距離的長度為3+3+3=9m。
法規規定了測量場地的寬度基本上是接近6m,高度由於天線的原因,當天線升至4m时由於天線本身還有一個高度,故選擇6m

743是作為給廠商的產品一個EMI的輻射參考,可以大體的了解下產品的特性,例如電源都在30-300M左右,可以做產品的預測,OK後才拿到實驗室去做,順便出報告的,這樣可以减少測試费用。
而966是为標準的3M場地,其特性是符合標準要求

在實際使用中.743與966的區别,就是743不是法規認可的測試暗室.但是它可以作为客户在節约成本的方面提供很好的選擇.,并且743較966的造價還是要低很多的.有些刚刚起步的EMC實驗室大都選擇743.投入成本少,風險小(對於没有實力的)而2者的測試结果其實相差不大.法规中说測試數據要在966或OPEN SITE中測試出来才準確,但是很多實驗室一樣拿743的場地出報告

EMC 基礎知識

引用http://www.quatek.com.tw/service/application/EMC/EMC.htm

EMC(電磁相容)包含  EMI (電磁干擾) & EMS(電池耐受)
其中EMI又包含CE(傳導放射)  以及  RE(輻射放射),HARMONIC(電源諧波測試),FLICKER(電壓變動測試).


EMS(電磁耐受性)包含CS(傳導耐受) & RS(輻射耐受).測試項目有
1.對電場、磁場之輻射耐受性測試
2.對電源線、控制線、訊號線、地線等注入干擾之傳導耐受性測試
3.對靜電放電和各種暫態電磁波(突波或電性快速暫態)之耐受性測試

IEC 1000-4-2 ESD靜電放電
IEC 1000-4-3輻射耐受性
IEC1000-4-4快速暫態與叢訊
IEC1000-4-5雷擊突波耐受性
IEC 1000-4-6傳導耐受性
IEC 1000-4-8電源頻率磁場
IEC 1000-4-11瞬降瞬斷電壓



2013年7月28日 星期日

bead(磁珠) & inductance(電感) 差異

引用  http://bbs.21dianyuan.com/30698.html,
http://www.52rd.com/Blog/Detail_RD.Blog_dell_13197.html

磁珠有很高的電阻率和磁導率,他等效於電阻和電感串聯,但電阻值和電感值都隨頻率變化。他比普通的電感有更好的高頻濾波特性,在高頻時呈現阻性,所以能在相當寬的頻率範圍內保持較高的阻抗,從而提高調頻濾波效果。
作為電源濾波,可以使用電感。磁珠的電路符號就是電感,但是型號上可以看出使用的是磁珠。在電路功能上,磁珠和電感是原理相同的,只是頻率特性不同罷了。
磁珠由氧磁體組成,電感由磁心和線圈組成,磁珠把交流信號轉化為熱能,電感把交流存儲起來,緩慢的釋放出去。
磁珠對高頻信號才有較大阻礙作用,一般規格有100歐/100mMHZ,它在低頻時電阻比電感小得多。
鐵氧體磁珠(FerriteBead)是目前應用發展很快的一種抗干擾元件,廉價、易用,濾除高頻雜訊效果顯著。
在電路中只要導線穿過它即可(我用的都是象普通電阻模樣的,導線已穿過並膠合,也有表面貼裝的形式,但很少見到賣的)。當導線中電流穿過時,鐵氧體對低頻電流幾乎沒有什麼阻抗,而對較高頻率的電流會產生較大衰減作用。高頻電流在其中以熱量形式散發,其等效電路為一個電感和一個電阻串聯,兩個元件的值都與磁珠的長度成比例。磁珠種類很多,製造商應提供技術指標說明,特別是磁珠的阻抗與頻率關係的曲線。
鐵氧體是磁性材料,會因通過電流過大而產生磁飽和,導磁率急劇下降。大電流濾波應採用結構上專門設計的磁珠,還要注意其散熱措施。
鐵氧體磁珠不僅可用於電源電路中濾除高頻雜訊(可用於直流和交流輸出),還可廣泛應用於其他電路,其體積可以做得很小。特別是在數位電路中,由於脈衝信號含有頻率很高的高次諧波,也是電路高頻輻射的主要根源,所以可在這種場合發揮磁珠的作用。
鐵氧體磁珠還廣泛應用於信號電纜的雜訊濾除。
磁珠的原理
磁珠的主要原料為鐵氧體。鐵氧體是一種立方晶格結構的亞鐵磁性材料。鐵氧體材料為鐵鎂合金或鐵鎳合金,它的製造工藝和機械性能與陶瓷相似,顏色為灰黑色。電磁干擾濾波器中經常使用的一類磁芯就是鐵氧體材料,許多廠商都提供專門用於電磁干擾抑制的鐵氧體材料。這種材料的特點是高頻損耗非常大,具有很高的導磁率,他可以是電感的線圈繞組之間在高頻高阻的情況下產生的電容最小。對於抑制電磁干擾用的鐵氧體,最重要的性能參數為磁導率μ和飽和磁通密度Bs。磁導率μ可以表示為複數,實數部分構成電感,虛數部分代表損耗,隨著頻率的增加而增加。因此,它的等效電路為由電感L和電阻R組成的串聯電路,L和R都是頻率的函數。當導線穿過這種鐵氧體磁芯時,所構成的電感阻抗在形式上是隨著頻率的升高而增加,但是在不同頻率時其機理是完全不同的。
在低頻段,阻抗由電感的感抗構成,低頻時R很小,磁芯的磁導率較高,因此電感量較大,L起主要作用,電磁干擾被反射而受到抑制,並且這時磁芯的損耗較小,整個器件是一個低損耗、高Q特性的電感,這種電感容易造成諧振因此在低頻段,有時可能出現使用鐵氧體磁珠後干擾增強的現象。
在高頻段,阻抗由電阻成分構成,隨著頻率升高,磁芯的磁導率降低,導致電感的電感量減小,感抗成分減小但是,這時磁芯的損耗增加,電阻成分增加,導致總的阻抗增加,當高頻信號通過鐵氧體時,電磁干擾被吸收並轉換成熱能的形式耗散掉。
鐵氧體抑制元件廣泛應用於印製電路板、電源線和資料線上。如在印製板的電源線入口端加上鐵氧體抑制元件,就可以濾除高頻干擾。鐵氧體磁環或磁珠專用於抑制信號線、電源線上的高頻干擾和尖峰干擾,它也具有吸收靜電放電脈衝干擾的能力。
磁珠的選用
1.磁珠的單位是歐姆,而不是亨特,這一點要特別注意。因為磁珠的單位是按照它在某一頻率產生的阻抗來標稱的,阻抗的單位也是歐姆。磁珠的DATASHEET上一般會提供頻率和阻抗的特性曲線圖,一般以100MHz為標準,比如1000R@100MHz,意思就是在100MHz頻率的時候磁珠的阻抗相當於600歐姆。
2.普通濾波器是由無損耗的電抗元件構成的,它在線路中的作用是將阻帶頻率反射回信號源,所以這類濾波器又叫反射濾波器。當反射濾波器與信號源阻抗不匹配時,就會有一部分能量被反射回信號源,造成干擾電平的增強。為解決這一弊病,可在濾波器的進線上使用鐵氧體磁環或磁珠套,利用滋環或磁珠對高頻信號的渦流損耗,把高頻成分轉化為熱損耗。因此磁環和磁珠實際上對高頻成分起吸收作用,所以有時也稱之為吸收濾波器。
不同的鐵氧體抑制元件,有不同的最佳抑制頻率範圍。通常磁導率越高,抑制的頻率就越低。此外,鐵氧體的體積越大,抑制效果越好。在體積一定時,長而細的形狀比短而粗的抑制效果好,內徑越小抑制效果也越好。但在有直流或交流偏流的情況下,還存在鐵氧體飽和的問題,抑制元件橫截面越大,越不易飽和,可承受的偏流越大。
EMI吸收磁環/磁珠抑制差模干擾時,通過它的電流值正比於其體積,兩者失調造成飽和,降低了元件性能;抑制共模干擾時,將電源的兩根線(正負)同時穿過一個磁環,有效信號為差模信號,EMI吸收磁環/磁珠對其沒有任何影響,而對於共模信號則會表現出較大的電感量。磁環的使用中還有一個較好的方法是讓穿過的磁環的導線反復繞幾下,以增加電感量。可以根據它對電磁干擾的抑制原理,合理使用它的抑制作用。
鐵氧體抑制元件應當安裝在靠近干擾源的地方。對於輸入/輸出電路,應儘量靠近遮罩殼的進、出口處。對鐵氧體磁環和磁珠構成的吸收濾波器,除了應選用高磁導率的有耗材料外,還要注意它的應用場合。它們在線路中對高頻成分所
呈現的電阻大約是十至幾百Ω,因此它在高阻抗電路中的作用並不明顯,相反,在低阻抗電路(如功率分配、電源或射頻電路)中使用將非常有效。
結論
由於鐵氧體可以衰減較高頻同時讓較低頻幾乎無阻礙地通過,故在EMI控制中得到了廣泛地應用。用於EMI吸收的磁環/磁珠可製成各種的形狀,廣泛應用於各種場合。如在PCB板上,可加在DC/DC模組、資料線、電源線等處。它吸收所在線路上高頻干擾信號,但卻不會在系統中產生新的零極點,不會破壞系統的穩定性。它與電源濾波器配合使用,可很好的補充濾波器高頻端性能的不足,改善系統中濾波特性。

2013年7月11日 星期四

單晶片中使用C標準函式庫 printf & scanf 用uart 輸入輸出

請參考http://www.cnblogs.com/liu_xf/archive/2011/04/14/2015726.html

c標準式庫中 的printf & sscanf  是標準輸出入 指的是PC monitor & keyboard
所以在單晶片使用時,就要修改PRINTF & SCANF 的底層 ,以 keil 操作stm32為例
比較簡單的做法是修改fputc & fgetc 兩個函數,因為這兩個分別是printf & scanf的底層實作.
只要在main.c OR uart.c 加入以下兩個函數,就可使用printf & scanf
/*******************************************************************************
* Function Name  :  int fputc(int ch, FILE *f)
* Description    :
* Input          : int ch, FILE *f
* Output         :
* Return         : int ch
*******************************************************************************/
int fputc(int ch, FILE *f)
{
    USART1->DR = (u8) ch;
        /* Loop until the end of transmission */
    while(USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET)
    {
    }

    return ch;
}
/*******************************************************************************
   Function Name  : fputc
   Description        : redefine getc function,use scanf with uart input
   Input                  : FILE *f
   Output               :
* Return               : int ch
********************************************************************************/
int fgetc(FILE *f)
{
    while (USART_GetFlagStatus(USART1, USART_FLAG_RXNE) == RESET)
    {}
    return (int)USART_ReceiveData(USART1);
}

另外一種方法就是
2、添加Retarget.c,实现在KEIL下使用printf函数,以LPC2478为例
    首先在Keil安装目录下面ARM/Startup/Retarget.c找到Retarget.c文件将其复制到你的工程文件夹下面;并将其加入到工程中
    在uart.c中添加如下代码
// Implementation of sendchar (also used by printf function to output data)
int sendchar (int ch) { // Write character to Serial Port
while (!(U0LSR & 0x20));
return (U0THR = ch);
}
int getkey (void) { // Read character from Serial Port
while (!(U0LSR & 0x01));
return (U0RBR);
}
这样,只要在需要用printf的文件里#include 就可以了,printf会通过Retarget中的fputc函数调用sendchar来实现串口数据的输出。
   事实上,和第一种的方式是一样的。

3、自定义printf函数,以AVR为例
   前面介绍的是在KEIL编译器上使用printf函数,但不是所有的编译器平台都能适用,因此有时候我们需要自定义printf函数,下面以AVR在GCC下为例
   在usart.c中添加如下代码
#include <stdio.h>
#include
<stdarg.h>
/*********************************************************/
//向串口usart0发送一个字节函数
void Uart0_putchar( unsigned char sdbyte)
{
UDR0
=sdbyte;
while(!(UCSR0A&0x40));
UCSR0A
|=0x40;
}
////////////////////////////////////////////////////////
void Uart0_printf(char *str,...)
{
char buf[128];
unsigned
char i = 0;
va_list ptr;
va_start(ptr,str);
vsprintf(buf,str,ptr);
while(buf[i])
{
Uart0_putchar(buf[i]);
i
++;
}
}
有了printf格式化输出函数,调试起来就方便多了。



說個題外話,當你使用stm32的uart 中斷時.中斷函式請將USART_ClearITPendingBit(USART1,USART_IT_RXNE);
加在scanf的函式後面,不然的話第一次接收的第一個字元都會接收不到.

2013年7月3日 星期三

Sony xperia acro S 充電座維修

拆開充電座後,裡面有一片電路板.
先敘述狀況,在未更新系統前.其實充電座充電情況就有些問題.
當初是使用行動電源的usb轉接線,發現有時會充電 有時則會斷電
後來換了一條線 情況是有改善,所以那時齁應該是現本身有問題
但是更新系統之後,接上線一直都沒辦法充電.


拆開內部後,不管機構.
在usb 的D-的電位 一直都是low 所以之後的電源開關電路的電位一直都是low所以電源開關ic的觸發pin都保持在high沒辦法啟動
另外D+的電位也是一直都是low,板子上接到D+的電路是經過分壓電路後再接到D+ PIN
所以是否因為分壓電路的電壓關係 令D+的電壓不足.導致D-的電壓也不足