Version 6 (modified by 15 years ago) ( diff ) | ,
---|
Programming Neo FreeRunner LEDs
Neo FreeRunner has three LED indicators:
Color | Location | IO Port/pin |
orange | behind power button | GPB0 |
blue | behind power button | GPB1 |
red | behind aux button | GPB2 |
Combination of orange and blue behind the power button should give purple.
Port B Control Registers
Register | Address | Description | Reset value |
GPBCON | 0x56000010 | Pin configuration | 0x0 |
GPBDAT | 0x56000014 | Data in/out | undefined |
GPBDN | 0x56000018 | Pull-down disable | 0x0 |
GPB has 11 pins (GPB0 through GPB11 inclusive).
Register descriptions:
- GPBCON: Two configuration bits per pin (GPBCON[1:0] for GPB0, GPBCON[3:2] for GPB1, etc.), 00 = Input, 01 = Output, 10 = XXX, 11 = reserved. XXX refers to internal signals, different for each pin.
- GPBDAT[10:0]: Write GPB10..GPB0 in output mode and read GPB10..GPB0 in input mode.
- GPBDN[10:0]: 0 = pull-down enabled, 1 = pull-down disabled in GPB10..GPB0.
For blinking LEDs, we select output mode (0b01) for GPB0..GPB2. Pull-down should be disabled. Then write to GPBDAT[0:2]. To turn the LED on, set the pin value to 1 (H level), to turn it off set pin value to 0 (L level).
References:
- Samsung S3C2442B Processor Datasheet Port B Control Registers, Page 9-10.
- Neo FreeRunner Schematics MCU, sheet 3.
Notes:
- Verified by accessing physical memory via /dev/mem in Om 2008.
- From the documentation I've seen it is not clear whether the registers are sensitive to endianness and if so, what their endianness is. Little-endian access works.
- Could not find in datasheet whether H drive is coded as 1 or 0. From experiments 1 is H because 1 lights the LED.
Note:
See TracWiki
for help on using the wiki.