2014년 8월 11일 월요일

[TSP] a performance analysis report about enhanced touchscreen using a sapphire glass.

a performance analysis report about enhanced touchscreen using a sapphire glass.



◆ Introuduction

This document is results of touch performance simulation to apply sapphire glass. Recently, some of smartphone makers has announced the plan to apply sapphire glass through the web news. that reason, most of a smartphone has applied of the chemically strengthened glass to the stylish and thinner design but the customer's enviroment was easily damaged. Therefore a smartphone makers want to use the sapphire for resolve the problem.

◆ The cover glass of dielectric constant

The dielectric constant of the cover glass is used for a touchscreen.
A sapphire material has between 2 to 3 more higher values than a strengthened glass.


※ dielectric constant : relative value about the dielectric constant of vacuum (value = 1)

The experiment verify the impact from a sensitivity of touch to a dielectric constant through the simulation.

◆ Hypothesis
A touchscreen sensitivity revice significant impact to finger size(DFINGER) and cover glass thickness(TGLASS), mutual capacitance(CMUTUAL) between TX and RX.
If the dielectric constant is increased the CFINGER and CMUTUAL Will Be increase. Therefor the sensitivity of touch sensing will be reduced.
a thin glass and a wide finger(DFINGER) would be effective methods for higher sensitivity.



◆ Results

The results are shown below:

◎ Simulation configurations
- Pattern Pitch : 5.00mm x 5.00mm
- Glass Thickness : 0.70mm
- Finger Size : Dia. 4.00mm
- TSP Type : G1F, G2, GFF



(C) 2014. 김선익(tsp-engineer.blogspot.kr) all rights resered.

2014년 8월 5일 화요일

[TSP] 디스플레이 장치에 Direct bonding을 적용할 경우 광학적 개선효과 분석

디스플레이 장치에 Direct bonding을 적용할 경우 광학적 개선효과 분석

  필자는 2012년도에 국내 디스플레이 대기업인 S사와 함께 13.3”, 15.6”, 21.5”, 23.6”, 24.0” 등 다양한 개발모델을 가지고 대면적 다이렉트 본딩 기술을 개발한 경험을 가지고 있습니다. 그때의 기술은 OCA를 적용한 대면적 다이렉트 본딩기술로써 방법 자체로만 보았을 때 부착공정이 단순하고 공정속도 또한 빨라 대면적 디스플레이 장치에 최적화된 부착 방식이였습니다. 하지만 신뢰성 문제를 극복하지 못하고 상용화 되지 못하였습니다.
  최근에 다이렉트 본딩기술을 적용한 제품을 양산화 하는 프로젝트가 시작됨에 따라 다시 한번 기술을 분석하고 연구해 보려고 합니다.

◆ Direct Bonding 이란?

  터치스크린과 액정디스플레이가 하나로 결합된 장치를 제조하기 위한 접합기술의 명칭을 Direct bonding(다이렉트 본딩) 이라고 칭합니다. 동일한 의미로 Optical Bonding (옵티컬 본딩) / Full Lamination (라미네이션) / Screen Fit (스크린 ) 이라는 용어를 사용합니다.
  이 기술은 n개의 광학장치를 투명한 인덱스 매팅된 접착제로 상호 접합하는 기술로 1980년대에 CRT와 LCD 디스플레이 장치에 처음 사용된 기술입니다.  주로 고성능 제품을 요구하는 군사목적의 항공/우주 장치에 사용되었습니다. 최근에는 상업 및 공업용 장치에 적용되었고 아이폰, 겔럭시와 같은 스마트폰에도 사용되며 실생활에 다양한 용도로 사용되어 지고 있습니다.

◆ Direct Bonding 제품의 구조


  좌측 그림은 종래의 구조로 Touch Sensor와 Display Device 사이에 Air gap이 존재 하는 구조입니다. 최근에는 저가형 제품에 이러한 구조가 적용되고 있습니다.
  우측 그림은 Direct bonding된 종래의 구조에서 개선된 구조 입니다. 종래의 구조에서 Air gap 없이 OCA 또는 OCR로 Display Device와 밀착된 구조를 갖고 있습니다.
  

 ◆ Direct Bonding의 이점

- 야외 명암비 향상에 따른 시인성 향상
투과율 향상에 따른 소비전력 감소
디스플레이 장치의 강도 향상
터치센서와 디스플레이 장치 사이에 먼지 유입 방지
 

◆ Direct Bonding의 광학적 개선효과 분석

  Direct Bonding을 적용한 디스플레이 장치는 종래의 디스플레이 장치보다 광학적 특성이 개선되는 효과가 있습니다. 이는 명함비가 향상되고 투과율이 향상되는 이점 때문에 디스플레이 장치로써 매우 큰 효과라고 할 수 있습니다. 그렇다면 어떻게 광학적 특성이 개선되는지 이론적으로 설명하고 증명해 보고자 합니다.
  디스플레이 장치는 빛을 이용하여 사용자에게 정보를 전달해 주는 역활을 하는 장치 입니다. 따라서 그 장치를 이루는 여러 광학층들은 입사,반사,흡수,통과 등으로 그 특성을 나타낼 수 있습니다.

우리가 알 고 있는 매질 경계면에서 보존 법칙은 아래와 같습니다.

 ∴ ρ(Refectivity) + α(Absorptivity)+τ(Transmittivity) = 1 

  어느 투명한 Substrate에 입사된 광원은 투과되거나 반사 또는 열로 흡수되는 등 그 총양은 같다는 공식입니다. 디스플레이 장치를 가장 밝고 선명하게 만들기 위하여 투과율을 높여야 하는데 물질의 흡수율이 고정되어 있다 가정한다면 반사율을 낮출 수록 투과되는 양을 높일 수 있습니다. 반사율을 낮추는 방법으로는 Anti-reflection coat을 경계면에 형성하면 가능한데 이러한 방법은 Index matching 방법으로 정반사율을 결정하는 두 굴절율을 같게 만들면 정반사율을 0로 만들 수 있게 됩니다.

아래와 같이 Direct Bonding을 적용한 경우 광학적 개선효과에 대한 결과를 비교 계산하였다.


◆ 광학적 개선효과 분석 결과

  계산 결과를 보면 Air gap 보다 Direct Bonding이 광학적 특성이 우수하다는 것을 확인 할 수 있었다. 특히 전체 반사율 및 C/R(Contrast ratio)가 개선되는 것을 확인할 수 있다.
  여기서 또한가지 확인가능한 부분은 C/R이 화면 시인성을 가늠하는 절대적인 지표가 아니다. Air gap 상태일 때 태양광 아래에서 반사율은 1355nits이고 Direct Bonding 상태에서는 467.1nits이다. 그 차이가 분명하므로 C/R 만 보면 큰 차이가 없다. 따라서 C/R은 시인성을 판단하는 절대적 도구로 사용하면 안된다.

(C) 2014. 김선익(tsp-engineer.blogspot.kr) all rights resered.

2014년 7월 20일 일요일

[C언어] AVR MCU를 위한 비트 제어 방법 (Bit control methods for AVR MCU)

다양한 방법을 통해 MCU의 비트를 제어할 수 있습니다.
(The bit of MCU can control through many method.)

아래와 같이 간단한 정의를 통해 비트 제어를 정의하고 수행될 수 있습니다.
(As below, through the simple definitions the bit control can be defined ans executed.)

1. 하나의 비트를 "1"로 Set 하기
(1. one of bit set to "1")

#define sbi(PORTX,BITX) PORTX|=(1<<BITX)

-For Example
PORTA=0xBF; //ob10111111
sbi(PORTA,7); // PORTA|=0x40; or PORTA|=64;


만약 여러 비트를 set하고 싶다면 아래와 같은 명령어를 사용하면 된다.
(If you want to be the set of several bits, you can used like as below.)

#define sbis(PORTX,BITX) PORTX|=BITX;

-For Example
PORTA=0x0F;
sbis(PORTA,0xF0);


2. 하나의 비트를 "0"로 Clear 하기
(2. one of bit clear to "0")

#define cbi(PORTX,BITX) PORTX&=~(1<<BITX)

- For example
PORTA=0xFF; //ob11111111
cbi(PORTA,8);PORTA&=~0x80;


만약 여러 비트를 clear 하고 싶다면 아래와 같은 명령어를 사용하면 된다.
(If you want to be the clear of several bits, you can used like as below.)

#define sbis(PORTX,BITX) PORTX|=BITX;

-For Example
PORTA=0x0F;
cbis(PORTA,0x0F); //PORTA&=~0x0F;


[AVR] IIC/I2C/TWI 2004 20X4 Character Liquid Crystal Display Module / #2 TWI Communications for the hardware configuration

  8bit AVR MCU에 TWI(I2C) 통신 기능을 활용하여 20x4 LCD Display Module을 제어하려고 한다면 필수적으로 TWI(I2C)에 대해 알아야 합니다.
  TWI(Two Wire Inctertace)는 우리가 흔이 알고 있는 I2C(Inter_Integrated Circuit)와 같은 통신 방식으로 Mega128에서는 TWI라고 부릅니다. I2C는 필립스에서 개발한 직렬 컴퓨터 버스 이며 주변기기들과 저속의 통신을 위해 개발되었습니다. 통신을 위해 필요한 단자는 단 2개의 (SCL, SDA) 이며 다수의 장치를 한번에 연결하여 통신할 수 있습니다.

아래 그림은 다수의 장치가 연결된 형태입니다.
 

 
  I2C 통신 라인을 통하여 Master (MCU)에 여러 장치들(Slave)이 연결되어 있는 형태입니다. 각각의 장치들은 자신들만의 고유한 주소를 가지고 있어 Master는 주소를 지정하여 장치를 선택하고 선택된 장치와 통신을 할 수 있습니다. 만약 중복되는 주소를 갖는 장치가 있다면 Master로 부터 명령이 제대로 전달되지 않고 통신을 할 수 없는 상태가 되기 때문에 각 장치들은 중복되지 않는 주소를 갖고 있어야 합니다. 따라서 각 장치들은 별도의 Address select 기능을 갖고 있어 주소가 중복되지 않도록 설정할 수 있습니다.  ATmega128의 경우 최대 128개 까지 연결 할 수 있도록 설계되어 있습니다.

아래 회로도는 20x4 LCD를 연결한 회로도 입니다.
PCF8574T의 ADDRESS SELECT는 0x40으로 선택되어 있습니다. 따라서 TWI(I2C)통신을 할때 명령을 읽고 쓰기 위해서 주소를 0x40을 사용해야 합니다.

   I2C 통신에서 빠지지 말아야할 것은 SCL과 SDA는 항상 VDD와 저항을 통해 Pull-up 상태를 유지해야 합니다. 만약 그렇지 않는 경우 아래와 같이 SDA, SCL Signal이 정확한 구형파형을 만들지 못하여 통신 오류가 발생하게 됩니다.


  ATmega128에 최대 TWI통신 속도는 400㎑ 입니다. 따라서 400㎑ 이하의 장치는 모두 호환되며 각 장치마다 통신속도가 다르더라도 1:1 통신이기 때문에 그 속도를 가변하여 통신할 수 도 있습니다.  우리가 사용할 20x4 LCD Module에 장착된 PCF8574 I2C I/O Expander IC의 최대 통신속도는 100㎑ 이므로 통신속도를 100㎑ 이하로 설정해야만 정확한 통신이 가능합니다.

2014년 7월 8일 화요일

[AVR] 7-SEGMENT 구동하기 #1. 7-SEGMENT 의 구성 및 동작 원리

개발보드에 7-SEGMENT 회로는 아래와 같다.

PORT.A를 통해 74HC595 와 74LS138 IC를 제어하여 8자리 7-SEGMENT를 구동시키는 회로이다. 일반적으로 1개 포트를 사용해 1개의 7-SEGMENT를 제어할 수 있는데 PORT.A만으로 8개의 7-SEGMENT를 제어할 수 있어 적은 I/O를 최대한 활용하는데 최적의 회로라고 생각한다.

7-SEGMENT를 제어함에 있어 몇가지 하드웨어를 어떻게 구성할 것인지 생각할 필요가 있다.
아래 그림과 같이 7-SEGMENT는 Common cathode와 Common anode 2가지 타입이 있다. 이 두가지의 가장큰 차이점은 공통 전극이 VCC 또는 GND 인지의 여부다.


아래와 같이 LED를 PORT.A와 연결했다 가정했을 때를 알아보면 쉽게 이해할 수 있다.

- Common Cathode
: PORTA를 통해 출력을 LOW (0) 로 만들면 7-SEGMENT에 불이 꺼지고 HIGH(1)를 출력하면 불을 켤 수 있다.

 - Common Anode
: PORTA를 통해 출력을 HIGH(1)로 만들면 7-SEGMENT에 불이 꺼지고 LOW(0)를 출력하면 불을 켤 수 있다.

[C언어] 전처리 명령 #include, #define, #undef, #if, #ifdef, #ifndef, #else, #endif

main.c 소스코드를 열어보면 가장 맨 앞에 위치하는 #으로 시작하는 코드들은 모두 전처리 명령이다.

대표적인 전처리 명령은 아래와 같다.

#include : 특정파일의 코드 포함

#define : 매크로 정의

#undef : 정의된 매크로 해제

#if, #ifdef, #ifndef, #else, #endif : 전처리 조건문

★ 전처리 조건문

- 예시#1
: 하나의 정의 내용에 대하여 연관된 다른 정의를 능동적으로 수행하고자 할때 아래와 같이 정의할 수 있다. 예를 들어 16by2 또는 16by4 LCD Display에 DDRAM Address를 정의하고자 한다. 2줄과 4줄 LCD는 각 줄에 시작 주소가 다르므로 아래와 같이 코드를 작성한다면 lcd_row 에 정의된 값에 따라 능동적으로 시킬 수 있다.

#define lcd_row=4
#define LCD_START_LINE1 0x00
#if LCD_DRIVER==KS0074
 #elif lcd_row==4 // << lcd_row가 4이므로 1~4줄에 시작 주소를 정의함.
  #define LCD_START_LINE2 0x20
  #define LCD_START_LINE3 0x40
  #define LCD_START_LINE4 0x60
 #elif lcd_row==2 // << lcd_row가 2일 때 1~2 줄에 시작 주소를 정의함.
  #define LCD_START_LINE2 0x40
#endif

- 예시 #2
: 주로 header file을 포함시키고 다른 코드에서 중복으로 사용되는 경우가 있다. 이때 이미 정의된것이 있다면 중복 정의 되지 않도록 코드를 작성할 수 있다. 예를 들어 LCD_H라는 정의가 되어 있지 않다면 #ifndef LCD_H 부터 #endif 사이에 작성된 정의를 수행하도록 하는 코드이다.

#ifndef LCD_H
#define LCD_H
/*
정의 내용 작성
*/
#endif

[C언어] 헤더 선언 #include

Avrstudio 4.x 를 기준으로 '#include' 선언에 대하여 설명하도록 하겠다.

1. Header로 선언 할 수 있는 내용
- 함수 선언
- 상수의 정의
- 매크로 정의


2. 기본적인 지정경로의 헤더파일 지정 : 컴파일러에서 제공하는 헤더파일
- 형식 :  #include<xxx.h>
* 예시 (1) #include <avr/io.h>
* 예시 (2) $include <util/delay.h>

3. 사용자 정의 헤더파일 : 사용자가 만든 헤더파일
- 형식 : #include"xxx.h"
* 예시 (1) : #include "io.h"                         // 현재 위치의 헤더파일 지정
* 예시 (2) : #include "./io.h"                       // 상대 경로의 헤더파일 지정
* 예시 (3) : #include "/test/led_shift/io.h"    // 절대경로의 헤더파일 지정

[C++] 연습문제 1-2

 /****************************************************************************** - 피트(feet)를 인치(inch)로 변환시켜주는 프로그램을 작성 - 사용자로부터 피트를 입력받아 인치로...