2011年3月31日 星期四

LG Optimus 2X P990 全球首部雙核心智能手機

LG Optimus 2X P990 全球首部雙核心智能手機

LG (樂金) 2011 03 11日推出新全球首部雙核心智能手機 Optimus 2XOptimus 2X內置 1GHz NVIDIA Tegra 2 雙核心處理器,採用 Android 2.2 作業系統,還提供未來可升級到 Android 2.3 版本。配備4 1670萬色全觸控 LCD 屏幕,解像度高達 480x800像素,特別是螢幕就採用了高强度耐磨玻璃 Gorilla ,提供防刮、耐摔及耐磨的全面保護。手機內建 800 萬像鏡頭,支援人面追蹤和微距拍攝,而且支援 8X 數碼變焦、防手震功能和多種拍攝模式,同時備有 130 萬像素前置鏡頭,並支援內置的「 Mirror 自拍 App 」進行視像通話。


LG Optimus 2X 內置 NVIDIA Tegra 2 1GHz 雙核心處理器,這顆 Tegra 2 處理器搭載兩顆 Cortex A9 處理器時脈高達 1 Ghz,內含 ULP GeForce 圖像處理器支援 Full HD 1080p 影片解碼 H.264VC-1 APMPEG2MPEG-4DivX 4/5XviD HTH.263TheoraVP8WMVSorenson SparkReal VideoVP6,每顆各有 32KB L1 Cache1MB L2 Cache。可同時開啟並處理多個應用程式,由於是雙核心處理器,網頁瀏覽速度比一般手機快,不論欣賞網頁中的 Flash 串流影片或 Flash 遊戲,都感受到速度。手機支持高清短片拍攝,亦內置 HDMI 高清畫面作同步輸出功能,隨時隨地欣賞或分享手機內容。


 
LG Optimus 2X 可自訂多達7頁手機主頁及資料夾分類 / 自訂水平, 垂直 及列表應用程式頁面。Optimus 2X 雙核心處理器具備與GeForce 同級的圖像處理能力,玩 3D 遊戲時畫面更順暢快速。透過 Android Market,你可下載更多更新的遊戲。還配備 DLNA 無線傳輸技術,無需連接任何數據線即可連接其他同樣支援  DLNA 的數碼電子產品分享影片、照片或音樂檔案。




品牌型號LG Optimus 2X P990
系統WCDMA 雙頻、GSM 四頻
上下載速度5.76Mbps / 7.2Mbps
屏幕4.0英吋 480×800 解像度 1600萬色 TFT LCD屏幕 + 電容式觸控屏幕
處理器:NVIDIA Tegra2 1GHz 雙核處理器
作業系統:Android OS 2.2 (可升級至 Android 2.3 版本)
無線網絡:802.11 b/g/n
藍牙:2.1 + A2DP + OPP
GPS功能:GPS / A-GPS
收音機:無
TV功能:無
其他功能:支援 1080P 全高清影片播放 (1080p @ 24fps / 720p @ 30fps)DLNA、光源感應器、距離感應器、Flash 網頁支援
鍵盤:無
鏡頭:800萬像素 CMOS 自動對焦鏡頭、8X數碼變焦 + 130 萬像素視訊鏡頭 + LED
內置記憶容量:512MB RAM + 8GB內置用戶記憶體
可擴充記憶:MicroSD 最高32GB
電池:Li-ion 3.7V 1,500mAh (FL-53HN)
I/O介面:microUSB插座、HDMI-D插座、3.5mm 耳機插孔
通話時間:最長480分鐘 (GSM) / 最長380分鐘 (3G)
待機時間:最長380小時 (GSM) / 最長480小時 (3G)
顏色:啡色
機身設計:直身手機
機身尺寸:123.9 × 63.2 × 10.9 mm
重量:139g
日期:20110311
參考售價:港幣4,980

2011年3月30日 星期三

Samsung E1252 雙卡雙待手機

Samsung E1252 雙卡雙待手機:

Samsung (三星) 201102 08推出 E1252 雙卡雙待手機,配備 2 26萬色及128x160 解像度TFT彩色屏幕,Samsung E1252 機身纖巧,體積只有 112.7 x 46.65 x 13.9 mm,屏幕瀏覽主選單輕易,可以更舒適的閱讀長篇簡訊文字。

 
Samsung E1252 的特響揚聲器,讓用戶即使在嘈雜環境亦不會錯過任何來電。此外,Samsung E1252 機身纖巧,體積只有 112.7 x 46.65 x 13.9 mm,卻配備支援 11小時通話時間及 620小時備用時間的高容量電池,並可儲存大量聯絡人資料及短訊訊息,使用戶可隨時與任何親友,以至龐大客戶群及業務夥伴,保持無間通訊,同時亦可保留所有重要的個人訊息。


Samsung E1252 特設 SIM 卡切換快捷鍵,用戶可於一部手機內同時安裝兩張不同的 SIM 卡,側邊設有快速切換鍵,方便經常出外旅行或穿梭中港兩地的人士使用。用戶亦可把一個號碼為親友而設,另一號碼則為工作夥伴而設,又或是把兩個號碼分配作不同的朋友群組。雙卡模式方便用戶管理 SIM 卡,用戶可把公務與私人電話分開計算,盡享不同網絡供應商的不同收費優惠,同時讓手機可享用不同網絡供應商的覆蓋優勢,讓溝通變得更有效率。此外,個人可自訂主網路切換時間,只要時間一到,手機會自動切換到您所設定的主網路,就像同時擁有兩支手機隨身待命,方便實用!



Samsung E1252 配備 FM 收音機功能,可隨時收聽最新的新聞或音樂等資訊,並能支援自動搜尋電台,同時儲存可用電台,可設定收聽電台節目,不怕錯過任何電台節目。內建手電筒功能,可作照明用途。但其他的功能,如無線網絡、藍牙、GPS 及鏡頭等等功能都欠逢。



品牌型號:Samsung E1252
系統:GSM 雙頻
上下載速度:GPRS
屏幕:2.0英吋 128×160 解像度 26.2萬色 TFT LCD屏幕
處理器:未有資料
作業系統:未有資料
無線網絡:無
藍牙:無
GPS功能:無
收音機:FM
TV功能:無
其他功能:T9 輸入法、手電筒、雙卡雙待
鍵盤:數字鍵盤
鏡頭:無
內置記憶容量:5.2MB
可擴充記憶:無
電池:Li-ion 3.7V 1,000mAh
I/O介面:非標準USB插座
通話時間:最長600分鐘
待機時間:最長800小時
顏色:黑色 / 白色
機身設計:直身手機
機身尺寸:112.7 × 46.65 × 13.9 mm
重量:76.7g
日期:20110208
參考售價:港幣450

2011年3月29日 星期二

DIY - PIC:MPLAB C18 編譯器的數據類型和限制 (四十七)

DIY - PICMPLAB C18 編譯器的數據類型和限制 (四十七)

MPLAB C18 編譯器支持標準 ANSI 定義的整數類型。該範圍的標準整數類型如下圖表。另外,MPLAB C18 還支持 24 位整型 short 長整型(或長的短整數)。

▼整數數據類型大小和限制
32位浮點類型於 MPLAB C18 中使用任何的雙重或浮動數據類型。浮點類型的範圍如下圖表。

▼浮點數據類型大小和限制
類型

最小值
最大值
最小標準化
最大標準化
float
32
-126
128
2–126 ≈ 1.17549435e - 38
2128 * (2-2–15) ≈ 6.80564693e + 38
double
32
-126
128
2–126 ≈ 1.17549435e - 38
2128 * (2-2–15) ≈ 6.80564693e + 38

MPLAB C18 的格式浮點數是一種改良形式的 IEEE754 格式。MPLAB C18 的格式和 IEEE754 格式之間的差額,由一個旋轉的前九位的代表性。將轉換一個循環左移從 IEEE754 格式的 MPLAB C18 的格式。右旋轉將轉換從 MPLAB C18 的格式的 IEEE754格式。下圖比較了兩種格式。

MPLAB C18IEEE 754格式的浮點比較:
標準
指數字節
Byte 0
Byte 1
Byte 2
IEEE 754
se0e1e2e3e4e5e6
e7ddd dddd
dddd dddd
dddd dddd
MPLAB C18
e0e1e2e3e4e5e6e7
sddd dddd
dddd dddd
dddd dddd
Legend: s = sign bit  d = mantissa e = exponent

2011年3月28日 星期一

DIY - PIC: PIC18F4550 A/D 程式 (四十六)

DIY - PIC PIC18F4550 A/D 程式 (四十六)

為了簡化A/D 程式,程式使用了頭文件 ()adc.h 包函 OpenADC (設定) ConvertADC (轉換) BusyADC (狀態) ReadADC (讀取) 等等,只需要呼叫以上的副程式。讀取數值後,將數值換算出真正的數值,數值資料輸出到 LCD 1602 作出顯示。數值資料包括A/D 轉換及計算出電壓數值,LED 閃動作為程式偵測作用。

PIC18F4550 ADC 流程圖

主程式:
void main(void)
{
    //                1234567890123456               
    char LCD_name[] ="BWS A/D AN0 v1  ";
    char LCD_name2[]="                ";
int i;
unsigned int timeout=0;
char data;


// Variables for ADC
    float adc0_volt;
    unsigned int adc0_dec;
    unsigned int adc0_volt1;
    unsigned int adc0_volt2;
    char Buf[17];

    //ADCON0 = 0x00;               // Disable the AD converter
    //ADCON1 = 0x0F;               // Set all ports to digital
    TRISA = 0b00000001;            // Setup RA0=Input RA1=Output
    TRISB = 0b00100000;            // Setup RB5=Input

    // Initialise LCD
     OpenXLCD(FOUR_BIT&LINES_5X7); // Init the LCD Display
    while(BusyXLCD());
    WriteCmdXLCD(BLINK_OFF & CURSOR_OFF ); 
    while(BusyXLCD());    
    stdout = _H_USER;             // Redirect I/O to LCD
    //Delay10KTCYx(24);           // 10,000x24x1/12us = 20ms
    LcdSetLine1();                // Put cursor on start of line 1
    putsXLCD(LCD_name);           // Display text

     OpenADC(ADC_FOSC_32 &        // A/D clock source set to 32Tosc
             ADC_RIGHT_JUST &     // ADRESH:ADRESL from roght
             ADC_20_TAD,          // A/D Acquisition time: 20TAD
             ADC_CH0 &            // Analog Channel0 AN0
             ADC_INT_OFF &        // ADC Interrupt off
             ADC_VREFPLUS_VDD &   // Vref+ = VDD
             ADC_VREFMINUS_VSS,   // Vref- = VSS
             0b1110               // ADCON0 = 7 = 00001110=AN0 Analog
             );
   
    while(1)
    {
           //key = PORTBbits.RB5;
        ConvertADC();            // Start an A/D Conversion
        while(BusyADC());        // Wait for Conversion Finished
        adc0_dec=ReadADC();      // Read A/D Result

        // Convert Floating Point to Decimal
        adc0_volt=0.00488758553*adc0_dec;
        adc0_volt1=(unsigned int)adc0_volt;
        adc0_volt2=(unsigned int)((adc0_volt-adc0_volt1)*10);

        sprintf(Buf,"D=%u V=%u.%uV        ",adc0_dec,adc0_volt1,adc0_volt2);
        LcdSetLine2();            // Put cursor on start of line 2
        putsXLCD(Buf);            // Display Content

        LATAbits.LATA1 = 1;       // RA0=1 LED=ON Scope=1
        Delay10KTCYx(240);        // 10,000 x 1 x (4 x 0.05us) = 2ms
                                  // Scope = 2ms
         
        LATAbits.LATA1 = 0;       // RA0=0 LED=OFF Scope=50ms
    } // End While
}

A/D 電路運作中
0×0.00488V = 0.0V
440×0.00488V = 2.1V
1020×0.00488V = 4.9V
610×0.00488V = 2.9V 與數字萬用錶 3.00V比較

2011年3月27日 星期日

DIY - PIC: MPLAB C18 A/D 函數庫程式 (四十五)

DIY - PIC MPLAB C18 A/D 函數庫程式 (四十五)

Microchip C18 有內置支持 PIC18F4550 A/D 類比數位轉換器函數庫模塊 (adc.h),衹需要用包括 adc 頭文件 ()。然後再呼叫不同的功能,便可控制 A/D 類比數位轉換器。

 
功能 BusyADC (A/D轉換器是否正在進行轉換?) 
原型:char BusyADC( void )  
說明:該函數表明 A/D 外設是否正在進行轉換。 
返回值:如果 A/D 外設正在進行轉換,為1;如果 A/D 外設不在進行轉換,為 0 
檔案名:adcbusy.c 

功能 CloseADC (禁止 A/D 轉換器) 
原型:void CloseADC( void )  
說明:該函數禁止 A/D 轉換器和 A/D 中斷機制。 
檔案名:adcclose.c 

功能 ConvertADC (啟動 A/D 轉換過程) 
原型:void ConvertADC( void )  
說明:該函數啟動 A/D 轉換。可用函數 BusyADC() 來檢測轉換是否完成。 
檔案名:adcconv.c 

功能 OpenADC (配置 A/D 轉換器) 
原型:void OpenADC( unsigned char config, unsigned char config2 ) 
參數:config 
說明:該函數把與 A/D 相關的寄存器重定到 POR 狀態,然後配置時鐘、結果格式、參考電壓、埠和通道。 
檔案名:adcopen.c 
範例:OpenADC( ADC_FOSC_32 & ADC_RIGHT_JUST & ADC_1ANA_0REF, ADC_CH0 & ADC_INT_OFF )
 

OpenADC
選項配置
說明
A/D 時鐘源
ADC_FOSC_2
FOSC / 2
ADC_FOSC_4
FOSC / 4
ADC_FOSC_8
FOSC / 8
ADC_FOSC_16
FOSC / 16
ADC_FOSC_32
FOSC / 32
ADC_FOSC_64
FOSC / 64
ADC_FOSC_RC
內部 RC 振盪器
A/D 結果對齊
ADC_RIGHT_JUST
結果向最低有效位對齊右對齊
ADC_LEFT_JUST
結果向最高有效位對齊(左對齊)
A/D 參考電壓源
ADC_8ANA_0REF
VREF+=VDD, VREF-=VSS, 所有通道都是模擬通道
ADC_7ANA_1REF
AN3=VREF+ AN3 外都是模擬通道
ADC_6ANA_2REF
AN3=VREF+, AN2=VREF
ADC_6ANA_0REF
VREF+=VDD, VREF-=VSS
ADC_5ANA_1REF
AN3=VREF+, VREF-=VSS
ADC_5ANA_0REF
VREF+=VDD, VREF-=VSS
ADC_4ANA_2REF
AN3=VREF+, AN2=VREFADC_
4ANA_1REF AN3=VREF+
ADC_3ANA_2REF
AN3=VREF+, AN2=VREFADC_
3ANA_0REF VREF+=VDD, VREF-=VSS
ADC_2ANA_2REF
AN3=VREF+, AN2=VREFADC_
2ANA_1REF AN3=VREF+
ADC_1ANA_2REF
AN3=VREF+, AN2=VREF-, AN0=A
ADC_1ANA_0REF
AN0 為模擬輸入
ADC_0ANA_0REF
所有通道都是數字 I/O config2
通道
ADC_CH0
通道 0
ADC_CH1
通道 1
ADC_CH2
通道 2
ADC_CH3
通道 3
ADC_CH4
通道 4
ADC_CH5
通道 5
ADC_CH6
通道 6
ADC_CH7
通道 7
A/D 中斷
ADC_INT_ON
允許中斷
ADC_INT_OFF
禁止中斷

功能 ReadADC ( A/D 轉換的結果) 
原型:int ReadADC( void )  
說明:該函數讀取 A/D 轉換的16 位結果。 
返回值:該函數返回 A/D 轉換的 16 位元有符號結果。根據 A/D 轉換器的配置( 例如,使用函數 OpenADC()),結果會包含在 16 位結果的低有效位或高有效位中。 
檔案名:adcread.c 

功能 SetChanADC (選擇用作A/D 轉換器輸入的通道) 
原型:void SetChanADC( unsigned char channel )  
參數:channel 
說明:選擇用作 A/D 轉換器輸入的引腳。 
檔案名:adcsetch.c 
範例:SetChanADC( ADC_CH0 )
 

SetChanADC
選項配置
說明
輸入通道
ADC_CH0
通道 0
ADC_CH1
通道 1
ADC_CH2
通道 2
ADC_CH3
通道 3
ADC_CH4
通道 4
ADC_CH5
通道 5
ADC_CH6
通道 6
ADC_CH7
通道 7
ADC_CH8
通道 8
ADC_CH9
通道 9
ADC_CH10
通道 10
ADC_CH11
通道 11

使用A/D 轉換器函數的例子:
#include
#include
#include
#include
int result;
void main( void )
{
// configure A/D convertor
OpenADC( ADC_FOSC_32 & ADC_RIGHT_JUST & ADC_8ANA_0REF,ADC_CH0 & ADC_INT_OFF );
Delay10TCYx( 5 );    // Delay for 50TCY
ConvertADC();        // Start conversion
while( BusyADC() );  // Wait for completion
result = ReadADC();  // Read result
CloseADC();          // Disable A/D converter
}

2011年3月26日 星期六

DIY - PIC: PIC18F4550 A/D 類比數位轉換器電路 (四十四)

DIY - PIC PIC18F4550 A/D 類比數位轉換器電路 (四十四)

這次的 Microchip PIC18F4550 類比數位轉換器 (A/D) 電路是作實驗用,所以是很簡單,電路祇是用了一個可變電阻器 (10KΩ)。調節可變電阻器的電阻值,從而改變電壓輸入到類比數位轉換器,類比數位轉換器便將電壓轉化為數值,電壓數碼值顯示在 LCD 1602 液晶屏上。

PIC18F4550 A/D 類比數位轉換器電路
電阻器分壓算式
可變電阻器 (103 =  10KΩ)
▲準備組裝 A/D 電路
▲完成  A/D 電路組裝
 2011 03 26 天氣報告
氣溫:16.3 @ 23:00 
相對濕度:百分之68% 
天氣:多雲

2011年3月25日 星期五

DIY - PIC: PIC18F4550 A/D 類比數位轉換器結構 (四十三)

DIY - PIC PIC18F4550 A/D 類比數位轉換器結構 (四十三)

Microchip PIC18F4550 類比數位轉換器(Analog-to-Digital Converter ADC)的參考電壓是可以設定於內部或外部,內部參考電壓是以正電源電壓和負電源電壓(VDD VSS)來作基準,而外部參考電壓是要連接在 RA3/AN3/VREF+ 引腳和 RA2/AN2/VREF-/CVREF 引腳上。

ADC的參考電壓
 執行A/D 轉換時應該遵循以下步驟:1. 配置A/D 模組:
  • 配置類比引腳、參考電壓和數位I/O (通過ADCON1 寄存器)
  • 選擇A/D 輸入通道(通過ADCON0 寄存器)
  • 選擇A/D 採集時間(通過ADCON2 寄存器)
  • 選擇A/D 轉換時鐘(通過ADCON2 寄存器)
  • 使能A/D 模組(通過ADCON0 寄存器)
2. 需要時,配置A/D 中斷:
  • 清零ADIF
  • ADIE 位置1
  • GIE 位置1
3. 如果需要,等待所需的採集時間。4. 啟動轉換:
  • GO/DONE 位置1(通過ADCON0 寄存器)
5. 等待A/D 轉換完成,通過以下兩種方法之一判斷轉換是否完成:
  • 查詢GO/DONE 位是否被清零
  • 等待A/D 中斷
6. 讀取A/D 結果寄存器(ADRESH:ADRESL),需要時將ADIF 位清零。7. 如需再次進行A/D 轉換,返回步驟1 或步驟2
  • 將每位的A/D 轉換時間定義為TAD,在下一次采集開始前至少需要等待3 TAD

A/D傳遞函數
▲模擬輸入的電路模型
A/D 採集時,為了使 A/D 轉換器達到規定精度,必須使充電保持電容(CHOLD)充滿至輸入通道的電平。電源阻抗(RS)和內部採樣開關阻抗(RSS)直接影響為電容 CHOLD 充電所需的時間。採樣開關阻抗值(RSS)隨器件電壓(VDD)不同而改變。電源阻抗將影響類比輸入的失調電壓(由於引腳洩漏電流的原因)。類比信號源的最大阻抗推薦值為 2.5 kΩ。在選擇(改變)了模擬輸入通道之後,必須對通道進行採樣才能啟動轉換,採樣時間必須大於最小採集時間。
 
計算所需的最小採集時間 TACQ,假定的誤差為 1/2 LSbA/D 轉換需要1024 步)。1/2 LSb 的誤差是 A/D 模組達到規定解析度所能允許的最大誤差。計算結果基於以下假設: 
CHOLD = 25 pF 
Rs = 2.5 kΩ 
轉換誤差 ≤ 1/2 LSb 
VDD = 5V Rss = 2 kΩ 
溫度 = 85°C (系統最大值)


採樣時間
TACQ = 放大器穩定時間+ 保持電容充電時間+ 溫度係數
= TAMP + TC + TCOFF

A/D 最小充電時間
VHOLD = (VREF – (VREF/2048)) • (1 – e(-TC/CHOLD(RIC + RSS + RS)))

TC =-(CHOLD)(RIC +RSS +RS) ln(1/2048)
計算所需的最小採樣時間
ACQ  = TAMP + TC + TCOFF
TAMP = 0.2 μs
TCOFF= (Temp – 25°C)(0.02 μs/°C)
= (85°C – 25°C)(0.02 μs/°C)
= 1.2 μs
只有在溫度> 25°C 時需要溫度係數。當溫度低於25°C 時, TCOFF = 0 ms
TC = -(CHOLD)(RIC + RSS + RS) ln(1/2048) μs
= -(25 pF) (1 kΩ + 2 kΩ + 2.5 kΩ) ln(0.0004883) μs
= 1.05 μs
TACQ = 0.2 μs + 1.05 μs + 1.2 μs
= 2.45 μs

選擇 A/D 轉換時鐘,每位的 A/D 轉換時間定義為 TAD。每完成一次 10 A/D 轉換需要 11 TAD 。可用軟體選擇 A/D 轉換時鐘源 (7 種可能的選擇)。為了實現正確的 A/D 轉換,A/D 轉換時鐘(TAD)必須盡可能小,但它必須大於最小 TAD

▲不同工作頻率下和選擇不同的 A/D 時鐘源時得到的 TAD
Microchip PIC18F4550 的最低要求 0.7us,安全值為 2.45usFOSC=1/20MHz=50nsTOSC=32× 50ns=1600nS=1.6uS (1.6us > 0.7us)