・2004/03/16
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のひとつとしてリンクされていました。

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

*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
<
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機能を実現する
FPGAに USBデバイスを接続したいのですが、USB HOSTの通信を実装できないので困っています
・2022/07/17
USBの通信プロトコルを勉強する
今まで漠然としていた USBデバイスの通信方法を理解します
Tags: [ワンチップCPU]
●関連するコンテンツ(この記事を読んだ人は、次の記事も読んでいます)
ARM開発環境を無料で揃える
Windows+Cygwin+GCC+GDB+Insight+JTAGで開発、JTAG経由でFlash-ROMの書き換え
OLIMEX OKI-H5003(Oki ML67Q5003 ARM)
OKI-H5003 ASM Sample Program / ISFP Utility.
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/