LPC 2378 Development Board
-
Upload
dinesh-kumar -
Category
Documents
-
view
46 -
download
3
description
Transcript of LPC 2378 Development Board
-
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 ]