2014년 3월 27일 목요일

지그비보드와 망고210 보드 UART 인터페이스로 연결 방법




지그비와 망고210 UART 인터페이스로 연결 방법

질문 :
지그비 모듈을 사서 사용중에 있습니다.

USB to Serial을 붙여서 망고보드 V210내 CE에 포팅은 성공하였습니다.

USB  to Serial을 사용하지 않고 CM-Z100보드만 V210에 붙여서 테스트를 해보고 싶습니다.

USB 포트를 살려두기 위함(마우스 혹은 USB 메모리를 사용하기 위해서는 지그비를 계속 땠다 붙였다해야 되어 불편)

CM-Zx-Serial에서 1,4,7,8번핀만 연결해서 TEST를 해보니 OK가 되어,

V210회로에서 UART2에 TX, RX, GND를 연결하고, 1번핀에 3.3V를 인가했습니다.

UART 메시지는 표시되나 이상한 쓰레기 값이 표시되며,

보드가 뜨거워지는 현상이 발상됩니다.

따로 처리해야할 상황이 있는지 궁금합니다.



답변 아래와 같이 연결하시면 됩니다.

Mango210 ICS4.0.4 Memory Info


Mango210 ICS4.0.4  Memory Info

Total  Memory : 512MB

system Reserved memory : 128MB(MFC, , FIMD ,FIMC, JPEG , GPU)
log:
s5p: 37748736 bytes system memory reserved for mfc at 0x2dc00000, 0-bank base(0x2dc00000)
s5p: 37748736 bytes system memory reserved for mfc at 0x4dbf5000, 1-bank base(0x4dbf5000)
s5p: 6291456 bytes system memory reserved for fimc0 at 0x4d5f5000, 1-bank base(0x4d5f5000)
s5p: 10137600 bytes system memory reserved for fimc1 at 0x4cc4a000, 1-bank base(0x4cc4a000)
s5p: 6291456 bytes system memory reserved for fimc2 at 0x4c64a000, 1-bank base(0x4c64a000)
s5p: 8388608 bytes system memory reserved for jpeg at 0x2d400000, 0-bank base(0x2d400000)
s5p: 16588800 bytes system memory reserved for fimd at 0x4b678000, 1-bank base(0x4b678000)
s5p: 1843200 bytes system memory reserved for pmem_gpu1 at 0x2d23e000, 0-bank base(0x2d23e000)
s5p: 8388608 bytes system memory reserved for g2d at 0x2ca3e000, 0-bank base(0x2ca3e000)

system memory : 384MB

384MB 중에서 시스템이 사용하는 영역이 224588KB를 사용하고,
156176KB Free 메모리 영역입니다.
확인 방법

root@android:/ # cat /proc/meminfo
MemTotal:         380764 kB
MemFree:          156176 kB
Buffers:            2756 kB
Cached:            93628 kB
SwapCached:            0 kB
Active:            88980 kB
Inactive:          86256 kB
Active(anon):      78868 kB
Inactive(anon):      268 kB
Active(file):      10112 kB
Inactive(file):    85988 kB
Unevictable:           0 kB
Mlocked:               0 kB
SwapTotal:             0 kB
SwapFree:              0 kB
Dirty:                 0 kB
Writeback:             0 kB
AnonPages:         78876 kB
Mapped:            72356 kB
Shmem:               284 kB
Slab:               7616 kB
SReclaimable:       2984 kB
SUnreclaim:         4632 kB
KernelStack:        2576 kB
PageTables:         4392 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:      190380 kB
Committed_AS:    2268856 kB
VmallocTotal:     204800 kB
VmallocUsed:       32680 kB

VmallocChunk:     165892 kB

[Mango210] GPIO export 번호 알기 mount -t debugfs none /sys/kernel/debug


커널에서
gpio export 어플에서 하려면
gpio 번호를 알아야 합니다.
파일 시스템은 linux 파일 시스템에서 확인 했습니다.
커널 configuration 아래와 같이 해야 합니다.
CONFIG_GPIO_SYSFS=y
CONFIG_DEBUG_FS=y

mount -t debugfs none /sys/kernel/debug
# cat /sys/kernel/debug/gpio
GPIOs 0-7, GPA0:
 gpio-2   (sysfs               ) out lo
 gpio-3   (sysfs               ) out lo

GPIOs 9-12, GPA1:

GPIOs 14-21, GPB:

GPIOs 23-27, GPC0:

GPIOs 29-33, GPC1:

GPIOs 35-38, GPD0:

GPIOs 40-45, GPD1:
 gpio-40  (sda                 ) in  hi
 gpio-41  (scl                 ) in  hi
 gpio-44  (sda                 ) in  hi
 gpio-45  (scl                 ) in  hi

GPIOs 47-54, GPE0:

GPIOs 56-60, GPE1:

GPIOs 62-69, GPF0:

GPIOs 71-78, GPF1:

GPIOs 80-87, GPF2:

GPIOs 89-94, GPF3:

GPIOs 96-102, GPG0:

GPIOs 104-110, GPG1:

GPIOs 112-118, GPG2:

GPIOs 120-126, GPG3:

GPIOs 128-135, GPH0:
 gpio-129 (GPH0                ) in  hi irq-33 edge-both
 gpio-130 (GPH0                ) in  hi irq-34 edge-both

GPIOs 137-144, GPH1:

GPIOs 146-153, GPH2:

GPIOs 155-162, GPH3:

GPIOs 164-170, GPI:

GPIOs 172-179, GPJ0:

GPIOs 181-186, GPJ1:

GPIOs 188-195, GPJ2:

GPIOs 197-204, GPJ3:

GPIOs 206-210, GPJ4:

GPIOs 212-219, MP01:

GPIOs 221-224, MP02:

GPIOs 226-233, MP03:

GPIOs 235-242, MP04:

GPIOs 244-251, MP05:

GPIOs 253-260, MP06:

GPIOs 262-269, MP07:

GPIOs 271-278, MP10:

GPIOs 280-287, MP11:

GPIOs 289-296, MP12:

GPIOs 298-305, MP13:

GPIOs 307-314, MP14:

GPIOs 316-323, MP15:

GPIOs 325-332, MP16:

GPIOs 334-341, MP17:

GPIOs 343-349, MP18:

GPIOs 351-358, MP20:

GPIOs 360-367, MP21:

GPIOs 369-376, MP22:

GPIOs 378-385, MP23:

GPIOs 387-394, MP24:

GPIOs 396-403, MP25:

GPIOs 405-412, MP26:

GPIOs 414-421, MP27:

GPIOs 423-429, MP28:

GPIOs 431-436, ETC0:

GPIOs 438-445, ETC1:

GPIOs 447-454, ETC2:

GPIOs 456-461, ETC4:

2014년 3월 17일 월요일

망고 습도 센서 판매 (CX-Humidity Sensor )





FEATURE
-SENSIRION사의 SHT20센서가 장착된 저전력 초소형 모듈
-디지털 출력, I2C 인터페이스
-낮은 전력 소비
-우수한 장기적 안정성
-DFN형 패키지






구성 품: 습도 센서 모듈+ 8PIN Cable
가격 : 15,000원 ( VAT 미포함 )

sensirion사 습도 센서 Datasheet



카드 결제:

입금 계좌: 317-0000-9066-31 (농협: 씨알지테크놀러지주식회사)
문의: help@crz-tech.com
팩스: 031-701-5024, 연락처: 031-701-5057

SPECIFICATION

  • Output:
  • Energy consumption:
  • RH operating range:
  • T operating range:
  • RH response time:
I²C digital, PWM, SDM/analog Volt interface
3.2uW (at 8 bit, 1 measurement / s)
0 - 100% RH
-40 - +125°C (-40 - +257°F)
8 sec (tau63%)



DIMENSION








Manual

Source

STM32 MangoM32 EVB Manual ( Firmware )






REFERENCE  BOARD

Cortex-M3 망고M32(Mango-M32 STM32F103) 연결 방법

입금 계좌: 317-0000-9066-31 (농협: 씨알지테크놀러지주식회사)
문의: help@crz-tech.com
팩스: 031-701-5024, 연락처: 031-701-5057

자세한 사양 :
또는



2014년 3월 14일 금요일

USB host reboot 명령으로 리셋 시 에러 발생


http://cafe.naver.com/embeddedcrazyboys
http://www.mangoboard.com/

Subject : USB host reboot 명령으로 리셋 시 에러 발생


Description:
리셋키로 리부팅 시 정상동작하나, reboot 명령으로 리부팅 시 오류 발생


분석결과 및 조치:
2.6.35 커널에서는 문제가 없다. S5PV210 CPU를 사용하는
커널 버전 3.0.8에서만 문제가 발생함.

로그 메시지
ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
CRZ:s5p_usb_phy_init:type=1, host_phy_initialized=0
CRZ:s5p_usb_phy_init:readl(S5P_USB_PHY_CONTROL)=0x3
s5p-ohci s5p-ohci: s5p OHCI
s5p-ohci s5p-ohci: new USB bus registered, assigned bus number 2
s5p-ohci s5p-ohci: irq 87, io mem 0xec300000
s5p-ohci s5p-ohci: init err (00000000 0000)
ohci_hcd: can't start s5p-ohci
s5p-ohci s5p-ohci: startup error -75
s5p-ohci s5p-ohci: USB bus 2 deregistered
s5p-ohci s5p-ohci: Failed to add USB HCD
s5p-ohci: probe of s5p-ohci failed with error -75
Initializing USB Mass Storage driver...


원인은
int s5p_usb_phy_init(struct platform_device *pdev, int type) 함수에서
아래 코드에서 S5P_USB_PHY_CONTROL 레지스터 값이 3이라서 PHY를 다시 리셋하지 않아서 발생함.
             if (type == S5P_USB_PHY_HOST) {
                           MANGO_DBG("readl(S5P_USB_PHY_CONTROL)=0x%x\n",readl(S5P_USB_PHY_CONTROL));
                           if (readl(S5P_USB_PHY_CONTROL) & (0x1<<1))
                   return -1;


수정 조치

int s5p_usb_phy_init(struct platform_device *pdev, int type)
함수 아래 코드 적용

#if 1//crazyboys 2014140315 reboot usb host error patch
           if (type == S5P_USB_PHY_HOST) {

                      __raw_writel(__raw_readl(S3C_USBOTG_PHYPWR) | (0x1<<7)|(0x1<<6),
                                 S3C_USBOTG_PHYPWR);
                  __raw_writel(__raw_readl(S5P_USB_PHY_CONTROL) & ~(1<<1),
                                   S5P_USB_PHY_CONTROL);
           }
#endif
             if (type == S5P_USB_PHY_HOST) {
                           MANGO_DBG("readl(S5P_USB_PHY_CONTROL)=0x%x\n",readl(S5P_USB_PHY_CONTROL));
                           if (readl(S5P_USB_PHY_CONTROL) & (0x1<<1))
                   return -1;


2014년 3월 12일 수요일

Mango24R2에서 ADC 측정하기




Mango24R2에서 ADC 측정하기|⊙ 기타 자료
전체공개2014.03.12 20:54|삭제



Mango24R2_Nand_write



uboot write

먼저 라이팅된 sd카드를 보드에 연결합니다.
부팅 스위치 3번 on(SD부팅)
보드 리셋 누르고
nand scrub; 입력
y 입력
nand erase 0 40000

tftp를 이용하기 위해선 리눅스에 tftp를 설치해야한다. 디렉토리 위치를 /home/tftp 로 설정했다.
보드에 인터넷 연결

setenv ipaddr "12.92.163.33"
setenv serverip "12.92.163.30"
setenv gatewayip "12.92.163.255"
saveenv

tftp c0000000 /image/u-boot.bin
nand write c0000000 0 40000
TFTP로 u-boot를 받기위해서 환경설정해줍니다.

kernel write

Nand mod로 바꿔서 부팅 (3,5,6 ON)
setenv ipaddr "12.92.163.33"
setenv serverip "12.92.163.30"
setenv gatewayip "12.92.163.255"
saveenv
nand erase 80000 400000
tftp c0000000 /image/zImage
nand write c0000000 80000 400000
nand erase 500000 9500000
nand에서 부팅 후 환경설정 그리고 커널이미지를 다운로드 후 라이트 합니다.


rootfs write

ubifs사용 하여 rootfs를 라이팅 합니다.

여기서 rootfs도 tftp를 이용해서 라이팅하려 했으나
Mango24r2의 DRAB이 64MB이다.
yaffs2의 용량을 확인하니 64MB를 훌쩍 넘어서
UBIFS를 사용했다.

mango24r2에 삽입되어있던 sd카드를 빼서
sd카드를 리눅스 pc에 삽입합니다.
fdisk -l 을 입력합니다.
개인에 맞게 sdc1 sdc2 가 보입니다.
sdc1은 이전에 sdwrie할때 사용한 것으로 sdc2를 사용합니다.

mkdir /home/usb
chmod 755 /home/usb
마운트할 곳을 만들고 권한 설정해줍니다.
mount /dev/sdc2 /home/usb
마운트 해주고
cp rootfs.tar /home/usb/root
sd카드를 빼서 보드에 삽입 후 sd부트로
바꿔서 부팅 (3 ON)

mango2450 login : root
Password : root
둘다 root 입력

flash_erase /dev/mtd2 0 0
ubiattach /dev/ubi_ctrl -m 2
ubimkvol /dev/ubi0 -N rootfs -m
mkdir /mnt/nand
mount -t ubifs ubi0:rootfs /mnt/nand
cd /root    
tar xvf rootfs.tar -C /mnt/nand
cp app-adc /mnt/nand/root/
umount /mnt/nand
위에서 "cp app-adc /mnt/nand/root "adc 앱 copy 입니다.

nand라이팅이 끝났습니다.
3,5,6, on (nand)
nand환경
아래는 제 환경값입니다. 부팅 후 엔터 누른 뒤 print누르면 나옵니다.
bootcmd=nand read 0xC0008000 0x80000 0x480000;bootm 0xC0008000
bootargs=noinitrd console=ttySAC1,115200 rw ubi.mtd=2 root=ubi0:rootfs rootfstype=ubifs rootwait ethaddr=00:40:5c:26:0a:5b

setenv bootcmd 'nand read 0xC0008000 0x80000 0x480000;bootm 0xC0008000'
setenv bootargs 'noinitrd console ttySAC1,115200 rw ubi.mtd=2 root=ubi0:rootfs rootfstype=ubifs rootwait ethaddr=00:40:5c:26:0a:5b'


ADC 측정

adc를 측정하는 어플입니다.




아래 보면 첫번째 줄에 빨강 네모상자부분이 변한 것을 볼 수 있습니다.
그 이유는
CM2450에서는 위와 같이 5개의 Analog input이 5개 있습니다.
CX-C24R2 보드에서는 아래와 같이 23, 24번이 CON20에 연결되어 있습니다.

위에서 보면 1, 2번이 3.3V 로 연결 되어있습니다.
보드를 보면 CON20이 있습니다.
23과 24번이 AIN0, AIN1입니다.
위에 CON20회로도를 보면 1,2 는 3.3V 입니다.
3,3V 를 23에 연결하면
위와 같이 변경되는 것을 확인 할 수 있습니다.
24번에 연결하면 아래와 같이 됩니다.
첫번째 줄이 AIN0이고 두번째 줄이 AIN2입니다.

CON 19 에 그라운드단을 연결했습니다.
CON 20과 19는 위아래가 반대입니다.
실크를 잘보셔야합니다.
 <<이렇게 삼각형 보시 있는 것이 1번입니다.


그라운드를 25번에 연결했습니다.



측정방법은 매우 간단하게 하였습니다만
여기다 가변 저항을 달아도 되고 여러가지 analog신호를 센서로 받아서 사용 가능 합니다~



그외 에러

1. yaffs2 make하는 방법과 TFTP를 이용한 라이팅중 끊김.

mkyaffs2image 이용
./mkyaffs2image rootfs image.yaffs2

에서 rootfs 는 사용할 rootfs이고
image.yaffs2는 자신이 만들 yaffs2명이다.
한참을 tftp로 라이팅 하려했는데 자꾸 에러나서 알고보니 DRAM초과이다.
TFTP는 연결이 잘 될 경우 : #####
연결이 안 될 경우 : TTTTT

2. TFTP ERROR
TFTP error 'Access violation'
->권할 설정 문제이다.
chmod 755 '파일명' 을 이용해서 권할설정한다.


3. tar xvf rootfs.tar -C /mnt/nand
invalid tar magic 하고 에러가나면 파일 압축시 z 옵션을 준것입니다.
보드에서 확인해보면 보드상에 z옵션이 없습니다.
압축파일을 풀고 z옵션을 안 준 상태에서 압축한 후 다시 진행합니다.