■ 프로그램 : 직렬통신 command mode 흉내내기 (Ver. 0.1)
■ 컴파일러 : KEIL uVision3
■ 실행환경 : Proteus 7, AT89C52, UART 19200bps
$NOMOD51
$INCLUDE(AT89S52.INC)
CSEG AT 0000H
START:
MOV SP, #7FH
CALL INIT_SERIAL
CALL PROMPT
REP:
CALL RXDATA
JMP REP
INIT_SERIAL:
MOV TMOD, #20H ; [GATE|C/T_|M1|M0|GATE|C/T_|M1|M0] #00100000B
; 1번 타이머 모드2(8비트 재저장 모드), 보레이트 발생용
MOV SCON, #52H ; [SM0|SM1|SM2|REN|TB8|RB8|TI|RI] #01010010B
; 모드1을 사용
MOV A, PCON
SETB ACC.7
MOV PCON, A ; [SMOD|-|-|-|GF1|GF0|PD|IDL] SMOD=1
; 가속모드 사용
MOV TH1, #0FDH ; 19200bps
SETB TR1 ; 타이머1 시작
RET
TXDATA:
JNB TI, $
CLR TI ; TI비트를 0으로 초기화
MOV SBUF, A ; A레지스터에 저장된 데이터를 시리얼 버퍼로 이동
RET
RXDATA:
JNB RI, $
MOV A, SBUF
CLR RI ; RI비트를 0으로 초기화
CJNE A, #0DH, TXDATA ; [Enter]키 검사
CALL PROMPT
RET
PROMPT:
JNB TI, $
MOV SBUF, #0AH ; line feed
CLR TI
JNB TI, $
MOV SBUF, #0DH ; carriage return
CLR TI
JNB TI, $
MOV SBUF, #3EH ; '>' 표시
CLR TI
RET
END
2009년 12월 22일 화요일
2009년 12월 18일 금요일
[8051] 직렬통신 정리
8051의 직렬통신을 간략하게 정리하면 동기/비동기 및 4가지 모드중 하나를 선택하여 적절한 통신을 하면되는데 다른거 별로 관심없고 모드1, 그러니까 시리얼통신, UART, RS232C, 9600bps 등등 하면 떠오르는 직렬통신을 하기 위한 설정과 기타 관련 정보를 알아본다.
그런데 왜 비동기라 부르나? 시스템은 클럭을 기준으로 내부통신을 한다. 같은 주파수로 진동을 하니까 모든 얘들이 동기화 되어 통한다고 생각하자. 그러나 시리얼 통신은 시스템 클럭을 사용하지 않기 때문에 서로 진동하지 못하고, 알아듣지 못한다.
■ 4가지 모드 (다른거 관심없다 1번만 기억하자)
. 모드 0 : I/O확장용의 동기식 통신모드
. 모드 1 : 10비트 프레임의 비동기 통신모드, START(1)+DATA(8)+STOP(1)=10비트
. 모드 2 : 11비트 프레임의 비동기 통신모드
. 모드 3 : 11비트 프레임의 비동기 통신모드
■ 직렬통신과 관련있는 레지스터
* SBUF(Serial Port Buffer Register) : 버퍼의 역할을 이해해야 한다. 주거니 받거니...
* SCON(Serial Port Control Register) : 시리얼 포트의 각종 설정
* PCON(Power Control Register) : 가소롭게 2배속 모드가 있다.
■ 어셈코드 셈플
.
.
.
INIT_SERIAL: ; 직렬 통신 설정 (직렬 통신을 하기 위해 설정해 주어야 할 것들)
CLR ET1 ; 타이머1 interrupt Disable
MOV TMOD, #20H ; [GATE|C/T_|M1|M0|GATE|C/T_|M1|M0] #00100000B, 1번 타이머 모드2(8비트 재저장 모드), 보레이트 발생용
MOV SCON, #52H ; [SM0|SM1|SM2|REN|TB8|RB8|TI|RI] #01010010B, 모드1을 사용
MOV A, PCON ; PCON의 현재값만 읽어들이고
SETB ACC.7 ; 해당비트값만 수정
MOV PCON, A ; [SMOD|-|-|-|GF1|GF0|PD|IDL] SMOD=1, 가속모드 사용
MOV TH1, #0FDH ; 19200bps
SETB TR1 ; 타이머1 시작
RET ; 복귀
.
.
.
그런데 왜 비동기라 부르나? 시스템은 클럭을 기준으로 내부통신을 한다. 같은 주파수로 진동을 하니까 모든 얘들이 동기화 되어 통한다고 생각하자. 그러나 시리얼 통신은 시스템 클럭을 사용하지 않기 때문에 서로 진동하지 못하고, 알아듣지 못한다.
■ 4가지 모드 (다른거 관심없다 1번만 기억하자)
. 모드 0 : I/O확장용의 동기식 통신모드
. 모드 1 : 10비트 프레임의 비동기 통신모드, START(1)+DATA(8)+STOP(1)=10비트
. 모드 2 : 11비트 프레임의 비동기 통신모드
. 모드 3 : 11비트 프레임의 비동기 통신모드
■ 직렬통신과 관련있는 레지스터
* SBUF(Serial Port Buffer Register) : 버퍼의 역할을 이해해야 한다. 주거니 받거니...
* SCON(Serial Port Control Register) : 시리얼 포트의 각종 설정
* PCON(Power Control Register) : 가소롭게 2배속 모드가 있다.
■ 어셈코드 셈플
.
.
.
INIT_SERIAL: ; 직렬 통신 설정 (직렬 통신을 하기 위해 설정해 주어야 할 것들)
CLR ET1 ; 타이머1 interrupt Disable
MOV TMOD, #20H ; [GATE|C/T_|M1|M0|GATE|C/T_|M1|M0] #00100000B, 1번 타이머 모드2(8비트 재저장 모드), 보레이트 발생용
MOV SCON, #52H ; [SM0|SM1|SM2|REN|TB8|RB8|TI|RI] #01010010B, 모드1을 사용
MOV A, PCON ; PCON의 현재값만 읽어들이고
SETB ACC.7 ; 해당비트값만 수정
MOV PCON, A ; [SMOD|-|-|-|GF1|GF0|PD|IDL] SMOD=1, 가속모드 사용
MOV TH1, #0FDH ; 19200bps
SETB TR1 ; 타이머1 시작
RET ; 복귀
.
.
.
2009년 12월 16일 수요일
2009년 12월 15일 화요일
[8051]시뮬레이터 정리
■ EdSim51 (http://www.edsim51.com/)
다른 시뮬레이터에 비해 주변 장치들까지 같이 구현한 프로그램으로 완성도나 사용자 편의성이 높은 프로그램입니다.
자바로 개발되어 여러 플렛폼에서 테스트 할 수 있는 장점이 있고, 특히나 사이트를 살펴보면 프로그램에 구현된 회로도 및 이를 활용한 각종 교육자료가 있어서 공부하는데는 그만입니다.
■ J51 (http://www.viara.cn/en/j51/)
역시 자바로 개발된 프로그램으로 특징은 EdSim51처럼 몇가지 주변장치 및 UART를 구현하여 직렬통신과 관련된 테스트를 충분히 해볼 수 있습니다.
■ emu51 (http://sourceforge.net/projects/emu51/)
소스포지에 공개되어 있는 프로그램인데...머 그냥 이런게 있다 그정도...^^
■ TS Controls Emulator 8051 Version 1.00 (http://www.tscontrols.com/ 사이트 없어진거 같네요)
윈도우용 프로그램으로 위에 열거한 프로그램 처럼 실시간으로 테스트하는 것 보다는 명령어 하나하나 추적하는 식으로 테스트해 볼 수 있는 프로그램입니다. (사이트가 없는 관계로 해당 프로그램 링크합니다.)
■ JSIM-51 (http://top-themen.t-online.de/ 요기도 사이트 없어진거 같네요)
역시 윈도우용 프로그램으로 한스탭씩 진행해 가면서 테스트해 볼 수 있는 프로그램 입니다. (사이트가 없는 관계로 해당 프로그램 링크합니다.)
다른 시뮬레이터에 비해 주변 장치들까지 같이 구현한 프로그램으로 완성도나 사용자 편의성이 높은 프로그램입니다.
자바로 개발되어 여러 플렛폼에서 테스트 할 수 있는 장점이 있고, 특히나 사이트를 살펴보면 프로그램에 구현된 회로도 및 이를 활용한 각종 교육자료가 있어서 공부하는데는 그만입니다.
■ J51 (http://www.viara.cn/en/j51/)
역시 자바로 개발된 프로그램으로 특징은 EdSim51처럼 몇가지 주변장치 및 UART를 구현하여 직렬통신과 관련된 테스트를 충분히 해볼 수 있습니다.
■ emu51 (http://sourceforge.net/projects/emu51/)
소스포지에 공개되어 있는 프로그램인데...머 그냥 이런게 있다 그정도...^^
■ TS Controls Emulator 8051 Version 1.00 (http://www.tscontrols.com/ 사이트 없어진거 같네요)
윈도우용 프로그램으로 위에 열거한 프로그램 처럼 실시간으로 테스트하는 것 보다는 명령어 하나하나 추적하는 식으로 테스트해 볼 수 있는 프로그램입니다. (사이트가 없는 관계로 해당 프로그램 링크합니다.)
■ JSIM-51 (http://top-themen.t-online.de/ 요기도 사이트 없어진거 같네요)
역시 윈도우용 프로그램으로 한스탭씩 진행해 가면서 테스트해 볼 수 있는 프로그램 입니다. (사이트가 없는 관계로 해당 프로그램 링크합니다.)
AVR Studio 다운로드 주소
등록하는거 구찬타...
http://www.atmel.com/dyn/resources/prod_documents/AvrStudio4Setup.exe
http://www.atmel.com/dyn/resources/prod_documents/AvrStudio417Setup.exe
http://www.atmel.com/dyn/resources/prod_documents/AvrStudio4Setup.exe
http://www.atmel.com/dyn/resources/prod_documents/AvrStudio417Setup.exe
2009년 12월 11일 금요일
VC++ 6.0 with WTL
WTL이 오픈되면서 8.0버전을 끝으로 MS의 버전업은 끝나고 SF쪽에서 계속 버전업을 하고 있습니다.
아직까지 VC++ 6.0을 많이 쓰고 있고 아직까지 쓰는데 하등 불편한거 없고...쩝~
PC재설치하면서 정리하는김에 VC++6.0지원하는 최종 WTL파일입니다.
아직까지 VC++ 6.0을 많이 쓰고 있고 아직까지 쓰는데 하등 불편한거 없고...쩝~
PC재설치하면서 정리하는김에 VC++6.0지원하는 최종 WTL파일입니다.
윈도우 탐색기 시작 위치 변경
윈도우 탐색기의 시작 위치를 c:\로 설정하려면 탐색기 속성정보를 다음과 같이 수정한다.
%SystemRoot%\explorer.exe /e, /n, c:\
%SystemRoot%\explorer.exe /e, /n, c:\
2009년 12월 10일 목요일
vim 설정
set nocompatible
source $VIMRUNTIME/vimrc_example.vim
source $VIMRUNTIME/mswin.vim
source $VIMRUNTIME/cscope_maps.vim
behave mswin
if has("gui_running")
" 초기 VI 시작시 크기 설정 w * h
au GUIEnter * winsize 135 45
" 초기 VI 시작 위치 설정
au GUIEnter * winpos 0 0
endif
" 색상 선택
colorscheme darkblue
" 탭간격 조정
set ts=4
set sw=4
set sts=4
set scrolloff=2 " 2줄 이하로는 자동 스크롤 되게 하는 옵션
set nobackup " 백업 설정하지 않음
" 자동 들여쓰기를 설정합니다.
set ai
" 한글 자동 인식
set encoding=korea
set fileencodings=utf-8,korea
au! BufRead,BufNewFile *.tpl set filetype=html
au! BufRead,BufNewFile *.phtml set filetype=html
" 각 파일에 해당하는 문법(Syntax) 적용
syntax on
set diffexpr=MyDiff()
function MyDiff()
let opt = '-a --binary '
if &diffopt =~ 'icase' | let opt = opt . '-i ' | endif
if &diffopt =~ 'iwhite' | let opt = opt . '-b ' | endif
let arg1 = v:fname_in
if arg1 =~ ' ' | let arg1 = '"' . arg1 . '"' | endif
let arg2 = v:fname_new
if arg2 =~ ' ' | let arg2 = '"' . arg2 . '"' | endif
let arg3 = v:fname_out
if arg3 =~ ' ' | let arg3 = '"' . arg3 . '"' | endif
let eq = ''
if $VIMRUNTIME =~ ' '
if &sh =~ '\<cmd'
let cmd = '""' . $VIMRUNTIME . '\diff"'
let eq = '"'
else
let cmd = substitute($VIMRUNTIME, ' ', '" ', '') . '\diff"'
endif
else
let cmd = $VIMRUNTIME . '\diff'
endif
silent execute '!' . cmd . ' ' . opt . arg1 . ' ' . arg2 . ' > ' . arg3 . eq
endfunction
map <F1> v]}zf
map <F2> zo
map <F3> :tabnew <CR>
map <F11> :se enc=korea <CR>
map <F12> :se enc=utf8 <CR>
func! Sts()
let st=expand("<cword>")
exe "sts ".st
endfunc
nmap ,st :call Sts()<cr>
func! Tj()
let st=expand("<cword>")
exe "tj ".st
endfunc
nmap ,tj :call Tj()<cr>
set csto=0
set cst
set nocsverb
if filereadable("cscope.out")
cs add cscope.out
endif
set csverb
"==================================
func! Css()
let css=expand("<cword>")
new
exe "cs find s ".css
if getline(1)==" "
exe "q!"
endif
endfunc
nmap ,css :call Css()<cr>
"==================================
func! Csc()
let csc=expand("<cword>")
new
exe "cs find c ".csc
if getline(1)==" "
exe "q!"
endif
endfunc
nmap ,csc :call Csc()<cr>
"==================================
func! Csd()
let csd=expand("<cword>")
new
exe "cs find d ".csd
if getline(1)==" "
exe "q!"
endif
endfunc
nmap ,csd :call Csd()<cr>
"==================================
func! Csg()
let csg=expand("<cword>")
new
exe "cs find g ".csg
if getline(1)==" "
exe "q!"
endif
endfunc
nmap ,csg :call Css()<cr>
"==================================
" cscope 설정
set cscopequickfix=s-,c-,d-,i-,t-,e-
source $VIMRUNTIME/vimrc_example.vim
source $VIMRUNTIME/mswin.vim
source $VIMRUNTIME/cscope_maps.vim
behave mswin
if has("gui_running")
" 초기 VI 시작시 크기 설정 w * h
au GUIEnter * winsize 135 45
" 초기 VI 시작 위치 설정
au GUIEnter * winpos 0 0
endif
" 색상 선택
colorscheme darkblue
" 탭간격 조정
set ts=4
set sw=4
set sts=4
set scrolloff=2 " 2줄 이하로는 자동 스크롤 되게 하는 옵션
set nobackup " 백업 설정하지 않음
" 자동 들여쓰기를 설정합니다.
set ai
" 한글 자동 인식
set encoding=korea
set fileencodings=utf-8,korea
au! BufRead,BufNewFile *.tpl set filetype=html
au! BufRead,BufNewFile *.phtml set filetype=html
" 각 파일에 해당하는 문법(Syntax) 적용
syntax on
set diffexpr=MyDiff()
function MyDiff()
let opt = '-a --binary '
if &diffopt =~ 'icase' | let opt = opt . '-i ' | endif
if &diffopt =~ 'iwhite' | let opt = opt . '-b ' | endif
let arg1 = v:fname_in
if arg1 =~ ' ' | let arg1 = '"' . arg1 . '"' | endif
let arg2 = v:fname_new
if arg2 =~ ' ' | let arg2 = '"' . arg2 . '"' | endif
let arg3 = v:fname_out
if arg3 =~ ' ' | let arg3 = '"' . arg3 . '"' | endif
let eq = ''
if $VIMRUNTIME =~ ' '
if &sh =~ '\<cmd'
let cmd = '""' . $VIMRUNTIME . '\diff"'
let eq = '"'
else
let cmd = substitute($VIMRUNTIME, ' ', '" ', '') . '\diff"'
endif
else
let cmd = $VIMRUNTIME . '\diff'
endif
silent execute '!' . cmd . ' ' . opt . arg1 . ' ' . arg2 . ' > ' . arg3 . eq
endfunction
map <F1> v]}zf
map <F2> zo
map <F3> :tabnew <CR>
map <F11> :se enc=korea <CR>
map <F12> :se enc=utf8 <CR>
func! Sts()
let st=expand("<cword>")
exe "sts ".st
endfunc
nmap ,st :call Sts()<cr>
func! Tj()
let st=expand("<cword>")
exe "tj ".st
endfunc
nmap ,tj :call Tj()<cr>
set csto=0
set cst
set nocsverb
if filereadable("cscope.out")
cs add cscope.out
endif
set csverb
"==================================
func! Css()
let css=expand("<cword>")
new
exe "cs find s ".css
if getline(1)==" "
exe "q!"
endif
endfunc
nmap ,css :call Css()<cr>
"==================================
func! Csc()
let csc=expand("<cword>")
new
exe "cs find c ".csc
if getline(1)==" "
exe "q!"
endif
endfunc
nmap ,csc :call Csc()<cr>
"==================================
func! Csd()
let csd=expand("<cword>")
new
exe "cs find d ".csd
if getline(1)==" "
exe "q!"
endif
endfunc
nmap ,csd :call Csd()<cr>
"==================================
func! Csg()
let csg=expand("<cword>")
new
exe "cs find g ".csg
if getline(1)==" "
exe "q!"
endif
endfunc
nmap ,csg :call Css()<cr>
"==================================
" cscope 설정
set cscopequickfix=s-,c-,d-,i-,t-,e-
RegManager
가끔 윈도우 탐색기 쓰면서 현재 폴더에서 도스창을 열어 먼가 테스트할때가 있는데 이럴때 커맨드창 열고 다시 해당 위치로 이동하고...귀차니즘 발동하죠~
이럴때 조금 편하게 사용해 보자고 맹글었습니다.
■ 개발환경 : VC++ 6.0 (MFC, XP sp2)
■ Ver 0.1
- 선택한 위치에서 명령프롬프트 열기
- 명령프롬프트에서 명령행 자동완성 : 리눅스에서 자주 사용하는 기능이죠~
이럴때 조금 편하게 사용해 보자고 맹글었습니다.
■ 개발환경 : VC++ 6.0 (MFC, XP sp2)
■ Ver 0.1
- 선택한 위치에서 명령프롬프트 열기
- 명령프롬프트에서 명령행 자동완성 : 리눅스에서 자주 사용하는 기능이죠~
syslog메시지 받기 설정
■ FreeBSD
/etc/rc.conf에서 다음 추가
syslogd_flags="-n -a *:*"
■ Linux
-r 옵션 으로 syslogd 실행하기
/etc/sysconfig/syslog 파일을 열어 다음과 같이 -r 옵션을 주어 syslogd 실행되도록 합니다.
SYSLOGD_OPTIONS="-m 0 -r"
syslog 재실행
#> service syslog restart
■ 디버깅 메세지 보내는쪽,
/etc/syslog.conf 파일 수정
kern.* @server.domain.name
*.info;mail.none;news.none;authpriv.none;cron.none @server.domain.name
/etc/rc.conf에서 다음 추가
syslogd_flags="-n -a *:*"
■ Linux
-r 옵션 으로 syslogd 실행하기
/etc/sysconfig/syslog 파일을 열어 다음과 같이 -r 옵션을 주어 syslogd 실행되도록 합니다.
SYSLOGD_OPTIONS="-m 0 -r"
syslog 재실행
#> service syslog restart
■ 디버깅 메세지 보내는쪽,
/etc/syslog.conf 파일 수정
kern.* @server.domain.name
*.info;mail.none;news.none;authpriv.none;cron.none @server.domain.name
2009년 12월 9일 수요일
RISC와 CISC의 개념적 이해
RISC와 CISC에 대해 인터넷에 찾아봤지만 역시나 어렵게 설명해 놨다.
■ CISC (Complex Instruction Set Computer)
■ RISC (Reduced Instruction Set Computer)
사실은 쉽게 설명해 놨는데 내가 기초가 없어서 이해를 못하는 거겠지... ㅡ,.ㅡ
오늘 개념탑재 함 해보자...
예를 들어 엄마가 아들한테 심부름을 시키려고 하는 상황을 두가지로 시나리오를 구성해 보자.
■ RISC
엄마 : 아들 방청소 해~
아들 : 명령 이해하는데 1초, 그리고 잠시...엄마한테 방청소 다했다고 보고
엄마 : 슈퍼가서 두부 사와~
아들 : 명령 이해하는데 1초, 슈퍼가서 두부사러 갔다 온다.
엄마 : 감자 깎아~
아들 : 명령 이해하는데 1초, 감자 깎는다.
■ CISC
엄마 : 아까 시킨거 다시 해!
아들 : 아놔 머부터 시켰는데...??? 엄마가 아까 시킨 명령 5가지 이해하는데 5분
■ CISC (Complex Instruction Set Computer)
■ RISC (Reduced Instruction Set Computer)
사실은 쉽게 설명해 놨는데 내가 기초가 없어서 이해를 못하는 거겠지... ㅡ,.ㅡ
오늘 개념탑재 함 해보자...
예를 들어 엄마가 아들한테 심부름을 시키려고 하는 상황을 두가지로 시나리오를 구성해 보자.
■ RISC
엄마 : 아들 방청소 해~
아들 : 명령 이해하는데 1초, 그리고 잠시...엄마한테 방청소 다했다고 보고
엄마 : 슈퍼가서 두부 사와~
아들 : 명령 이해하는데 1초, 슈퍼가서 두부사러 갔다 온다.
엄마 : 감자 깎아~
아들 : 명령 이해하는데 1초, 감자 깎는다.
■ CISC
엄마 : 아까 시킨거 다시 해!
아들 : 아놔 머부터 시켰는데...??? 엄마가 아까 시킨 명령 5가지 이해하는데 5분
임피던스
임피던스 이해하려고 안돌아가는 머리 굴려가며 이해하고 싶었다...
인터넷으로 이것 저것 검색해봐도 어렵게 설명해 놓은게 대부분이고... 나같이 이해력 떨어지는 사람은 상처받기 쉽상이지... ㅠ.ㅠ
임피던스 쉽게 이해하자 어려운 공식으로 설명을 하고 있지만 별거 아니다.
이상적인 직류 세계에선 다음 공식이 적용되죠. 여기서 중요! 저항(R)값에 한번 눈길한번 주시고...
■ 전압(V) = 전류(I) * 저항(R)
복잡한 교류 세계에선 다음 공식이 적용됩니다.
■ 전압(V) = 전류(I) * 임피던스(Z)
그러니까 임피던스는 교류 세계에서 표현되는 일종의 저항입니다. (저항보다는 부하라는 표현이 더 적절하지만요)
이하 이어지는 임피던스 계산은 머리 아프고 백날봐도 먼소린지 모르므로 패스~
인터넷으로 이것 저것 검색해봐도 어렵게 설명해 놓은게 대부분이고... 나같이 이해력 떨어지는 사람은 상처받기 쉽상이지... ㅠ.ㅠ
임피던스 쉽게 이해하자 어려운 공식으로 설명을 하고 있지만 별거 아니다.
이상적인 직류 세계에선 다음 공식이 적용되죠. 여기서 중요! 저항(R)값에 한번 눈길한번 주시고...
■ 전압(V) = 전류(I) * 저항(R)
복잡한 교류 세계에선 다음 공식이 적용됩니다.
■ 전압(V) = 전류(I) * 임피던스(Z)
그러니까 임피던스는 교류 세계에서 표현되는 일종의 저항입니다. (저항보다는 부하라는 표현이 더 적절하지만요)
이하 이어지는 임피던스 계산은 머리 아프고 백날봐도 먼소린지 모르므로 패스~
2009년 12월 8일 화요일
윈도우 콘솔 명령어
c:\>wmic process get description,executablepath
현재 실행 중인 프로세스의 리스트를 Windows Instrumentation command-line interface (WMIC)를 사용하여 빠르게 얻는 방법입니다.
현재 실행 중인 프로세스의 리스트를 Windows Instrumentation command-line interface (WMIC)를 사용하여 빠르게 얻는 방법입니다.
2009년 12월 4일 금요일
용어 정리
■ ARM (Advanced RISC Machine) : 임베디드 기기에 많이 사용되는 32-bit RISC 프로세서이다.
■ AVR(Atmel AVR) : ATMEL사가 개발한 8비트 RISC MCU 제품군이다.
■ MCU (Micro Control Unit) : 단일 칩내부에 프로세서, 메모리, 입출력 장치를 갖춘 장치(마이크로 컨트롤러)이다.
■ PIC는 마이크로칩 테크놀러지에서 1990년 부터 출시되고 있는 마이크로컨트롤러 시리즈 이름이다.
■ XScale(엑스스케일) : 인텔 XScale CPU는 핸드헬드 PC에 사용되는 CPU이다.
■ AVR(Atmel AVR) : ATMEL사가 개발한 8비트 RISC MCU 제품군이다.
■ MCU (Micro Control Unit) : 단일 칩내부에 프로세서, 메모리, 입출력 장치를 갖춘 장치(마이크로 컨트롤러)이다.
■ PIC는 마이크로칩 테크놀러지에서 1990년 부터 출시되고 있는 마이크로컨트롤러 시리즈 이름이다.
■ XScale(엑스스케일) : 인텔 XScale CPU는 핸드헬드 PC에 사용되는 CPU이다.
시간 동기화
rc.conf 파일 수정 후, /etc/netstart
부팅때 마다 시간을 동기화하도록 /etc/rc.conf 파일에 다음과 같이 넣어두고 있으며,
ntpdate_enable=”YES”
ntpdate_flags=”-s time.kriss.re.kr”
ntpdate_program=”ntpdate”
하루에 한번씩 동기화하도록 /etc/crontab 파일에 다음과 같이 넣어두고 있습니다.
7 0 * * * root ntpdate -s time.kriss.re.kr
참고로, 시스템으로 들어오는 123번 UDP포트를 필터링하면 동기화가 안될수있습니다.
부팅때 마다 시간을 동기화하도록 /etc/rc.conf 파일에 다음과 같이 넣어두고 있으며,
ntpdate_enable=”YES”
ntpdate_flags=”-s time.kriss.re.kr”
ntpdate_program=”ntpdate”
하루에 한번씩 동기화하도록 /etc/crontab 파일에 다음과 같이 넣어두고 있습니다.
7 0 * * * root ntpdate -s time.kriss.re.kr
참고로, 시스템으로 들어오는 123번 UDP포트를 필터링하면 동기화가 안될수있습니다.
[SuLinux] 콘솔 해상도 조정
/etc/grub.conf 파일의 커널 옵션 뒤에 vga=숫자 부분 수정
640x480 800x600 1024x768 1280x1024
-----+-----------------------------------------
256 | 0x301 0x303 0x305 0x307
32k | 0x310 0x313 0x316 0x319
64k | 0x311 0x314 0x317 0x31A
16M | 0x312 0x315 0x318 0x31B
640x480 800x600 1024x768 1280x1024 1600x1200
-----+---------------------------------------------------
256 | 769 771 773 775 796
32k | 784 787 790 793 797
64k | 785 788 791 794 798
16M | 786 789 792 795 799
2009년 12월 3일 목요일
ATX파워 서플라이 활용(PC파워)
주변에 고장난 PC 또는 먼지만 앉아있는 PC가 있다면 파워를 떼서 활용을 해봅시다. 출력이 5V와 12V이므로 AVR이나 ARM 전원으로 GOOD!~
[메인보드 없이 연결]■ PS_ON# 과 COM단자를 스위치나 전선으로 연결하면 메인보드없이 파워를 켤수있다.
[ATX핀 배열]
■ 위 그림을 보면 알수있듯이 붉은색은 5V, 노란색은 12V 출력을 가진다.
■ 이중 보라색은 +5V Standby로 전원을 연결하면 항시 출력상태를 가진다.
※ 참고
■ PS_ON# or "Power On" is a signal from the motherboard to the power supply. When the line is connected to GND (by the motherboard), the power supply turns on. It is internally pulled up to +5 V inside the power supply.
■ PWR_OK or "Power Good" is an output from the power supply that indicates that its output has stabilized and is ready for use. It remains low for a brief time (100–500 ms) after the PS_ON# signal is pulled low.
피드 구독하기:
글 (Atom)