2018年8月6日 星期一

USB to MIPI RFFE Controller/Dongle DIY and Error Detection Register

前言

        上一篇講了MIPI RFFE,原理是類似I2C two wire的控制介面,雖然這個介面推出了10年了,目前手機RF Front End周邊也幾乎都是採用這個介面,從天線開始數Antenna tuner (Capacitor Array), Temperature Sensor (幾乎跟PA module 整合再一起), Switch module, PA module, RX diversity module, Envelope Tracking IC等等,但有時候要單獨看每一顆元件的特系就比之前麻煩了一些。
       比方說之前拿到一顆Switch Module EVB,控制pin為GPIO,所以我只需要一台電源供應器提供 High/Low訊號 (for example 3.3V/0V)就可以來測試驗證這一顆Switch的特性,但是如果是MIPI RFFE介面,那就有點麻煩了。

https://mipi.org/sites/default/files/MIPI%20RFFE%20Spec%20Brief%20.pdf
        如果是I2C元件,直接在淘寶 Taobao 上搜尋"USB to I2C"就會列出一推配件,價格差不多200台幣就可以買到,常用的Two Wire通訊協定
USB to UART, USB to I2C, USB to SPI, USB to GPIO.......
但就是沒有
USB to MIPI RFFE


         Google "USB to MIPI RFFE" 可以找到的規格是SignalCraft SC4410系列,現在我工作上也是用這個,價格說高不高,大概是一隻入門iPhone8的價格,支援虛擬COM Port,所以可以直接透過超級終端機等軟體就可以下指令操作。

http://www.signalcraft.com/products/scout/
        除了價格貴一點點外,前陣子遇到一個小問題需要故意送錯誤的指令確認DUT是否能夠正確識別這指令(Error Detection)。  這就有點困擾了,寫信去問對方說這功能可以客製化,但要收取工程費用NRE Expense (Non-Recurring Engineering Expense),價格就是那種要打發你的價格,既然這樣就只好自己動作做一個了。

硬體 USB to UART IC + AT89S51 + Level Shift

        當初接觸8051是第一份工作合約滿到期 (2010左右吧在手機廠當RF工程師),那時候換跑道但又不知道自己能做什麼,當時最夯的就是embedded system,因為當時只會tune tune RF matching與表哥聊了一下就想說先從最基本的8051入手,先了解一下,於是就報名了自強基金會的課程學學用C來寫霹靂燈以後可以安裝在機車上。

        8051容易取得,加上新的ATMEL 89S51可以像讀寫SD卡重覆燒錄,而且燒錄器非常容易取得,搭配Keil C可以用熟悉的C語言去撰寫程式,雖然又經過10年,已經有更強更方便的方案,但我覺得無論選哪一個方案,重點是選一個然後動手吧 Just Do It...........

      回到正題選用8051當然是目前也只會這個,中間一直想找時間去學FPGA與ARM MCU,但沒有找到動力源,現階段工作不會馬上需要,也沒有換工作空虛寂寞(其實是閒閒沒事做),但是還是蠻推薦新手可以從 Keil C+ Atmel 8051系列開始:

    1. Keil C可以免費下載 (有2k限制),是printf ("Hello !"); 進入到實際硬體輸出
    2. ATMEL 80S51 容易取得周邊電路也簡單 (麵包版就以實驗)
    3. 燒錄工具取得容易,淘寶或拍賣隨便搜尋就很多
    4. 範例多而且容易閱讀,畢竟8051是在1980年就誕生了。

整個Hardware配置如下

    1透過Windows PC USB 連結 PL2303(常見的USB to UART Adapter IC)
    2. MCU 8051收到來自PC的指令後,轉換成MIPI Serial Command 餵給Level Shift IC.
    3. 因為8051是Open Drain 5V控制訊號,MIPI Device大多為1.8V or 1.2V的準位。
    4. 然後訊號再傳送到Slave DUT
    5. 如果是讀取指令Slave再回傳訊號到MCU
    6. MCU在透過UART送回給PC然後顯示在螢幕上。
 


MIPI RFFE FRAME FORMAT 

        MIPI RFFE或I2C這種Two Wire Serial Communication的架構都是Master在發送同步Clock訊號,在程式編輯輸出pattern這邊要注意的是資料(Data)變化的時序點(Timing)。
        下圖為MIPI RFFE and I2C的時序圖,因為剛好這兩個差異相反。

mipi rffe : data change after rising clock edge.
i2c          : data change after falling clock edge.

mipi rffe : data ready to read/write after falling clock
i2c          : data ready to read/write after rising clock.

        其實可以從idle status的狀態來判斷,i2c需要一個pull-up resistor,所以在idle狀態會因為pull-up電阻拉到高準位,所以開始與結束bus上面的電位都為high,所以從high level開始一個clock cycle就是falling then rising.
        mipi clock 因為是CMOS I/O,一開始準位為0 (pull down resistor),idle狀態會從低電位開始,所以一個clock cycle為rising then falling.
     

Parity Bit

    MIPI RFFE Parity Bit包含Parity Bit本身為奇數odd. 上一篇提到MIPI本身寫入Frame就有三種Command Frame.
1. Register 0 Write (只能寫入D6 ~ D0)
2. Register Write
3. Extended Register Write
    如果我們對Slave ID為0xF 0b1111,Address 0x00寫入0x07 , 0b00000111,如果device有支援分別可以用上面三種write command sequence寫入。
1. Register 0 Write
    1111  1  0000111    Parity Bit為 1
2. Register Write
    1111  010  00000 Parity Bit 為 0
 

3. Extended Register Write
    1111  0000  0000 Command Frame Parity Bit為1,另外Extended Register Write BC[3:0]是代表後面要連續謝入多少筆資料,最少一筆0b0000, 最多16筆0b1111.

https://www.onsemi.cn/PowerSolutions/document/TCC-202-D.PDF

Slave Register Mapping and Error Detection 

        底下是OnSemi TCC-202 datasheet的內容(google就找的到了),MIPI RFFE定義Slave Register Mapping.
1. 0x00 (特別拉出來是因為要支援Register 0 Write)
2. 0x01 ~ 0x01B : 使用者自行定義
3. 0x1C : Power Mode and Trigger Control,MIPI RFFE有shadow register,這個Register可以決定寫入的指令是要寫到Shadow Register等待Triger Bit啟動後,資料才從Shadow Register搬運到對應的Register位置。  
4. 0x1D : Product ID (這是每一家公司可以內部自行定義產品的ID)
5. 0x1E : Manufacturer ID 一間公司可以註冊一個特有的MID.
6. 0x1F : Unique Slave Identifier Register USID: 總共4bits,每間公司可以針對不同mipi產品定義不同的USID,就跟I2C Slave ID是一樣的意思,雖然只有4 bits,如果同一組MIPI RFFE Bus上有衝突的時候,因為Manufacturer ID和Product ID也不一樣,可以透過特指令修改。 
https://www.onsemi.cn/PowerSolutions/document/TCC-202-D.PDF
        在MIPI RFFE規格書裡面,還有特別提到Error Detection and Handling,雖然沒有強制規定要怎麼實現,但在手機晶片霸主MTK的最強對手Qualcomm高通,在給3rd party 文件中有對Error Detection特別定義,後來可能大家就形成共識都設計在同一個Register位置0x1A, 如上面0x1A上面的描述是MIPI-RFFE Status: Detect MIPI Protocol Errors。
        底下是我節錄的內容,比方說0x1A Bit6 CFPE,他是Command Frame with Parity Error Receiver. 也就是說當接收指令發現Command Frame這段Parity Bit有錯誤的時候,這個Bit會變成1,而且忽略這指令。

USB to MIPI RFFE Adpater

        最後是用AT89LP51搭配22MHz Clock,原生8051的架構要12 Clock週期才能完成一個動作,但後面其實有一些變形機種,Atmel AT89LP51這一顆就是 1 Clock週期就可以完成一個動作,(這裡的動作並不是i=i+1; 這樣,因為實際i=i+1要把它拆成組合語言來看),但簡單說速度大概會是原本相同clock速度下8051 4-6倍的處理速度。

        這裡桌上剛好有一塊AIROHA AP6716M-51 高功率High Pout, 高效率High Efficiency, 高性能 High Performance, 高品質High Quality 射頻前端模組RF Front End Module,適合應用在 4G LTE 智能型手機Smart Phone,兒童手錶等相關應用上,建議搭配AIROHA AP7219M-71 系列有最佳的效能體驗。



        因為USID只有0x0 ~ 0xf 16種,即使手邊沒有datasheet我們還是可以試一下找出USID是多少,我們讀取0x1E Manufacturer ID的資訊,發現讀出MID 為0x49,上http://mid.mipi.org/搜尋一下可以知道這顆優質晶片的製造商是AIROHA Technology Corp.

Error Detection Verification 

       現在我們來驗證一下Error Detection Register,左邊我們先對AIROHA AP6715M-51 register address 0x00 寫入0x00,然後再去讀取Error Detection Register 0x1A,可以發現0x1A的值為0x00.
        一樣的動作我們這次故意設定錯誤的Command Frame Parity,一樣的動作在執行一次可以發現原本的讀回來的Data變成0x40,也就是bit6變成1,這個bit代表Device收到的指令command frame parity bit 有錯。

        這次改在故意設定錯誤Data Frame Parity Bit在看一次結果,在讀取一次可以看到0x1A變成0x08,bit3變成1,表示Device正確識別了剛剛指令錯誤的地方。

        這次的介紹就到這裡,下次有機會再聊聊囉

2018年7月25日 星期三

MIPI RFFE Introduction and two wire communication/serial communication UART, I2C

Serial Communication and Parallel Communication

        我們要怎麼把一個8 bits的資料從A傳到B,最佳簡單的方式就是拉出8條線,每條線代表一個bit來傳輸,然後再加一條控制訊號線來控制這時候是讀入或寫出的動作,所以每一次動作都會傳送8 bits,這個我們一般稱作parallel communication. 並列埠 很早期的印表機,硬碟IDE或GPIB都是用這樣的傳輸介面。
Parallel Communication 
        另外一種傳輸技術稱為serial communication 串列埠,與parallel想比,所謂的串列與並列是指資料的排列結構,parallel是代表D7 ~ D0 並聯同時傳送,串聯是指一次傳一個bit,先傳D0然後D1....依序傳送D7,然後在接收端在整合成一個byte,資料傳送是一個接一個,串起來傳送,USB就是一種serial communication的介面。
Serial Communication
        Serial Communication與Parallel Communication的優缺點直觀上很明顯,Serial Communication的接線明顯比Parallel少,但如果傳送的clock rate一樣的話,速度Parallel Communication以上面的例子來說一次clock可以傳送8bits, 但串列傳輸只能傳一個bit,速度差了8倍。

two wire communication 

UART Tow Wire or One Wire x2 

        上面的例子是單向傳輸,所以需要一條訊號線Tx,如果要接收的話就需要另外一條線Rx. 這時候兩個設備的接線就為TX, RX 兩條線 (其實GND也算一條線,但是一般不會加進來算)。以UART Universal Asynchronous Receiver and Transmitter通用非同步收發機,因為TX and RX是分開的,所以可以達成雙向溝通,但裡面有Asynchronous非同步其實代表訊號不需要Clock來同步。
         非同步的傳輸本身就會有一個問題,那就是你怎麼知道傳送過來的訊號是1還是11或是111呢? 以下面的為例子,如果接收機是負緣取值negative edge/falling edge,接收機本身的clock速度會影響對訊號的解讀,所以UART在傳輸的時候都要設定Baud Rate. 也就是雙方要先確認彼此資料傳輸的速度才行。

Baud Rate
        這樣的架構如果Receiver是個被動讀寫的裝置(Slave),妥善安排傳輸協定,本身可以完成one wire傳輸,簡單的概念就是有一個主控端來條控這條線上面誰來傳送資料,接收端被動接收指令。
        以下面的例子,Master端先對Receiver (Slave)傳送要求讀取的指令,傳送完後Master等待Slave回傳資料,這樣就不會有一條線上同時兩端都在發送訊號的情形發生。如果用生活中的例子比方說電影看到的對講機,就是類似的道理,其中一方老鷹要先呼叫小雞一樣,

老鷹呼叫小雞
收到請回答
Over

然後放開發射鈕後等待話筒傳來小雞回覆,

小雞回覆老鷹
Over

而且每次講完的時候都會說Over來代表這句話的結束,其實Serial Communication的原理就跟這個很像,雙方要協定好如何溝通。

I2C Two Wire 

        延續one wire communication的概念,另外一種類似one wire傳輸的方式是在原本one wire上面加入了一條clock同步訊號Synchronous,有別於非同步Asynchronous的概念,發射訊號自帶Baud Rate,所以接收端不需要知道對方的速度是怎樣就可以達成。
        Clock會由Transmitter (Master)提供,因為大家會看到同一個Clock訊號,雙方可以利用Clock訊號協定通訊協定,以I2C為例因為本身idle的時候是高準位(pull-up resistor),在傳輸過程是以clock rising edge的訊號來判斷可以讀取Data上面的資料,falling edge的時候是data轉換過程。
        與UART/One Wire Communication相比,因為Clock由Transmitter決定,也就是clock rate已經被決定Receiver端不需要先設定或知道Baud Rate是多少? 而且Receiver端也可以不用內建clock generator。
        因為有兩條線Clock and Data (其實還有GND啦),所以通稱two wire communication.

        I2C當初在發明的時候是為了要連結多個周邊電路,所以如果有多個Slave元件串接再一起,Master只需要拉出兩條線Clock and Data (其實還有GND啦),所以通稱two wire communication. 
        multi device在溝通的時候,原理其實跟一推人用對講機一樣,有一個主控中心(Master),當老鷹呼叫小雞的時候,要求回覆所在位置的時候,用場的每個人都會聽到這段指令,但因為指令裡面是指定小雞回應,所以只有小雞會回答位置,在回答位置的時候,其他母雞與公雞也都能聽到這段話,但他們會注意的關鍵字是
Over
因為聽到Over後他們要在聽專注下一段話是不是老鷹在呼叫。

        底下是I2C Read Register的Protocol (from TI),第一個byte包含7bits的Slave ID,然後1bit R/W來決定這個是讀或是寫,然後後面跟著要讀取的Register Address 兩次......別問為什麼兩次這就是協定,然後就是Slave等待回應Data. 傳後完後一個Stop (Data)。


MIPI RFFE

        MIPI RFFE是MIPI聯盟下的其中一個通訊協定,MIPI Alliance主要是促進手機通訊介面一致化,這個也協助手機業後面快速發展的一個推手,最主要的目的是統一介面,某種程度上如果你手機製造商用了A家的面板,但如果想要換B家如果兩家的介面都是不一樣的,那製造商勢必要花時間來開發B廠商的驅動程式,其實可以想像IC與IC之間的USB,大家都走一樣的傳輸協定,無論是鏡頭的開發者或顯示器的開發者都可以專注在本業上面。
        MIPI RFFE 為RF Front End的縮寫,目的就是來控制這些周邊射頻元件,整個通訊協定與I2C類似,也是two wire communication的架構(Clock and Data)。
Fundamental features
  • High performance (up to 52 MHz bus speed)
  • Low power
  • Low EMI
  • Point to multi-point
https://mipi.org/specifications/rf-front-end
      會有MIPI RFFE的產生其實與智慧型手機發展有關,手機在2G雙頻,四頻到3G 4G,又要支援CA等等,當初入門的3G手機,TXM就有六個TRX Port, IDLE HBTX, LBTX 9種狀態,所以至少要四條控制線(GPIO)來控制這顆元件,但當你其他元件進來的時候所需要的GPIO就越來越多,而且因為全部都是從Modem接出去,整個PCB布局的複雜度也會隨著元件數量往上提升,但如果改用MIPI RFFE (two wire bus),每顆元件就只要三條線.....多一條是因為還要有電源Vio,在布局上面因為是串聯所以彈性也比較大。
        

GPIO vs MIPI RFFE
        那為什麼不用I2C就好了呢? 這邊有幾個比較重點的理由,
1. MIPI RFFE不用pull-up and pull-down電阻
2. 整個Protocol是為了手機量身訂做,比方說有制定Broadcast Trig協定,在時序要求精準的通訊系統可以有更精準的Timing控制。
3. 可以動態修改USID,MIPI USID為4個bits,在同一個bus上面可能會遇到相同的USID,但MIPI 有制定獨一無二的Manufacturer ID還有自訂的Product ID,所以系統可以透過特定的程序在開機的時候動態修改USID,方便在更換不同廠商pin to pin元件的管理。
4. Clock Rate up to 26MHz. (這大概是最重要的一點吧)
http://mid.mipi.org/
         底下是GMSK傳輸的時序圖,其實無論是2G, 3G, 4G,傳輸的單位都是以一個Time Slot來區分,因為移動通訊手機與基地台的位置會一直變化,傳輸的功率與內容要一直隨著環境的改變來調整,所以每一個Time Slot的傳輸過程如果以傳統的GPIO,Rising Edge訊號打開,Falling Edge訊號關閉,如果改成I2C的話最大的問題會是傳送一個command總長度是多少?
        以一個I2C寫入的指令8bits slave ID, 8bits address, 8bits data. 不含Parity Bit總共需要24bits來完成一個指令傳送,如果clock rate為 100kHz, 那一個clock tiime為10us, 送完一個command所需要的時間為240us.
24*10us  = 240us........
        這樣的速度是沒辦法應用在行動通訊上面的,如果clock rate拉高到10MHz, 那一個clock cycle時間就會縮短到0.1us. 送相同的指令就會縮短到2.4us. 這可以滿足目前行動通訊slot to slot之間的要求。
24*10.1us = 2.4us

        底下是MIPI RFFE Write Frame,另外MIPI RFFE對Register 0還會特別設計一個Frame,跟一般的指令Write相比,同樣要對Register 0寫入
特別指令Register 0要敲的bit數為:          16bits
一般指令Register Write要敲的bit數為:   24bits.
如果有對timing控制特別敏感的,指令長度還是快了一些,因為大部分device開關的logic table都會設定在register 0的位置。
        下次有時間再來聊聊MIPI RFFE的一些無聊的設定還有MIPI Alliance新制定的I3C吧
        


2018年7月8日 星期日

ZYXEL MULTY X WIFI MESH 開箱 使用心得

        隨著時代的進步,網路速度終於到真正可以支援影音串流,家中第四台剪掉一年多,發現其實生活中可以不看第四台,沒有必要拿著遙控器一直轉台轉一圈還不知道要看什麼? 就選自己要看的節目看就好了。


        老媽目前也都是看Youtube上面的節目,但電視經常被她的孫子霸佔,常常只能用手機看節目,就買了一台平板要給老媽追劇,想說家裡的WIFI AP也很久了,在用Chromecast看Youtube的時候也卡卡的,順手也刷了一台....應該說兩台ZYXEL Multy X。

        這陣子WIFI Mesh網路正夯,但普遍都是雙頻系統,如果對802.11有了解的都會知道,2.4G與5.0G的頻寬20MHz vs 80MHz是不同等級的,如果要達到Mesh網路之間不卡關,一個專屬5.0G的Channel是比較務實的,不然AP又要跟一般手機平板通訊,又要跟AP通訊,加上WIFI是TDD系統,也就是每個通訊是大家去分時間的(TDD),所以在802.11ax來臨之前,一個專屬的通道是比較務實的做法。

        另外如果是802.11ax,我覺得雙頻mesh網路可能又是另外一層光景,有機會再來打打802.11ax到底有什麼神奇的地方。




        原本家中用的是ASUS RT-N12 HP,因為AP是放在2樓,但電視是放在一樓,平常視訊人也在一樓居多,但中華電信主機是在二樓,而且平常也會在二樓的房間,方便安裝WIFI AP就放在二樓,那時候怕訊號不夠強所以買了一個看起來很嚇人的大天線版本,再加上2.4G低頻穿牆特性比較優,所以整棟樓收訊都還算可以。

        在更換前先用手機的WIFI分析儀看看每個角落收到的訊號大小(dBm),手機是我覺得難用到爆炸的SONY Xperia XZs,先比較只有一台的狀況,另外說一下WIFI Mesh應該是NetGear Orbi那台比較紅,但因為那一台軟體有主副機的差別,我買這一組也是想著如果不需要兩台我另外一台可以單獨使用。

        可以看到可能因為大天線在不同樓層之間收訊還是可以看到好處,三樓原本華碩那一台會收的比較強,但一樓客廳部分是沒有太大的差別,而且可以看到5G訊號穿牆就是一個悲劇,整個Level就是差了10dB. (10dB代表訊號強度差10倍.....10倍喔)
        當然如果裝這一台,說實在就根本不用換,接下來在一樓再放一台Multy X,現在蠻多產品都是透過Bluetooth來設定,下載對應的APP過程分常簡單,你不需要找一台電腦,然後街上網路線,設定192.168.0.1 (如果知道我在說什麼就代表你是巷子裡的)來設定。

        只要找個有電源的地方,然後透過手機APP就可以完成設定,另外現在WIFI MESH機種幾乎都支援相同SSID,你不用在特定指定那一個設備要用2.4G那一要用5.0G,手機與平板上面只會有一組SSID,如果家裡使用的WIFI設備多,其實是個非常實用的功能。

        設定完之後1F無論是2.4GHz 或 5.0GHz都是訊號滿格的狀態,但這有個問題存在,訊號滿格是你在1F放了一台AP,隨便買台便宜的AP也會有同樣的效果,說實在是這樣沒錯,而且測試軟體其實會同時看到兩台相同名稱SSID訊號,所以讀到比較強的一定是2F發出來的那一台。
        ZYXEL APP上面可以直接診斷網路之間的傳輸能力,可以看到兩個結點對外的網路能力是卡在中華電信光世代60M/20M上面,重點是兩台Multy X之間的回傳能力(Back haul),可以看到傳輸速度竟然還有在400Mbps。
        因為一開始用手機抓一下訊號強度只有-70dBm左右,雖然沒有工程模式來確認實際跑的調變訊號是什麼,但應該會落在MCS0 ~ MCS3之間 (BPSK or QPSK)。

From NI Document Introduction_to_WLAN_Testing.pdf

        這也是我為什麼強調現在Mesh要買就買三頻機種,從規格書看來ZYXEL MULTY X在5.0GHz 設定了4 TX的設定,因為兩台AP安裝後地點是相同,所以比較容易得到穩定的理論值,所以就算速度從1733狂瀉到468等級,也是足夠應付家中光世代速度。

https://en.wikipedia.org/wiki/IEEE_802.11ac
        實際使用起來,速度感覺有比之前穩定,我覺得這款產品除了價格外目前是沒有什麼好挑剔的,安裝起來也很方便,當然拉線到每個樓層是最直接的做法,但安裝上就比較受限,而且不知道這種產品有沒有支援區域網路互相溝通的功能?

2018年4月8日 星期日

無線充電與電池壽命Wireless Charging (Qi) and Battery Life

        今天科普小教室來聊聊無線充電Qi與電池壽命Battery Lifespan,前陣子Apple因為偷偷降速被抓到,鬧得沸沸揚揚,解釋說是避免系統無預期關機,但大家都不買單,剛好最近入手了一隻iPhoneX有支援無線充電,剛好網路上有一篇文章說無線充電會增加電池循環充電次數降低電池壽命,真的會嗎?

外媒 6 個月實測 發現 iPhone 8/X 無線充電可能加速電池老化

iPhone X/8: Wireless charging will wear out the battery faster than cable charging

        文章裡面主要提到使用無線充電為iPhone充電,四個月充電循環高達82次,推算18個月會到達500次充電循環 Recharging Cycle? 聽起來很嚇人是吧? 好像18個月後手機就會壞掉的感覺。

ZDNet 的編輯 Adrian Kingsley-Hughes 在 iPhone 8 Plus 開售時購入使用,並以無線充電形式為 iPhone 8 Plus 充電,聲稱用無線充電更方便,但是使用不到 4 個月,他發現了 iPhone 8 Plus 的充電循環竟然高達 82 次,他當時推算電池會在 18 個月到達 500 次充電循環。


Recharging Cycle 充電循環次數

        這邊先來名詞解釋一下什麼是Recharging Cycle,鋰電池充放電是個化學反應,正電荷負電荷一直忙碌地跑來跑去,就跟人一樣跑久了膝蓋會退化(老化),電池放電到沒電然後再充飽的過程,叫做一次循環,所以一般鋰電池會說經過500次循還充電後,電池充飽的電量會只有原來的80%(一般常看到的定義為80%)。
        但500次是實驗室特定的條件下所得到的數字,實際使用上面會有所不同,但最主要影響電池壽命是
        1. 溫度 
        2. 充放電速度或電流大小 
        溫度越高電池老化速度越快,這幾乎套用在全部的產品的特性例如電子零件,外觀機殼等等(HTOL),充放電速度快或電流大,當你開啟很吃資源的手遊發現手機一下就沒電發燙,那是因為電池在快速放電一樣放到沒電,放電越快電流越大電池也越容易老化,相對應的充電行為也一樣,現在標榜快充閃充等等,在一樣的條件下充越快電池老化速度也越快,這是鋰電池的宿命,下面附了一個連結裡面講的很詳細。

How to Prolong Lithium-based Batteries

What Causes Lithium-ion to Age?

The lithium-ion battery works on ion movement between the positive and negative electrodes. In theory such a mechanism should work forever, but cycling, elevated temperature and aging decrease the performance over time. Manufacturers take a conservative approach and specify the life of Li-ion in most consumer products as being between 300 and 500 discharge/charge cycles.
        現在無論是iOS or Android App Store上面都會有很多類似電池醫生的App,或手機製造商也都會有自己的電池保護機制比方說Sony Stamina,主要都是在控制不要讓手機快速放電與充電,說白了就是限制手機效能與充電速度(講的好像很神一樣),另外這類的App也是用存取所謂的循環充電次數來判斷這顆電池的壽命,我不確定這是手機系統資訊還是電池裡面有晶片在紀錄。但iPhone送修回來大家都會看一下電池循環充電狀況有沒有歸零,看看自己有沒有拿到新電池的整新機。

Adapter Plugged-in 插著充電線使用

         好像網路上有流傳不要邊充電邊玩手機,會損壞手機或加速手機掛點,我不知道那訊息到底怎麼來的,可能有他的時空背景(以前一些白牌手機設計不良等等),但現今入門的手機到頂規的版本,理論上你想充就充,隨時隨地的插著充電器,沒問題地, 底下這張圖簡單示意一下邊充電邊玩手機的情況。

        一般在使用手機的狀態,全部的電力會完全由鋰電池提供(廢話不然用愛發電嗎?),但是當處於充電的狀態,電力來源會由外部的充電器或行動電源提供,所以有時候如果用到不良的充電器會爆炸是因為手機在高度負載的情況下,充電器Adapter超過原本的負荷燒毀,所以當手機爆炸會漏電的時候,新聞都會說使用原廠的充電器,也不是說原廠比較好,是有些副廠太危險了。        
        
先把手機電池充飽的狀況下,再啟動安兔兔AnTuTu Benchmark來強迫手機進入高負載狀態,可以發現充電器在峰值電流會提供1.2A左右的電流(5*1.2=6W),這6W供給手機工作時候的電流,這個時候鋰電池是處於充電狀態,並不需要提供電流給手機運作,所以當然沒有損耗的問題,唯一的問題是手機CPU發熱讓電池老化吧........        

Qi Wireless Charging 氣...無線充電

        那....用無線充電呢?無線充電Qi這個標準早在2008成立到現在,在iPhone導入後,終於獲得大家眼球的注目,以Richtek RT1650 Application Note來說明一下Qi Wireless Charging的動作原理,因為Qi是個工業標準,所以每一家都大同小異,有興趣可以直接點以下連結下載PDF。

  Qi原理其實是個短距離無線電收發機,只是主要目的是要傳送"功率Power"而不是"資料Data",所以整個充電過程只是在Adapter中間多了Qi的收發器,所以後面充就跟用充電器充電一模一樣,問題是無線充電器本身的損耗會比直接用充電器來的高,而損耗的部分會變成熱,所以Qi無線充電現階段換限制充電瓦數在7.5W,主要應該是安全性的問題。

  尤其是用充電線的手機都會爆炸了,更何況這種非接觸式的充電方式(雜牌Qi發射器)。
  那如果發射器與手機之間有異物會不會有安全性的問題呢? 但就如同剛剛提到的,Qi主要目的是傳功率,但還是可以傳送資料,所以如果設計得宜,發射與接受可以互相確認發射與接收的狀態例如發射接收功率比、溫度電流等等,來確定中間是否有異物來停止傳送或降低功率輸出與接收。
  換言之,Apple之後可以透過軟體方式來讓Apple專屬的Qi TX享有更高的傳輸效率與特殊功能或限制其他牌子的Qi充電器使用。

  一樣的測試條件直接用充電線改成網路上買了雜牌Fast Charger ,我必須承認我就是看了3-Coils三線圈設計,感覺多了一個線圈有超值的感覺,但實際上想想可能只是雞肋,而且雖然是白色的超級沒有質感的(買Apple原廠吧)。
   一樣跑安兔兔AnTuTu可以看到電流峰值在跑3D測試的時候來到1.85A,輸入功率5*1.85=9W接近宣告的10W水準,但如果這個峰值功率與插著傳輸線的峰值功率所消耗的功率是一樣的話,那傳輸的效率就差不多是

    6W/9W = 0.66 => 66% => 100-66=34%變成熱

  這也差不多與每一家宣稱的的理論值相當接近,只是這變成熱的34%不知道手機部分所佔的比例是多少,假設一半也差不多是17%變成手機暖暖包的能源。

     所以無線充電會不會影響,其實我並不認為會增加電池充電循環次數,而且在實際生使用上非常方便,降低了接頭插拔的磨損,我想Apple下一步應該是拿掉SIM卡吧,從不能換電池到拿掉3.5mm,再來導入了無線充電,現在這麼積極推廣eSIM,看來下一步就是拿掉SIM的卡槽了。
 

2018年2月20日 星期二

RF共源極放大器需要匹配電路嗎? Do we need matching circuit for RF common-source Amplifier?

        到底從什麼時候就在接觸電晶體電路了呢?  印象中好像高中物理就在教電晶體放大器了,上網查了一下高中高職的確就在教電晶體放大器,所以很早很早就在接觸電晶體放大器的電路,無論是學校課本Smith Electronics到補習班的講義,到後來開始學微波工程從放大器變成射頻放大器,但從電子學到射頻電路突然之間有種有點說不上來的模糊地帶

        下圖Figure 1是學電子學放大器電路一定會看到的共源極common-source放大器(省略了部分偏壓電路),大部分RF射頻放大器也都是共源極(or common emitter)的結構,電子學講義第一步會分析偏壓點,然後用小訊號模型開始分析ac gain,整個過程你也不需要知道什麼是反射係數,S parameter的一些微波工程裡面講到的東西,就可以理解這個電路的工作原理。
     
Figure 1

        下圖Figure 2為小訊號模型,一般RGS會非常大,所以輸入的訊號Vin會直接等於vgs,然後被放大,那這個時候我們需要輸入匹配電路嗎? 訊號直接灌到gate不就好了,匹配後電壓還少了一半...........
Figure 2
        如果像我這種電子學沒念好,微波工程又一知半解就會覺得有些地方說不清楚,微波工程的觀念說如果沒有作conjugate matching是沒辦法取得最大的gain (S21),但figure 3電子學電路看起來,RS一般為50ohm,我們假設RGS是RS 10倍大也就是500歐姆好了,不匹配直接接到gate端,這樣vgs = 500/(50+500)*VS = 0.91VS, 幾乎等於全部的VS, 但這樣反射係數S11 = -1.7dB幾乎全反射,這樣拿的到好的Gain/S21?

        但如果加了一個匹配電路把輸入阻抗匹配到RS,沒有全反射會有全部的功率輸入會得到最大的功率轉移,但電壓振福Voltage Swing不就變小了嗎0.5*VS? 共源極放大器不是要讓vgs voltage swing最大嗎?

Figure 3



         這問題說實在我自己有想過,但後來也沒想通就推給RF電路就是這樣這種不負責任的說法,但今天就來一探究竟。

          Figure 4為負載為500ohm,這結果就是分壓定律計算的結果,V2會等於0.9V1的voltage swing在R2上面,到這裡應該沒有什麼問題。

Figure 4
        我們在上面的電路增加一個簡單的匹配電路L Type LC Matching Network如Figure 5所示,這邊VS為1GHz所以簡單計算一下所需要的電容C1=0.96pF, L1=24nH,我們再觀察一下這時候V2的電壓會等於0.5*VS,如同先前推想,但是R2上面的電壓會變成1.6*VS,Voltage Swing大於VS本身,套句我尊敬的前輩的口頭禪,這怎麼可能?
Figure 5 
        但這其實一切都符合電路原理,回想一下微波工程在講匹配的目的是什麼? 最大功率轉移,這邊都在講功率Power而不是講電壓Voltage或電流Current,但如果我們負載的阻抗已經確定了,最大的功率轉移就會等於最大電壓轉移在Real Part負載上面,也就是在經過匹配網路後,V2看入的節點往內看的確滿足最大功率轉移,而且匹配網路加上負載本身因為只有Real Part會消耗功率,所以R2上面的V3 Voltage Swing要滿足功率守恆,所以負載上面的電壓經過匹配網路後會大於VS的原因。


        其實講了這麼多,最後會發現如果要取得最大的Gain還是需要阻抗匹配,Figure 1這個單向性小訊號分析unilateral small signal network model,S11等於-1.7dB,輸入阻抗為500ohm,所以conjugate matching就是要把500ohm匹配到50ohm。

        經過匹配後Voltage Swing會從0.91*VS變成1.6*VS,會相差4.8dB,最後會發現整個理論其實是相通的,這個例子有匹配與沒匹配會多出4.8dB的Gain。

        只是工程上用不同方向看問題,類似Frequency Domain和Time Domain一樣,如果你跟我一樣電子學沒有學得很好,微波電路卡住的時候要偶而回頭看一下電子電路學等源頭的學科,我想當初寫微波工程這些教科書的人本身基礎學科一定都很強,所以在寫微波工程他並沒有感到什麼問題。

PS. 現在網路上很多免費的工具可以用,協助檢驗答案有沒有錯誤,上面的模擬軟體為Qucs Quite Universal Circuit Simulator,有興趣可以點進去看看。



2018年2月10日 星期六

歐美濾水壺大戰 3M Filtrete vs Brita Maxtra

3M Filtrete and BRITA MAXTRA        

        之前有聊過新竹的水質偏硬,直接煮水垢偏多,喝起來口感也會變差,Brita Maxtra算是一個方便的解決方案,但這幾年大賣場也會常看到另外一家產品3M Fitrete,3M和Brita兩家的濾心在台灣賣的價格想差不多,一個大概約200多快新台幣,前陣子逛濾心不夠去大賣場要買濾心,但看到3M在特價加上家裡的Brita濾水壺用久了外觀有點舊了,就買來比較看看。





    Brita and 3M這兩種原理一樣,主要的材料就是標榜無鈉樹脂加上活性碳構成,所以可以去吸納一些金屬離子與吸附異味。

所以使用上如果有看到黑黑一粒一粒的東西是裡面的活性碳,喝下去是不會有什麼問題的。



另外這種簡易型的濾心都有建議時間時間,3M號稱長效型可以使用12週 240L,BRITA是說台灣水質可以使用4週 100L,帳面數據看起來3M好像比較划算。

BRITA上面有電子計時器提醒你什麼時候要更換,3M上面有12月份紀錄上次濾心更換的時間。



        但說實在的這個都是參考建議,因為台灣各地的水質軟硬度差異很多,每個人的用量也都不同,很難很清楚界定什麼時候要更換濾心,但我個人比較喜歡3M的設計,至少不會沒電。而且3M的濾心速度比較慢,這種活性碳濾心說實在速度太快效果反而不好。

TDS Benchmark

        再來是殘酷的歐美大對決了,看誰可以軟化新竹的自來水。
                1. 首先用量測一下水龍頭原本水質的TDS
                2. 倒入濾水壺中過濾後再量測一次。
                3. 重複上面的動作,將過濾後的水再倒入濾水壺中。
  

        3M的效果表現的不錯,但不知道為什麼 BRITA跟我之前測試差距頗大,之前BRITA過濾後都還有5x,但今天拆新的只有降到8x,難道是有一致性的問題(職業病上身),下次開新的再來測試看看。
        
       今天無聊一下把兩家的濾心比對了一下,就帳面數據跟設計,我會比較喜歡3M,有不錯軟水效果不錯,雖然TDS不代表水質的一切,但這是自己可以自己取得的數據,濾心設計跟濾水壺設計我個人也比較喜歡。
      下次要買哪一家呢? 其實就是大賣場哪家便宜就買哪一家,效果一樣沒有必要一定要迷戀那一家。
          



2017年11月22日 星期三

Balun Power Combined Amplifier, Gain Error between In-phase and out-of-phase is not equal , Don't Trust Your Feeling. 讓人感覺失準的dB

        LTE HPUE這個東西最近有被拿出來當作產品的賣點,HPUE為High Power User Equipment的縮寫,或簡單一點講也就是功率打得比較大的手機產品,手機功率大有什麼好處? 當然直接的好處就是傳送的距離可以增加一倍(+3dB Power),需要基地台涵蓋數目就不用這麼多,但壞處也顯而易見就是會比較耗電,另外一個最重要的問題就是安全性(電磁波),也就是常常在吵的基地台不能蓋在我家旁邊的意思。

        所以一般來說目前制定HPUE的標準為原本功率再往上加3dB,但3dB講起來容易在功率放大器的設計有時候就會要了你的命,除了重新設計外另外一個就是使用Power Combine的架構。

1. 重新設計原本的放大器 (Transistor)
2. 沿用原本的放大器利用Power Combine的技巧,in-phase, out of phase combined. 

        如下就是一個Balanced Power Amplifier的架構,使用兩個Balun達到功率合併的目的,Balun將訊號反轉180度後,最後在輸出端再反轉一次達到功率合併的效果,另外這個電路的優點就是even order的諧波(harmonics)都會天然地被抵銷,是個天然的濾波器架構。

     
        但以上都是假設 Balun是完美....Perfect的狀態,一個理想的Balun 振幅大小要一致(Amplitude Balance)和相位剛好相差180度 (Phase Balance),這樣才會得到上面的結論,f0功率多出3dB,2nd harmonic 2xf0完全抵消的結果。

        但如果遇到一個沒那麼完美卻堪用的Balun呢? (對不起我用了堪用堪用堪用.....) 這個Balun的 Amplitude Ratio為0.9,但phase是完美的180相差,我們先來看看如果功率合併的狀況。
       
        如下圖在這個狀況下,Power Combine會從原本的3dB掉到0.2dB,原本要加3dB現在只有2.8dB,相差0.2dB.......好像也還好,才差0.2dB還是多了2.8dB阿


 
        
        但是我們看看破壞性干涉(out of phase)2nd harmonic抑制的結果,從原本的-inf dB(假設-100dB好了) 變成只有 -10dB,換句話說提供了10dB Rejection的能力,但原本Harmonics是 -100dBm好了變成只剩下-10dBm,變差的差距怎麼這麼大.......大......大.

        一樣的誤差值,但Power Combine的時候給你只有差0.2dB的感覺,但在Harmonic卻給你變差100多dB的錯覺。這是Linear Scale 轉成Log Scale很容易產生的認知上的錯覺。
      這樣的Case蠻常出現的,小心不要掉進Log Scale思考的陷阱喔。


2017年10月5日 星期四

讓人腦子發燒的熱雜訊thermal noise kTB,用愛發電不如用電阻發電?

A: 你這PA ModuleTX Noise Power太高了,這樣會有desense的問題啦!

B: ......   輸入端黑黑的元件是什麼?

A: 電阻阿,兜衰減器用的。

B: 這樣不行啦,電阻會產生熱雜訊你知道嗎?謎底解開了,noise power變差的兇手就是他.....

A: 喔喔喔....原來如此...........

 

    經常都會聽到類似的對話,穀歌一下 thermal noise 熱雜訊前幾篇文章都會有類似下面的圖示,一個電阻放在一個溫度 T 的環境下,會產生"熱雜訊"



(Vn)^2=4kTBR


k: 波茲曼常數 (Boltzmann constant)
T: 絕對溫度 (Kelvin)
B: 訊號頻寬 (Bandwidth)
R: 電阻值 (Resistance)

    這個公式修過微波工程等相關課程的同學一定不陌生熱雜訊會跟T溫度,Bandwidth訊號頻寬與R電阻成正比,所以電路裡面有電阻會造成整個電路的雜訊指數變差…….
?

    當然上述的論點,是有些地方等一下要來討論,在這之前我們先回憶一下低雜訊放大器LNA (Low Noise Amplifier)與雜訊指數NF (Noise Figure),下面的是一個常見的LNA計算的示意圖。 增益Gain = 20dB, 雜訊指數NF =3dB, 這時候要計算它的雜訊輸出No (Noise Output),學過射頻RF或微波工程的一定都會知道

背景雜訊-174dBm這個魔術數字,但精准一點應該是-174dBm/Hz (/Hz = per Hz)

假設大家都知道,雜訊輸出No就可以很簡單的得出
No=-174dBm + 20dB (Gain) + 3dB (NF) = -151dBm.



    目前到這邊可能都沒有什麼太大的問題,但我們再回想一下-174dBm是怎麼得到,如果溫度T改變了這個值是多少? 手邊有微波工程(David M Pozar)可以翻一下,Noise Power的公式為:

 

kTB................kTB.................kTB.....................重要的事情要講三遍

 

裡面並沒有電阻R (Resistance) 在裡面,這公式告訴我們Noise Power只跟溫度T頻寬B有關,但電阻R? 怎麼不見了?

 

    其實這本身並不衝突,因為一開始熱雜訊thermal noise power上面是描述一個電阻R在溫度T底下,兩端會有熱雜訊電壓,電壓本身大小與R有關,但在通訊系統上面,描述一個系統的訊號品質或訊號幹不乾淨的指標為訊號Signal與雜訊比S/N ratio,是指訊號的S與雜訊功率N.....功率......功率.....的比值。

 

    下圖是為一個處在溫度T的電阻R的等校電路,產生熱雜訊電壓Vn,最後雜訊落在系統負載RL上面的功率是多少?

     這取決RL值得大小,而最大功率轉移max power transfer 公式告訴我們,當RL=R的時候會有最大的功率轉移,也就是這時候功率會是kTB (R消失了)

    這又回到RF電路計算的理論,如果一開始直接學射頻煉路預算RF link budget 會覺得覺得很順,就計算一下反射係數然後每一級的增益加加減減,但zoom in到電路的時候(變成電子學)又會吱吱嗚嗚......



    現在回過頭來看原本的問題加了衰減器到底會不會影響noise power,底下兩個case用來解釋全部有損耗的網路結構。

 

case 1: 兩個電阻串聯在一起

case 2: 兩個電阻並聯在一起

 

    這兩個case其實都可以利用大衛甯定理 Thevenin's theorem的技巧算出等校的Rth and Vth,但這邊有個小提醒,一般的大衛甯定理是在計算直流電壓電流,也就是訊號之間是correlated in-phase的概念可以直接相加減,但雜訊之間的訊號本身是uncorrelated獨立訊號源,所以在計算上要用Vn^2=Vn1^2+Vn2^2........來計算。



 

    結果可以預期熱雜訊thermal noise power與電阻R無關,與溫度T有關,其實這也很容易理解,如果一堆電阻並聯或串聯再一起雜訊可以一直相加變大,那...........手機就不用放鋰電池了,放一推電阻就好了啊

 

Noise Circle and Cascade NF calculation

這邊我們在看一個低雜訊放大器LNA常見的問題,串接的雜訊指數在計算的過程,如果遇到濾波器Filter插損IL3dB,那此濾波器的雜訊指數就是3dB,這是代表什麼意思?

 

在大部分的教科書中,串聯系統每個網路都是假設為共軛匹配conjugate matching的條件下所得到的結果,講白話就是的沒有反射訊號,以下圖一個插損為3dB的濾波器為例,在這個條件下網路的插損IL(insertion loss, S21)會直接把輸入訊號減3dB 也就是Si – 3dB, 但是輸入雜訊Ni -174dBm/Hz經過這個網路還是:

No=Ni=-174dBm/Hz

這個有點類似源頭有各-174dBm+-174dBm=-171dBm然後在衰減3dB,最後輸出還是-174dBm,其實這個原理跟上面電阻網路相加減是一樣的意思,最後Noise Power會與電阻無關,或雜訊水準不會變高。

但經過一個3dB衰減的Filter,最後S/N變差3dB並不是雜訊功率(noise power)墊高而是訊號S變差3dB



 

那我們在看一個case,如果匹配網路是個串聯電容,這個電容剛好是看進去S11=-3dB, S21=-3dB. 如果是一個無損的電容,在電容值剛好等於反射係數0.5也就是有一半功率反射的時候,這時候訊號與雜訊會同時被反射,在輸出端也會等量的少3dB

 

因為是訊號S與雜訊N一起減少3dB也就代表S/N並沒有改變,但增益Gain還是會變差3dB,如果你手邊有CAD軟體可以跑跑看,一個無損的網路在串聯系統是不會影響整體的NF,因為實際上訊號經過電容並沒有任何電阻性的衰減。








熱門文章