홈 > 고객/기술지원 > 기술지원자료
Exynos8895 | Exynos8890 | Exynos7420 | Exynos5422 | Exynos5260 | Exynos5410 | Exynos4412 | S5PV310 | S5PV210 | S5PC110 | S5PC100 | S3C6410 | S3C2450 | iMX6Q | AM3358
 


::: MV C100-LCD 보드 Q & A :::

1. SD Card mount
2. SD Card 자동 mount
3. Android 2.1 USB 설정
4. Camera source 위치
5. Yaffs mount 위치
6. u-boot 에서 PC와 USB통신
7. LCD Timing 설정
8. TV OUT API 어드레스 값
9. COM2 / COM0 통신 방법




::: 1. SD Card mount :::

아래 방법을 참고하여 테스트를 진행해 보시길 바랍니다 .
Mount 명령어를 이용하여 SD Card의 내용을 확인하실 수 있습니다 .

/ #

/ # cd opt/

/opt # ls

/opt #

/opt # cd ..

/ #

/ # mmc0: new SD card at address e624

mmcblk0: mmc0:e624 SD02G 1.89 GiB

mmcblk0: p1

/ #

/ # mount /dev/mmcblk0p1 /opt/

/ # cd opt/

/opt # ls

1kHZ_SINE_48kHZ_1minute.mp3

NexTVT_SWP

PixDemo

comm_test_431

my3gppdlcancel.cfg

www

/opt #

 






::: 2. SD Card 자동 mount :::

자동으로 실행하시기 위해선 filestystem을 수정하신 후에 사용을 하실 수 있습니다 . 자동실행 방법은 아래 부분을 수정하시면 됩니다 .

/mnt/etc/rc.d 폴더를 확인 하시면 rc.local파일이 있습니다 . 이 파일을 수정하시면 됩니다 .

rc.local 파일을 열어 아래에 실행할 파일을 추가하시면 됩니다 .

#!/bin/sh

#

# This script will be executed *after* all the other init scripts.

# You can put your own initialization stuff in here if you don't

# want to do the full Sys V style init stuff.

#touch /var/lock/subsys/local

이부분에 실행할 파일 추가 ex) ./실행파일명

참고사항으로 파일시스템을 새롭게 생성하는 방법은 아래를 참고하여 진행하시면 됩니다 .

파일시스템에서 원하시는 사항으로 수정을 하신 후에 다음 명령어 “mkfs.cramfs”을 이용하여 새롭게 생성하시면 됩니다 .

#mkfs.cramfs mvc100.cramfs mvc100_new.cramfs

#ls





::: 3. Android 2.1 USB 설정 :::

커널에서 다음과 같은 명령어를 이용해 커널 환경 설정 모드로 진입을 합니다 .

#make menuconfig



Load an Alternate Configuration File



arch/arm/configs/mvc100_defconfig 를 불러옵니다 .



위 파일을 load한 후에 아래 부분을 설정합니다 .

Device Drivers --->



[*] USB support --->



<*> Support for Host-side USB( 이 부분을 추가해야 OHCI HCD support 생성됩니다 .)



Device Drivers --->



[*] USB support --->



<*> OHCI HCD support

( 이 부분을 추가해야 S3C high speed(2.0, dual-speed) USB OTG device 생성됩니다 .)



Device Drivers --->



[*] USB support --->



<*> USB Gadget Support --->



<*> USB Gadget Drivers (Android Gadget) --->



위와 같이 설정을 완료하신 후에 make 해서 생성된 zImage 이미지를 보드에 적용하시면 됩니다

마지막으로 MVC100-LCD는 다음과 같이 설정을 하시길 바랍니다 .

보드상에서 settings -> Application -> Development -> USB debubbing 체크 되어야 ADB가 정상적으로 동작을 합니다 .




::: 4. Camera source 위치 :::

MVC100-LCD camera source 위치는 아래를 참고하시길 바랍니다 .

kernel_2.6.29_c100\drivers\media\video 안에 mt9d111.c 와 mt9d111.h 이고

kernel_2.6.29_c100\drivers\media\video\samsung/fimc 안에 fimc_v412.c 파일이 있습니다 .

FIMC 에서 0,1,2는 0과 1은 카메라 포트이고 2는 mipi 카메라 포트 입니다 .



보드 상에서 응용 프로그램 실행 시 10초 걸리는 이유는 초기화 시간이며 응용 프로그램을 빠르게 실행 하시려면 커널에 추가해 부팅 할 때 초기화를 하시면 하면 됩니다 .
(초기화 시간은 절대적 시간입니다 .)

이렇게 되면 부팅 할 때 카메라를 연결 하고 부팅해야 합니다 .
mt9d111.h 소스에 있는 부분을 커널에 등록하시면 됩니다 .





::: 5. Yaffs mount 위치 :::

yaffs mount 가 되는 영역은 보드가 부팅된 후에 명령어 “df”를 실행하시면 아래와 같은 메시지 출력을 확인 하실 수 있고 여기서 mount되는 위치가 “mtdblock3”인 것을 확인 하실 수 있습니다 .

[root@Samsung ~]# df

Filesystem                Size      Used Available Use% Mounted on

/dev/mtdblock2           48.4M     48.4M         0 100% /

tmpfs                    95.8M     44.0k     95.8M   0% /tmp

/dev/mtdblock3          228.0M      1.5M    226.5M   1% /userdata

[root@Samsung ~]#

소스 위치는 커널에 kernel_2.6.29_c100\arch\arm\plat-s3c\include\plat 안에 partition.h 안에 보시면 아래하단에 Yaffs로 되어 있는 부분을 보실 수 있습니다 .

struct mtd_partition s3c_partition_info[] = {

             {

                           .name                 = "Bootloader",

                           .offset                 = 0,

                           .size                   = (256*SZ_1K),

                           .mask_flags        = MTD_CAP_NANDFLASH,

             },

             {

                           .name                 = "Kernel",

                           .offset                 = (256*SZ_1K),

                           .size                   = (4*SZ_1M) - (256*SZ_1K),

                           .mask_flags        = MTD_CAP_NANDFLASH,

             },

             {

                           .name                 = "Rootfs",

                           .offset                 = MTDPART_OFS_APPEND,

                           .size                   = (24 * SZ_1M),

             },

             {

                          .name                 = "UserData(Yaffs)",

                           .offset                 = MTDPART_OFS_APPEND,

                           .size                   = MTDPART_SIZ_FULL,

             }

};

밑에 내용은 보드 부팅 시 나오는 메시지 입니다 .

NAND device: Manufacturer ID: 0xec, Chip ID: 0xda (Samsung NAND 256MiB 3,3V 8-bit)

Creating 4 MTD partitions on "NAND 256MiB 3,3V 8-bit":

0x000000000000-0x000000040000 : "Bootloader"

0x000000040000-0x000000400000 : "Kernel"

0x000000400000-0x000001c00000 : "Rootfs"

0x000001c00000-0x000010000000 : "UserData(Yaffs)"

usbmon: debugfs is not available

ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver







::: 6. u-boot 에서 PC와 USB통신 :::

MVC100-LCD Linux u-boot 는 파일 전송만 하도록 현재구현이 되어있는 상태입니다 .

하지만 특정 *.bin 을 만들어 부트로더 레벨에서 실행은 가능합니다 .

부트로더 레벨에서 일반 텍스트 파일을 전송해서 보시기에는 힘드시기 때문에 간단한 어플을 만들어 프린터 문을 통해 출력하시는 것이 더 효과 적일 것 같습니다 .

만약 간단한 어플을 만들어 실행 하고자 한다면 다음과 같이 수정해 보시길 바랍니다 .

밑에 스크립트는 예를 들어 한 것 입니다 .

Makefile 에서 다음과 같이 번지를 추가합니다 .

ifeq ($(ARCH),arm)

ifeq ($(BOARD),omap2420h4)

LOAD_ADDR = 0x80300000

else

#SDKIM LOAD_ADDR = 0xc100000

LOAD_ADDR = 0x20300000

endif

endif

전송 및 실행

SMDKC100 # dnw 20300000

SMDKC100 # go 20300000




::: 7. LCD Timing 설정 :::

TFT LCD 를 다른패널로 교체하여 상용할 때 timing설정이 필요합니다 .
이때 아래 경로의 파일에서 timing을 조절하시면 됩니다 .

CD\SRC\WinCE\PLATFORM\MVC100\SRC\DRIVERS\DISPLAY\LDI_LIB\LDI 폴더에서 s5pc100_ldi.c파일을 수정하시길 바랍니다 .

수정 부분은 LDI_fill_output_device_information()함수를 원하시는 사항으로 수정을 하시면 됩니다 .

LDI_ERROR LDI_fill_output_device_information(void *pDevInfo)

{

LDI_ERROR error = LDI_SUCCESS;

tDevInfo *pDeviceInfo;

LDI_MSG((_T("[LDI]++LDI_fill_output_device_information()\n\r")));

if (pDevInfo == NULL)

{

LDI_ERR((_T("[LDI:ERR] LDI_fill_output_device_information() : Null Parameter\n\r")));

error = DISP_ERROR_NULL_PARAMETER;

goto CleanUp;

}

pDeviceInfo = (tDevInfo *)pDevInfo;

switch(g_ModuleType)

{

case LDI_LTE480WV_RGB:

LDI_INF((_T("[LDI:INF] Output Devce Type [%d] = LDI_(SMRP)LTE480WV_RGB\n\r"), g_ModuleType));

pDeviceInfo->RGBOutMode = DISP_16BIT_RGB565_P;

pDeviceInfo->uiWidth = 800;

pDeviceInfo->uiHeight = 480;

#if 0 // chunghwa

pDeviceInfo->VBPD_Value = 5;

pDeviceInfo->VFPD_Value = 19;

pDeviceInfo->VSPW_Value = 1;

pDeviceInfo->HBPD_Value = 47;

pDeviceInfo->HFPD_Value = 70;

pDeviceInfo->HSPW_Value = 3;

#else // Innolux

pDeviceInfo->VBPD_Value = 22;

pDeviceInfo->VFPD_Value = 2;

pDeviceInfo->VSPW_Value = 1;

pDeviceInfo->HBPD_Value = 43;

pDeviceInfo->HFPD_Value = 82;

pDeviceInfo->HSPW_Value = 3;

#endif // Innolux

pDeviceInfo->VCLK_Polarity = IVCLK_FALL_EDGE;

pDeviceInfo->HSYNC_Polarity = IHSYNC_LOW_ACTIVE;

pDeviceInfo->VSYNC_Polarity = IVSYNC_LOW_ACTIVE;

pDeviceInfo->VDEN_Polarity = IVDEN_HIGH_ACTIVE;

pDeviceInfo->PNR_Mode = PNRMODE_RGB_P;

pDeviceInfo->VCLK_Source = CLKSEL_F_LCDCLK;

pDeviceInfo->VCLK_Direction = CLKDIR_DIVIDED;

pDeviceInfo->Frame_Rate = 60; // VCLK > 24.5 MHz (Max 35.7 MHz)

break;







::: 8. TV OUT API 어드레스 값 :::

CD\SRC\WinCE\PLATFORM\MVC100\DOC 폴더에 있는 SMDKC100_WinCE6.0_WM6.1_TVoutDriver_UserManual.pdf에서 “ Show GRP0 Layer on TV”방식으로 보드를 구현하였습니다 .

“tvideoParm.uiTopYAddress = DisplayBuffPhyAddr;” 어드레스 값은 CD\SRC\WinCE\PLATFORM\MVC100\FILES폴더에 있는 platform.reg에서 확인 하실 수 있습니다 .

@CESYSGEN IF CE_MODULES_DISPLAY

IF BSP_NODISPLAY !

[HKEY_LOCAL_MACHINE\Drivers\Display\S5PC100\Config]

             "DisplayDll"="S5PC100_disp.dll"

             "MemBase"=dword:EE000000

             "MemLen"=dword:2B0

             "VidMemBase"=dword:2d000000                 ;

             "VidMemLen"=dword:2800000                      ; 8MBytes

             "PrimaryWin"=dword:1                                                           ; 0 - Window0, 1 - window1, ..., 0~4, Window number for Background UI

             "DDOverlayWin"=dword:0                            ; 0~4 Only 0~2 can use LocalPath, that matched to CAM1~3


                             ; and must not be overlapped with UIWin.

             "UseAsPost"="CAM1:"                                  ; Camera 1~3, This will be used in VDE driver

                             ; When using DDrawOverlay with LocalPath this must be matched to DDOverlayWin

위 소스상에서 “2d000000”이 어드레스 값입니다 . 참고하시길 바랍니다 .







::: 9. COM2 / COM0 통신 방법 :::

회로도를 확인하시면 아시겠지만 COM2 / COM0는 232칩이 없기 때문에 통신을 할 수가 없습니다 . 통신을 하기 위해선

쪽보드 형식으로 보드를 만들어 연결하여 사용을 하는 방법과 보드에 있는 232칩을 이용하여 사용하는 방법이 있습니다 .

보드에서 구현하는 방법을 아래를 참고하시길 바랍니다 .



COM0 는 CPU와 연결이 되어 있기 때문에 쪽보드 형식으로 테스트를 진행하시면 됩니다 .


위 처럼 H/W을 구현하고 S/W는 현재 아래와 같이 설정이 되어 있습니다 .

CD\SRC\WinCE\PLATFORM\MVC100\FILES 폴더에서 platform.reg파일을 확인하시면 설정을 확인하실 수 있습니다 .

;--------------- Serial / IrDA Driver -----------------------------------------

; @CESYSGEN IF CE_MODULES_SERIAL

IF BSP_NOSERIAL !

IF BSP_NOUART0 !

IF BSP_KITL != SERIAL_UART0

IF BSP_DEBUGPORT != SERIAL_UART0

;--------------- UART0 (Physical COM1 Port) ---------------------------------

[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\Serial0]

           "DeviceArrayIndex"=dword:0

           "Irq"=dword:4E                                   ; UART0 Virtual IRQ = 78 (0x4E), Physical IRQ = 42

           "MemBase"=dword:EC000000

           "MemLen"=dword:40

;          "ISTTimeouts"=dword:200           ; every 512 ticks checking Modem status.

           "Prefix"="COM"

           "Index"=dword:1

           "Dll"="s5pc100_serial.dll"

           "Order"=dword:20

           "Port"="COM1:"

           "DeviceType"=dword:0

           "FriendlyName"=LOC_DISPLAYNAME_COM1

           "Tsp"="unimodem.dll"

           "IClass"="{CC5195AC-BA49-48a0-BE17-DF6D1B0173DD}"

           "DevConfig"=hex: 10,00, 00,00, 05,00,00,00, 10,01,00,00, 00,4B,00,00, 00,00, 08, 00, 00, 00,00,00,00

;----------------------------------------------------------------------

위 설정 값을 확인하시면 UART0는 COM1인 것을 확인 할 수 있습니다 .

보드에서도 설정되어 있는 값을 확인할 수 있습니다 .

내장치 > Windows > regedit > HKEY_LOCAL_MACHINE > Drivers > BuiltIn > Serial0 , Serial2, Serial3

위 경로에서 Serial을 확인하시면 아래와 같이 설정 값을 볼 수 있습니다 .

Serial0 > COM1

Serial2 > COM3

Serial3 > COM4




 
    166 / 1,669,181
서울특별시 구로구 구로3동 235번지 한신IT타워 1004호 TEL. 02-3283-0101 FAX. 02-3283-0160
사업자등록번호 : 116-81-51889 대표자 : 이현재 E-MAIL : sale@microvision.co.kr
COPYRIGHT 2004 (주)마이크로비젼 ALL RIGHTS RESERVED.
%3Cul+class%3D%22Klocation%22%3E%3Cli+class%3D%22first%22%3E%3Ca+href%3D%22..%2Fhome%2F%22%3EHOME%3C%2Fa%3E%3C%2Fli%3E%3Cli%3E%3Ca+href%3D%22..%2Fhome%2Fsub03.php%22%3E%EA%B3%A0%EA%B0%9D%2F%EA%B8%B0%EC%88%A0%EC%A7%80%EC%9B%90%3C%2Fa%3E%3C%2Fli%3E%3Cli%3E%3Ca+href%3D%22..%2Fhome%2Fsub03.php%3Fmid%3D52%22%3E%EA%B8%B0%EC%88%A0%EC%A7%80%EC%9B%90%EC%9E%90%EB%A3%8C%3C%2Fa%3E%3C%2Fli%3E%3C%2Ful%3E