본문 바로가기

S3

(17)
UART 포트 기능 테스트 비동기통신 (Universal Asynchronous Receiver/Transmitter)은 1960년대 초부터 사용된 징그럽게 오래된 통신 프로토콜이다. 60년이라는 세월이 흘렀지만 아직도 다양한 분야에서 사용된다. Allwinner i3/S3 CPU에는 UART 통신 포트가 3개 있으며, 산업 표준으로 여겨지는 16550 칩과 호환되는 IP로 구성되어 있다. UART0는 시스템 콘솔 포트로 사용되며 CH330N이라는 IC를 통해 USB 인터페이스로 변환되어 개발용 PC에 연결된다. 터미널 콘솔이 필요하지 않다면 u-boot과 boot.cmd를 수정하여 다른 용도로 사용할 수 있지만 시도해보지는 않았다. UART1과 UART2는 각각 RX,TX,CTS,RTS 4개의 신호선을 가지고 있으며, UART0..
Buildroot 테스트 최신 stable version인 buildroot-2019.11 다운로드 후 압축을 푼다. 아래 절차대로 FoxNux용 BSP(Board Support Package)를 만들어 보았다. board/foxnuxone/ 폴더 만들기 board/foxnuxone/boot.cmd 파일 만들기 (u-boot이 자동실행하는 스크립트) setenv bootargs console=ttyS0,115200 panic=5 console=tty0 rootwait root=/dev/mmcblk0p2 earlyprintk rw load mmc 0:1 0x41000000 zImage load mmc 0:1 0x41800000 sun8i-s3-foxnux-one.dtb bootz 0x41000000 - 0x41800000 boar..
ADC 키패드 입력 테스트 Allwinner I3(S3) CPU 내부에 LRADC 입력 장치가 포함되어 있다. Low Resolution Analog to Digital Converter 인지 아니면 Low Rate Analog to Digital Converter인지 명확하지 않다. 나는 Low Resolution으로 부르고 싶지만 Sunxi community에는 후자의 Low Rate 용어를 사용하는 것 같다. 6비트 분해능으로 디지털로 변환된 값의 범위는 0~63까지로 매우 허접하다. 최대 2.0Volt까지 입력이 가능하며 약 30mV의 분해능이다. 4msec의 ADC 변환 시간이 필요하므로 최대 250Hz의 샘플링 주기가 가능하다. 따라서 일반적인 계측용 ADC 입력 장치로 사용하는 것은 의미가 없어보이며, 버튼 몇개를 연..
동영상 재생 테스트 비교적 낮은 성능의 CPU(Cortex-A7 1Ghz Single-Core)에서 동영상 재생 능력이 얼마나 되는지 테스트해보았다. 테스트 영상은 아래 링크에서 다운로드 받았다. 유명한 오픈소스 에니메이션 Big Buck Bunny이다. https://archive.org/download/BigBuckBunny/big_buck_bunny_480p_surround-fix.avi 동영상은 MPEG4 포맷으로 854x480의 해상도, 24bpp 칼라, 24.000 fps로 2500kbps (305.2 kbyte/s) 정도의 비트레이트로 된 파일이다. 사운드는 AC3 포맷으로 48KHz, 2 채널 스테레오이다. 데비안 OS위에서 apt로 설치한 mplayer 명령으로 재생하였으며 내 눈으로 보기에는 부드럽고, 사..
Kernel 5.5 (rc4) 포팅과 부팅 Allwinner i3(S3) CPU에 최신 메인라인 커널을 포팅하는 과정을 기록하기 시작한다. 과정에 실수나 오류가 있을수 있으나 그 것 자체가 개발 과정에 대한 유용한 기록이 되리라 생각한다. 내 보드에 맞는 devicetree와 defconfig 파일은 5.4.1 버전에서 테스트가 된것을 거의 그대로 사용해 보자. 그리고 커널 config 설정할때 oldconfig 옵션에 대한 공부는 좀 더 필요해 보인다. 우선 Tovalds님의 최신 커널 repo를 Github 홈페이지에서 "fork" 하였고 개발용 PC에 git clone으로 전체 소스를 다운로드 받았다. 툴체인은 u-boot 빌드에 사용했던 gcc-linaro-6.3.1을 그대로 이용하였다. Fork한 커널 소스는 https://github...
u-boot 로고 이미지 변경하기 부팅할때 LCD 왼쪽 구석에 보이는 쬐끄만 펭귄 로고를 나만의 로고 이미지로 변경하고 싶으면 아래 절차를 따르면 된다. 먼저 로고 이미지를 만들어 보자. FoxNux의 7인치 LCD 해상도는 1024x600 이므로 같은 크기의 JPG 포맷의 그림 파일을 만들어 저장한다. 이번 예제어서는 파일 이름은 1024x600_fox_board_logo.JPG으로 정했다. u-boot에서 지원하는 로고 이미지는 256종류의 색상을 지원하는 8-bit BMP만 지원한다. 시스템 메모리가 부족하던 시절에 메모리 사용량을 최대한 절약하기 위해서 생긴 제약이 아직도 유지되는 것 같다. 색상의 종류에 대한 제한이 크므로 사진같은 이미지 보다는 단순한 로고 형태의 이미지를 추천한다. "sudo apt install netpbm..
FoxNux용 u-boot 빌드와 설치 타겟 보드의 RAM 용량이 크고 CPU가 빠르고 Debian 계열의 OS가 설치되어 있다면 보드에서 직접 컴파일(Native build)을 하는 경우가 많아 졌다. 그런데 FoxNux 보드는 CPU가 느린편이고 RAM 공간이 128MB 뿐이라 어려울 것이다. 쓸데없는 고생하지 말고 PC에서 Cross-toolchain을 이용하여 컴파일을 하자. 내가 사용하는 개발 PC는 x86-64bit용 Ubuntu 19.10이 동작하고 있다. 작년 여름에 18.04를 설치하였고 6개월마다 업그레이드를 하였더니 19.10되었다. 업그레이드 할때마다 자잘한 문제가 있었으나 6~7년전에 부팅조차 망가지던 것에 비하면 애교로 보인다. 내년에 20.04 LTS로 올리고나면 Major 업그레이드 없이 자잘한 update만으로 ..
Allwinner i3 CPU 소개 SoC(System on Chip) 라는 용어가 나온지는 거의 20년 정도 된듯하다. 사전적 의미는 아래와 같다. SoC는 한 개의 칩에 완전 구동이 가능한 제품과 시스템이 들어 있는 것을 말한다. 그러나 현실은 좀 다르다. DRAM과 Boot flash memory 정도는 외부에붙여야 시스템으로서 동작이 가능하다. 네트웍을 구현하려면 무선랜칩이나 Ethernet MAC / PHY 칩을 붙여야 한다. 오디오 출력이 필요하면 DAC과 앰프칩을 달아주어야 한다. 이렇게 메모리, 네트웍, 오디오 칩은 외부에 달아주는 것이 일반적인 상황이다. i3라는 칩은 좀 오래된 V3 CPU와 DDR3 128MB(1Gbit)을 하나의 패키지로 합쳐 만들어진 좀 더 SoC에 가까운 물건이다. 그런데 이 업계에서는 메모리까지 ..