Remote control devices are typically supplied along with consumer appliances, such as televisions, radio tuners, digital video disk players, video cassette recorders, set-top cable television boxes, set-top satellite boxes, etc. The remote control devices control the associated consumer appliances by sending infrared signals with key codes to the consumer appliances. Each such key code corresponds to a function of the selected consumer appliance, such as power on, volume down, play, stop, select, channel advance, channel back, etc. The key codes for all of the functions of a particular consumer appliance together comprise a codeset. Codesets can differ from each other not only by the bit patterns assigned to the key codes, but also by the number of bits per key code, the width of the bit pulses, the frequency of the bit pulses, as well as by the frequency of the operational signal over which the bit pulses are modulated.
In order to avoid the situation where a signal containing a key code operates a consumer appliance that is not selected, different codesets are used for different appliances. Although each model of consumer appliance might not have a unique codeset, there are nevertheless thousands of codesets used to operate the various types, brands and models of consumer appliances sold in the world market today.
Some remote control devices are sold separately from consumer appliances and are preloaded with codesets that operate numerous types, brands and models of consumer appliances. These separately sold remote control devices are sometimes called “universal” remote control devices. The potential market for a universal remote control device is larger the more codesets can be loaded onto the remote control device. There is a cost, however, of providing a remote control device with additional memory in which to store additional codesets. The cost of a remote control device that can store additional codesets, however, can be reduced by more efficiently using the existing memory on the remote control device, such as the read only memory (ROM) of a microcontroller integrated circuit. For example, codesets can be stored in ROM program memory of the Z8 microcontroller available from Zilog, Inc. of San Jose, Calif.
A microcontroller architecture is sought that allows program memory to be expanded such that codesets can be efficiently stored in program memory and expanded program memory.