Many different types of semiconductor devices include processing engines that execute instructions. Often times these engines execute instructions that are of firmware of the device itself and stored in a non-volatile memory.
As one example, broadcast video chips such as tuners and demodulators include processors that execute firmware stored in embedded non-volatile memories. However due to updates, code patches and other code revisions, additional code is downloaded to these chips at power up of a system including the chips to aid in processing. In many systems, this code download takes a relatively long amount of time. Due to the length of download, startup of the system, which can be a computer system, television or other video device, can be delayed. Often times the download occurs via a standard bus such as an industry standard inter-integrated (I2C) bus. This bus has a known protocol that is relatively time consuming in downloading a code patch. Nonetheless, due to its industry standard nature and large installed base, manufacturers of systems maintain this bus as the main bidirectional control interface between various chips in the system.
According to one aspect, the present invention is directed to a first integrated circuit (IC) including an interface. This interface may include various mechanisms to handle incoming clock and data signals. In an embodiment, the interface includes a first multiplexer to receive a first data signal via a serial peripheral interface (SPI) bus coupled to a first pin of the first IC and a second multiplexer to receive a first clock signal via the SPI bus coupled to a second pin of the first IC and a second clock signal via an inter-integrated circuit (I2C) bus coupled to a third pin of the IC. In addition, the interface may include a decoder to receive the second clock signal and a second data signal via the I2C bus coupled to a fourth pin of the IC.
This decoder causes the first multiplexer to output the first data signal responsive to an enable message for the SPI bus received via the I2C bus and otherwise to output a predetermined state signal, and to cause the second multiplexer to output the first clock signal responsive to the enable message.
In some implementations, a second IC may be coupled to the first IC, where this second IC includes a SPI decoder to receive the first data signal via a first pin of the second IC and to receive the first clock signal via a second pin of the second IC. The second IC further includes an I2C decoder to receive the second data signal via a third pin of the second IC and to receive the second clock signal via the second pin of the second IC.
Still further, a third IC including a SPI interface may be present and coupled to at least the first IC to provide the first clock signal and the first data signal to the first IC. Note that this SPI interface of the third IC is not configured to receive a serial data input from the first IC and is further not configured to communicate a chip select signal to the first IC.
Another aspect of the present invention is directed to a method for receiving a SPI enable command on an I2C bus in at least one video IC coupled to the first IC, sending an acknowledgement on the I2C bus to the first IC, and responsive to the acknowledgment, receiving a code download on a SPI bus in the at least one video IC. The video IC may perform a checksum on the code download and communicate the checksum to the first IC, responsive to a request for the checksum by the first IC. In turn, the video IC can communicate the code download to a tuner IC via a serial line coupled between the video IC and the tuner IC responsive to the enable message.
A still further aspect is directed to a system having multiple components including a system on a chip (SoC), one or more demodulators, and one or more tuners. The SoC may have a decoder to decode a bitstream received from the demodulator into video data and an I2C interface and a SPI interface to communicate with the demodulator via an I2C bus and a SPI bus, respectively. However, a chip select signal of the SPI bus may be unconnected between the SoC and the demodulator.
In turn, the demodulator includes a decoder to receive an enable message for the SPI bus via the I2C bus and to enable a code download communicated from the SoC via the SPI bus to be output from the demodulator to the tuner. In turn, the tuner receives a radio frequency (RF) signal and downconverts and processes it to provide a second frequency signal to the demodulator for demodulation into the bitstream. This tuner may include a SPI decoder to receive the code download from the SoC via the demodulator on a serial line coupled between the tuner and the demodulator, and to receive a SPI clock signal from the demodulator on an I2C clock line of the I2C bus coupled between the tuner and the demodulator.
In various embodiments, an additional bus may couple between system components to provide a more efficient transfer mechanism for download of code and other information. Although the scope of the present invention is not limited in this regard, in many embodiments semiconductor devices such as integrated circuits (ICs) including video ICs (among others) may couple to a main system processor such as a system-on-chip (SoC) via a control interface that is implemented using an I2C bus. As detailed above, due to the complicated protocol of this bus, reduced communication speeds occur. Accordingly in various embodiments, an additional bus, which in an embodiment can be another industry standard bus such as a serial peripheral interface (SPI) bus, may also be coupled between at least certain system components to enable high speed communication of code downloads and other information, e.g., under control of communications occurring on the I2C bus.
Furthermore, to reduce impact on systems, embodiments may provide this additional serial bus in a modified manner. For example, the normally bidirectional SPI bus may be implemented in a single direction to reduce the need for greater amounts of pins. Furthermore, in some embodiments reduced connections of this SPI bus can occur between at least some of the separate ICs, e.g., by sharing a clock line and clock pin with the I2C bus to reduce chip real estate consumption. In addition, in some embodiments mechanisms may be provided to reduce noise by isolating communications to at least certain chips, e.g., during radio frequency (RF) communications.
Referring now to
Note that after processing in processor 130, the decoded video information may be provided to an appropriate sink device such as a display of the system, a storage device or so forth (not shown for ease of illustration in
Note that
Assume that tuner 110a is configured for processing broadcast signals, e.g., according to a given satellite broadcast specification such as DVB-S or DVB-S2, received via antenna 105, tuner 110b is configured to receive and process broadcast signals received via a terrestrial broadcast standard such as DVB-T or DVB-T2, while third tuner 110c may be configured to receive and process signals according to yet another video specification, e.g., a cable connection such as in accordance with a DVB-C standard. Of course understand that the scope of the present invention is not limited to these standards and the various tuners may be configured to handle other types of signals. The same RF signal source (e.g., antenna or cable connection) can also feed all the tuners for watch and record or picture in picture functionalities. Still further understand that in a given implementation more or fewer signal processing paths may be present. And in certain implementations, instead of separate tuner and demodulator ICs, it is possible that a single IC may include both a tuner and a demodulator, and in some such embodiments the tuner and demodulator can be implemented on a single semiconductor die. Still further, it is possible that a SoC may perform demodulation operations, and only a tuner may be coupled in front of the SoC. Many other configurations are contemplated, such as multiple tuners coupled to the SoC (without demodulators), and where all or at least one of the tuners may be configured as described herein to receive code updates. Or it is possible for one or more demodulators to be configured as described herein to receive code downloads, although one or more corresponding front end tuners may not be so configured.
For purposes of discussion here, various control and communication lines are further discussed. Specifically,
In the embodiment shown in
More specifically, I2C interface 132 may be used to communicate a clock signal (SCL) and a data signal (SDA). In general, when I2C clock stretching is not required, the clock signal may be communicated in a single direction from processor 130 to the video ICs, while information can be communicated in a bidirectional manner via the data line. Note also that inter-IC I2C buses 133a, 133b and 133c may couple between each pair of tuner and demodulator ICs.
Similarly, SPI interface 134 may couple to each of the video ICs, namely tuners 110a-110c and demodulators 120a1-120c1 via a SPI bus 135 including a data line and a clock line. SPI interface 134 may be used to communicate a SPI clock signal (SCK) and a SPI data signal (SO). In general, for a SPI bus in accordance with an embodiment of the present invention, both the clock signal and the data signal may be communicated in a single direction from processor 130 to the video ICs. For purposes of providing code downloads and other information in the downstream direction, note that a chip select line and a serial data input line (CS and SI, respectively) of the SPI interface may be unconnected (at least for communication with the devices shown in
By adding the additional SPI bus to multiple additional ICs (e.g., including at least one tuner and one demodulator and potentially multiple sets of tuner and demodulator pairs), unwanted coupling of signals may occur which can undesirably affect receipt and processing of RF signals in the various signal processing paths. Accordingly, in some embodiments the SPI stream communicated on the SPI bus can be gated within an upstream IC such that communications are only passed to a downstream IC as appropriate to reduce the effects of coupling.
Referring now to
Specifically, referring now to
Referring now to
In turn, demodulator 220 includes an I2C slave decoder 222. Although not shown, understand the demodulator may also include a SPI decoder and other circuitry. Instead, the illustrated portion of demodulator 220 may generally include switch control circuitry used to isolate communications such that the I2C bus (and the SPI bus) is active only when an access is needed. In addition, demodulator 220 may include a switch S1 that can be used to disable serial-based communications to avoid noise impact on tuner 210. Thus during RF activities, e.g., reception and processing of RF signals in tuner 210, switch S1 may disable serial data from being communicated on the I2C bus. In addition, the clock signal and the SPI data signal can be disabled or repurposed to carry other signals needed in normal operation.
In the embodiment shown in
In general, the I2C bus may be used to pass information used to control communications on the SPI bus. More specifically, owing to the lack of a separate chip select signal for the SPI bus, a command communication may be sent from an upstream source (e.g., an SoC or other application processor) to demodulator 220 on the I2C bus such that it is received within I2C decoder 222. Responsive to decoding of this command communication within this decoder, the control of whether a SPI clock signal or an I2C clock signal is communicated on clock signal line 250 may occur. More specifically, the signal to be communicated on this clock signal line may be controlled by a multiplexer 224. Although described herein as a multiplexer, note that in various implementations, both a selection element such as a multiplexer and a buffer may be present to enable compliance with appropriate electrical signaling requirements. More specifically, responsive to this command to enable the SPI bus, decoder 222 will instruct multiplexer 224 to communicate the SPI clock signal on clock signal line 250.
Similarly, I2C decoder 222 may further control the enabling or disabling of communications on the I2C bus to the tuner to thus reduce noise effects. Specifically, decoder 222 may generate a control signal to cause switch S1 to open, thus disabling output on data signal line 255 and further controlling both multiplexers 224 and 226 appropriately. This control may be effected directly by I2C registers in decoder 222 or indirectly from them by an embedded processor of the demodulator (not shown for ease of illustration in
Still further, using an implementation as in
Referring now to
Method 300 of
Referring still to
After such communication, a SPI disable command can be sent on the I2C bus to the video IC to thus cause one or more SPI interfaces to be disabled (block 340). Next, the SoC may request and receive a checksum from the video IC via the I2C bus (block 350). This checksum may thus correspond to a result of a checksum operation performed on the received code download. Control next passes to diamond 360 to determine whether the checksum is valid. If so, control passes to block 370 where normal system operation may be entered and accordingly, no further communications may occur on the SPI bus, unless an additional code download is later indicated.
If a valid checksum is not determined, control passes instead to block 380 where an error state can be entered. As an example, an error state machine within the SoC can be enabled to determine the type of error and take appropriate corrective action. Although shown at this high level in the embodiment of
Referring now to
In addition, various control information to set up the SPI decoder for receipt and handling of an incoming SPI message may be received from an I2C decoder via signal lines 215. Thus these signals are communicated on the I2C bus from the demodulator to the tuner, and then I2C slave decoder 212 parses the information and sends the commands to SPI decoder 214. Specifically, these signals can include certain preamble key and number signals (SPI_PBL_Key [7:0] and SPI_PBL_NUM [3:0]) and additional key signal (SPI_SCBL_KEY [15:0]). In addition, SPI decoder 214 runs out of an incoming chip reset and system clock signal (namely, SPI_RST and SPI_SYS_CLK).
Responsive to configuring this decoder for decoding incoming configuration information received the I2C decoder, when SPI data, e.g., corresponding to code updates or so forth are received, they can be communicated to a given memory of the device, e.g., via output lines 260, which include address lines SPI_WR_ADDR [31:0] and data lines SPI_WR_Data [7:0], which can be caused to be written into the given memory (such as a random access memory) of the device via a write enable signal communicated via a write enable line SPI_WR_Write.
Referring now to
Thus as seen in
Next, a receive state 4200 occurs that includes an address portion 422 to provide the address index sequence, an optional payload size sequence portion 424 to provide the PSS, and a payload sequence 426 that includes the information of the message. Note that a message may be segmented into multiple receive states. Thus as shown in
Note that because embodiments avoid the need for a chip select signal from the conventional SPI bus, a synchronous relationship between this CS signal and the SPI clock signal is lost. Accordingly, a corresponding emulation of this chip select signal from an I2C clock domain occurs asynchronously. To this end, the bit synchronization mechanism may be provided. In various embodiments, this synchronization mechanism may be realized by enabling the SPI decoder to detect a certain number of consecutive bytes, having a predetermined value programmable by a register, e.g., in one embodiment having a default value of 0xAA. This byte value may be communicated to the SPI decoder via the SPI_PBL_Key [7:0] signals. Furthermore, the number of consecutive occurrences of this byte communication may also be programmable. In an embodiment, this consecutive sequence may be between 1 and 16 byte sequences. In an embodiment, a default value of 0 may indicate that only a single occurrence is communicated. This number of consecutive occurrences can be communicated via the SPI_PBL_NUM [3:0] signals. Note that this bit synchronization preamble may only act to synchronize the hardware state machine of the SPI decoder when in the idle state, such that a portion of a payload equal to this bit synchronization preamble does not cause a resynchronization of the frame.
Next referring to
Referring now to
As shown in
Given that the various operations to provide communications on a SPI bus controlled by an I2C bus may be realized by logic, decoders and so forth, it is to be understood that such logic and/or decoders may execute instructions stored in an article in the form of a non-transitory computer-readable storage medium onto which various instructions are written. These instructions may enable the various logic and decoders to perform I2C bus-controlled communications on a SPI bus as described herein.
Embodiments may be implemented in many different system types, such as set-top boxes, high definition or standard digital televisions, and so forth. Some applications may be implemented in a mixed signal circuit that includes both analog and digital circuitry. Referring now to
The incoming RF signal is provided to tuner 605 for tuning to a desired signal channel. While the scope of the present invention is not limited in this regard, tuner 605 may include various circuitry. For example, in one embodiment tuner 605 may include a bandpass filter having an output coupled to a low noise amplifier (LNA) to receive and amplify the RF signal. The output of the LNA may be provided to another bandpass that in turn is coupled to a mixer. In turn, the mixer downconverts the incoming RF signal to an IF output, which may be communicated via a signal processing path to a demodulator 610, for digitization by an analog-to-digital converter (ADC) 612.
Referring still to
The output of demodulator 615 may correspond to a transport stream such as an MPEG-TS that is provided to a host processor 620 for further processing into an audio visual signal that may be provided to a display 630, such as a computer monitor, flat panel television or other such display. Note further, control channels which may be in accordance with I2C and SPI communication paths may be present between host processor 620 and demodulator 610. To provide further downloading of code updates or other information in a downstream direction to tuner 605, note the presence of an I2C bus between demodulator 610 and tuner 605. Furthermore, note the presence of a single serial data line, namely SPI Data, to enable download of code updates for storage in memory 602 of the tuner (for example).
While the present invention has been described with respect to a limited number of embodiments, those skilled in the art will appreciate numerous modifications and variations therefrom. It is intended that the appended claims cover all such modifications and variations as fall within the true spirit and scope of this present invention.
Number | Name | Date | Kind |
---|---|---|---|
5535220 | Kanno et al. | Jul 1996 | A |
5754252 | Kuhn et al. | May 1998 | A |
5878234 | Dutkiewicz et al. | Mar 1999 | A |
6128043 | Tulder | Oct 2000 | A |
6542203 | Shadwell et al. | Apr 2003 | B1 |
6625234 | Cui et al. | Sep 2003 | B1 |
6630964 | Burns et al. | Oct 2003 | B2 |
6721908 | Kim et al. | Apr 2004 | B1 |
6862325 | Gay-Bellile et al. | Mar 2005 | B2 |
7170849 | Arivoli et al. | Jan 2007 | B1 |
7265792 | Favrat et al. | Sep 2007 | B2 |
7369835 | Margairas et al. | May 2008 | B2 |
7426240 | Peron | Sep 2008 | B2 |
7440392 | Hwang | Oct 2008 | B2 |
7490187 | Moll et al. | Feb 2009 | B2 |
8228431 | Gao | Jul 2012 | B2 |
8237869 | Blouin et al. | Aug 2012 | B2 |
20020085648 | Burns et al. | Jul 2002 | A1 |
20040123226 | Lee et al. | Jun 2004 | A1 |
20050265486 | Crawley | Dec 2005 | A1 |
20060206778 | Wehn et al. | Sep 2006 | A1 |
20060222115 | Dornbusch | Oct 2006 | A1 |
20080086671 | Garg et al. | Apr 2008 | A1 |
20090094470 | Gao et al. | Apr 2009 | A1 |
20090213275 | Trager | Aug 2009 | A1 |
20090300243 | Chao | Dec 2009 | A1 |
20100130153 | Poorfard et al. | May 2010 | A1 |
20100306443 | Lin et al. | Dec 2010 | A1 |
20100328536 | Hendrickson et al. | Dec 2010 | A1 |
20100328544 | Hendrickson et al. | Dec 2010 | A1 |
20110161545 | Chang et al. | Jun 2011 | A1 |
20110246849 | Rault et al. | Oct 2011 | A1 |
20110246850 | Rault et al. | Oct 2011 | A1 |
20110276738 | Kim et al. | Nov 2011 | A1 |
20110314198 | Liu et al. | Dec 2011 | A1 |
20120059961 | Hershberger et al. | Mar 2012 | A1 |
20120131247 | Mok | May 2012 | A1 |
20120201332 | Vapillon | Aug 2012 | A1 |
20130138841 | Xu et al. | May 2013 | A1 |
20130205054 | Wright | Aug 2013 | A1 |
Number | Date | Country |
---|---|---|
WO 03067877 | Aug 2003 | WO |
WO 2007001305 | Jan 2007 | WO |
Entry |
---|
Ahmad Darabiha, “Power Reduction Techniques for LDPC Decoders,” pp. 1-10. |
ETSI, Draft ETSI EN 302 307, “Digital Video Broadcasting (DVB); Second generation framing structure, channel coding and modulation systems for Broadcasting, Interactive Services, News Gathering and other broadband satellite applications,” V1.2.1, Aug. 2009, 78 pages. |
MICRONAS, “DRX 3960A Digital Receiver Front-End,” Feb. 8, 2001, pp. 1-30. |
NXP, “TDA 8295 Digital Global Standard Low IF Demodulator for Analog TV and FM Radio,” Feb. 4, 2008, pp. 1-77. |
Xceive, “Welcome to Xceive at CES 2007, Upgrade Your Tuner! Get XC5000,” 2007, pp. 1-28. |
Xceive, “XC5000 Product Brief,” Dec. 2006, pp. 1-2. |
Number | Date | Country | |
---|---|---|---|
20140063343 A1 | Mar 2014 | US |