doc/fw_commands.txt
author root@rika
Thu, 23 Apr 2009 20:55:41 +0200
changeset 33 7a0c4b0354ba
parent 25 96f051df5d60
permissions -rw-r--r--
updated documentation
slime@2
     1
--- Protocol Descrition ---
slime@2
     2
slime@2
     3
[------------------ HEADER ------------------] [- DATA -]
slime@2
     4
[SYNC] [COMMAND] [LENGTH_UPPER] [LENGTH_LOWER]  ([DATA])
slime@2
     5
slime@2
     6
slime@2
     7
--- HEADER ---
slime@2
     8
-- Sync --
slime@2
     9
Commands send from the Host to the Unit start with 0xAA.
slime@2
    10
Commands from the unit, to the Host Computer start with 0x55.
slime@2
    11
slime@2
    12
-- Length --
slime@2
    13
Warning: A complete Packet _must_ be smaller than 64 Bytes. This is a Firmware limit!
slime@2
    14
Therefore, LENGTH_UPPER is always zero.
slime@2
    15
LENGTH_LOWER ist the number of Data bytes, following the header. The Firmware will scrap the complete package, if length is not correct.
slime@2
    16
slime@2
    17
--- Commands ---
slime@2
    18
Currently the following commands are implemented:
slime@2
    19
slime@2
    20
-- Commands used by the unit --
slime@2
    21
In most cases, these are replys to host initiated commands. Only CMD_SYS_IR is used 'standalone'.
slime@2
    22
slime@2
    23
- CMD_SYS_SYNC (0x00)-
slime@2
    24
 * not used. 
slime@2
    25
slime@2
    26
- CMD_SYS_ACK (0x01) -
slime@2
    27
 * Acknowledge command.
slime@2
    28
 * Can contain data
slime@2
    29
slime@2
    30
- CMD_SYS_NACK (0x02) -
slime@2
    31
 * Not Acknowledge
slime@2
    32
 * Never contains data
slime@2
    33
slime@2
    34
- CMD_SYS_NIMP (0xFF) -
slime@2
    35
 * Issued commands is not implemented.
slime@2
    36
 * Never contains data
slime@2
    37
slime@2
    38
- CMD_SYS_IR (0x10) -
slime@2
    39
 * A Infrared or Key-Event has occured
slime@2
    40
 * 2 data Bytes: RC5-Address & RC5-Command
slime@2
    41
slime@2
    42
-- Host initiated commands --
slime@2
    43
- CMD_DISP_CLEAR_SCREEN	(0x10) -
slime@2
    44
 * Required data: None
slime@2
    45
 * Clears Display Data-RAM from 0x0000 to 0x1000
slime@2
    46
slime@2
    47
- CMD_DISP_SET_ROW_DATA (0x14) -
slime@2
    48
 * Required data: at least 3 data Bytes: ADDR_LOWER, ADDR_UPPER, DISPLAY_DATA[]
slime@2
    49
 * sets the Display Ram starting from address (ADDR_UPPER << 2 + ADDR_LOWER) to DISPLAY_DATA[].
slime@2
    50
 * most usefull if one ore more complete rows are written.
slime@2
    51
slime@2
    52
- CMD_DISP_SET_ADDRESS (0x16) -
slime@2
    53
 * Required data: 2 data Bytes: ADDR_LOWER, ADDR_UPPER
slime@2
    54
 * Sets the Display Ram Address to (ADDR_UPPER << 2 + ADDR_LOWER)
slime@2
    55
cpresser@25
    56
- CMD_WRITE_EEPROM (0x20) -
cpresser@25
    57
 * Required data: 2 data Bytes: ADDR, DATA
cpresser@25
    58
 * Writes DATA to the internal EEPROM at location ADDR
cpresser@25
    59
cpresser@25
    60
- CMD_READ_EEPROM (0x21) -
cpresser@25
    61
 * Required data: 1 data Bytes: ADDR
cpresser@25
    62
 * Returns one byte from the internal EEPROM at location ADDR
cpresser@25
    63
slime@2
    64
- CMD_READ_CLOCK (0x40) -
slime@2
    65
 * Required data: None
slime@2
    66
 * Returns 10Bytes of Data, corresponding to the pcf8583 ram from 0x00 to 0x0F.
slime@2
    67
slime@2
    68
- CMD_WRITE_CLOCK (0x41) -
slime@2
    69
 * Required data: 10Bytes: CLOCK_DATA[]
slime@2
    70
 * Writes CLOCK_DATA to the pcf8583 from address 0x00 to 0x0F.
slime@2
    71
slime@2
    72
- CMD_SET_PWM1 (0x45) -
slime@2
    73
 * Required data: 1 Byte (DutyCycle)
slime@2
    74
 * Loads PWM1 DutyCycle Register
slime@2
    75
slime@2
    76
- CMD_SET_PWM2 (0x46) -
slime@2
    77
 * Required data: 1 Byte (DutyCycle)
slime@2
    78
 * Loads PWM2 DutyCycle Register
slime@2
    79
slime@2
    80
- CMD_SET_MODE_MANAGED (0x70) -
slime@2
    81
 * Required data: None
slime@2
    82
 * Enters 'managed mode': now the display wont be updated, ir&key events will be send
slime@2
    83
slime@2
    84
- CMD_SET_MODE_UNMANAGED (0x71) -
slime@2
    85
 * Required data: None
root@33
    86
 * Enters 'unmanaged mode': now the display will display the current time, ir&key events wont be send
slime@2
    87
slime@2
    88
- CMD_BOOT (0x80) -
slime@2
    89
 * Required data: None
slime@2
    90
 * Enters Bootload mode. NO ACK is send!
slime@2
    91
slime@2
    92
--- Examples ---
slime@2
    93
0xAA 0x10 0x00 0x00			-> Clears the Display
slime@2
    94
0xAA 0x45 0x00 0x01 0x80		-> Sets PWM1 to 50% DC
slime@2
    95
0xAA 0x14 0x00 0x03 0x00 0x08 0x42	-> Writes a small 'b' to the upper left display corner
slime@2
    96
0xAA 0x80 0x00 0x00			-> Enters Bootloader mode
root@33
    97
0xAA 0x40 0x00 0x00			-> Returns 10Bytes Clock Data