예비역 - 게이트플라워즈



드럼, 베이스, 기타, 보컬이 잘 들린다. 잘 어울린다.
순 우리말로만 씌여진 가사라 좋다.

난 돌아가지 않아...

휴대폰용 표준 충전기 활용

집에 휴대폰용 표준 충전기가 3개나 굴러다니고 있다.
어디 쓸만한데가 없을까 하다가 마침 리튬셀 2~3개가 직렬 연결된
리튬계열 충전기가 필요했는데 이걸로 만들기로 했다.

귀찮아서 제작 공정 사진은 안찍었다.
그냥 충전기 3개 분해해서 나온 회로기판들을 나무상자에 쑤셔 넣은거 밖에 없다.
ID로 충전 전류 설정은 해줘야 하니 충전기 최대치인 750mA로 충전하도록 저항만 추가 했다.

리튬폴리머 배터리가 직렬로 3개(병렬 2개씩) 연결된 노트북 배터리 충전중...

밸런싱 기능이 들어간 리튬계열 충전기들이 RC용으로 많이 나오는데
이건 어쩔수 없는 벨런싱 충전이다. ㅎㅎㅎ
충전 상황이 각 셀별 LED로 표기되니 아주 기똥차다.

두번째 무료 ARM-based Embedded Board

일전에 휴대폰 보드를 구해 JTAG 연결후 개인적으로 활용 가능하도록
만든적이 있었다 (무료 ARM-based Embedded Board).
간단히 부트로더도 만들어 올리고 ARM 코어 공부도좀 깊게 할 수 있는 좋은 기회였다.

오래된 유선 인터넷 공유기를 하나 구했는데 이건 ARM9이다.
KENDIN KS8695라고 씌여 있는데 지금은 MICREL사로 인수된 모양이다.
또 뻘짓의 시작이다.

휴대폰 보드에는 ARM7 코어가 들어 있어 ARM7TDMI용 Embedded ICE를 구현해 사용했는데
이번건 ARM9이라 ARM9TDMI용 Embedded ICE관련 문서를 구해 대충 훑어 봤다.
ARM7이랑 스캔 체인쪽 크기만 다를줄 알고 거져 먹기로 쉽게 덤볐다.
근데 좀 많이 다르다. 또 삽질이 시작되었다.
된장 할 그냥 쉽게 밥숱가락 떠먹는 일이 없어요...

JTAG핀용 헤더일줄 알았는데 UART만 있어서 CPU핀에서 직접 JTAG관련 신호들을 인출 했다.
납땜하다 눈깔 빠지는줄 알았다.

요놈이 뭔소리 하는지 의사소통을 해야 하니 UART연결해 주고...
JTAG하드웨어는 일전에 만든 USB-JTAG이 또 수고해 주었다.

얼추 ARM9용 Embedded ICE를 구현해 NOR를 읽어 보니 위와 같다.
0번지에 벡터 테이블 보이고 부트로더 메시지 보이고 등등등...
u-boot는 아니고 자체 개발한 부트로더 같다.

혹시 모르니 오리지널 롬데이터는 덤프해서 파일로 저장해 놓고,
역시 깨끗하게 지운 후 시작 하면 된다.
두번째 무료 ARM기반 임베디드 보드가 생겼다.
거기에 이더넷까지 된다... 움하하....

골동품

내방 박스를 정리하던중 먼지 쌓인 골동품 PCB기판을 하나 발견했다. 뭐지?..
22년전 중3 겨울방학때 설계를 시작해서 고1 봄방학때 완성했던 오디오 앰프였다.
동네 어귀를 돌아 다니면서 버려진 브라운관 TV, 라디오, 휴대용 카세트 플레이어 등등에서 구한
회로기판을 모아 저항, 커패시터, 트랜지스터등 부품을 뜯어 만들었었다.

80년대에 발행된 스테레오 앰프 자작 설계 책을 따라 만들었는데 책에 나와있는 부품을 구하지 못해
구해진 부품(파워 TR.)에 맞추어 다시 설계했었다.
열심히 트랜지스터 데이터북을 뒤져가며 구해진 PNP, NPN 파워 TR. 들의 매칭 쌍을 추려내었다.
똑같은 대용량 커패시터를 못구해 출력단 커패시터는 좌우가 짝짝이다.

제작을 다하고 볼륨은 낮춘후 카세트 플레이어와 물렸다.
나즈막하게 음이 일그러지는 소리가 들렸다. 아.. 뭐가 잘못되었나?...
NFB(Negative Feed Back)용 가변저항을 천천히 돌렸더니 점차 깨끗한 음이 들리기 시작했다.
1/4즘으로 줄여 놨던 메인 앰프의 볼륨을 천천히 높혔다.
주워온 스피커의 콘이 베이스 드럼 소리와 함께 쿵짝쿵짝 요동치던 모습이 아직도 생생하다

그때 만들었던 오디오 엠프는 고3 졸업때까지 내 귀를 아주 즐겁게 해주었었다.
486DX2 컴퓨터에 물리고 둠2를 시작 하면 아주 죽음이었다.. 크크크...


너무 오래되어 기억은 잘 안나지만 아날로그 멀티미터로 측정했을때 출력은 20W+20W 정도였던거 같다.

Ageing



한가지 바램이 있다면
나이가 들어 몸이 늙어가듯
내 마음과 내 머리도 같이 어울려
나이들어 갔으면 좋겠다.

사진출처: 옥스포드(http://www.ageing.ox.ac.uk/news/2013/ageing-population-will-have-huge-impact-social-services)

Culture Club - Karma Chameleon

아주 어렸을적 흑백 브라운관 TV에서 예쁜 외국 여자가수가 요염하게 노래를 부르는걸 본적이 있다.
마이클 잭슨도 같이 나왔던거 같은데 넋을 놓고 봤었다.

노래 제목에 카멜레온이 들어간다는것 말고는 가수가 누군지도 모르고, 전곡을 들어본적도 없었다.
그렇게 20여년이 흐른 후, 어느 순간 며칠 내내 그 멜로디가 머리속에서 갑자기 맴돌기 시작했다.

카멜레온으로 검색을 해봤다.
박영규가 왜나오지?...





You come and go, you come and go...

MIPS32 기반 Embedded Board

전화선 연결용 무선 라우터(공유기)를 하나 구했다.
뚜껑을 딴다.
칩셋을 본다.

메인 프로세서는 ADM5120P이고 MIPS32코어 기반에 175MHz이다.
8MB NOR Flash와 32MB SDRAM이 달려있고 전화선 연동용 VoIP칩이 달려있다.
무선 라우터이니 당연히 무선 모듈이 붙어 있고...

소비전류를 줄이기 위해 VoIP칩을 걷어낸다.
몸에 안좋은 무선 모듈도 떼어 버린다.
Embedded Linux 운용에 필요한 최소한의 구성이 완료 되었다.
(32bit CPU, NOR Flash, SDRAM, Ethernet)
최소 전력으로 리눅스 운용이 가능해진다. 움하하...

MIPS32 코어를 주무르기 위해서는 코어 내부에 구성된 EJTAG이라는걸 사용해야 한다.
디버그용으로 EJTAG 배선은 되어 있으나 헤더핀이 없었다.
헤더핀을 납땜해주고 JTAG연결은 기존에 만들었던 USB-JTAG을 사용한다.
다행히 UART쪽 헤더핀은 나와있어서 부팅메시지 확인이 가능했다.
u-boot와 커널 2.4대의 리눅스가 포팅되어 있었다.

아래 사진 왼쪽 위가 무선 라우터 보드이고, 아래는 RS-232변환기, 오른쪽에 있는게 USB-JTAG이다.

간단하게 EJTAG을 구성하고(아주 쉽다.. 된장..) 메모리를 읽어봤다.

0번지에 통상적인 점프테이블이 보이고 그 뒤로 u-boot 부팅메시지가 보인다.
NOR Flash 읽기, 쓰기, 삭제 된다...
기본으로 부착된 LED의 on/off 테스트도 잘 된다.
기존 부트로더는 백업용으로 저장, NOR Flash는 깨끗하게 지우고 시작한다.
(너부 복잡하고 무거운 u-boot는 별로 좋아하지 않는다)

PXA270에 포팅했던 Embedded Linux/Xenomai 자료들을 다시 꺼내 봐야겠다..
시간이 되면 Xenomai패치도 해보면 좋을텐데 말이다...

무료 ARM-based Embedded Board

시중에는 비교적 저렴한 ARM코어 기반의 평가보드들이 많이 나와있다.
그러나 무료로 ARM기반의 Embedded Board를 하나 구하게되었다.
엄밀히 말하자면 그냥 구해진건 아니고...

가정용 무선전화기를 분해해 보면 예전 모델들은 흑백 LCD에 8비트나 16비트기반의
MCU가 사용되는데 최근 무선전화기들은 컬러 LCD디스플레이가 대부분 장착되고
각종 멀티미디어 기능들이 들어가면서 ARM기반의 MCU가 많이 사용되어 지는듯 하다.

버려진 무선전화기를 뜯어 보니 컬러 LCD와 삼성 S3C3410 MCU가 탑재되어 있었다.
구글신께 문의해본 결과 친절하게도 ARM7TDMI기반의 MCU이고 관련 데이터 시트와
메뉴얼등을 보여주었다.
다행이 BGA가 아니라 리버스 엔지니어링이 제한적으로 가능해 보였다.
구해진 데이터시트와 메뉴얼 등을 참고해 JTAG핀과 RESET핀을 외부로 인출 하였다.
나는 개인적으로 전자파를 별로 좋아하지 않아 무선 모듈은 깨끗하게 제거해
쓰레기통에 버렸다.

길게 뻗은 전선은 리셋핀인데 아직 쓸만한 버튼을 못구해 그냥 저렇게 썼다.


S3C3410 데이터 시트를 아무리 뒤져봐도 JTAG에 대한 상세한 내용을 찾을 수가 없었다.
구글신께 다시 문의...
S3C3410은 저가 양산을 위해 JTAG의 EXTEST기능이 구현되지 않았으며
MCU외부 메모리 입출력을 위해서는 ARM7TDMI에 내장된 Embedded-ICE를 써야한다고
아주 친절하고도 상세하게 알려주었다. 젠장...

기존에 만들었던 USB-JTAG에 ARM7TDMI와 Embedded-ICE를 제어할 수 있는 기능을
아주 쉽고도 간단하게 만들어 넣었다. 정말 간단했다. 젠장...
EXTEST기능만 있었어도 간단한걸 더 간단하게 할 수 있었을텐데 말이다.



부착된 1MB NOR플래시에 저장된 펌웨어 바이너리를 읽어 봤다.

0번지에는 통상적인 ARM 인터럽트 벡터 처리부분이 보이고,
"Remote Program Start..."라는 간단한 부팅용 메시지와 제작자 정보가 보인다.
"8Blue-M Ucos Ver1.0" 텍스트가 보이는것으로 보아 UCOS커널을 포팅해서 썼나 보다...
뭐 어찌됐건 나에게 기존 펌웨어는 별로 중요한게 아니니 그냥 파일로 백업만 해놓고
NOR플래시 지우기/쓰기 테스트등을 해봤는데 잘 된다.
버튼에 부착된 LED 깜빡이는 테스트 정도만 해놓은 상태이다.

1MB NOR플래시와 2MB SDRAM이 부착되어 있는데, 음...
NOR플래시에는 부트로더와 Linux커널만 꽉차게 겨우 올라갈듯 하다.
커널 압축이 풀리면 2MB가 넘었나?.. 기억이 가물가물...

여튼... 며칠간의 삽질로 ARM코어 기반의 Embedded Board가 하나 생겼다.

USB-JTAG 두번째 자작

기존에 USB 클라이언트 디바이스를 이용한 USB-JTAG을 하나 만들었었다.

첫번째 자작 USB-JTAG

위에 제작한 USB-JTAG은 USB 클라이언트 디바이스의 IO에 JTAG 핀 기능을 할당하여
펌웨어에서 직접 드라이브 (bit-bang)하는 방식으로 개발 하였으나 사용한 USB 클라이언트
디바이스 IO스위칭 속도가 너무 낮아 문제가 되었다.
(PXA270 보드의 NOR플래시 읽기/쓰기를 구현해 봤으나 너무 느림)

때문에 처음 제작한 USB-JTAG은 USB-AVRISP전용 디바이스로 쓰기로 하고
고속 IO스위칭이 가능한 클라이언트 MCU (TMS320F2812)를 적용하여 다시 제작하였다.
USB-UART 컨버터를 내장시켜 호스트 PC에서는 시리얼 통신 터미널을 이용해
접속하도록 바꾸었다.

JTAG신호 드라이브에는 기존의 bit-bang기법과 F2812에 내장된 SPI인터페이스를
사용하여 구동하도록 구현하였으며 SPI엔진을 사용할 경우 JTAG클럭 스피드를
사용자가 변경하여 사용 할 수 있도록 해놨다.
최대 37.5MHz까지 가능하나 원래 JTAG과 SPI는 타이밍이 다른 구조이므로 10MHz이내에서 호환(?)되는 최대 클럭을 찾아 사용하였다 (아래 테이블 TCK속도 참조).

JTAG 인터페이스 부분은 기존과 동일하게 Digital Isolator를 적용하여
타켓측과 전원/신호/접지를 완전히 분리 시켜 놓았다.

기존에 만들었던 PXA270용 JTAG 코드를 이식시켜 사용해 봤는데
겁나게 빨라졌다. 움하하...


<> 2015/04/17 업데이트 기준 지원가능 디바이스 리스트 및 TCK속도
ARM7TDMI (ARMv4T, Embedded-ICE) S3C3400(7MHz), S3C3410(7MHz)
ARM9TDMI (ARMv4T, Embedded-ICE) KS8695(8MHz), S3C2410(7MHz), S3C2440(7MHz)
XScale (ARMv5TE, EXTEST) PXA270(4MHz)
MIPS32 (EJTAG v2.6) ADM5120P(8MHz), SMP8634(6.5MHz)
AVR (AVR-ISP) ATMEGA8/16/64/128(1MHz)

2013/03/23~03/25 홍콩 가족여행

내 팔자에 홍콩도 가보게 되는군...
크크크...

장모님과 함께한 홍콩 가족여행

탁상용 시계 자작

오래된 VCR에서 얻은 7-segment display에 8비트 MCU하나 끼워서
안방에서 쓸 작은 탁상 시계를 하나 만들었다.
지난 1월에 만들어서 근 3개월 돌려봤는데 얼추 시간은 잘 맞는거 같다.
움하하...

Blogger에 파일올리기


이곳 Blogger로 넘어온후 지금껏 채보했던 드럼 악보를 올릴려고 새글 쓰기를 하고
파일 업로드 버튼을 찾았으나 파일 업로드 버튼이 없다는 걸 깨달았다..
보안과 안전상의 이유로 이미지 파일 이외 파일 업로드기능을 빼놓은 것이 었다...
열심히 구글링을 통해 얻은 정보...
구글에서 '구글 사이트 도구'라는 것을 지원한다..
이 사이트 도구는 블로그가 아닌 일반 웹페이지를 공유 할수 있도록 지원해주는
웹서비스 이다..
이 기능을 이용해 간단한 웹 홈페이지를 구축 할수도 있고 소규모 회사의
인트라넷까지 구축 할수 있도록 해주는 서비스였다.

위 이미지에서 처럼 Gmail에 로그인 한뒤 상단메뉴의 더보기에서 사이트 도구를 클릭해
자신의 사이트를 만들수가 있다..

한 사이트당 100MB의 용량을 지원해 주며 하나의 계정으로 여러개 사이트를 제작해
사용할수 있는듯 하나 사이트 갯수 제한은 어느정도 인지 아직 모르겠다.
업로드 가능한 파일종류에 제약이 없어 사이트를 만들고 그곳에 데이터를 올려
블로그에 링크 시키면 블로그에 파일 업로드가 가능하다..
사이트 제작후 제작한 사이트를 공유하도록 해놓으면 로그인없이 바로 다운로드가 가능하다.

뮈 사이트를 블로그로 써도 되지만
또 옮기기 귀찮다.. 흐흐흐..



2013/02/26 내용 추가 ---------------------------

예전 구글 site에서는 파일 업로드 후에 업로드된 파일의 링크를 확인해 링크 복사후
블로그에 넣을 수 있었으나 지금은 모든 파일 링크가 구글 docs라는 전용 뷰어로 대체 되었다.
구글 site에 업로드한 파일의 원본 링크 주소를 확인하려면 구글 site에 로그인 후
'Manage site' 메뉴를 찾아 누른다음 'Attachments'항목을 선택하면 아래 그림처럼
업로드한 파일들을 설정 할 수 있는 창으로 이동 가능 할 것이다.
이 설정 창에서 'Download'링크의 속성(마우스 우클릭)을 보면 본인이 업로드한 파일의
원본 링크를 확인 할 수 있을 것이다.
'View'링크는 구글 전용 뷰어 링크이므로 뷰만 가능하게 하고 싶다면 이 링크를 쓰면
될거 같다.