HOME
  Security
   Software
    Hardware
  
FPGA
  CPU
   Android
    Raspberry Pi
  
nLite
  Xcode
   etc.
    ALL
  
LINK
BACK
 

2004/03/16

OLIMEX LPC-H40(Philips LPC2106) OLIMEX LPC-H40(Philips LPC2106)

(MOTHER BOARD for LPC-H40(LPC-H2106) and ASM Sample Program.)

Tags: [ワンチップCPU]


ARM

Philips

OLIMEX


●参考リンク
・Philips LPC-2106 Links
LPC2104/2105/2106; Single-chip 32-bit microcontrollers Philips Semiconductors
Information about the Philips LPC2100 ARM microcontrollers LPC2100 Official fan site
The Philips LPC2000 family of ARM MCUs YAHOO! Groups
MCU discussion Forum Philips Semiconductors Forum
Portable command line ISP for Windows / Cygwin / Linux In System Programming Tool
FAQ's about LPC2100 Family Pointless? FAQ
LPC2000 KNOWLEDGE BASE & FAQS Usefull? FAQ
Simple LPC210x Prototyping System Another LPC board design
Welcome to the ARM microcontroller Wiki! ARM Information[Wiki]
ARM Instruction Set Quick Reference Card
ARM Instruction Manual ARM7-TDMI-manual
ARM7TDMI Chapter6 Instruction Cycle Timings
ARM7TDMI-S Chapter7 Instruction Cycle Timings LPC-2106??
RE-EJECT.GBADEV.ORG GNU-AS GAS ARM Reference & ARM/Thumb Instruction PDF.Very Good !
Assembly-programs by Linux Zaurus ARM ASSEMBLER(JAPANESE)
www.mikrocontroller.net Linksammlung

・TIPS
I/O port Capture Routine About 5.8956 Msps. FOSC=58.98 MHz
Speed of Code execution Internal Ram vs Internal Flash.fa=Execute in Ram.fb=Execute in Flash. (fa = 4 * fb)
LPC210x ARM7 Microcontroller Tutorial LPC-H2106 programming in C(GNU-GCC)

・Surprise !! My webpage recorded in a Useful Resources link of the ARM Co. !!
ARM Educational Resources and My webpage link(in Useful Resources)




・現在はリンク切れですが、一時期 ARMから USEFUL RESOURCESのひとつとしてリンクされていました。
現在はリンク切れですが、一時期 ARMから USEFUL RESOURCESのひとつとしてリンクされていました。




LPC-2106 Weakpoint
*A built-in flash ROM is not made secretly.(Critical)


*MOTHER BOARD for OLIMEX LPC-H40

**Feature
* OLIMEX LPC-H40 module (DIP 40pin)
*I2C MEMORY socket(DIP 8pin)
*RS-232C level converter(2ch)
*5 buttons,2 LEDs
*Character LCD connector
*RESET button
*JTAG I/F connector
*EXPAND I/O connector
*+5V Power supply from USB(Power only)

[GERBER DATA] MOTHER BOARD for OLIMEX LPC-H40
<- Input down and







*MOTHER BOARD & LPC-H40(Docked) & LCD


*DOCKING LCD


*SIDE VIEW



*LCD DISPLAY !



This Mother board was made from my design by OLIMEX PCB.


LED BLINK PROGRAM

Port P0.6=LED1
Port P0.7=LED2
PINSEL0        	= 0xE002C000
PINSEL1        	= 0xE002C004

IOPIN          	= 0xE0028000
IODIR          	= 0xE0028008

.text
        .align  2
        .global _start
_start:
	bal	ResetHandler	@;for debug
	bal	.	@;handlerUndef
	bal	.	@;SWI interrupt handler
	bal	.	@;handlerPrefetchAbort
	bal	.	@;handlerDataAbort
	bal	.	@;handlerReserved
	bal	.	@;handlerIRQ
	bal	.	@; Remake to save FIQ access time......

ResetHandler:
        ldr     r1,=PINSEL0
        ldr     r2,=0x00050055
        str     r2, [r1]

        ldr     r1,=PINSEL1
        ldr     r2,=0x00000000
        str     r2, [r1]

        ldr     r1,=IODIR
        ldr     r2,=0x0000FCC0
        str     r2, [r1]

loop:
        ldr     r0,=IOPIN
        ldr     r1,=0x80
        str     r1, [r0,#0x00]

        ldr     r4,=100000
1:      nop
        subs    r4, r4, #1
        bne     1b

        ldr     r0,=IOPIN
        ldr     r1,=0x40
        str     r1, [r0,#0x00]

        ldr     r4,=100000
1:      nop
        subs    r4, r4, #1
        bne     1b

        bal     loop

        .align  2

.bss

LCD PROGRAM

LCD
Port P0.10=RS
Port P0.11=EN
Port P0.12=D4
Port P0.13=D5
Port P0.14=D6
Port P0.15=D7

LCD_PORT_SHIFT	= 12
LCD_PORT_DATA	= (0b1111 << LCD_PORT_SHIFT)
LCD_PORT_RS	= (1 << 10)
LCD_PORT_EN	= (1 << 11)
LCD_PORT_MASK	= (LCD_PORT_DATA + LCD_PORT_RS + LCD_PORT_EN)


@;//==============================================
@;	LCD SUB-ROUTINE
@;//==============================================
@@//==============================================
LCD_PUT_STR:
	stmfd	sp!, {r0,r1, lr}

1:
        ldrb	r0, [r1],#1
	cmp	r0,#0x00
	beq	1f

	bl	LCD_PUT_CHAR
	bal	1b

1:
	ldmfd	sp!, {r0,r1, pc}


@;//==============================================
@;	LCD INITIAL
@;//==============================================
LCD_INIT:
	stmfd	sp!, {lr}

	bl	LCD_WAIT_4MS
	bl	LCD_WAIT_4MS
	bl	LCD_WAIT_4MS
	bl	LCD_WAIT_4MS

	@;	8-Bit MODE INITIAL
	mov	r0,#0b00110000			@; FUNCTION SET
	bl	LCD_OUT_CONT8
	bl	LCD_WAIT_4MS			@; WAIT 4ms

	mov	r0,#0b00110000			@; FUNCTION SET
	bl	LCD_OUT_CONT8
	bl	LCD_WAIT_4MS			@; WAIT 4ms

	mov	r0,#0b00110000			@; FUNCTION SET
	bl	LCD_OUT_CONT8
	bl	LCD_WAIT_4MS			@; WAIT 4ms

	@;	4-Bit MODE
	mov	r0,#0b00100000			@; FUNCTION SET
	bl	LCD_OUT_CONT8

	mov	r0,#0b00101000			@; FUNCTION SET
	bl	LCD_OUT_CONT4_SUB

	mov	r0,#0b00000001			@; CLEAR
	bl	LCD_OUT_CONT4_SUB
	bl	LCD_WAIT_4MS			@; WAIT 4ms

	mov	r0,#0b00000110			@; ENTRY MODE
	bl	LCD_OUT_CONT4_SUB

	mov	r0,#0b00001110			@; DISP ON
	bl	LCD_OUT_CONT4_SUB

	ldmfd	sp!, {pc}

@;//==============================================
@;	LCD CLEAR
@;//==============================================
LCD_CLEAR:
	stmfd	sp!, {lr}

	mov	r0,#0b00000001			@; CLEAR
	bl	LCD_OUT_CONT4_SUB

	ldmfd	sp!, {pc}

@;//==============================================
@;	LCD CURSOR HOME
@;//==============================================
LCD_HOME:
	stmfd	sp!, {lr}

	mov	r0,#0b00000010			@; HOME
	bl	LCD_OUT_CONT4_SUB

	ldmfd	sp!, {pc}

@;//==============================================
LCD_SET_POS:
	stmfd	sp!, {r0, r1, lr}

	mov	r1,r0,lsr #8
	and	r1,r1,#0b0011

	and	r0,r0,#0b00011111

	cmp	r1,#0
	addeq	r0,r0,#0b10000000

	cmp	r1,#1
	addeq	r0,r0,#0b11000000

	cmp	r1,#2
	addeq	r0,r0,#0b10000000+20

	cmp	r1,#3
	addeq	r0,r0,#0b11000000+20

	bl	LCD_OUT_CONT4_SUB

	ldmfd	sp!, {r0, r1, pc}


LCD_SET_ADRS:
	stmfd	sp!, {r0, lr}

	and	r0,r0,#0b01111111			@;
	orr	r0,r0,#0b10000000			@;
	bal	LCD_SET_LINE_SUB

LCD_SET_LINE1:
	stmfd	sp!, {r0, lr}

	mov	r0,#0b10000000			@; ADDR LINE 1
	bal	LCD_SET_LINE_SUB

LCD_SET_LINE2:
	stmfd	sp!, {r0, lr}

	mov	r0,#0b11000000			@; ADDR LINE 2
	bal	LCD_SET_LINE_SUB

LCD_SET_LINE3:
	stmfd	sp!, {r0, lr}

	mov	r0,#0b10000000+20		@; ADDR LINE 3
	bal	LCD_SET_LINE_SUB

LCD_SET_LINE4:
	stmfd	sp!, {r0, lr}

	mov	r0,#0b11000000+20		@; ADDR LINE 4

LCD_SET_LINE_SUB:
	bl	LCD_OUT_CONT4_SUB

	ldmfd	sp!, {r0, pc}


@;//==============================================
@;	LCD PUT CHAR
@;//==============================================
LCD_PUT_CHAR:
	stmfd	sp!, {lr}
	bl	LCD_OUT_DATA4
	ldmfd	sp!, {pc}

@;//==============================================
LCD_OUT_CONT4_SUB:
	stmfd	sp!, {lr}

	bl	LCD_OUT_CONT4
	bl	LCD_WAIT_4MS

	ldmfd	sp!, {pc}


@;=======
LCD_OUT_CONT4:
	stmfd	sp!, {lr}
	stmfd	sp!, {r1, r2}
	ldr	r1,=IOCLR
	ldr	r2,=LCD_PORT_RS			@; 'L'=CONT
	str	r2, [r1]
	ldmfd	sp!, {r1, r2}

	bl	LCD_OUT_BYTE4
	ldmfd	sp!, {pc}


@;=======
LCD_OUT_DATA4:
	stmfd	sp!, {lr}
	stmfd	sp!, {r1, r2}
	ldr	r1,=IOSET
	ldr	r2,=LCD_PORT_RS			@; 'H'=DATA
	str	r2, [r1]
	ldmfd	sp!, {r1, r2}

	bl	LCD_OUT_BYTE4
	ldmfd	sp!, {pc}


LCD_OUT_BYTE4:
	stmfd	sp!, {lr}
	stmfd	sp!, {r0}

	@;	Upper
	bl	LCD_OUT_BYTE8

	@;	Lower
	mov	r0,r0,lsl #4			@; HHHH_LLLL -> LLLL_0000
	bl	LCD_OUT_BYTE8

	ldmfd	sp!, {r0}
	ldmfd	sp!, {pc}


@;=======
LCD_OUT_CONT8:
	stmfd	sp!, {lr}
	stmfd	sp!, {r1, r2}
	ldr	r1,=IOCLR
	ldr	r2,=LCD_PORT_RS			@; 'L'=CONT
	str	r2, [r1]
	ldmfd	sp!, {r1, r2}

	bl	LCD_OUT_BYTE8
	ldmfd	sp!, {pc}

LCD_OUT_BYTE8:
	stmfd	sp!, {lr}
	stmfd	sp!, {r0, r1, r2}

	ldr	r1,=IOSET
	ldr	r2,=LCD_PORT_EN			@; 'H'=E
	str	r2, [r1]

	ldr	r1,=IOCLR
	ldr	r2,=LCD_PORT_DATA		@; CLEAR DATA BIT
	str	r2, [r1]

	bl	LCD_WAIT_1US

	@;	Upper 4-Bit
	and	r0,r0,#0b11110000
	mov	r0,r0,lsl #(LCD_PORT_SHIFT-4)	@;

	ldr	r1,=IOSET
	str	r0, [r1]			@; SET DATA BIT

	bl	LCD_WAIT_1US

	ldr	r1,=IOCLR
	ldr	r2,=LCD_PORT_EN			@; 'L'=E
	str	r2, [r1]

	bl	LCD_WAIT_40US

	ldmfd	sp!, {r0, r1, r2}
	ldmfd	sp!, {pc}


@;//==============================================
LCD_WAIT_1US:
	stmfd	sp!, {r1, lr}
	ldr	r1,=(FOSC*PLL_MUL)/(1000000/1)/2	@@ 1us
1:
	subs	r1, r1, #1
	bne	1b

	ldmfd	sp!, {r1, pc}

@;//==============================================
LCD_WAIT_40US:
	stmfd	sp!, {r1, lr}
	ldr	r1,=(FOSC*PLL_MUL)/(1000000/40)/2	@@ 40us
1:
	subs	r1, r1, #1
	bne	1b

	ldmfd	sp!, {r1, pc}

@;//==============================================
LCD_WAIT_4MS:
	stmfd	sp!, {r1, lr}
	ldr	r1,=(FOSC*PLL_MUL)/(1000/4)/2		@@ 4ms
1:
	subs	r1, r1, #1
	bne	1b

	ldmfd	sp!, {r1, pc}


@;//==============================================
LCD_WAIT_100MS:
	stmfd	sp!, {r1, lr}
	ldr	r1,=(FOSC*PLL_MUL)/(1000/100)/2		@@ 100ms
1:
	subs	r1, r1, #1
	bne	1b

	ldmfd	sp!, {r1, pc}




LPH7366 Project

Nokia LCD Library

LCD NOKIA

Nokia 3310 LCD

NOKIA 3310 LCD
Port P0.26=SCK
Port P0.25=SDIN
Port P0.24=DC
Port P0.23=SCE
Port P0.22=RES
NOK_PORT_SHIFT	= 22
NOK_PORT_MASK	= (0b11111 << NOK_PORT_SHIFT)
NOK_PORT_SCK	= (1 << 26)			@; 'L'->'H'
NOK_PORT_SDIN	= (1 << 25)			@; DATA
NOK_PORT_DC	= (1 << 24)			@; /CONT,DATA
NOK_PORT_SCE	= (1 << 23)			@; /CE
NOK_PORT_RES	= (1 << 22)			@; /RESET

NOK_MAX_X	= 84
NOK_MAX_Y	= 6


	bl	NOK_INIT
	adrl	r1, NOK_IMG0
	bl	NOK_DISP_IMAGE

	bl	NOK_HOME

	mov	r0,#0b10101010			@;
	bl	NOK_OUT_DATA
	mov	r0,#0b01010101			@;
	bl	NOK_OUT_DATA
	mov	r0,#0b10101010			@;
	bl	NOK_OUT_DATA
	mov	r0,#0b01010101			@;
	bl	NOK_OUT_DATA
	mov	r0,#0b10101010			@;
	bl	NOK_OUT_DATA
	mov	r0,#0b01010101			@;
	bl	NOK_OUT_DATA
	mov	r0,#0b10101010			@;
	bl	NOK_OUT_DATA
	mov	r0,#0b01010101			@;
	bl	NOK_OUT_DATA
	mov	r0,#0b10101010			@;
	bl	NOK_OUT_DATA
	mov	r0,#0b01010101			@;
	bl	NOK_OUT_DATA
	mov	r0,#0b10101010			@;
	bl	NOK_OUT_DATA
	mov	r0,#0b01010101			@;
	bl	NOK_OUT_DATA

@;//==============================================
@;	LCD SUB-ROUTINE
@;//==============================================
NOK_DISP_IMAGE:
	stmfd	sp!, {r0, r1, r2, lr}

	bl	NOK_HOME

	mov	r2,#(NOK_MAX_X*NOK_MAX_Y)
1:
        ldrb	r0, [r1],#1
	bl	NOK_OUT_DATA
	subs	r2, r2, #1
	bne	1b

	ldmfd	sp!, {r0, r1, r2, pc}


@;//==============================================
@;	LCD INITIAL
@;//==============================================

NOK_INIT:
	stmfd	sp!, {r0, r1, r2, lr}

	_strimm	IOCLR,NOK_PORT_MASK		@; 'HHHHH'
	bl	NOK_WAIT_50MS
	_strimm	IOCLR,NOK_PORT_RES		@; 'L'=/RESET
	bl	NOK_WAIT_50MS
	_strimm	IOSET,NOK_PORT_RES		@; 'H'=/RESET
	bl	NOK_WAIT_50MS

	bl	NOK_WAIT_50MS
	_strimm	IOCLR,NOK_PORT_RES		@; 'L'=/RESET
	bl	NOK_WAIT_50MS
	_strimm	IOSET,NOK_PORT_RES		@; 'H'=/RESET
	bl	NOK_WAIT_50MS

	@;	MODE INITIAL
	mov	r0,#0x21			@; FUNCTION SET
	bl	NOK_OUT_CONT

	mov	r0,#0xc8			@; FUNCTION SET
	bl	NOK_OUT_CONT

	mov	r0,#0x06			@;
	bl	NOK_OUT_CONT

	mov	r0,#0x13			@;
	bl	NOK_OUT_CONT

	mov	r0,#0x20			@; FUNCTION SET
	bl	NOK_OUT_CONT

	mov	r0,#0x0c			@; NORM
	bl	NOK_OUT_CONT

	ldmfd	sp!, {r0, r1, r2, pc}

@;//==============================================
@;	LCD CLEAR
@;//==============================================
NOK_CLEAR:
	stmfd	sp!, {r0, r2, lr}

	bl	NOK_HOME

	mov	r2,#(NOK_MAX_X*NOK_MAX_Y)
	mov	r0,#0x00
1:
	bl	NOK_OUT_DATA
	subs	r2, r2, #1
	bne	1b

	ldmfd	sp!, {r0, r2, pc}

@;//==============================================
@;	LCD CURSOR HOME
@;//==============================================
NOK_HOME:
	stmfd	sp!, {r0, lr}

	mov	r0,#0				@; X
	bl	NOK_SET_POS_X

	mov	r0,#0				@; Y
	bl	NOK_SET_POS_Y

	ldmfd	sp!, {r0, pc}

@;//==============================================
@;	C@0C	; NORM
NOK_NORMAL:
	stmfd	sp!, {r0, lr}

	mov	r0,#0b00001100			@; NORM
	bl	NOK_OUT_CONT

	ldmfd	sp!, {r0, pc}

@;//==============================================
@;	C@0D	; REV
NOK_REVERSE:
	stmfd	sp!, {r0, lr}

	mov	r0,#0b00001101			@; REV
	bl	NOK_OUT_CONT

	ldmfd	sp!, {r0, pc}

@;//==============================================
@;	C@80	; X:xxxxxxx(0~83)
NOK_SET_POS_X:
	stmfd	sp!, {r0, lr}

	and	r0,r0,#0b01111111
	orr	r0,r0,#0b10000000
	bl	NOK_OUT_CONT

	ldmfd	sp!, {r0, pc}

@;//==============================================
@;	C@40	; Y:yyy(0~5)
NOK_SET_POS_Y:
	stmfd	sp!, {r0, lr}

	and	r0,r0,#0b00000111
	orr	r0,r0,#0b01000000
	bl	NOK_OUT_CONT

	ldmfd	sp!, {r0, pc}


@;//==============================================
@;	NOK LOW LEVEL
@;//==============================================
NOK_OUT_CONT:
	stmfd	sp!, {lr}
	stmfd	sp!, {r1, r2}
	_strimm	IOCLR,NOK_PORT_DC		@; 'L'=CONT
	ldmfd	sp!, {r1, r2}

	bl	NOK_OUT_BYTE8
	ldmfd	sp!, {pc}


@;=======
NOK_OUT_DATA:
	stmfd	sp!, {lr}
	stmfd	sp!, {r1, r2}
	_strimm	IOSET,NOK_PORT_DC		@; 'H'=DATA
	ldmfd	sp!, {r1, r2}

	bl	NOK_OUT_BYTE8
	ldmfd	sp!, {pc}


@;=======
NOK_OUT_BYTE8:
	stmfd	sp!, {lr}
	stmfd	sp!, {r0, r1, r2, r3}

	_strimm	IOCLR,NOK_PORT_SCK		@; 'L'=SCK

	bl	NOK_WAIT_125NS

	_strimm	IOCLR,NOK_PORT_SCE		@; 'L'=/CE

	mov	r3,#8				@; 8 bit
1:
	bl	NOK_WAIT_125NS

	_strimm	IOCLR,NOK_PORT_SCK		@; 'L'=SCK

	ldr	r1,=IOCLR			@; 'L'
	tst	r0,#0x80
	ldrne	r1,=IOSET			@; 'H'
	ldr	r2,=NOK_PORT_SDIN		@; 'X'=SDIN
	str	r2, [r1]

	bl	NOK_WAIT_125NS

	_strimm	IOSET,NOK_PORT_SCK		@; 'H'=SCK

	mov	r0,r0,lsl #1

	subs	r3,r3,#1
	bne	1b

	bl	NOK_WAIT_125NS

	_strimm	IOCLR,NOK_PORT_SCK		@; 'L'=SCK

	bl	NOK_WAIT_125NS

	_strimm	IOSET,NOK_PORT_SCE		@; 'H'=/CE

	bl	NOK_WAIT_125NS

	_strimm	IOSET,NOK_PORT_SCK		@; 'H'=SCK

	ldmfd	sp!, {r0, r1, r2, r3}
	ldmfd	sp!, {pc}


@;//==============================================
NOK_WAIT_125NS:
	stmfd	sp!, {r1, lr}
	ldr	r1,=(FOSC*PLL_MUL)/(100000000 /15 )/2	@@ 150ns
1:
	subs	r1, r1, #1
	bne	1b

	ldmfd	sp!, {r1, pc}


@;//==============================================
NOK_WAIT_50MS:
	stmfd	sp!, {r1, lr}
	ldr	r1,=(FOSC*PLL_MUL)/(1000/50)/2		@@ 50ms
1:
	subs	r1, r1, #1
	bne	1b

	ldmfd	sp!, {r1, pc}


@@//==============================================
        .align  2

NOK_IMG0:
@;//	BMP to LCD IMAGE CONVERTER V0.0
@;//	NOKIA 3310 LCD module(Philips PCD8544)
@;//	(FREE WING)
@;//	(http://hp.vector.co.jp/authors/VA014069/)
@;//	Size	          84           48

		.byte	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
		.byte	0x80,0x80,0xC0,0xC0,0xE0,0xE0,0xF0,0xF0,0xF0,0xF8
		.byte	0x88,0xFC,0xF8,0xFE,0xDE,0x7C,0x6F,0x3F,0x39,0x9B
		.byte	0x99,0xCD,0xCC,0xEF,0xE7,0xF5,0xC3,0x03,0x01,0x01
		.byte	0x61,0xE0,0xE0,0x70,0x70,0xF8,0xF8,0xFC,0x1C,0x1E
		.byte	0x08,0x00,0x00,0x00,0x03,0x0F,0x3F,0xFE,0xF8,0xC0
		.byte	0x01,0x87,0x9C,0xFC,0xFE,0xFF,0xF8,0xE0,0xF0,0xF1
		.byte	0x7F,0x7E,0x78,0x21,0x0E,0x3F,0xFF,0xF7,0xFF,0xFE
		.byte	0xF0,0x00,0x00,0x00

		.byte	0x00,0x00,0x00,0x00,0xFC,0xFA,0x7E,0x7F,0x5F,0x0F
		.byte	0x2F,0x27,0x1F,0x1F,0x0F,0x0F,0x07,0x07,0x03,0x03
		.byte	0x19,0x79,0xFC,0xFC,0x8E,0x0E,0x07,0x07,0xC3,0x83
		.byte	0x0F,0x39,0xC0,0x00,0x07,0x1F,0x7F,0xFE,0xF8,0xE0
		.byte	0x00,0x00,0x00,0x30,0x70,0x70,0x7B,0x3F,0x3F,0x1C
		.byte	0x1C,0x0E,0x0F,0x0C,0x80,0x80,0x80,0xC0,0xC3,0x8F
		.byte	0x0F,0x0F,0x07,0x07,0x03,0x03,0x01,0x01,0x00,0x00
		.byte	0x10,0x70,0xF8,0xF0,0x80,0x00,0x03,0x0F,0x3D,0xFF
		.byte	0x37,0x37,0xFF,0xF0

		.byte	0x00,0x00,0x00,0x00,0x01,0x01,0x00,0x10,0xF0,0xF8
		.byte	0xF8,0x9C,0xDC,0xCE,0xEE,0x0F,0x3F,0xFE,0xF8,0xC0
		.byte	0x00,0x00,0x01,0x0F,0x3F,0xFC,0xF0,0xC0,0x80,0xC7
		.byte	0xCE,0xE0,0xE0,0xE0,0x70,0x70,0x38,0x39,0x3F,0x1F
		.byte	0x1F,0x0C,0x00,0x00,0x70,0xF0,0xF8,0xF8,0x3C,0x1C
		.byte	0x1E,0x0E,0x0F,0x0F,0x3F,0xE3,0x83,0x03,0x0F,0x7F
		.byte	0xFC,0xF0,0xC0,0x00,0x00,0x00,0x00,0xC0,0xC0,0xEE
		.byte	0xE6,0xE6,0xE7,0x7F,0x7F,0x7E,0x30,0x00,0x00,0x01
		.byte	0x03,0x1E,0xFB,0xFB

		.byte	0x00,0x00,0x00,0x00,0xF7,0xFE,0xD8,0xC0,0x00,0x03
		.byte	0x03,0x39,0x39,0x1D,0x1C,0x0E,0x0E,0x07,0x87,0x83
		.byte	0x83,0xC0,0xC0,0xE0,0xE0,0xF0,0xF7,0x83,0x03,0x03
		.byte	0x01,0x61,0xE0,0xF0,0xF0,0x78,0x78,0x38,0x9C,0xBC
		.byte	0xFE,0xF8,0xE0,0x00,0x00,0x03,0x0F,0x3F,0xFF,0xFE
		.byte	0xF0,0x43,0x01,0x00,0x8C,0x84,0x87,0xC2,0xC0,0xE0
		.byte	0x61,0x67,0x7F,0x3E,0xB8,0x80,0xC0,0xC1,0xE3,0xD1
		.byte	0xE1,0xD0,0xD8,0xE8,0xE8,0x6C,0x7C,0x76,0x7A,0x3F
		.byte	0x3F,0x1F,0x1E,0x0A

		.byte	0x00,0x00,0x00,0x00,0x0F,0x7D,0x7F,0xFE,0xF6,0x88
		.byte	0x00,0x8C,0x3C,0xFC,0xFE,0x0E,0x0F,0x0F,0x8F,0x87
		.byte	0x47,0x43,0x23,0x01,0x01,0x07,0x1F,0x7F,0xFE,0xF8
		.byte	0xC0,0x00,0x01,0x00,0x30,0xF0,0xF0,0x7B,0x79,0x39
		.byte	0x3D,0x1F,0x1F,0x0F,0x0C,0x80,0x80,0xC0,0xC1,0xC7
		.byte	0xEF,0xE7,0xE7,0x93,0xF3,0xDB,0xD9,0xFD,0x7C,0x7C
		.byte	0x7E,0x2C,0x1F,0x0F,0x0B,0x0F,0x0F,0x05,0x00,0x01
		.byte	0x02,0x03,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00
		.byte	0x00,0x00,0x00,0x00

		.byte	0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x07,0x33,0xFF
		.byte	0xFF,0xFF,0x3E,0x70,0xC3,0x0F,0x7F,0xFF,0x87,0x87
		.byte	0x86,0x86,0xC6,0xC3,0x63,0x60,0x30,0x30,0x93,0x9F
		.byte	0xDF,0xCF,0xEC,0xE0,0xF0,0xF0,0xF8,0x78,0xFC,0xFC
		.byte	0x7E,0x7E,0x32,0x3F,0x1F,0x0F,0x0B,0x0F,0x05,0x04
		.byte	0x07,0x03,0x01,0x00,0x01,0x01,0x00,0x00,0x00,0x00
		.byte	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
		.byte	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
		.byte	0x00,0x00,0x00,0x00


OLIMEX LPC-H40(LPC-2106) mother board
Sample program

[ARCHIVE CONTENTs]
Implemented Assenbler
*PLL CLOCK INITIALIZE
*CHARACTER LCD
*NOKIA 3310 LCD
*SWITCH INPUT
*LED BLINK
*UART SEND(CH0 & CH1)

*NOKIA 3310 LCD's BITMAP to LCD converter
BMP_NOK.EXE

*ARM's GNU ASSEMBLER & LINKER[NO NEED INSTALL CygWin]
arm-elf-as.exe
arm-elf-ld.exe
arm-elf-objcopy.exe
arm-elf-objdump.exe
cygwin1.dll

LZH ARCHIVE FILE for OLIMEX LPC-H40
<- Input down and



< table> (Donationware
)


USB-HOST Software Emulation.

ATMEL AVR's USB-HOST Mr.Ishikawa's Good work !

I transtlarte AVR to ARM.
It work fine !

DEMO MOVIE




●ワンチップマイコンの GPIOを駆使して USB HOST機能を実装する


2022/07/07
USB HOST機能が欲しいのでワンチップマイコンの GPIOで USB HOST機能を実現する
USB HOST機能が欲しいのでワンチップマイコンの GPIOで USB HOST機能を実現する

  FPGAに USBデバイスを接続したいのですが、USB HOSTの通信を実装できないので困っています

2022/07/17
USBの通信プロトコルを勉強する
USBの通信プロトコルを勉強する

  今まで漠然としていた USBデバイスの通信方法を理解します


Tags: [ワンチップCPU]

●関連するコンテンツ(この記事を読んだ人は、次の記事も読んでいます)

ARM開発環境を無料で揃える
ARM開発環境を無料で揃える

  Windows+Cygwin+GCC+GDB+Insight+JTAGで開発、JTAG経由でFlash-ROMの書き換え

OLIMEX OKI-H5003(Oki ML67Q5003 ARM)
OLIMEX OKI-H5003(Oki ML67Q5003 ARM)

  OKI-H5003 ASM Sample Program / ISFP Utility.

ARMマイコンでBASIC
ARMマイコンでBASIC

  超ミニBASIC for SH7046を移植しました




[HOME] | [BACK]
リンクフリー(連絡不要、ただしトップページ以外は Web構成の変更で移動する場合があります)
Copyright (c) 2004 FREE WING,Y.Sakamoto
Powered by 猫屋敷工房 & HTML Generator

http://www.neko.ne.jp/~freewing/cpu/arm_olimex/