lpc 2378 development board

Download LPC 2378 Development Board

If you can't read please download the document

Upload: dinesh-kumar

Post on 11-Jan-2016

51 views

Category:

Documents


3 download

DESCRIPTION

LPC 2378 manual for usage

TRANSCRIPT

  • ViARM-2378 DEVELOPMENT BOARD

    Vi Microsystems Pvt. Ltd., [ 103 ]

    9. Give Project Name Eg: LPC2378 and click SAVE Button.

    ADDING THE FILES TO THE PROJECT

    10. Right Click the project name option for select a C file in workspace window. Select Add >Add DAC.C Menu.

  • ViARM-2378 DEVELOPMENT BOARD

    Vi Microsystems Pvt. Ltd., [ 104 ]

    11. Right Click the Project name option in workspace window for adding a header files. Choose Add >Add Files menu. Before that the header files are store the path at where your C files is located.

    12. Select LPC2378>Rebuild all menu, for checking any error in your C file.

  • ViARM-2378 DEVELOPMENT BOARD

    Vi Microsystems Pvt. Ltd., [ 105 ]

    13. If your C file has no error the following window will be displayed.

    14. Select LPC2378 >Options menu

  • ViARM-2378 DEVELOPMENT BOARD

    Vi Microsystems Pvt. Ltd., [ 106 ]

    15. Select Linker Category. Enable output option file and give File name.hex Eg: LPC2378.hex.

    16. Enable Other Menu and select Intelextented option.

  • ViARM-2378 DEVELOPMENT BOARD

    Vi Microsystems Pvt. Ltd., [ 107 ]

    17. Select Config Menu. Enable Overide default option and click Browse button for choosing a LPC2378-Flash-XCL file.

    Path: C:\Program Files\IAR Systems\Embedded Workbench 4.0 Kick Start \Arm\Examples\NxP\LPC23XX\IAR-LPC-2378\SK\simple\common\XCL\ LPC2378 FlashXCL and click OK button.

  • ViARM-2378 DEVELOPMENT BOARD

    Vi Microsystems Pvt. Ltd., [ 108 ]

    BUILTING THE PROJECT

    18. Select LPC2378 >Rebuild All Menu, for Builting a project.

    19. If your project has no error Builting completed and Hex file generated.

    This Hex file will be downloaded to the VIARM-2378 controller by Flash Magic Software

  • ViARM-2378 DEVELOPMENT BOARD

    Vi Microsystems Pvt. Ltd., [ 109 ]

    FLASH ISP UTILITY

    In- System Programming (ISP) : In System Programming is programming or Reprogramming the on-chip flash memory, using the boot-loader software and a serial port.

    The LPC2378 Micro controller provides on-chip boot-loader software that allows programming of the internal flash memory over the serial channel. Pulling port pin P2.10 low during reset of the Microcontroller activates the boot-loader. ViARM-2378 Board contains circuits for Controlling Pin P2.10 over Toggle switch.

    ViARM-2378 Development Board has an Reset switch and Mode Selection Switch (Programming /Execution Switch). Through this one, can change either Programming mode or Execution Mode.

    Philips provides a utility program for In-System Flash (ISP) programming called Flash Magic Software.

    For now, it is assumed that the program to be downloaded is already developed and there exist a HEX-file to be downloaded. This HEX-file represents the binary image of the application program.

  • ViARM-2378 DEVELOPMENT BOARD

    Vi Microsystems Pvt. Ltd., [ 110 ]

    FLASH MAGIC

    1. Run FLASH MAGIC Application, the following window will appear.

    2. In Step-1 Section, Select communication port Eg:COM1

  • ViARM-2378 DEVELOPMENT BOARD

    Vi Microsystems Pvt. Ltd., [ 111 ]

    3. Select Baud Rate 19200

    4. Select Micro-controller Device LPC2378.

  • ViARM-2378 DEVELOPMENT BOARD

    Vi Microsystems Pvt. Ltd., [ 112 ]

    5. Select Oscillator frequency 12Mhz.

    5. Enable Erase Blocks for Erasing the memory locations of micro-

    controller, before programming in Step-2 Section.

  • ViARM-2378 DEVELOPMENT BOARD

    Vi Microsystems Pvt. Ltd., [ 113 ]

    7. Click the Browse Button, for Select the HEX file to be downloaded in Step-3 Section.

    8. Enable Verify After Programming Option in Step-4 Section, for

    verifying datas in memory locations after programming success

  • ViARM-2378 DEVELOPMENT BOARD

    Vi Microsystems Pvt. Ltd., [ 114 ]

    9. Select Start Button in Step-5, for hex file downloaded to the LPC 2378 Controller.

    10. If given HEX file is properly downloaded, the window as shown in below.

    11. The downloaded Program will start after changing the Mode of

    Execution (Change the Toggle Switch to Execution Mode and Press Reset Key).

  • ViARM-2378 DEVELOPMENT BOARD

    Vi Microsystems Pvt. Ltd., [ 115 ]

    CHAPTER 4 ABOUT RTOS

    REAL TIME SYSTEMS

    A RTOS is the readymade operating system like a WINDOWS, XP for your Pentium computer applications, used for real time embedded applications. Like any OS it consists of a kernel, board level routines & other utilities (device drivers) to support the applications. In RTOS time constraints is very critical. The embedded operating system need only less memory & also possible for the developer to write his/her own operating system kernel. C/OS-II Memory is allocated and de-allocated from a pool with deterministic, often constant, timing. C/OS-II, The Real time kernel is a completely portable, ROMable, scalable, preemptive, real-time, multi tasking kernel for microprocessors and micro controllers. C/OS-II can manage up to 64 application tasks and provides the following services:

    1. Semaphores 2. Event Flags 3. Mutual Exclusion Semaphores (to reduce priority inversions) 4. Message Mailboxes 5. Message Queues 6. Task Management (Create, Delete, Change Priority, Suspend/Resume

    etc.) 7. Fixed Sized Memory Block management 8. Time Management

    TASK MANAGEMENT It services that create a task, delete a task, check the size of tasks stack, changes a task priority, suspend and resume a task. OS FUNCTIONS

    OSTaskCreate () OSinit () OSStart () OS_STK OSTaskNameSet ()

  • ViARM-2378 DEVELOPMENT BOARD

    Vi Microsystems Pvt. Ltd., [ 116 ]

    1. OSTaskCreate () OSTaskCreate creates a task so it can managed by C/OS-II. Tasks can be created either prior to the start of multitasking or by a running a task. Syntax OSTaskCreate(void(*task)(void *pd),void *pdata,OS_STK *ptos, INT8U prio) Eg1: OSTaskCreate (Task1, 0, &Task1stk [99], 1); 2. OS_STK Each task requires its own stack; however C/OS-II allows each task to have a different stack size, which allows you to reduce the amount of RAM needed in your applications. Eg2: OS_STK Task1stk [100];

    OS_STK Task2stk [100]; OS_STK Task3stk [100]; OS_STK Task4stk [300];

    3. OSInit () OSInit () initializes C/OS-II and must be called prior to calling OSStart (), which actually starts multitasking. Eg3: Void main () { OSInit (); //Initialize C/OS-II OSTaskCreate (Task1, 0, &Task1stk [99], 1); . . OSStart (); //start multitasking }

  • ViARM-2378 DEVELOPMENT BOARD

    Vi Microsystems Pvt. Ltd., [ 117 ]

    4. OSStart () OSStart () starts multitasking under C/OS-II. This function is typically called from your startup code but after you call OSInit (). Refer Eg3. 5. OSTaskNameSet () OSTaskNameSet () allows you to assign name to a task. This function is typically used by a debugger to allow associating a name to a task. Syntax: Void OSTaskNameSet (INT8U prio, INT8U *pname, INT8U *err); Eg4: OSTaskNameSet (1,"T1", &err); TIME MANAGEMET OS FUNCTIONS:

    OSTimeDly () OSTimeDlyHMSM () OSTimeTick ()

    1. OSTimeDly () OSTimeDly () allows a task to delay itself for an integral number of clock ticks. Rescheduling always occurs when the number of clock ticks is greater than zero. Valid delays range from one to 65,535 ticks. Syntax: Void OSTimeDly (INT16U TICKS); Eg4: Void Task1(void *pdata) { While (1) { FIO4SET0 = 0x04; OSTimeDly (30); //delay task for 30 ticks } }

  • ViARM-2378 DEVELOPMENT BOARD

    Vi Microsystems Pvt. Ltd., [ 118 ]

    2. OSTimeDlyHMSM () OSTimeDlyHMSM () allows a task to delay itself for a user specified amount of time specified in hours, minutes, seconds, and milliseconds. This format is more convenient and natural than ticks. Rescheduling always occurs when at least one parameter is zero. Syntax: OSTimeDlyHMSM (INT8U hours, INT8U minutes, INT8U seconds, INT8U milliseconds); Eg5: Void task1() { GLCD_Printf("NXP LPC2378",&Font_7x8); OSTimeDlyHMSM(0,0,5,0); } 3. OSTimeTick () OSTimeTick () processes a clock tick. Syntax: Void OSTimeTick (void) Eg6: Static void Tmr_TickInit (void) { CPU_INT32U pclk_freq; CPU_INT32U rld_cnts; VICIntSelect &= ~(1

  • ViARM-2378 DEVELOPMENT BOARD

    Vi Microsystems Pvt. Ltd., [ 119 ]

    rld_cnts = pclk_freq / OS_TICKS_PER_SEC; /* Calculate the # of counts necessary for the OS ticker */

    T0TCR = (1

  • ViARM-2378 DEVELOPMENT BOARD

    Vi Microsystems Pvt. Ltd., [ 120 ]

    void Task1(void *pdata) { GLCD_ClearDisplay(); GLCD_LocateCursor(25,2); GLCD_Printf("uC/OS - II",&Font_7x8); GLCD_LocateCursor(5,3); GLCD_Printf("VI Microsystems",&Font_7x8); GLCD_LocateCursor(20,4); GLCD_Printf("NXP LPC2378",&Font_7x8); OSTimeDlyHMSM(0,0,5,0); GLCD_ClearDisplay(); uCdetails(); for(;;) { value = (CPU_INT32U)OSCPUUsage; GLCD_LocateCursor(70,3); GLCD_DisplayValue(value,3,0); value = (CPU_INT32U)OSTime; GLCD_LocateCursor(70,5); GLCD_DisplayValue(value,8,0); value = (CPU_INT32U)OSCtxSwCtr; GLCD_LocateCursor(70,6); GLCD_DisplayValue(value,8,0); OSTimeDly(20); } } void Task2(void *pdata) { while(1) { FIO4SET0 = 0x04; OSTimeDly(30); FIO4CLR0 = 0x04; OSTimeDly(20); } }

  • ViARM-2378 DEVELOPMENT BOARD

    Vi Microsystems Pvt. Ltd., [ 121 ]

    void Task3(void *pdata) { for(;;) { FIO4SET0 = 0x10; OSTimeDly(50); FIO4CLR0 = 0x10; OSTimeDly(50); } } void Task4(void *pdata) { for(;;) { FIO4SET0 = 0x40; OSTimeDly(70); FIO4CLR0 = 0x40; OSTimeDly(70); } } void main() { CPU_INT08U err; BSP_IntDisAll(); BSP_Init(); GLCD_Init(); GLCD_ClearDisplay(); OSInit(); OSTaskCreate(Task1, 0, &Task1stk[99], 1); OSTaskCreate(Task2, 0, &Task2stk[99], 2); OSTaskCreate(Task3, 0, &Task3stk[99], 3); OSTaskCreate(Task4, 0, &Task4stk[299], 4); OSTaskNameSet(1,"T1", &err); OSTaskNameSet(2,"T2", &err); OSTaskNameSet(3,"T3", &err); OSTaskNameSet(4,"T4", &err); OSStart(); }

  • ViARM-2378 DEVELOPMENT BOARD

    Vi Microsystems Pvt. Ltd., [ 122 ]

    void uCdetails() { GLCD_LocateCursor(20,0); GLCD_Printf("OS DETAILS",&Font_7x8); GLCD_LocateCursor(0,1); GLCD_Printf("Version :V",&Font_7x8); value = (CPU_INT32U)OSVersion(); GLCD_LocateCursor(80,1); GLCD_DisplayValue(value,1,2); GLCD_LocateCursor(0,2); GLCD_Printf("TickRate:",&Font_7x8); value = (CPU_INT32U)OS_TICKS_PER_SEC; GLCD_LocateCursor(70,2); GLCD_DisplayValue(value,3,0); GLCD_LocateCursor(88,2); GLCD_Printf("/SEC",&Font_3x6); GLCD_LocateCursor(0,3); GLCD_Printf("CPU Used:",&Font_7x8); GLCD_LocateCursor(88,3); GLCD_Printf("%",&Font_7x8); GLCD_LocateCursor(0,4); GLCD_Printf("CPU Freq:",&Font_7x8); value = (CPU_INT32U)BSP_CPU_ClkFreq() / 1000000L; GLCD_LocateCursor(70,4); GLCD_DisplayValue(value,2,0); GLCD_LocateCursor(84,4); GLCD_Printf("MHz",&Font_7x8); GLCD_LocateCursor(0,5); GLCD_Printf("OS Ticks:",&Font_7x8); GLCD_LocateCursor(0,6); GLCD_Printf("Ctx Swt :",&Font_7x8); }

  • ViARM-2378 DEVELOPMENT BOARD

    Vi Microsystems Pvt. Ltd., [ 123 ]

    PROCDEURE 1. To write a multi tasking program using C/OS-II real time kernel. 2. Include following C/OS-II header files. 3. That files are taken from below folders are

    APP OS_CFG.H MAIN.C

    BSP BSP.C BSP.H

    PORT OS_CPU.H OS_CPU_A.ASM OS_CPU_C.C OS_DBG.C OS_DCC.C

    UC_CPU CPU.H CPU_A.S CPU_DEF.H

    UCOS-II OS_CORE.C OS_FLAG.C OS_MBOX.C OS_MEM.C OS_MUTEX.C OS_Q.C OS_SEM.C OS_TASK.C OS_TIME.C OS_TMR.C UCOSII.H

    4. Compile your project. And executing the program.

  • ViARM-2378 DEVELOPMENT BOARD

    Vi Microsystems Pvt. Ltd., [ 124 ]

    2. PROGRAM FOR LEDS USING C/OS-II #include OS_STK Task1stk[100]; OS_STK Task2stk[100]; OS_STK Task3stk[100]; void Task1(void *pdata); void Task2(void *pdata); void Task3(void *pdata); void Task1(void *pdata) { BSP_Init(); FIO4DIR0=0xff; for(;;) { FIO4SET0 = 0x01; OSTimeDly(10); FIO4CLR0 = 0x01; OSTimeDly(10); } } void Task2(void *pdata) { for(;;) { FIO4SET0 = 0x04; OSTimeDly(20); FIO4CLR0 = 0x04; OSTimeDly(20); } } void Task3(void *pdata) { for(;;) { FIO4SET0 = 0x10; OSTimeDly(30); FIO4CLR0 = 0x10; OSTimeDly(30);

  • ViARM-2378 DEVELOPMENT BOARD

    Vi Microsystems Pvt. Ltd., [ 125 ]

    } } void main() { BSP_IntDisAll(); OSInit(); OSTaskCreate(Task1, 0, &Task1stk[99], 1); OSTaskCreate(Task2, 0, &Task2stk[99], 2); OSTaskCreate(Task3, 0, &Task3stk[99], 3); OSStart(); }

    NOTE

    The Procedure as same as program 1

  • ViARM-2378 DEVELOPMENT BOARD

    Vi Microsystems Pvt. Ltd., [ 126 ]

    CHAPTER 5 SOFTWARE EXAMPLE

    Example 1 Program For 8 - Bit LED Interface

    #include #include "irq.h" #include "config.h" void delay() { unsigned int i,j; for(i=0;i

  • ViARM-2378 DEVELOPMENT BOARD

    Vi Microsystems Pvt. Ltd., [ 127 ]

    Example 2 Program For 8-Way DIP Switch Interface #include #include "irq.h" #include "config.h" unsigned int k; unsigned int dat[] = {0x00,0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; void delay() { unsigned int i,j; for(i=0;i

  • ViARM-2378 DEVELOPMENT BOARD

    Vi Microsystems Pvt. Ltd., [ 128 ]

    void send_serial_data(unsigned char serial) { while((U0LSR & 0x20)==0); U0THR = serial; } int main (void) { unsigned int Fdiv; TargetResetInit(); PINSEL0 = 0x00000050; /* RxD0 and TxD0 */ U0LCR = 0x83; /* 8bits, no Parity, 1 Stop bit */ Fdiv = ( Fpclk / 16 ) / 19200 ; /*baud rate */ U0DLM = Fdiv / 256; U0DLL = Fdiv % 256; U0LCR = 0x03; /* DLAB = 0 */ U0FCR = 0x07; /* Enable and reset TX and RX FIFO. */ FIO4DIR = 0X00000FFF; FIO3DIR = 0X008000FF; while(1) { FIO4SET = 0X00000e00; /*First Row*/ Read_Key = FIO4PIN; Read_Key = (Read_Key & 0xf000) >> 12 ; if((Read_Key==0x07)) { send_serial_data('0'); FIO3PIN = 0X00000000; } if((Read_Key==0x0b)) { send_serial_data('1'); FIO3PIN = 0X00000001; } if( (Read_Key==0x0d)) { send_serial_data('2'); FIO3PIN = 0X00000002; }

  • ViARM-2378 DEVELOPMENT BOARD

    Vi Microsystems Pvt. Ltd., [ 129 ]

    if((Read_Key==0x0e)) { send_serial_data('3'); FIO3PIN = 0X00000003; } FIO4CLR = 0X00000e00; delay(); FIO4SET = 0X00000d00; /*Second Row*/ Read_Key = FIO4PIN; Read_Key = (Read_Key & 0xf000) >> 12 ; if((Read_Key==0x07)) { send_serial_data('4'); FIO3PIN = 0X00000004; } if((Read_Key==0x0b)) { send_serial_data('5'); FIO3PIN = 0X00000005; } if( (Read_Key==0x0d)) { send_serial_data('6'); FIO3PIN = 0X00000006; } if( (Read_Key==0x0e)) { send_serial_data('7'); FIO3PIN = 0X00000007; } FIO4CLR = 0X00000d00; delay(); FIO4SET = 0X00000b00; /*Third Row*/ Read_Key = FIO4PIN; Read_Key = (Read_Key & 0xf000) >> 12 ; if((Read_Key==0x07)) { send_serial_data('8'); FIO3PIN = 0X00000008; }

  • ViARM-2378 DEVELOPMENT BOARD

    Vi Microsystems Pvt. Ltd., [ 130 ]

    if((Read_Key==0x0b)) { send_serial_data('9'); FIO3PIN = 0X00000009; } if( (Read_Key==0x0d)) { send_serial_data('a'); FIO3PIN = 0X0000000a; } if( (Read_Key==0x0e)) { send_serial_data('b'); FIO3PIN = 0X0000000b; } FIO4CLR = 0X00000b00; delay(); FIO4SET = 0X00000700; /*Fourth Row*/ Read_Key = FIO4PIN; Read_Key = (Read_Key & 0xf000) >> 12 ; if((Read_Key==0x07)) { send_serial_data('c'); FIO3PIN = 0X0000000c; } if((Read_Key==0x0b)) { send_serial_data('d'); FIO3PIN = 0X0000000d; } if((Read_Key==0x0d)) { send_serial_data('e'); FIO3PIN = 0X0000000e; } if( (Read_Key==0x0e)) { send_serial_data('f'); FIO3PIN = 0X0000000f; } FIO4CLR = 0X00000700; delay(); } return 0; }

  • ViARM-2378 DEVELOPMENT BOARD

    Vi Microsystems Pvt. Ltd., [ 131 ]

    Example 4 Program For Serial Interface

    #include #include "type.h" #include "target.h" #include "irq.h" #include "uart.h" #include unsigned int ADC_VALUE=0; #define ADC_CLK 1000000 /* set to 1Mhz */ #include "config.h" void PLL_Init (void) { unsigned int m; unsigned int n; unsigned int clk_div; unsigned int clk_div_usb; m = 24; /PLL Multiplier = 20, MSEL bits = 12 - 1=11 */ n = 1; /* PLL Divider = 1, NSEL bits = 1 - 1 = 0 */ clk_div = 4; /*Configure the ARM Core clock divCCLKSEL=

    6 -1 */ clk_div_usb = /* Configure the USB clock divider to 6, SBSEL

    = 6 - 1 */ if ((PLLSTAT & 0x02000000) > 0) { PLLCON &= ~0x02; /* Disconnect the PLL */ PLLFEED = 0xAA; /* PLL register update sequence, 0xAA, 0x55 */ PLLFEED = 0x55; } PLLCON &= ~0x01; /* Disable the PLL */ PLLFEED = 0xAA; /* PLL register update sequence, 0xAA, 0x55 */ PLLFEED = 0x55; SCS &= ~0x10; /* OSCRANGE = 0, Main OSC is between 1 and

    20 Mhz */ SCS |= 0x20; /* OSCEN = 1, Enable the main oscillator */ while ((SCS & 0x40) == 0) CLKSRCSEL = 0x01; /* Select main OSC, 12MHz, as the PLL clock

    source */

  • ViARM-2378 DEVELOPMENT BOARD

    Vi Microsystems Pvt. Ltd., [ 132 ]

    PLLCFG = (m

  • ViARM-2378 DEVELOPMENT BOARD

    Vi Microsystems Pvt. Ltd., [ 133 ]

    send_serial_data(t10+0x30); send_serial_data(t1+0x30); send_serial_data(0x0d); send_serial_data(0x0a); } int putchar(int ch) { if (ch == '\n') { while (!(U0LSR & 0x20)); U0THR = 0x0d; } while (!(U0LSR & 0x20)); return (U0THR = ch); } void main() { unsigned long int val; unsigned int Fdiv; PLL_Init(); PCONP |= (1

  • ViARM-2378 DEVELOPMENT BOARD

    Vi Microsystems Pvt. Ltd., [ 134 ]

    Example 5 Program for SPDT Relay Interface

    #include #include "irq.h" #include "config.h" void delay() { unsigned int i,j; for(i=0;i

  • ViARM-2378 DEVELOPMENT BOARD

    Vi Microsystems Pvt. Ltd., [ 135 ]

    IO0DIR = 0XFFFFFFFF; while(1) { for(k=0;k

  • ViARM-2378 DEVELOPMENT BOARD

    Vi Microsystems Pvt. Ltd., [ 136 ]

    Example 7 Program for Joystick Interface

    #include #include "irq.h" #include "config.h" unsigned int k; unsigned int i; int main (void) { unsigned long int joy_stick; TargetResetInit(); FIO3DIR = 0X000000FF; //LED0. IO1DIR = 0X0000FFFF; FIO4PIN = 0X00000000; while(1) { joy_stick = IO1PIN ; joy_stick = (joy_stick & 0XFFFF0000) >> 16 ; if((joy_stick & 0XFF) ==0xfb) FIO3PIN = 0XF0; if((joy_stick & 0XFF) ==0xf7) FIO3PIN = 0X0F; if((joy_stick & 0XFF) ==0xBF) FIO3PIN = 0X44; joy_stick = IO1PIN ; joy_stick = joy_stick >> 20 ; if((joy_stick & 0xff)==0x7F) FIO3PIN = 0X22; if((joy_stick & 0x20) ==0x0) FIO3PIN = 0XFF; } return 0; }

  • ViARM-2378 DEVELOPMENT BOARD

    Vi Microsystems Pvt. Ltd., [ 137 ]

    Example 8 Program for ADC Interface

    #include #include "irq.h" #include "config.h" unsigned int ADC_VALUE=0; #define ADC_CLK 1000000 set to 1Mhz */ void send_serial_data(unsigned char serial) { while((U0LSR & 0x20)==0); U0THR = serial; } void adc_serial_tx(unsigned int ch) { unsigned int t1000,t100,t10,t1,temp; t1000 = ch / 1000; temp = ch % 1000; t100 = temp / 100; temp = temp % 100; t10 = temp / 10; t1 = temp % 10; send_serial_data(t1000+0x30); send_serial_data(t100 +0x30); send_serial_data(t10+0x30); send_serial_data(t1+0x30); send_serial_data(0x0d); send_serial_data(0x0a); } void main() { unsigned long int val; unsigned int Fdiv; TargetResetInit(); PCONP |= (1

  • ViARM-2378 DEVELOPMENT BOARD

    Vi Microsystems Pvt. Ltd., [ 138 ]

    U0LCR = 0x03; // DLAB = 0 U0FCR = 0x07; // Enable and reset TX and RX FIFO. AD0CR = ( 0x01

  • ViARM-2378 DEVELOPMENT BOARD

    Vi Microsystems Pvt. Ltd., [ 139 ]

    Example 10 Program Accelerometer Interface #include #include "irq.h" #include "config.h" unsigned int ADC_VALUE=0; #define ADC_CLK 1000000 /* set to 1Mhz */ unsigned long int val; unsigned long int x,y,z; void send_serial_data(unsigned char serial) { while((U0LSR & 0x20)==0); U0THR = serial; } void adc_serial_tx(unsigned int ch) { unsigned int t1000,t100,t10,t1,temp; t1000 = ch / 1000; temp = ch % 1000; t100 = temp / 100; temp = temp % 100; t10 = temp / 10; t1 = temp % 10; send_serial_data(t1000+0x30); send_serial_data(t100 +0x30); send_serial_data(t10+0x30); send_serial_data(t1+0x30); } unsigned long adc_0() { AD0CR = ( 0x01

  • ViARM-2378 DEVELOPMENT BOARD

    Vi Microsystems Pvt. Ltd., [ 140 ]

    ( 0

  • ViARM-2378 DEVELOPMENT BOARD

    Vi Microsystems Pvt. Ltd., [ 141 ]

    void main() { unsigned int Fdiv; TargetResetInit(); PCONP |= (1

  • ViARM-2378 DEVELOPMENT BOARD

    Vi Microsystems Pvt. Ltd., [ 142 ]

    send_serial_data('Z'); send_serial_data(':'); send_serial_data(' '); adc_serial_tx(z); send_serial_data(' '); send_serial_data(' '); send_serial_data(0x0d); send_serial_data(0x0a); } } Example 11 Program Colour LCD Interface #include #include #include #include #include #include void delay() { for(int Dly = 0xFFFF;Dly;Dly--) { } } char color8(short color){ char c; char r,g,b; r=(color & 0x0f00)>>8; g=(color & 0x00f0)>>4; b=(color & 0x000f); c=((r&0x0e)

  • ViARM-2378 DEVELOPMENT BOARD

    Vi Microsystems Pvt. Ltd., [ 143 ]

    unsigned int temp; unsigned int color; for (idx = 512; idx < 1024; idx++) { x = rand() % 120; y = rand() % 120; r = rand() % 15; g = rand() % 15; b = rand() % 15; temp = idx / 64; if (r < temp) { r = temp; } if (g < temp) { g = temp; } if (b < temp) { b = temp; } color = (r

  • ViARM-2378 DEVELOPMENT BOARD

    Vi Microsystems Pvt. Ltd., [ 144 ]

    c2=buffer[i+height*j+height]; GLCD_Send(DATA,(c1 & 0x0ff0)>>4); GLCD_Send(DATA,((c1 & 0x000f)8)); GLCD_Send(DATA,(c2 & 0x00ff)); } } } void dly2(int a) { long int i; long int j; j=10000*a; for (i=0;i

  • ViARM-2378 DEVELOPMENT BOARD

    Vi Microsystems Pvt. Ltd., [ 145 ]

    APPENDIX A

    CIRCUIT DIAGRAM

  • ViARM-2378 DEVELOPMENT BOARD

    Vi Microsystems Pvt. Ltd., [ 146 ]

    (4PIN)

    NC3

    GND4

    OUT5

    VCC6

    X1

    12Mhz

    CLK+3.3V

    (2PIN)

    R74 1K

    R73 1K

    MOSI0

    MISO0

    MOSI0

    CMOS VCC

    +3.3V

    +3.3VR132 1K

    R1311K

    RSTSW-

    BUT1

    C9118pF

    BUT2

    SW22BUT2

    R162

    100E

    R1611K

    C9218pF

    +3.3V

    R1651K

    SW21

    BUT1

    R166

    100E

    +3.3V

    DC20

    0.1MF

    DC18

    0.1MF

    MCICMD

    MCICLK

    R791K

    R1341K

    MCIDAT2 MCIDAT3

    +3.3V

    CPU_CLKIN

    RXD0TXD0

    E_RXD1

    E_TX_EN

    +3.3V

    WP

    VSSP103

    P1.15/ENET_REF_CLKP126

    P0.22/RTS1/MCIDAT0/TD1P80

    P4.28/MAT2.0/TXD3P118

    P0.3/RXD0P142

    P0.4/I2SRX_CLK/RD2/CAP2.0P116

    VSSP65

    VDD_DCDC_3V3P60

    P3.7/D7P19

    P3.23/CAP0.0/PCAP1.0P45

    P3.24/CAP0.1/PWM1.1P40

    P4.10/A10P94

    P3.25/MAT0.0/PWM1.2P39P0.23/AD0.0/I2SRX_CLK/CAP3.0

    P13

    VBATP27

    P0.24/AD0.1/I2SRX_WS/CAP3.1P11

    P0.25/AD0.2/I2SRX_SDA/TXD3P10

    P0.26/AD0.3/AOUT/RXD3P8

    VSSP79

    P4.9/A9P91

    P0.27/SDA0P35

    P0.28/SCL0P34

    P0.29/USB_D+1P42

    P0.30/USB_D-1P43

    P3.26/MAT0.1/PWM1.3P38

    P0.31/USB_D+2P36

    P4.0/A0P52

    P4.1/A1P55

    P4.8/A8P88

    P4.2/A2P58

    VREFP17

    TRSTP5TMSP4TDIP3TD0P1

    XTAL2P33

    P4.3/A3P68

    P4.4/A4P72

    P4.7/A7P84

    DBGENP6

    USB_D-2P37

    VDD_3V3P41 RTCX1

    P23

    P1.31/SCK1/AD0.5P28

    P1.30/VBUS/AD0.4P30

    P2.0/PWM1.1/TXD1/TRACECLKP107

    ALARMP26

    P1.29/PCAP1.1/MAT0.1P64

    P1.28/PCAP1.0/MAT0.0P63

    P1.27/CAP0.1P61

    P1.26/PWM1.6/CAP0.0P57

    P1.25/MAT1.1P56

    P2.1/PWM1.2/RXD1/PIPESTST0P106

    P2.2/PWM1.3/CTS1/PIPESTST1P105

    RTCX2P25

    P4.25/WEP124

    P1.24/PWM1.5/MOSI0P54 P1.23/PWM1.4/MISO0P53

    P1.22/MAT1.0P51

    VSSP22

    P2.3/PWM1.4/DCD1/PIPESTST2P100

    P2.4/PWM1.5/DSR1/TRACESYNCP99

    P4.24/OEP127

    P2.5/PWM1.6/DTR1/TRACEPKT0P97

    P1.21/PWM1.3/SSEL0P50 P1.20/PWM1.2/SCK0P49

    P1.19/CAP1.1P47 PI.18/USB_UP_LED1/PWM1.1/CAP1.0P46

    P1.17/ENET_MDIOP123

    VDD_3V3P102

    P2.6/PCAP1.0/RI1/TRACEPKT1P96

    P2.7/RD2/RTS1/TRACEPKT2P95

    P4.15/A15P120

    P1.16/ENET_MDCP125

    P1.14/ENET_RX_ERP128 P1.10/ENET_RXD1P129

    P2.8/TD2/TXD2/TRACEPKT3P93

    P2.9/USB_CONNECT1/RXD2/EXTIN0P92

    VSSP44

    P2.10/EINT0P76

    P1.9/ENET_RXD0P131 P1.8/ENET_CRSP132

    P4.14/A14P110

    P2.11/EINT1/MCIDAT1/I2STX_CLKP75

    P2.12/EINT2/MCIDAT2/I2STX_WSP73

    P2.13/EINT3/MCIDAT3/I2STX_SDAP71

    P4.13/A13P108

    P1.4/ENET_TX_ENP133 P1.1/ENET_TXD1P135 P1.0/ENET_TXD0P136

    P4.6/A6P78P4.5/A5P74

    P3.0/D0P137

    VDD_DCDC_3V3P121

    XTAL1P31

    P4.12/A12P104

    RTCKP143TCKP7

    P0.0/RD1/TXD3/SDA1P66

    P3.1/D1P140

    P3.2/D2P144

    P3.3/D3P2

    P4.11/A11P101

    VDD_3V3P114

    RSTOUTP20

    P0.1/TD1/RXD3/SCL1P67

    P0.2/TXD0P141

    VDD_3V3P138

    VSSP117

    VDD_DCDC_3V3P18

    RESETP24

    P4.31/CS1P134

    P0.5/I2SRX_WSK/TD2/CAP2.1P115

    P0.6/I2SRX_SDA/SSEL1/MAT2.0P113

    P0.7/I2STX_CLK/SCK1/MAT2.1P112

    P0.8/I2STX_WS/MISO1/MAT2.2P111

    P0.9/I2STX_SDA/MOSI1/MAT2.3P109

    VSSP59

    P0.10/TXD2/SDA2/MAT3.0P69

    P3.4/D4P9

    P3.5/D5P12

    P3.6/D6P16

    P0.11/RXD2/SCL2/MAT3.1P70

    P0.12/MISO1/AD0.6P29

    P4.30/CS0P130

    P0.13/USB_UP_LED2/MOSI1/AD0.7P32

    P0.14/USB_CONNECT2/SSEL1P48

    P0.15/TXD1/SCK0/SCKP89

    P0.16/RXD1/SSEL0/SSELP90

    P0.17/CTS1/MISO0/MISOP87

    P0.18/DCD1/MOSI0/MOSIP86

    P0.19/DSR1/MCICLK/SDA1P85

    VDD1.8_3P98

    P0.20/DTR1/MCICMD/SCL1P83

    P0.21/RI1/MCIPWR/RD1P82

    VDD1.8_2P81

    VDD1.8_1P21

    P4.29/MAT2.1/RXD3P122

    VSSAP15VSSP139VSSP119

    VDDAP14

    U14

    LPC2378

    E_RX_ERE_RX_CLK

    VBUS

    +3.3V

    CP

    USB_CONNECTUSB_LINK

    C4018pF

    C3918pF

    Y332.768KHz

    MCICLK

    E_MDC

    UP

    MCICMD

    E_MDIO

    DOWN

    MCIDAT0

    MIC_IN

    SSEL0SCK0

    E_TXD0

    PHY_INT

    AOUT

    R561K

    E_TXD1

    LCD BL

    E_CRS

    CENTER

    R551K

    E_RXD0

    U2D+

    CPU_CLKOUT

    RD1

    LEFT

    TD1

    RS

    MISO0

    RIGHT

    TDI

    TCKTRST

    RSTOUT-RST-

    TDO

    RTCK

    TMS

    MOSI0

    TDIRRDIR

    K2

    LCD_EN

    K3K4

    P3.24

    K7K8

    K5K6

    P2.1P2.0

    SPI_CS3SPI_CS4

    P2.3

    P3.26

    P2.2

    LCD RST

    P2.4P2.5

    P2.7P2.6

    P2.9P2.8

    P2.10MCIDAT1

    MCIDAT3

    SPI_CS1

    MCIDAT2

    SPI_CS2

    LC_LED0

    K1

    BUT2

    P0.6

    U2D-

    P0.9P0.8P0.7

    SPI_CS5

    SCL0SDA0

    P0.11P0.10

    BUT1

    TD2RD2

    R751K

    P2.10

    MISO0

    R160 330E

    +3.3V

    1 3

    SW12

    RRE KEY

    11

    22

    33

    SW23

    TINNY SW

    RSTSW-

    +3.3V

    R159

    100E

    13

    2 TP3POT

    ADC1

    +3.3V

    13

    2TP4POT

    ADC2R158

    100E

    RSTSW-

    RST

    +3.3V

    CS2

    CS1

    +3.3VR126 1K

    R1271K

    VCC

    SDA0 +3.3V

    SCL0 +3.3VR64 1K

    R651K

    LCD RST-

    LC_LED1

    +3.3V

    SW0

    +3.3VR80 1K

    +3.3VR78 1KP0.11

    P0.10

    LC_LED2

    SW1

    LC_LED3

    +3.3V

    P0.24

    SW2

    LC_LED4

    SW3+3.3V R57 1K

    LC_LED5

    SW4

    LC_LED6

    P0.23

    SW5

    LC_LED7

    Z_OUT

    SW6

    1 2

    SP4

    RS +3.3VR133 1K

    SW7

    +1.8V

    DC16

    0.1MF

    DC19

    0.1MF

    DC11

    0.1MF

    BUTTON SECTION...

    NC1

    A2

    GND3

    VCC5

    Y4

    U22

    NC7SPU04P5X

    DIOW

    DC15

    0.1MF

    +3.3V

    DC9

    0.1MF

    DC10

    0.1MF

    DC12

    0.1MF

    DC14

    0.1MF

    RST

    RST- RST1

    VSS2

    RST3

    MR4

    VDD5

    U13

    MCP1319MT - 45

    CS2CS1

    +3.3V

    +1.8V

    STEPPER MOTOR WITH SPI-1

    1

    32

    J12JM-3

    1

    32

    J15JM-3

    1

    32

    J13JM-3

    1

    32

    J14JM-3

    IO_P0.7

    IO_P0.6

    SSEL1

    IO_P0.9

    IO_P0.8

    SCK1

    MISO1

    MOSI1

    P0.6

    P0.9

    P0.8

    P0.7

    P2.6TRACEPKT1

    RI1

    1

    2

    3

    4

    J27JMP-4

    1

    32

    J20

    JM-3

    1

    2

    3

    4

    J29JMP-4

    1

    2

    3

    4

    J30JMP-4

    CTS1

    DCD1

    PWM3

    P2.7

    TRACE SIGNALS

    P2.1

    P2.0

    TRACEPKT2P2.3

    PIPESTAT0

    TRACECLK

    P2.2

    TRACEPKT0

    TRACESYNC

    PIPESTAT2

    PIPESTAT1

    RTS1

    1

    2

    3

    4

    J31JMP-4

    P2.5

    P2.4 DSR1

    12

    34

    J26JMP-4

    PWM6

    DTR1

    PWM5

    TXD1

    PWM4

    1

    2

    3

    4

    J28JMP-4

    PWM2

    RXD1

    PWM1

    1

    32

    J21

    JM-3

    P0.10P0.11

    AOUT{ADC}}PWM1

    SCK0SSEL0MISO0

    1 23 45 67 89 1011 1213 1415 1617 1819 20

    P23

    HEADER 10X2

    MOSI0

    +3.3V

    PWM3PWM2

    PWM6PWM5PWM4

    SDA0SCL0

    P0.23P0.24

    12

    P29

    J801

    }{ADC}AOUT

    Y_OUT

    X_OUT

    ADC2

    1

    32

    J36JM-3

    1

    32

    J37JM-3

    P0.23

    P0.24ADC1

  • ViARM-2378 DEVELOPMENT BOARD

    Vi Microsystems Pvt. Ltd., [ 147 ]

    DC17

    0.1uF

    +3.3V

    L12LED

    LED100

    BD1

    FB0805

    LEDACT

    +3.3V

    RST-

    DC13

    0.01uF

    +2.5V

    R69 33E LEDACT

    +3.3V

    R5010K

    C42

    0.1MF

    BD2

    FB0805

    E_CRS

    +3.3V

    CR

    Y_I

    N

    R60 330

    R67NA

    LED100

    DC21

    0.1uF

    +3.3V

    X2/ICLK

    X1/ICLK

    Y220MHz

    C82 0.1MF

    C84 0.1MF

    TX+

    TX-

    R621k

    R68 33E

    +3.3V

    RX+

    R664.7K

    RX-

    +2.5

    V

    R511K

    R59

    49.9

    E

    RX+

    R53 1k

    R54

    49.9

    E

    C43

    18pF

    +2.5V

    R63

    49.9

    E

    R70

    49.9

    E

    C37

    0.01MF

    TX-

    R130200E

    C36

    0.01MF

    RX-

    RX

    +

    E_RX_ER

    E_MDC

    TOUT+1

    TOUT-2

    CT4

    GND8

    CT5

    NC7

    TPIN+3

    TPIN-6

    LPF

    RJ-45

    FRON

    T VI

    EW

    12345678

    E_TX+E_TX-E_RX+

    E_RX-

    P22

    RJ-45 CON.

    RX

    -

    E_T

    XD

    3E

    _TX

    D2

    E_T

    XD

    1E

    _TX

    D0

    E_R

    X_C

    LKE

    _TX

    _EN

    TX+

    C35 0.1MF

    E_MDIO

    R5810K

    PHY_INT

    +

    C41

    10uF/16V

    +3.3V

    +3.3V

    +2.5

    V

    +2.5V

    +3.3VR61 330E

    ETHERNET SECTION . . .

    E_RX_CLK

    +3.3V+3.3V C33

    0.1MF

    R471K

    C34

    0.1MF

    R51

    R62

    S03

    S14

    S25

    VDD6

    X1/ICLK7

    X28

    GND9

    V010

    V111

    V212

    V313

    V414

    V515V616V717V818PD19GND20CLK21REF22VDD23R024R125R226R327R428

    U12

    ICS525-01R

    X1/ICLKX2/ICLK

    E_RXD1

    +2.5V

    R521K

    MDIO1

    MDC2

    RXD3/PHYAD13

    RXD2/PHYAD24

    RXD1/PHYAD35

    RXD0/PHYAD46

    VDDIO7

    GND8

    RXDV/PCS_LPBK9

    RXC10

    RXER/ISO11

    GND12V

    DD

    C13

    TXE

    R14

    TXC

    /RE

    F_C

    LK15

    TXE

    N16

    TXD

    017

    TXD

    118

    TXD

    219

    TXD

    320

    CO

    L/R

    MII

    21

    CO

    L/R

    MI_

    BTB

    22

    GN

    D23

    VD

    DIO

    24

    GND36

    GND35

    FXSD/FXEN34

    RX+33

    RX-32

    VDDRX31

    PD#30

    LED3/NWAYEN29

    LED2/DUPLEX28

    LED1/SPD10027

    LED0/TEST26

    INT#PHYAD0 25

    RE

    XT

    37V

    DD

    RC

    V38

    GN

    D39

    TX-

    40TX

    +41

    VD

    DTX

    42G

    ND

    43G

    ND

    44X

    045

    X1

    46V

    DD

    PLL

    47R

    ST#

    48

    U15

    KS8721BLE_RXD0

    E_MDIO

    +

    C38

    10uF/16V

    E_C

    RS

    CR

    Y_O

    UT

    L13LED

    +2.5V

    USB SECTION . . .

    TFT DISPLAY SECTION . . .

    L10

    LED

    R4433EVCC 1

    D- 2

    D+ 3

    GND4

    SHELL 5

    P16

    USB-B

    R4533EU2D+U2D-

    R3722k

    R361.5K

    L11LED

    C3118pF

    R46330E

    +3.3V

    R3410K

    1

    23

    Q4BC807

    R38 10K

    R351.5K

    VBUS

    +3.3V

    R432.2K

    C3218pF

    USB_LINK

    1

    32

    J16JM-3 USB_CONNECT

    R39330E

    12

    SP3SMD PAD

    C8547pF

    BD5220uH

    VDIGITAL1

    RESET 2

    DIO 3SCK 4

    CS5

    VDISPLAY 6

    NC7

    GND8

    LEDGND 9VLRD

    10

    P19

    TFT_DISPLAY

    +3.3V

    R129 150E

    + C8622

    0uF/

    16V

    SCK0

    SSEL0MOSI0

    R125

    1.2K

    LCD RST

    R4122E

    R1245.6K

    Q5BC846

    R121330

    + C87

    10uF

    /6.3

    V

    D12

    IN5819SVCC

    R4033K LCD RST

    VCC

    +3.3V

    R1232K

    R122

    1K

    R120NA

    +3.3V

    FB5

    TCAP3

    VC

    C6

    GN

    D4

    DC

    8

    PK

    7

    SWC1

    SWE 2

    U27MC34063A

    LCD BL

    +C8310u/6.3V

    R128 2.2E BL_PWR

    BL_PWR

    + C28

    10M

    F/16

    V/T

    + C23

    10M

    F/16

    V/T

    VIN3

    AD

    J1

    VOUT 2

    U10LM317

    R30120E

    R3147E

    R29100E

    + C3010MF/16V

    +12V

    BL_PWR

    C22

    0.1m

    F

  • ViARM-2378 DEVELOPMENT BOARD

    Vi Microsystems Pvt. Ltd., [ 148 ]

    K1K2

    K4K3

    K5

    1

    3

    SW3

    K61

    3

    SW4

    1

    3

    SW6

    1

    3

    SW7

    1

    3

    SW5

    1

    3

    SW13

    13

    SW10

    1

    3

    SW8

    1

    3

    SW9

    1

    3

    SW14KEY

    1

    3

    SW17

    1

    3

    SW16KEY

    1

    3

    SW15KEY

    1

    3

    SW19

    1

    3

    SW18KEY

    1

    3

    SW20

    K7K8

    SW0SW1SW2SW3SW4SW5SW6SW7 1 2

    3 4 5 6 7 8

    161514131211109

    SW1

    SW DIP-

    K1K2

    K4K3

    +3.3V

    1234 5

    678

    RN533E

    K6K5

    K8K7

    +3.3V

    1234 5

    678

    RN1033E

    LC_LED0

    LC_LED1

    LC_LED2

    R149330E

    LC_LED3

    LC_LED4

    LC_LED5

    R150330E

    L18LED

    L16LED

    L17LED

    L21LED

    L15LED

    LC_LED6

    L19LED

    L20LED

    L22LED

    R151330E

    R152330E

    LC_LED7

    R153330E

    R155330E

    R154330E

    R156330E

    SWITCH & LED SECTION . . .

    1 2J38

    JMP-2

    SW6SW7

    +3.3V

    1234 5

    678

    RN933E

    +3.3V

    1234 5

    678

    RN833E

    SW0SW1SW2SW3

    SW4SW5

  • ViARM-2378 DEVELOPMENT BOARD

    Vi Microsystems Pvt. Ltd., [ 149 ]

    12J3

    JMP

    -2

    12 J4

    JMP

    -2

    C26 100nF

    R32

    1.5KL4

    LED

    594837261

    P2

    9 PIN 'D' M

    L5

    LED

    C75 100nF

    RXD1

    R2OUTB20

    INVALID21

    GND25

    VCC26

    C1+28

    C1-24

    C2+1

    C2-2

    V+27

    V-3

    FORCEON23

    FORCEOFF22

    R1IN4

    R2IN5

    R3IN6

    R4IN7

    R5IN8

    T1IN14

    T2IN13

    T3IN12

    R1OUT 19

    R2OUT 18

    R3OUT 17

    R4OUT 16

    R5OUT 15

    T1OUT 9

    T2OUT 10

    T3OUT 11

    U7MAX3243/SO

    C24 100nFC25 100nF

    +3.3V

    VCC

    MRXD4

    MTXD4MRTS1

    MCTS1

    MDCD1

    MDTR1

    MDSR1

    MRI

    DSR1

    CTS1RI1

    DTR1

    DCD1

    MDTR1

    MRXD4

    MTXD4

    MRI

    MDCD1

    MRTS1

    MCTS1

    MDSR1

    RTS1

    MRXD4

    MTXD4

    FULL MODEM SECTION . . .

    TXD1

  • ViARM-2378 DEVELOPMENT BOARD

    Vi Microsystems Pvt. Ltd., [ 150 ]

    12

    J1JMP

    12

    J2JMP

    C190.1MF/C

    C200.1MF/C

    C210.1MF/C

    C180.1MF/C

    594837261

    P1

    9 PIN 'D' M

    R28

    1.5K

    L3

    LED

    C1+1

    C1-3

    C2+4

    C2-5

    T1IN11

    R1OUT12

    T2IN10

    R2OUT9

    VCC16

    V+2

    V- 6

    GND15

    T1OUT14

    R1IN13

    T2OUT7

    R2IN8

    U6ICL232

    L2

    LED

    +3.3V

    +3.3V

    RXD3

    TXD3

    RXD3TXD3

    RXD0TXD0

    RXD3

    TXD3

    SERIAL PORT SECTION . . .

  • ViARM-2378 DEVELOPMENT BOARD

    Vi Microsystems Pvt. Ltd., [ 151 ]

    DC2100nF

    VCC

    R250E

    L9LED

    R141.2K

    R15

    1.2K

    R2410K

    R27120E

    TXD1

    VREF5

    RXD4

    GND2

    CANL 6

    RS8

    VCC3 CANH 7

    U8MCP2551

    J7JMP-2

    L8LED

    RD2

    VCC

    +3.3V

    TD2

    CANL2

    DC1100nF

    CANH2

    CA

    N_R

    X

    CA

    N_T

    X

    VCC

    R180E

    123

    P5

    J801-3

    CAN PORT SECTION . . .

    CAN PORT - I

    CAN PORT - II

    123

    P4

    J801-3

    L6LED

    R121.2K

    R11

    1.2K

    R1310K

    R26

    120E

    TXD1

    VREF5

    RXD4 GND 2CANL

    6

    RS 8

    VCC3

    CANH7

    U5MCP2551

    J6JMP-2

    L7LED

    +3.3V

    VCC

    RD1TD1

    CANL1CANH1

    CA

    N_T

    X

    CA

    N_R

    X

    R13

    7

    10E

    LS1

    SPEAKER

    INT

    C9033nF

    +

    C89

    10uF/16V

    PS/2 KEYBOARD CONNECTOR . . .

    CENTER

    P0.8

    DOWN

    1 2J18

    JMP-2

    UP

    1 A

    2

    E3

    C

    4B

    5COMMON

    6D

    JS1

    JOYSTICK

    R163330

    R16833K

    +3.3V

    UP

    R164330CENTER

    JOYSTICK SECTION . . .

    A_OUT

    RIGHT

    A_OUT

    RIGHT

    +3.3V

    VCC

    INT

    132

    J33JM-3

    12

    J17JMP-2

    R84470K

    ZD1BZV55C2V4

    R8310K

    C45

    47pF

    R87100K

    R86100K

    ZD2BZV55C2V4

    R136100K

    P0.7

    + C88

    47uF

    /6.3

    V

    C481uF

    +3.3V

    3

    26

    74 8

    1

    -

    +

    U16MCP601

    R85470

    VCC

    DC22

    100nF

    R81100

    C4447pF

    312

    P24

    AUDIO JACK C4647pF

    VCC

    R8210K MIC_IN

    C47100nP

    312

    P25

    AUDIO JACK

    AOUT

    EXT

    1 2J32

    JMP-2

    LEFT

    VCC

    C53

    47nF

    R901K

    3

    25

    6

    1 487

    +

    -U17LM386

    R9133K

    C51 .1uF

    + C49.1uF

    +

    C52

    10uF/16V C50.1uF

    R8810

    1234

    8765

    RN2

    33K

    R48270E

    123456

    P20

    PS/2 KEYBOARD

    R49270E

    AUDIO JACK SECTION . . .

    AUDIO JACK SECTION . . .EXT

    LEFT

    DOWN

  • ViARM-2378 DEVELOPMENT BOARD

    Vi Microsystems Pvt. Ltd., [ 152 ]

    Y432.768KHz

    C6322pF

    SDA0

    C6422pFDC24

    0.1MF

    XTAL11

    XTAL2 2

    A03

    VSS4

    SDA 5

    SCL6

    INT7

    VCC8

    U20PCF8583

    CMOS VCC

    A01

    A12

    A23

    GND4

    COUT 5Q 6Q

    7VCC8

    U1924LS256

    R933.3K

    DC230.1MF/C

    R923.3K

    +3.3V

    +3.3V

    +3.3V+3.3V

    SDA0SCL0

    I2C SECTION . . .

    1

    32

    SP5SMD PAD

    VCC

    SDP0

    SE0SF0

    D_CC

    SA0

    SD0SC0 SG0SB0

    1234

    8765

    RN1

    3.3K RN

    VCC

    1234

    8765

    RN6

    3.3K RN

    SDA0SCL0

    A01

    A12

    A23

    P04

    P15

    P26

    P37

    VSS8

    P49P510P611P712INT-13SCL14SDA15VDD16

    U23PCF8574

    D_CC

    SC0

    D_CC

    CC2CC2

    FF

    GG

    EE

    DD

    A A

    CC1 CC1DP

    DPCCBBa b

    cde

    f g

    dp

    DISP1

    LTS543

    SA0

    SD0

    SG0SDP0SE0

    SB0SF0

    SCL0

    CMOS VCC

    R98

    1KDC3

    100nF

    R10

    1

    1K

    R1021K

    G_SEL11

    G-SEL22

    #SM12

    VDD3

    NC15

    NC26

    NC37

    NC48

    NC59

    NC610

    NC711

    NC816

    ZOUT13 YOUT14 XOUT15

    VSS4

    U18

    MMA7260Q

    R1001K +3.3V

    X_O

    UT

    R991K

    Z_O

    UT

    Y_O

    UT

    R971K

    C57

    100nF

    +3.3V

    C56

    100nF

    R96

    1K

    C55

    100nF

    CAN PORT - I

    +3.3V

    R145 33K

    R13833K

    R143 2K

    MCIDAT1

    +3.3V

    R14433K +3.3V

    +3.3V

    MCIDAT1

    MCIDAT0

    MCIDAT2 L14LED

    R94330

    MCIDAT2

    R95

    2K

    1 2

    470nH

    BD3

    12J40

    JMP-2WP

    1 2J41JMP-2CP

    SD CARD SECTION...

    MCICLK

    MCIDAT3 R139 33K

    R14633K

    + C5847uF/6.3V

    MCIDAT3

    MCICMD

    MCIDAT0

    WP1 10

    WP214

    CD/DAT3/CS 1

    CMD/DI2

    VSS1 3

    VDD4

    CLK 5

    VSS26

    DAT0 7

    DAT18

    DAT2 9

    CP1 13

    CP215

    SD CARD

    SD1

    C54

    18pF

    R14733K

  • ViARM-2378 DEVELOPMENT BOARD

    Vi Microsystems Pvt. Ltd., [ 153 ]

    R14

    1

    10K

    R14

    2

    10K

    +3.3V +3.3VTDI

    TRST1 23 45 67 89 10

    11 1213 1415 1617 1819 20

    P27

    JTAG

    TCKTMS

    RST-TDO

    RTCK

    JTAG SECTION...

    R14810K

    1234

    8765

    RN7

    10K

    1 2J39

    JMP-2

    R15710K

    +3.3VTDITRST

    RTCK

    TCK

    TMSTDO

    R33100E

    +12V

    Q3SL100

    D16

    1N40

    01

    123

    P12

    J801-3

    P3.26

    COM1NC1

    NO1COIL1COIL2

    COM2NC2NO2

    RL2

    RELAY SPDT

    RELAY SECTION . . .

    R19100E

    +12V

    Q2SL100

    D15

    1N40

    01

    123

    P11

    J801-3

    COM1NC1

    NO1COIL1COIL2

    COM2NC2NO2

    RL1

    RELAY SPDT P3.24

    TRACECLK

    P2.8

    P2.9

    PIPESTAT1

    TRACESYNC

    PIPESTAT0

    PIPESTAT2

    12J19

    JMP-2

    TRACESYNCTRACEPKT0

    R13510K

    TRACEPKT1

    +3.3VRST-TDO

    13579

    1113151719212325272931333537

    2468101214161820222426283032343638

    P21

    TRACE

    RTCK

    TMSTCK

    TDI

    TRACEPKT2

    TRST

    TRACE...

  • ViARM-2378 DEVELOPMENT BOARD

    Vi Microsystems Pvt. Ltd., [ 154 ]

    C7927pF

    C8027pF

    1 2

    J9JUMPER

    RTSCTS

    DCDDSR

    R42 330E

    RI

    C29 0.1uF

    BD4

    1uH

    TXD0RXD0

    C710.1uF

    1 2J10

    JUMPERR22 27E

    1 2

    J11JUMPER

    R23470E

    C2733nF

    D11BAT54

    DC70.1uF

    DC60.1uF

    DC80.1uF

    +5V_USB

    R11922K

    R21 27E

    +5V_USB

    R20 1.5K

    +3.3V

    C810.1uF

    3V3OUT6

    USBDM8

    USBDP7

    RSTOUT#5

    RESET#4

    XTIN27

    XTOUT28

    EECS32

    EESK1

    EEDATA2

    TEST31

    GN

    D1

    9

    GN

    D2

    17

    TXD25

    RXD24

    RTS#23

    CTS#22

    DTR#21

    DSR#20

    DCD#19

    R1#18

    TXDEN16

    TXLED#12

    RXLED#11

    PWRCTL14

    PWREN#15

    SLEEP#10

    VC

    CIO

    13V

    CC

    226

    VC

    C1

    3A

    VC

    C30

    AG

    ND

    29

    U11

    FT232BM

    +5V_USB

    1234

    P3

    USB PORT

    Y1

    6MHZ

    SW2

    RST

    USB SECTION . . .

    R167 10K

    R106 10K

    R104 10K

    R10710K

    C65

    100n

    F

    +3.3V

    TDIR

    +3.3VIRED_ANODE 1IRED_CATHODE

    2

    TXD3

    RXD4

    NC5VCC16

    SC7

    GND8

    IR1TFDU4100

    +3.3V

    C66

    100n

    F

    RDIR

    TDIRR105

    10K

    IR SECTION . . .

    IO_P0.6IO_P0.7

    D3

    FR10

    7

    D9FR

    107

    IO_P0.81

    2

    34

    5

    6

    7

    89

    10

    11

    12

    13

    14

    15

    U9L298N

    D5

    FR10

    7

    R110

    8.2K

    C77

    .1uFD4

    FR10

    7

    12

    P7

    J801-2

    D10

    FR10

    7

    1

    32

    SP2

    JMP3

    C74.1uF

    C7310uF/16V

    D6

    FR10

    7

    1234

    8765

    RN4

    1K

    D7

    FR10

    7

    R111

    8.2K

    1234

    8765

    RN3

    3.3K

    12345

    P65 PIN RMC

    D8

    FR10

    7

    MOTOR VCC

    MOTOR VCCVCC

    VCC

    MOTOR VCCIO_P0.9

    STEPPER MOTOR SECTION . .

    TEMP. SENSOR SECTION . . .

    +

    C11uF(TAN)

    12

    P9

    J801 - 2PIN

    R1091K

    DC50.1MFD

    3

    26

    74 8

    1

    -

    +

    U24OP07

    R10827K

    DC40.1MFD

    12

    P8

    J801 - 2PIN

    R656K

    +C671uF(TAN)

    TP1100K

    +12V

    -12V

    +12V

    -12V

    TEMP I/P

    Q1AD590

    TEMP I/P

    -12V

    P2.0P2.1P2.2P2.3P2.4P2.5P2.6

    LC_LED7

    LC_LED5LC_LED6

    LC_LED3

    K2

    LC_LED4

    K1

    K5

    K4K3

    P2.7P2.8

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

    32

    33

    34

    35

    36

    37

    38

    39

    40

    41

    42

    43

    44

    45

    46

    47

    48

    49

    50

    P17

    HEADER

    P2.9P0.24P0.23

    LC_LED2

    LC_LED0LC_LED1

    K7

    K6VCC

    SPI_CS1SPI_CS2

    SW3SW2SW1SW0

    SW7SW6SW5SW4

    +12VVCC

    TDIR

    RST+3.3V

    -12VVCC

    RST-

  • ViARM-2378 DEVELOPMENT BOARD

    Vi Microsystems Pvt. Ltd., [ 155 ]

    (LEFT CONNECTOR) (RIGHT CONNECTOR)

    HIGH SPEED ADC & DAC . . .

    1 23 45 67 89 10

    11 1213 1415 1617 1819 20

    P141 23 45 67 89 10

    11 1213 1415 1617 1819 20

    P18VCCVCC

    -12V+3.3V

    VCC+3.3V

    VCC

    +12V+12V -12V+3.3V +3.3V

    SPI_CS1

    MOSI1

    RST-

    SSEL1SCK1MISO1

    MOSI1SCK1

    SPI_CS2

    SPI_CS3 SPI_CS5SPI_CS4

    ZIG BEE SECTION . . .

    TXD1RXD1

    P2.1P2.2

    P0.3P0.2

    P0.41 23 45 67 89 10

    11 1213 1415 1617 1819 20

    P151 23 45 67 89 10

    11 1213 1415 1617 1819 20

    P13

    +3.3V

    P0.5RST-

    (LEFT CONNECTOR)(RIGHT CONNECTOR)

    OLED SECTION . . .

    OLED_TXD

    C610.1MF

    C600.1MF

    C620.1MF

    C590.1MFC1+

    1

    C1-3

    C2+4

    C2-5

    T1IN11

    R1OUT12

    T2IN10

    R2OUT9

    VCC 16

    V+2

    V- 6

    GND15

    T1OUT14

    R1IN13

    T2OUT 7

    R2IN 8

    U21ICL232

    +3.3V

    OLED_RXD

    12 J35

    JMP

    -2

    RXD1 TXD1

    12 J34

    JMP

    -2

    OLED_TXDOLED_RXD

    VCC

    12345

    P28

    HEADER 5

    RST-

    +3.3V

    +3.3V

    P2.1

    P2.2

    1 1

    22

    3 3

    J5

    SW

    1 1

    22

    3 3

    J8

    SW

    R1031K

    VCC

    LCD RST-

    123456789

    1011121314151617181920

    LCD2

    G_LCD DISPLAY

    12 SP7

    SM

    D P

    AD

    LCD RST-

    132

    SP6SMD PAD

    -12V-10V

    CS2CS1

    1

    32

    J42JMP-3TP2

    10K

    VCCVCC

    -10VVCC

    RSBR

    BR

    LCD_ENDIOW

    LC_LED2LC_LED1LC_LED0

    LC_LED6LC_LED5LC_LED4LC_LED3

    LC_LED7

  • ViARM-2378 DEVELOPMENT BOARD

    Vi Microsystems Pvt. Ltd., [ 156 ]

    LC_LED3LC_LED2LC_LED1LC_LED0

    LC_LED7LC_LED6LC_LED5LC_LED4

    123456789

    1011121314151617181920

    LCD1

    N_LCD DISPLAY

    R891K

    VCC

    VCC

    VCC

    BR

    RST-

    RS

    LCD_ENDIOW

    LCD DISPLAY SECTION . . .

    1 23 45 67 89 1011 1213 1415 1617 1819 20

    P26

    HEADER 10X2 (TFT LCD)

    VCC VCC

    TFT_SCKTFT_MOSI

    RXD1

    TFT_CSTFT_MISOTXD1

    +3.3V+3.3V

    P0.3

    1

    32

    J22JM-3

    1

    32

    J24JM-3

    1

    32

    J23JM-3P0.4

    P0.5

    TFT_SCK

    TFT_MISO

    TFT_MOSI

    SCK1

    MISO1

    MOSI1

    1

    32

    J25JM-3

    TFT_CS

    P0.2SSEL1

    TFT CONNECTOR SECTION . . .

  • ViARM-2378 DEVELOPMENT BOARD

    Vi Microsystems Pvt. Ltd., [ 157 ]

    +12V GENERATION . . .

    R1181E

    R11747K

    R114180E

    R1135.6K

    D1

    IN5819

    IND2100uH

    SW_CO1

    SW_EM2

    CT3

    GND4 CI_I/P 5VCC

    6Lpk_S 7

    DR_CO8

    U26MC34063A

    + C76100/16V

    +C70100uF/16V

    C69

    470pF

    VCC

    +12V

    -12V GENERATION . . .

    C68

    470pF

    +C78100uF R115

    20K

    D2

    IN5819

    R116680

    SW_CO1

    SW_EM2

    CT3

    GND4 CI_I/P 5VCC

    6Lpk_S 7

    DR_CO 8

    U25MC34063A

    + C72100

    R1121E

    VCC

    -12V

    IND1100uH

    IND3100uH

  • ViARM-2378 DEVELOPMENT BOARD

    Vi Microsystems Pvt. Ltd., [ 158 ]

    R16330E

    +9V

    VCC

    + C1010MF/16V/E

    VIN3

    AD

    J1

    VOUT 2

    U2LM317

    + C9470MF/35V/E

    R8120E

    R347E

    + C1110MF/16V

    R17100E

    +3.3V

    VCC

    C30.1mF

    C20.1mF

    +3.3V GENERATION . . .

    +1.8V GENERATION . . .

    +2.5V GENERATION . . .

    VCC GENERATION . . .

    C50.1mF

    + C1310MF/16V/E

    + C12470MF/35V/E

    VIN3

    AD

    J1

    VOUT 2

    U3LM317

    R410E

    R9100E

    + C1410MF/16V

    VCC

    +2.5V

    VIN3

    AD

    J1

    VOUT2

    U4LM317

    + C1610MF/16V/E

    + C15470MF/35V/E

    R547E

    + C1710MF/16V

    R10100E

    VCC

    +1.8V

    C40.1mF

    VIN3

    AD

    J1

    VOUT2

    U1LM317

    + C710MF/16V/E

    R7330E

    + C6470MF/35V/E

    + C810MF/16V

    R2330E

    L1LED

    D131N4148

    D141N4148

    R1330E

    BT1

    3.3V

    LIT

    HIU

    M B

    ATT

    ER

    Y

    R14015E

    VCC

    CMOS VCC

    VCC

    (POWER ON LED)

    11

    22

    33

    SW1

    POWER ON/OFF SW

    1 1

    2 2

    3 3

    SP1

    SMD PAD

    +9VVCC

    VCCGND

    P10

    CASIO SOCKET

  • ViARM-2378 DEVELOPMENT BOARD

    Vi Microsystems Pvt. Ltd., [ 159 ]

    APPENDIX B

    COMPONENT LAYOUT

  • ViARM-2378 DEVELOPMENT BOARD

    Vi Microsystems Pvt. Ltd., [ 160 ]