Patent Description:
Driver circuitry may operate, or drive, one or more light sources, such as light emitting diodes (LEDs). The driver circuitry may control a light intensity output by a light source by varying an average amount of electrical current flowing through the light source. For example, the driver circuitry may increase a duty cycle of an electrical current delivered to a light source to increase a light intensity generated by the light source. Similarly, the driver circuit may decrease the duty cycle of the electrical current delivered to a light source to decrease the light intensity generated by the light source. At high switching frequencies, a human eye may perceive a change in the duty cycle of the electrical current as a change in the brightness or intensity of the light generated by the light source.

Publication <CIT> discloses a device for driving several light sources arranged in a matrix structure. The device comprises a diagnosis functionality which, when activated, makes it possible to determine whether each pixel cell to be diagnosed works or suffers from open-load or a short-circuit to ground issues. Publication <CIT> discloses another device for driving several light sources.

The problem underlying the present application is solved by a device having the features of claim <NUM>, as well as by a method having the features of claim <NUM>. Preferred embodiments are the subject matter of the dependent claims.

A device includes at least two light sources and driver circuitry configured to selectively drive each light source of the at least two light sources. The driver circuitry is configured to drive the light sources based on the bit values in each frame of a bit stream received by the device. The device also includes monitor circuitry configured to determine the voltage drop across each of the light sources. In some examples, the voltage drop across a specific light source may indicate whether the specific light source is functioning properly and/or whether the temperature of the specific light source is higher than a desirable operating temperature. Additionally or alternatively, the monitor circuitry is configured to determine the voltage drop across a current source in the driver circuitry. The monitor circuitry may also be configured to determine whether there is a short circuit or open circuit across the specific light source.

To determine the voltage drop across a light source, the device includes snooping circuitry configured to read one or more bits in a first frame of the bit stream as buffer circuitry of the device receives the first frame. A specific bit in the first frame that is received by the buffer circuitry indicates whether the driver circuitry will drive a specific light source during a second frame. In some examples, the second frame may immediately follow the first frame. By reading the specific bit as the buffer circuitry receives the first frame, the snooping circuitry causes the monitor circuitry to determine a voltage drop across the specific light source during the second frame.

The snooping circuitry is configured to read a first bit in a first frame of the bit stream before the driver circuitry uses the first frame to drive the specific light source. If the first bit is an inactive bit (i.e., a bit with an inactive value), the snooping circuitry is configured to read a second bit in the first frame. The second bit may have a position in the first frame that is later than a position of the first bit. In some examples, the second bit may immediately follow the first bit in the first frame. If the second bit is an active bit (i.e., a bit with an active value), the snooping circuitry is configured to cause the monitor circuitry to determine the voltage drop across a respective light source. If the second bit is an inactive bit, the snooping circuitry may be configured to continue reading successive bits until snooping circuitry finds an active bit or reaches the end of the frame.

By skipping inactive bits, the monitor circuitry may be capable of monitoring a larger number of light sources in a given number of frames, as compared to another device. Snooping circuitry and monitor circuitry of this disclosure may be capable of monitoring a bit stream in a shorter amount of frame or time. Thus, snooping circuitry of this disclosure may make the monitor circuitry more efficient by selecting an active bit and causing the monitor circuitry to monitor a respective light source. The snooping circuitry may increase the efficiency and/or productivity of the monitor circuitry by finding an active bit in almost every frame.

<FIG> is a conceptual block diagram of a device <NUM> including at least two light sources <NUM>, in accordance with some examples of this disclosure. Device <NUM> includes light sources <NUM>, buffer circuitry <NUM>, driver circuitry <NUM>, monitor circuitry <NUM>, snooping circuitry <NUM>, and optional controller circuitry <NUM>. In some examples, device <NUM> may be a lighting device for a vehicle, a building, and/or any other system that includes a lighting device.

Light sources <NUM> include two or more light sources such as light-emitting diodes (LEDs) or any other suitable light sources. Light sources <NUM> may be arrayed in a matrix or grid formation, and each light source may be a pixel. In some examples, light sources <NUM> may include one thousand and twenty-four light sources that are arrayed in a grid of thirty-two light sources by thirty-two light sources. Each of light sources <NUM> may be numbered in sequential order. For a first frame of bit stream <NUM>, some of light sources <NUM> may be on, and some of light sources <NUM> may be off. From the first frame to a second frame of bit stream <NUM>, some of light sources <NUM> that were on in the first frame may remain on for the second frame, and some of light sources <NUM> that were on in the first frame may switch off for the second frame.

Buffer circuitry <NUM> is configured to receive bit stream <NUM>, which includes a series of bits. Each bit of bit stream <NUM> corresponds to a light source of light sources <NUM>. In some examples, buffer circuitry <NUM> may include a shift register with a number of bits that may be equal or approximately equal to the number of light sources in light source <NUM>. As a shift register, buffer circuitry <NUM> may include a cascade of flip flops sharing the same clock input. When buffer circuitry <NUM> has finished receiving a first frame of bit stream <NUM>, buffer circuitry <NUM> may deliver bit stream <NUM> to driver circuitry <NUM> and begin receiving a second frame of bit stream <NUM>. Each frame of bit stream <NUM> may include a number of bits that is equal to or approximately equal to the number of light sources in light sources <NUM>.

In some examples, buffer circuitry <NUM> may be configured to deliver a first frame of bit stream <NUM> to driver circuitry <NUM> in response to receiving an update signal. In some examples, the update signal may include a pulse or high digital value to indicate the end of each frame of bit stream <NUM>. As used herein, the terms "receiving an update signal" and "delivering an update signal" may mean receiving or delivering the high pulse of the update signal. The high pulse of the update signal may indicate that buffer circuitry <NUM> has received bit stream <NUM>. Device <NUM> may also include error-checking circuitry configured to determine whether each frame includes errors. If the error-checking circuitry determines that the first frame includes an error, device <NUM> may not deliver an update signal to cause buffer circuitry <NUM> to deliver the first frame of bit stream <NUM> to driver circuitry <NUM>. If the error-checking circuitry does not determine that a frame includes an error, device <NUM> may be configured to generate and deliver the update signal to the circuits of <FIG>. In response to receiving a high pulse of the update signal, buffer circuitry <NUM> may be configured to deliver a frame of bit stream <NUM> to driver circuitry <NUM>.

Bit stream <NUM> includes one or more frames, where each frame of bit stream <NUM> includes one or more bits such as bits 118A and 118B. Bit stream <NUM> includes a series of frames, where each frame includes a series of digital bits. Each bit of bit stream <NUM> is a command signal to driver circuitry <NUM> for a light source of light sources <NUM>. Driver circuitry <NUM> may be configured to transmit each bit to a current source for the respective light source of light sources <NUM>. Each bit commands the respective current source to deliver electrical current to the respective light source of light sources <NUM>.

Driver circuitry <NUM> is configured to receive bit stream <NUM> from buffer circuitry <NUM>. Driver circuitry <NUM> is also configured to drive light sources <NUM> based on the bits in bit stream <NUM>. For example, driver circuitry <NUM> is configured to drive a first light source based on a first bit and to drive a second light source based on a second bit. In some examples, a high bit such as a "<NUM>" in a frame may cause driver circuitry <NUM> to drive the corresponding light source during the frame, and a low bit such as a "<NUM>" may cause driver circuitry <NUM> to refrain from driving the corresponding light source. In some examples, driver circuitry <NUM> may be configured to refrain from driving a first light source based on the value of bit 118A and to drive a second light source based on the value of bit 118B.

If the frame rate for device <NUM> is one frame per five microseconds (i.e., two hundred kilohertz), each frame of bit stream <NUM> may cause driver circuitry <NUM> to drive, or refrain from driving, light sources <NUM> for five microseconds. To brighten or dim a light source of light sources <NUM>, processing circuitry may increase or decrease the percentage of high bits in the frames of bit stream <NUM>. At one frame per five microseconds, driver circuitry <NUM> may drive a specific light source based on two hundred thousand frames of a specific bit during a one-second time period. The apparent brightness of the specific light source to a human eye may be based on the percentage of frames in which the specific bit that corresponds to the specific light source has a high value.

Monitor circuitry <NUM> is configured to determine the voltage drop across one or more of light sources <NUM>. In some examples, monitor circuitry <NUM> is also configured to determine the voltage drop across a current source of driver circuitry <NUM> that is configured to drive a one of light sources <NUM>. In some examples, monitor circuitry <NUM> may be configured to determine an open circuit or a short circuit across a current source or across a light source.

Monitor circuitry <NUM> may be configured to determine the voltage drop across each light source of light sources <NUM> by using one or more multiplexers. The multiplexers may allow monitor circuitry <NUM> to measure the voltage drop across one or more of the light sources during each frame of bit stream <NUM>. In some examples, monitor circuitry <NUM> may include one or more levels of multiplexers. The first level of multiplexers may include a number of inputs that is equal to the number of light sources <NUM>. Monitor circuitry <NUM> may include an analog-to-digital converter (ADC) configured to receive an analog output signal of the last level of multiplexers, which may indicate the voltage drop across a light source. The ADC may be configured to convert the analog output signal to a digital signal. The digital signal may indicate the approximate amplitude of the voltage drop across a light source of light sources <NUM>.

In some examples, monitor circuitry <NUM> may be configured to determine the voltage drop across a first light source during a first frame, determine the voltage drop across a second light source during a second frame, and so on. In some examples, monitor circuitry <NUM> may be capable of determining the voltage drop across only one light source during each frame. In other examples, monitor circuitry <NUM> may be capable of determining the voltage drop across more than one light source during each frame.

In accordance with the techniques of this disclosure, snooping circuitry <NUM> is configured to read bit 118A as buffer circuitry <NUM> receives bit stream <NUM>. Bit 118A may be an inactive bit, meaning that the value of bit 118A is inactive value. If bit 118A is an inactive bit, driver circuitry <NUM> is configured to refrain from driving a respective light source when driver circuitry <NUM> receives bit 118A. Snooping circuitry <NUM> is further configured to read bit 118B after reading bit 118A and based on the inactive value of bit 118A. Snooping circuitry <NUM> is further configured to cause monitor circuitry <NUM> to determine voltage drop <NUM> across the light source associated with bit 118B based on the active value of bit 118B.

For example, the value of bit 118A may be an inactive value such as "<NUM>". In response to determining that the bit 118A has an inactive value, snooping circuitry <NUM> is configured to read bit 118B, which may be the next bit in the frame of bit stream <NUM> that buffer circuitry <NUM> is receiving. If the next bit has an inactive value, snooping circuitry <NUM> may be configured to continue reading bits until snooping circuitry <NUM> reads a bit with an active value, such as "<NUM>". Snooping circuitry <NUM> is configured to read a second inactive bit after reading bit 118A and based on the value of bit 118A and to read bit 118B after reading the second inactive bit and based on the value of the second inactive bit.

When driver circuitry <NUM> receives bit 118A for a first respective light source, and bit 118A has an inactive value, driver circuitry <NUM> is configured to refrain from driving the first respective light source during the next frame. When driver circuitry <NUM> receives bit 118B for a second respective light source, and bit 118B has an active value, driver circuitry <NUM> is configured to drive the second respective light source during the next frame. Thus, by skipping inactive bits, snooping circuitry <NUM> may be configured to choose an active bit and to cause monitor circuitry <NUM> to determine a voltage drop across a light source that is active during the next frame.

After reading bit 118B, snooping circuitry <NUM> may be configured to cause monitor circuitry <NUM> to determine voltage drop <NUM> in response to receiving an update signal, such as in response to receiving a high pulse of the update signal. Snooping circuitry <NUM> may be configured to read bits 118A and 118B before receiving the pulse of the update signal. After snooping circuitry <NUM> receives the update signal indicating the end of the first frame, snooping circuitry <NUM> may be configured to read a bit from the next frame.

Snooping circuitry <NUM> may be configured to determine a position of bits 118A and 118B in bit stream <NUM> based on a position of the respective light sources of light sources <NUM>. In some examples, the respective light sources may be positioned in a matrix (i.e., grid) of light sources <NUM>. Snooping circuitry <NUM> may be configured to determine the position of bits 118A and 118B in bit stream <NUM> by at least accessing a lookup table associating positions of bits in bit stream <NUM> and positions of light sources <NUM> in the matrix.

In some examples, snooping circuitry <NUM> may include counter circuitry that is configured to count the position of bit 118A as buffer circuitry <NUM> receives bit stream <NUM>. For example, snooping circuitry <NUM> may determine that bit 118A is located in a specific position with bit stream <NUM>, such as a sixth position. As buffer circuitry <NUM> receives a frame of bit stream <NUM>, the counter circuitry may count to the specific position. In some examples, the counter circuitry may be configured to increment a count (i.e., counter value) until the count is equal to the number of the specific position. The counter circuitry may be configured to determine whether the count is a specific value (i.e., the number of the specific position). The counter circuitry may then be configured to cause snooping circuitry <NUM> to read bit 118A in response to counting the position of bit 118A. The counter circuitry may be further configured to continue to increment the count in response to determining that the counter value is not the specific value.

In some examples, there may be one or more inactive bits between bits 118A and 118B in bit stream <NUM>. Snooping circuitry <NUM> may be configured to read the inactive bits in order until snooping circuitry <NUM> reads an active bit, such as bit 118B. Snooping circuitry <NUM> may be further configured to cause the counter circuitry to increment a counter value in response to each determination that the value of a bit is not the active value.

In some examples, snooping circuitry <NUM> may be configured to determine that the value of bit 118A is not an active value and to cause the counter circuitry to increment the count in response to determining that the value of bit 118A is not the active value. By incrementing the count, snooping circuitry <NUM> may keep track of the position of the next bit, which may be bit 118B. Snooping circuitry <NUM> may be configured to determine that a value of bit 118B is an active value and store the counter value in response to determining that the value of bit 118B is an active value.

In some examples, the counter circuitry may be further configured to clear the counter value in response to receiving an update signal. The counter circuitry may be configured to increment the counter value in response to receiving each bit of the second frame until the counter value is the stored counter value. The second frame may immediately follow the first frame, where the first frame included bits 118A and 118B. In some examples, the stored counter value may be the position of bit 118B in the first frame plus one so that counter circuitry counts to the bit immediately following bit 118B. The counter circuitry may be configured to determine whether the counter value is the stored counter value and cause snooping circuitry <NUM> to read a first bit of the second frame in response to determining that the counter value is the stored counter value. As explained above, a position of the first bit in the second frame may be later than, such as immediately after, the positions of bits 118A and 118B. The counter circuitry may be configured to continue to increment the counter value in response to determining that the counter value is not the specific value as the counter circuitry counts through the second frame of bit stream <NUM>.

Snooping circuitry <NUM> and/or monitor circuitry <NUM> may be configured to determine whether the respective light sources are on or will be on before monitor circuitry <NUM> determines a voltage drop across one or more of the respective light sources. In some examples, monitor circuitry <NUM> may be configured to determine the voltage drop across a light source if and only if the light source is or will be on during the voltage measurement. In other examples, monitor circuitry <NUM> may be configured to determine the voltage drop across the light source regardless of whether the light source is or will be on during the voltage measurement. The capability of snooping circuitry <NUM> to read bit 118B in a frame of bit stream <NUM> as the frame is received by buffer circuitry <NUM> may allow device <NUM> to synchronize the determination of voltage drop <NUM> across a respective light source. The determination may be synchronized by selecting a respective light source that will be on during the measurement, by selecting a respective light source that will be off during the measurement, and/or by selecting a respective light source based on the value of bit 118B.

In some examples, snooping circuitry <NUM> may be further configured to determine whether a value of the first bit of the second frame is an active value and to cause the monitor circuitry to determine a voltage drop across a respective light source of light sources <NUM> in response to determining that the value of the first bit of the second frame is the active value. Snooping circuitry <NUM> may be configured to store the counter value in response to determining that the value of the first bit of the second frame is the active value and cause the counter circuitry to increment the counter value in response to determining that the value of the first bit of the second frame is not the active value. If snooping circuitry <NUM> determines that the value of the first bit of the second frame is not the active value, snooping circuitry <NUM> may be configured to read a second bit of the second frame in response to determining.

Controller circuitry <NUM> may be configured to determine whether voltage drop <NUM> is within an acceptable voltage window. The acceptable voltage window may include an upper threshold that is less than an open-circuit voltage and a lower threshold that is more than a short-circuit voltage. The thresholds of the acceptable voltage window may be established based on acceptable operating temperatures, such that determining voltage drop <NUM> outside of the acceptable voltage window may indicate an unacceptable temperature. Controller circuitry <NUM> may be configured to cause driver circuitry <NUM> to increase or decrease voltage drop <NUM> across the specific light source in response to determining that voltage drop <NUM> across the light source is not within the acceptable voltage window.

In accordance with the techniues of this disclosure snooping circuitry <NUM> is configured to read bits 118A and 118B as buffer circuitry <NUM> receives a first frame of bit stream <NUM>. Snooping circuitry <NUM> is configured to determine the value of bit 118A and read bit 118B in response to determining that the bit 118A has an inactive value. Snooping circuitry <NUM> is configured to read bits 118A and 118B as buffer circuitry <NUM> receives the first frame of bit stream <NUM>, so that monitor circuitry <NUM> can determine voltage drop <NUM> as driver circuitry <NUM> is driving light sources <NUM> based on the first frame of bit stream <NUM>. In contrast, another device may read one bit per frame and/or wait for a light source to reach an active state before beginning the monitoring process.

For example, snooping circuitry <NUM> may read bits 118A and 118B of a first frame of bit stream <NUM>. When buffer circuitry <NUM> receives an update signal, buffer circuitry <NUM> may deliver the first frame to driver circuitry <NUM> and begin receiving a second frame of bit stream <NUM>. Driver circuitry <NUM> may be configured to drive light sources <NUM> based on the first frame of bit stream <NUM>. While driver circuitry <NUM> is driving light sources <NUM> based on the first frame, snooping circuitry <NUM> may be configured to cause monitor circuitry <NUM> to determine voltage drop <NUM> across a light source that corresponds to bit 118B. By reading both of bits 118A and 118B as buffer circuitry <NUM> receives the first frame, snooping circuitry <NUM> may prepare monitor circuitry to determine voltage drop <NUM> as driver circuitry <NUM> drives light sources <NUM> based on the first frame. In some examples, snooping circuitry <NUM> may be configured to compare the value of each of bits 118A and 118B to a requested state and cause monitor circuitry <NUM> to determine the voltage drop based on the comparison of the value of both of bits 118A and 118B to the requested state.

Device <NUM> may be configured to run a diagnosis of the current sources of a light source matrix driver integrated circuit (IC). The algorithm to loop through the matrix may be based on a round-robin approach, such that snooping circuitry <NUM> may be configured to check the current sources by reading bits in sequence. In some examples, device <NUM> may be configured to check the current sources for the light sources in an active state. Snooping circuitry <NUM> may be configured to check the incoming data stream and extract the first '<NUM>' in the stream after the position of the last light source that snooping circuitry <NUM> checked. In some examples, this approach may avoid losing time waiting for the next frame or for a specific light source to turn on. At every new frame, snooping circuitry <NUM> may be configured to select a new light source that is in an active state by skipping light sources that are in inactive states instead. Using this method, snooping circuitry <NUM> may lose a frame only upon reaching the last position in bit stream <NUM> because the frame may end and bit stream <NUM> may roll back to the beginning of bit stream <NUM>.

For example, a matrix may include two hundred and fifty-six current sources. Snooping circuitry <NUM> may be configured to check whether the first pixel is on by reading the first bit of a first frame of bit stream <NUM>. If the first bit has an active value, meaning that the first pixel will be on in the next frame, snooping circuitry <NUM> may be configured to select and possibly store the first bit. Snooping circuitry <NUM> may be configured to cause monitor circuitry <NUM> to check the first pixel during the next frame. Buffer circuitry <NUM> may then receive the next frame where the second and third pixel are off (i.e., the second and third bits have inactive values), while the fourth pixel may have an active value. As a result, the logic circuitry of snooping circuitry <NUM> may be configured to skip the switched off bits (the second and third bits) and run a diagnosis on the fourth pixel because the fourth bit has an active value in the second frame.

The algorithm may continue until the last position (i.e., <NUM>). Once this is served, the algorithm may start again from position one looking for first '<NUM>' (i.e., active bit). Any device <NUM> may also be configured to account for transmission errors because the light source coordinates are not updated without an update signal. A main advantage of device <NUM> may be that the matrix is traversed in a shorter time than in other devices because switched off pixels (i.e., inactive bits) may be skipped and monitor circuitry <NUM> may not wait, or be less likely to wait, for a selected pixel to switch on. The implementation may include a small number of gates to be implemented and therefore may have an advantage in the terms of area, as compared to other devices. Additionally, light sources <NUM> may not need wires in the matrix area, and there may be a low impact on matrix routability.

<FIG> shows an exemplary arrangement comprising a light source array <NUM> which is placed on top of a semiconductor device <NUM>, in accordance with some examples of this disclosure. Device <NUM> may include light source array <NUM>, semiconductor device <NUM>, printed circuit board (PCB) <NUM>, and wire bond(s) <NUM>. Light source array <NUM> and semiconductor device <NUM> may be a chip-on-chip assembly. Light source array <NUM> may include at least two light sources. Semiconductor device <NUM> may be arranged on PCB <NUM>. Semiconductor device <NUM> may be electronically connected to PCB <NUM> via bond wires <NUM>.

Semiconductor device <NUM> may comprise at least one of the following: current sources for individual light sources arranged on light source array <NUM>, in particular at least one current source for each light source; a communication interface for driving the light sources and for management purposes; generation of at least one reference current; and diagnosis and protection functionality. For such purposes, semiconductor device <NUM> may comprise an array of silicon cells, wherein each silicon cell (also referred to as pixel cell) may comprise a current source, which may be directly connected to a light source of light source array <NUM>. In addition, semiconductor device <NUM> may comprise current source regulation circuitry or any other circuitry as discussed throughout.

In some examples, the at least one current source of semiconductor device <NUM> may be a part of driver circuitry configured to drive light source array <NUM> based on a bit stream. The communication interface of semiconductor device <NUM> may be a part of buffer circuitry configured to receive the bit stream and deliver the bit stream to the driver circuitry. Semiconductor device <NUM> may be configured to receive a bit stream through bond wire(s) <NUM> and an electrical connection in PCB <NUM>. In some examples, semiconductor device may include <NUM>,<NUM> current sources, each directly connected to a LED of light source array <NUM>. Semiconductor device <NUM> may independently control the current sources in order to generate the correct light pattern either in beam shape and intensity.

In some examples, device <NUM> may be a high-pixel LED driver, where light source array <NUM> may be an LED array of <NUM>,<NUM> pixels that is mounted on top of a silicon substrate array (i.e., semiconductor device <NUM>) in a chip-on-chip assembly solution. In some examples, semiconductor device <NUM> may be an intelligent, smart silicon-substrate chip. The smart silicon substrate may include an array of pixel cells called an LED driver matrix and may be placed and directly connected to each respective LED of light source array <NUM>. Each pixel cell of light source array <NUM> may include an area of <NUM> by <NUM>. The smart silicon substrate may also include common circuitry outside the LED matrix area, where the common circuitry may include, for example, the communication interfaces or diagnosis and protection circuitry. The common circuitry may add to the total volume of device <NUM>, and it may be desirable to have a smaller volume for device <NUM>.

<FIG> shows an exemplary block diagram of a matrix <NUM> of light sources <NUM> and a semiconductor device <NUM> comprising driver circuitry <NUM>, in accordance with some examples of this disclosure. Each pixel of matrix <NUM> may be represented by at least one light source <NUM>. Driver circuitry <NUM> may be a portion of semiconductor device <NUM> that is associated with each one pixel of light source array <NUM>). Semiconductor device <NUM> may also include circuitry <NUM>. Semiconductor device <NUM> may be connected to a serial interface <NUM>. Respective light sources <NUM> of matrix <NUM> may be controlled via serial interface <NUM>. Matrix <NUM> may be arranged on top of driver circuitry <NUM>. Driver circuitry <NUM> may be part of the semiconductor device <NUM> as shown in <FIG> and may comprise a pixel cell area (also referred to as "pixel cell") for each light source <NUM> of matrix <NUM>. It is an option that driver circuitry <NUM> has (e.g., substantially) the same area size as matrix <NUM>. In particular, the pixel cell area of driver circuitry <NUM> may have the same surface area as an individual one light source <NUM>. Light sources <NUM> of matrix <NUM> may be directly connected to the pixel cells of driver circuitry <NUM>. Matrix <NUM> may in particular be arranged on top of driver circuitry <NUM>.

Circuitry <NUM> may comprise a serial interface for accessing light sources <NUM> of matrix <NUM>, e.g., one register <NUM> for configuration purposes, reference current generator <NUM>, reference voltage generator <NUM> and temperature sensor <NUM>, and may be arranged in an area adjacent or distant to driver circuitry <NUM>. In some examples, circuitry <NUM> may also include buffer circuitry configured to receive a bit stream and to deliver the bit stream to driver circuitry <NUM>. Matrix <NUM> may comprise an arbitrary number of light sources (e.g., pixels) arranged in columns and rows. For example, matrix <NUM> may comprise <NUM> light sources, <NUM>,<NUM> light sources, <NUM>,<NUM> light sources, etc. In the example shown in <FIG>, matrix <NUM> comprises sixteen rows and sixteen columns of light sources <NUM>, amounting to two hundred and fifty-six light sources. An LED may be one example of a light source. It may be an option to use any kind of light source, in particular semiconductor light source. It is another option that each light source may be a component comprising at least two semiconductor light sources.

In an exemplary application, each pixel of matrix <NUM> may occupy a surface area of, for example, less than <NUM> by <NUM> although surface area occupation may be implementation-specific. Any area suitable for a predetermined resolution of light source array <NUM> may be selected. The semiconductor light source may be arranged in the middle of each pixel cell. Adjacent pixel cells may have a gap between light sources amounting to less than <NUM>. Each light source may have one contact connected to driver circuitry <NUM> and one contact connected to a common contact, e.g., GND. This is an exemplary scenario; other dimensions, distances and connections may apply accordingly.

With each light source being mounted directly on top of the semiconductor device, each current source is placed in an area defined by the surface area of the pixel cell. In the example provided above, the area amounts to <NUM> · <NUM> = <NUM><NUM>. For increasing the resolution in x- and y-dimensions (e.g., <NUM>°) of the light at long distance and for avoiding extra mechanical components for beam leveling adjustment, a short pitch between the pixel cells is beneficial. In the example provided above, the pitch between pixel cells may be less than <NUM>.

Due to the compact arrangement, a high amount of heat sources may generate different temperatures, which may influence temperature gradients and hence lead to a mismatch between pixels. In addition, the output of each current source per pixel cell may not be directly accessible as the driver circuitry is directly connected to the light sources. Hence, a solution is required that provides at least one of the following: a current source that provides current to the individual light source, which allows switching the light source on or off with high accuracy, optionally providing over-current protection; a diagnostic functionality capable of detecting an open-load and a short to ground of the output channel; a low mismatch between different pixels, i.e., between different current sources; current source regulation circuitry as discussed throughout; etc..

An external device may independently control the state of the pixels of matrix <NUM> by transmitting a bit stream via serial interface <NUM>. Circuitry <NUM> may be configured to store the incoming bit stream data in a memory buffer in order to check its integrity. Circuitry <NUM> may be configured to deliver the bit stream to driver circuitry <NUM> only if the integrity check is successful. Device <NUM> may be configured to run an automatic diagnosis of matrix <NUM>, in particular how to run a current source diagnosis to diagnose issues such as short to ground or the voltage drop across a current source, while navigating efficiently through the matrix. Current source outputs may not accessible because they are covered by the light source array. To cope with this limitation, the output net may be observable to the common circuitry part via a group of analog multiplexers that are configured by the system. Circuitry <NUM> and/or <NUM> may then convert this voltage by an analog to digital data converter for further processing.

Successive frames of the bit stream may form a pulse-width modulated (PWM) signal to modulate the light sources. Additionally or alternatively, the bit stream may also form a pulse-density modulated (PDM) signal and/or a pulse-frequency modulated (PFM) signal. In some examples, circuitry <NUM> may indicate a desired state such that the conversion should be executed when the LED is in the desired state. For example, when the desired state is on, the state of a specific light source should stay stable during the conversion. The PWM generator may not be integrated in device <NUM> but is calculated externally by a microcontroller or by a field-programmable gate array (FPGA) and then transferred to the light source array. In some examples, it may be desirable to run, in the most time efficient way, the diagnosis of the current sources in the matrix when they are in an on state (i.e., an active state), considering also possible communication errors.

<FIG> shows exemplary driver circuitry including high-side current sources <NUM>, <NUM>, and <NUM>, in accordance with some examples of this disclosure. Each of current sources <NUM>, <NUM>, and <NUM>, each of which being arranged on driver circuitry <NUM> on top of which light sources <NUM>, <NUM>, and <NUM> are mounted. In this scenario, light source <NUM> is arranged on top of current source <NUM>, light source <NUM> is arranged on top of current source <NUM> and light source <NUM> is arranged on top of current source <NUM>.

Each current source <NUM>, <NUM>, and <NUM> may be an NMOS power stage with the drain connected to supply voltage VCC, and with the source connected with the respective light sources <NUM>, <NUM>, and <NUM>. The gate of each NMOS power stage may be controlled via a corresponding error amplifier <NUM>, <NUM>, and <NUM>, and each error amplifier <NUM>, <NUM>, and <NUM> may be used to control the output current using an internal reference current. Each error amplifier <NUM>, <NUM>, and <NUM> may be enabled by a digital or by an analog signal.

In light of the foregoing, driver circuitry <NUM> may thus comprise a relatively large number of current sources and/or switches on the area available for a pixel cell (in case the driver circuitry is physically below the light source array). Examples presented herein in particular show how an efficient solution for the light source array and the underlying driver circuitry may be realized even if the driver circuitry is arranged on a silicon semiconductor device (e.g., single chip). Examples provided in particular cope with a high number of heat sources as well as heat gradients between current sources of the pixel cells.

Other examples presented herein allow providing driver circuitry comprising in particular at least one of the following: a communication interface for controlling the drivers for each pixel cell; an output current regulation with self-protection against over-current; an open-load and short to ground diagnostic functionality; and a low temperature sensitivity. In some examples, the communication interface may be part of buffer circuitry. This may in particular be achieved by distributing a control logic between a circuitry and the driver circuitry, both integrated on a semiconductor device. The circuitry may be arranged adjacent to the driver circuitry and the driver circuitry may take the same surface area than the light source array, which can be arranged on top of the driver circuitry as explained above. As an option, the circuitry may be arranged in an area adjacent or distant to the driver circuitry.

It may be challenging to efficiently drive the current sources of the driver circuitry, where each current source is placed adjacent to (or associated with) a pixel cell. As shown in the example described above, the distance between two pixel cells (e.g., less than <NUM>) may set forth limiting restrictions, which makes it difficult to electrically connect all current sources that are arranged below their associated light sources such that they can be driven by the circuitry of the semiconductor device.

<FIG> shows an exemplary driver circuitry <NUM> for light source <NUM>, in accordance with some examples of this disclosure. <FIG> may also show buffer circuitry configured to receive and deliver a bit stream to driver circuitry <NUM>. The buffer circuitry may include flip-flops <NUM> and <NUM>. Flip-flop <NUM> may be configured to receive a bit of a bit stream at the node labeled "D" and from the node labeled Data_i. When flip-flop <NUM> receives an active clock signal from the node labeled clk, flip-flop <NUM> may be configured to output the bit at the node labeled "Q". When flip-flop <NUM> receives an active clock signal from the node labeled Clk_update, flip-flop <NUM> may be configured to output the bit at the node labeled "Q". In some examples, the bit may enable error amplifier <NUM> to drive current source <NUM> and reference switch <NUM>.

Reference switch <NUM> may be configured to conduct a lower-amplitude electrical current than the electrical current conducted by current source <NUM>. In some examples, the KILIS factor between reference switch <NUM> and current source <NUM> may be one to fifty, although other factors may also be used. Driver circuitry <NUM> may be configured to output the reference current conducted by reference switch <NUM> at the node labeled "Iref". Current source <NUM> may conduct an electrical current from a power supply labeled VDDP, and driver circuitry <NUM> may output the electrical current at the node labeled OUT2.

A device of this disclosure may include monitor circuitry configured to determine a voltage drop across light source <NUM>. To determine the voltage drop across light source <NUM>, the monitor circuitry may deliver a control signal through the node labeled Pixel_selection to the control terminal of switch <NUM>. The control signal may cause switch <NUM> to transmit a voltage signal to a multiplexer (see <FIG>), where the voltage signal may indicate the voltage drop. The voltage drop across light source <NUM> may be referred to as the forward voltage of light source <NUM>. In some examples, the voltage drop across light source <NUM> may indicate the temperature of light source <NUM>, whether there is a short circuit across light source <NUM>, and/or whether there is an open circuit across light source <NUM>.

<FIG> shows an exemplary circuitry that may be arranged on a semiconductor device for two pixel cells N and N+<NUM>. In this example, circuitry <NUM> may supply an update signal UPD, a data signal DATA_I and a clock signal CLK. Pixel cell N may deliver a data signal DATA_I+<NUM> to the pixel cell N+<NUM>, and pixel cell N+<NUM> may deliver a data signal DATA_I+<NUM> to a subsequent pixel cell (not shown).

In practice, data signal DATA_I may be a bit stream, i.e., a sequence of binary signals (e.g., "<NUM>" and "<NUM>") that are conveyed to a shift register. Each cell of the shift register may include a D-flip-flop, e.g., D-flip-flop <NUM> for pixel N and D-flip-flop <NUM> for pixel N+<NUM>. In this example, data signal DATA_I may be connected to the D-input of D-flip-flop <NUM>, the Q-output of D-flip-flop <NUM> may be connected to the D-input of D-flip-flop <NUM>. Both D-flip-flops <NUM> and <NUM> are driven by clock signal CLK. Hence, a sequence of "<NUM>" and "<NUM>" values may be conveyed to D-flip-flops <NUM> and <NUM>, wherein with each clock cycle (rising edge) of clock signal CLK, the actual value stored in D-flip-flop <NUM> is shifted to subsequent D-flip-flop <NUM> and the subsequent value provided by data signal DATA_I is stored in D-flip-flop <NUM>. According to the example shown, a bit sequence of first <NUM>, then <NUM> is - after two clock cycles - stored in D-flip-flops <NUM> and <NUM> such that D-flip-flop <NUM> has a value "<NUM>" and D-flip-flop <NUM> has the value "<NUM>". D-flip-flops <NUM> and <NUM> may be a part of buffer circuitry <NUM>.

A light source, e.g., the light source for pixel N, may be driven via a terminal <NUM> of a register, e.g., D-flip-flop <NUM>. Similarly, a light source for pixel N+<NUM> may be driven via a terminal <NUM> of a register, e.g., D-flip-flop <NUM>. The D-input of D-flip-flop <NUM> may be connected to the Q-output of D-flip-flop <NUM> and the D-input of D-flip-flop <NUM> may be connected to the Q-output of D-flip-flop <NUM>. The enable (or clock) inputs of both D-flip-flops <NUM> and <NUM> may be connected to update signal UPD. When update signal UPD becomes "<NUM>" the value stored in D-flip-flop <NUM> may become visible at the Q-output of D-flip-flop <NUM> and hence may be used to drive the light source for this pixel N. Accordingly, the value stored in D-flip-flop <NUM> may become visible at the Q-output of D-flip-flop <NUM> and hence may be used to drive the light source of pixel N+<NUM>. Hence, the shift register exemplarily shown in <FIG> comprises two cells, wherein the cell for pixel N may include D-flip-flop <NUM> and register <NUM> and the cell for pixel N+<NUM> may include D-flip-flop <NUM> and register <NUM>.

<FIG> shows only an exemplary excerpt of a sequence of two pixel cells. This approach, however, may be applied to a sequence of more than two pixel cells, e.g., a column or a row of a matrix of pixels. In addition, several rows or columns may be connected and represented by an even longer shift register. Insofar, the shift register may be used for providing a data signal to all pixels of a column or line or even matrix and to update the column, line or matrix at once.

In some examples, it may be desirable for the frequency of clock signal CLK to be high enough to fill the shift registers for such sequence of pixels before the update signal UPD is activated and before the values stored at that time in the respective shift register are used to control the pixels of this sequence, e.g., column or row of the matrix of pixels. Hence, a high refresh rate for each pixel may result in a high resolution of a PWM/PDM/PFM dimming. Therefore, a high clock frequency may be advantageous to ensure that information can be stored in the flip-flop of the shift-register before triggering the update signal. In some examples, buffer circuitry may receive a frame of a bit stream in approximately five microseconds. At the end of a frame of the bit stream, the buffer circuitry may receive an active update signal, causing flip-flops <NUM> and <NUM> to deliver the respective bits to respective terminals <NUM> and <NUM>. Thus, the device may update the status of the light sources for every frame, which may last five microseconds in some examples.

By providing registers (e.g., D-flip-flops according to <FIG>) in daisy-chain fashion (one pixel driving the next one) and arranging those registers together with the respective pixel cells, a single line may suffice to convey data signal DATA_I to a sequence of pixels, whereas otherwise each pixel would require a separate connection to convey the data signal for controlling this pixel. It is noted that any sort of register or memory may be used to achieve the result described above. The register may be a flip-flop, a latch, register or any other element with a memorizing functionality.

<FIG> illustrates a graph of an update signal for two frames of a bit stream, in accordance with some examples of this disclosure. The update signal is described with respect to device <NUM> in <FIG>, although other devices and circuits in other FIGS. may also generate or receive update signals. Device <NUM> may include a communication serial interface consisting of a clock-, data-, and update-line based on a synchronous clock forward scheme. The clock signal, which may have the same frequency as the bit rate of bit stream <NUM>, where it is provided the clock to be used as reference to sample the data and update signals. A frame may include a new state of all of light sources <NUM>, and the update signal may mark the end of the frame, as well as any error-correction bits or error-checking bits. Device <NUM> may check incoming data for consistency, for example to determine if the frame length is correct. Device <NUM> may not store the incoming data, instead forwarding the new data to driver circuitry <NUM> when the frame ends. When the frame is complete and marked as valid, the new data may be applied to driver circuitry <NUM> and the states of the pixels are updated.

At the end of each frame of bit stream <NUM>, device <NUM> may generate an update signal. The high pulse of the update signal may indicate the end of a frame and/or that the frame is free of transmission errors. In some examples, device <NUM> may deliver the update signal to buffer circuitry <NUM> and snooping circuitry <NUM>. Device <NUM> may be configured to generate an update signal based on determining that a frame of bit stream <NUM> is complete and further based on not detecting any errors in the frame. Device <NUM> may be configured to check bit stream <NUM> for consistency, for example if frame length is correct.

During the time period that the update signal has low amplitude <NUM>, buffer circuitry <NUM> may be receiving Frame(n) of bit stream <NUM> and driver circuitry <NUM> may be driving light sources <NUM> based on Frame(n-<NUM>) of bit stream <NUM>. During the time period that the update signal has low amplitude <NUM>, buffer circuitry <NUM> may be receiving Frame(n+<NUM>) of bit stream <NUM> and driver circuitry <NUM> may be driving light sources <NUM> based on Frame(n) of bit stream <NUM>.

Buffer circuitry <NUM> may be configured to deliver the frame of bit stream <NUM> to driver circuitry <NUM> in response to receiving the update signal. In some examples, the phrase "receiving the update signal," as used herein, means receiving a high pulse of the update signal, such as one of pulses <NUM>, <NUM>, and <NUM>. Snooping circuitry <NUM> may be configured to cause monitor circuitry <NUM> to determine voltage drop <NUM> in response to receiving the update signal, i.e., receiving one of high pulses <NUM>, <NUM>, and <NUM>.

<FIG> is a conceptual block diagram of device <NUM>, in accordance with some examples of this disclosure. Buffer circuitry <NUM> ("frame buffer") may be configured to receive a first frame of bit stream <NUM>. As buffer circuitry <NUM> receives the first frame, snooping circuitry <NUM> may be configured to read bits 118A and 118B. Buffer circuitry <NUM> may be configured to hold and/or shift the first frame until buffer circuitry <NUM> receives an update signal. When buffer circuitry <NUM> receives the update signal, buffer circuitry <NUM> may be configured to deliver the first frame to driver circuitry <NUM> ("frame actual").

When driver circuitry <NUM> receives the first frame of bit stream <NUM>, driver circuitry <NUM> may be configured to drive light sources <NUM> based on the first frame. As driver circuitry <NUM> is driving light sources <NUM> based on the first frame, buffer circuitry <NUM> may be receiving a second frame of bit stream <NUM>. Driver circuitry <NUM> may be configured to store the first frame until buffer circuitry <NUM> and/or driver circuitry <NUM> receives an update signal. Driver circuitry <NUM> may be configured to update the states of light sources <NUM> based on each frame that driver circuitry <NUM> receives.

Buffer circuitry <NUM> may be implemented with a shift register acting as a frame buffer. In some examples, buffer circuitry <NUM> and/or driver circuitry <NUM> may include a shadow register holding the actual state of the pixels (see <FIG>). The data is shifted into a shift register and as soon as the phase shift is completed, the data is written into the shadow register during the high-phase or high pulse of the update signal. The output of the shadow register may be connected to the respective pixel cell: if all the shift registers and shadow registers are placed in the common part of the silicon the consequence may be an increase of area. The increase in area may result in usage of all of the available metal connection and therefore routing congestion issues.

The shift register and shadow registers may be distributed across the pixel matrix with a slice in each pixel cell: in this way each pixel driver may drive the next one in a sort of daisy-chain. <FIG> shows an example of a serial interface slice including a flip flop (shift) and a latch (store element) placed in each cell. As a consequence, there may be no information in the common circuitry about the status of the pixels in order to not have a bigger area overhead (overhead may be equal to die area outside matrix area that in theory is useless).

In some examples, the sequence of pixels to be checked can be defined externally by the system. External control may be affected by the latency of the communication interface, for example an inter-integrated circuit (I2C) interface running at <NUM> megabits per second. It may be desirable to synchronize the diagnosis to the on state or active state of the pixel, which may be cumbersome and ineffective, in some examples. If there are several matrices to be diagnosed, the system may experience a substantially increased burden.

Additionally or alternatively, another device may include an internal ADC. The light source state information may be stored locally in the pixel area in order to optimize the die area and channel routability over the matrix. In such a case, a device may be configured to generate internally a sequence of pixels to be monitored, for example via a round robin scheme. The internal logic may be configured to synchronize the execution of the diagnosis to the active state of the pixel, which may result in time lost waiting for the desired light source state. In general, this configuration may result in worse time performance of the navigation across the matrix. This configuration may be overcome by having a replica of matrix states in the common area, which may result in a substantial increase in die area.

<FIG> illustrates monitor circuitry <NUM> for determining a voltage drop across at least two light sources <NUM>, in accordance with some examples of this disclosure. At a system level, it may be important to have the option to monitor operating condition of the current sources, which may include, for example, the voltage drop across them. The system may be configured to use the diagnosis information to determine the optimal voltage supply in order to minimize the power dissipation. The output voltages of the current sources may not necessarily be directly accessible because the pixels may be covered by the light sources chip. The pixel under monitor may be selectable by the user via a dedicated register. Monitor circuitry <NUM> may include analog multiplexers such as multiplexers <NUM> and <NUM> in order to have the selected output node accessible. ADC <NUM> may convert the selected voltage for further processing by a digital signal processor or a microcontroller. ADC <NUM> may be integrated in driver circuitry <NUM> or monitor circuitry <NUM> together with control logic such as central logic circuitry <NUM>.

ADC <NUM> may convert the output voltage and/or the voltage drop across the current source. In some examples, a voltage comparator may be configured to compare the output voltage against a reference voltage. The system may be configured to request an ADC conversion for the selected pixel and/or to verify the status of the voltage comparator. The system may not know the light source state outside of the pixel cell and the control logic may be configured to determine which pixel is in an active state at that moment based on the bit values in a frame of the bit stream.

The system selects the pixel and the desired state for the conversion, and then the system requests an ADC conversion. One task of central logic circuitry <NUM> may be to synchronize the start of the ADC conversion to the actual state of the light sources. The state of the light source may not be known outside the pixel cell, and the central logic circuitry <NUM> may have to reconstruct such information. To avoid an overly burdensome reconstruction, snooping circuitry may look at or "snoop into" the incoming serial stream going to the shift register spread over the pixel matrix. The snooping circuitry may extract the bit corresponding to the pixel to be monitored. Additionally, the coherence with the matrix may be more likely because an invalid frame may not update the shadow register or the light source status flag. Central logic circuitry <NUM> may use the light source status flag to handle the ADC conversion, starting it in the right moment and eventually aborting it if the light source toggles during the conversion.

Central logic circuitry <NUM> may be configured to select a row and a column for a specific light source of light sources <NUM>. Central logic circuitry <NUM> may be configured to deliver control signals to multiplexers <NUM> and <NUM>. Multiplexer <NUM> may be configured to deliver an output signal to ADC <NUM> for conversion of the analog signal to a digital signal.

Multiplexers <NUM> may be configured to configured to receive, as inputs, voltage drop connections for each light source of light sources <NUM>. Each of light sources <NUM> may include an electrical connection to one of multiplexers <NUM>. As depicted in <FIG>, light sources <NUM> may include five rows and five columns. In the example of <FIG>, all of the light sources of a column may be electrically connected as inputs to one of multiplexers <NUM>. Central logic circuitry <NUM> may be configured to connect one of light sources <NUM> to ADC <NUM> through multiplexers <NUM> and <NUM>.

Central logic circuitry <NUM> may be configured to generate and/or receive inputs for row select and column select. For example, central logic circuitry <NUM> may select a specific light source at row one and column one. Central logic circuitry <NUM> may be configured to select the row and column based on the mapping of each of light sources <NUM>. In some examples, central logic circuitry <NUM> may be configured to determine the row and column of the specific light source and to transmit the row and column coordinates to mapping circuitry. The mapping circuitry may be configured to convert the row and column coordinates to a position of a specific bit in a frame of a bit stream. Snooping circuitry may be configured to read the value of the specific bit based on the position determined by the mapping circuitry.

The system may be simplified by letting the driver circuitry autonomously manage the light source forward voltage diagnostic. The master chip may request a conversion to a dedicated pixel in a defined, or requested, state and then either read back the converted digital value or an error message if feature implemented. If multiple driver circuits are present the synchronization may be relatively simple, as compared to other devices that lack snooping circuitry. The snooping circuitry may synchronize an embedded ADC to the light source status for an intelligent silicon substrate designed to drive a matrix including light sources. By reading bits as the buffer circuitry receives the bit stream, the snooping circuitry may be configured to determine the status of the LED under diagnosis and send the status to the ADC controller. In some examples, a transmission error may cause the snooping circuitry to not send the status to the ADC controller.

In some examples, a device of this disclosure may be part of an adaptive driving beam front light system for a vehicle. The device may also be used for lighting, automotive, aviation, and/or any other suitable applications. The snooping circuitry of this disclosure helps the system to manage the monitoring of the forward voltage drop of each of light sources. The system may use voltage-drop information as a temperature monitor and to improve the thermal management of the system, reducing either the worst case margins or the thermal dissipation structures.

<FIG> is block diagram of snooping circuitry <NUM> configured to look for an active bit, in accordance with some examples of this disclosure. In the example of <FIG>, snoop module <NUM> may be configured to receive a bit stream from a serial interface (SI). Snoop module <NUM> may also be configured to receive a position in the shift register of buffer circuitry. Snoop module <NUM> may be configured to count the position in the shift register to read a bit, looking for an active value (e.g., a "<NUM>") in the shift position. The shift position for a specific frame of the bit stream may be later (or after) in the bit stream than the previously stored shift position. In some examples, the current shift position may be one bit later in the bit stream than the previously stored shift position.

If snoop module <NUM> finds an active bit at the shift position, snoop module <NUM> may be configured to store the shift position in D flip flop <NUM>. If snoop module <NUM> does not find an active bit at the shift position, snoop module <NUM> may be configured to read the next bit in the frame. If snoop module <NUM> reaches the end of the frame without finding an active bit, snoop module <NUM> may be configured to roll back to the beginning of the bit stream in the next frame. Snoop module <NUM> may be configured to "roll back" to the beginning by reading the first bit of the next frame in response to determining that the last bit of the previous frame had an inactive value.

Snoop module <NUM> may be configured to generate a sample pulse at the end of an LED shift phase, which may be the end of the frame. In some examples, snoop module <NUM> may generate the sample pulse after the end of the bits in the frame but before any error-checking bits. Snoop module <NUM> may be configured to generate a valid pulse if snoop module <NUM> has found an active bit in the frame and if snoop module <NUM> receives an update signal indicating that the frame is valid.

D flip flop <NUM> may be configured to deliver the stored shift position to snoop module <NUM> and mapping circuitry <NUM>. Mapping circuitry <NUM> may be configured to convert the stored shift position (i.e., the stream position) to a row position and a column position. Mapping circuitry <NUM> may include a register or lookup table. Mapping circuitry <NUM> may be configured to deliver the row position and the column position to multiplexers (see <FIG>) to cause the multiplexers to deliver a voltage drop from a desired pixel to an ADC.

<FIG> is block diagram of snooping circuitry <NUM> including a snoop module and a diagnostics module, in accordance with some examples of this disclosure. <FIG> depicts the synchronization between the serial interface (SI) of snoop module <NUM> and the diagnostic clock domains. Dividing line <NUM> separates the clk_sci domain and the clk_sys domain. The valid signal may cause a multiplexer to deliver a position of a light source to D flip flop <NUM>. The valid signal may also cause circuitry <NUM> to control the sampling of the voltage drop across a light source, as indicated by the output of comparator <NUM>.

The frame timings are used also to generate the sample event of comparator <NUM>, which may include an analog comparator. The diagnostics module may use a valid signal to both update the coordinates and gate the sampling of comparator <NUM>. Comparator <NUM> may be connected to the pixel under diagnosis. Comparator <NUM> may be configured to compare the voltage drop across a light source to a threshold voltage. The output of comparator <NUM> may indicate whether the voltage drop is within an acceptable range. The acquisition chain may filter the output of comparator <NUM>, and D flip flops <NUM> may be configured to store and deliver indications of the voltage drop across the light source. D flip flops <NUM> may be configured to store a flag that indicates whether the light source has a voltage drop within the acceptable range. The internal bus may allow device <NUM> and/or another device to access the flag.

<FIG> is a timing diagram of an update signal <NUM> and a bit stream <NUM> including one or more inactive bits, in accordance with some examples of this disclosure. Update signal <NUM> may include a high pulse at the end of each frame of the bit stream, and after cyclic redundancy check (CRC) bits. In a first frame of a bit stream <NUM> received at a serial interface (SI), the ninth bit may have an active value. Register <NUM> may be configured to store the shift position for the ninth bit as or just after the snooping circuitry reads the ninth bit. During the second frame of the bit stream, the snoop module may be configured to start by reading the tenth bit of the frame. The tenth bit, eleventh bit, twelfth bit, and the thirteenth bit may have inactive values, causing the snoop module to continue reading up to the fourteenth bit, which may have an active value. Snoop module may be configured to store shift position fourteen based on determining that the fourteenth bit has an active value.

A high pulse in sample signal <NUM> may indicate the end of the bits in a frame. Register <NUM> may be configured to store the shifted position in response to the high pulse in sample signal <NUM>. Registers <NUM> and <NUM> may be configured to set status bits if filtered_comp is high. A high pulse in valid signal <NUM> may indicate that error-checking circuitry has not found any errors in the frame. If the frame is marked as valid, register <NUM> may be configured to store the row and column coordinates in response to the high pulse in valid signal <NUM>. The row and column coordinates may be multiplexer settings, as shown in <FIG>. The high pulse in sample signal <NUM> may cause frame_valid signal <NUM> to have a low value until the high pulse in valid signal <NUM>.

The high pulse in sample signal <NUM> at the end of the second frame may cause monitor circuitry to sample the position stored in register <NUM>, which corresponds to the ninth bit. The delay between storing the coordinates in register <NUM> at the beginning of the second frame and sampling the ninth bit at the end of the second frame may allow the output signal of a comparator to settle to reduce noise in the output signal. The delay may also allow for accurate sampling of the voltage drop by the ADC.

<FIG> and <FIG> are flowcharts illustrating example techniques for determining a voltage drop across a light source, in accordance with some examples of this disclosure. The techniques of <FIG> and <FIG> are described with reference to device <NUM> in <FIG>, although other components, such as semiconductor device <NUM> in <FIG> and snooping circuitry <NUM> in <FIG>, <FIG>, <FIG>, and <FIG>, may exemplify similar techniques.

The techniques of <FIG> include buffer circuitry <NUM> receiving bit stream <NUM> (<NUM>). Buffer circuitry <NUM> may include a shift register configured to receive a frame of bit stream <NUM>. Each flip flop of the shift register may be configured to receive each bit of the frame of bit stream <NUM>. When buffer circuitry <NUM> has received the frame of bit stream <NUM>, buffer circuitry <NUM> may be configured to receive an update signal indicating the end of the frame. The update signal may also indicate that the frame does not include any errors. In response to receiving the update signal, buffer circuitry <NUM> may be configured to deliver the frame of bit stream <NUM> to driver circuitry <NUM>.

The techniques of <FIG> further include snooping circuitry <NUM> reading inactive bit 118A (<NUM>). Snooping circuitry <NUM> may include counter circuitry configured to count the position of bit 118A in a frame of bit stream <NUM> as buffer circuitry <NUM> receives the frame. The counter circuitry may be configured to cause snooping circuitry <NUM> to read the value of bit 118A in response to counting the position of bit 118A. The snooping circuitry <NUM> is configured to read bit 118A as buffer circuitry <NUM> receives bit 118A. Bit 118A has an inactive bit value, such as '<NUM>', such that driver circuitry <NUM> is configured to refrain from driving a respective light source based on the value of bit 118A.

The techniques of <FIG> further include snooping circuitry <NUM> reading active bit 118B after reading bit 118A and based on a value of bit 118A (<NUM>). In some examples, bit 118B may immediately follow bit 118A. Bit 118B has an active bit value, such as ` <NUM>', such that driver circuitry <NUM> is configured to drive a respective light source based on the value of bit 118B. Snooping circuitry <NUM> may be configured to store the position of bit 118B in a register in response to determining that bit 118B has an active bit value.

The techniques of <FIG> further include driver circuitry <NUM> driving at least two light sources based on bit stream <NUM> (<NUM>). Driver circuitry <NUM> may be configured to receive the frame of bit stream <NUM> in response to buffer circuitry <NUM> receiving the update signal. In some examples, driver circuitry <NUM> may be configured to deliver an electrical current to a light source based on a high value of a corresponding bit in bit stream <NUM>. Driver circuitry <NUM> may be configured to refrain from delivering an electrical current to a light source based on a low value of a corresponding bit in bit stream <NUM>.

The techniques of <FIG> further include monitor circuitry <NUM> determining a voltage drop <NUM> across a light source based on a value of bit 118B (<NUM>). The light source may be mapped to bit 118B such that driver circuitry <NUM> may be configured to drive the light source based on the value of bit 118B. Additionally or alternatively, monitor circuitry <NUM> may be configured to determine the voltage drop across a current source in driver circuitry <NUM>, where the current source is configured to drive the light source. Monitor circuitry <NUM> may also be configured to determine whether there is a short circuit or open circuit across the light source.

The techniques of <FIG> include buffer circuitry <NUM> beginning to receive bit stream <NUM> for driving light sources <NUM> (<NUM>). Buffer circuitry <NUM> may be configured to receive bit stream <NUM> in descending order, such that buffer circuitry <NUM> first receives a bit corresponding to the last of light sources <NUM>. The techniques of <FIG> further include snooping circuitry <NUM> incrementing a counter value for each bit of bit stream <NUM> until a specific value is reached (<NUM>). Snooping circuitry <NUM> may be configured to clear the counter value at the end of each frame. The counter value may be a digital value stored by counter circuitry of snooping circuitry <NUM>.

The techniques of <FIG> further include snooping circuitry <NUM> reading a first bit when the specific value is reached (<NUM>). If the first bit is an active bit (<NUM>), the techniques of <FIG> further include determining the voltage drop across a light source corresponding to the first bit (<NUM>). If the first bit is not an active bit, the techniques of <FIG> further include snooping circuitry <NUM> incrementing the counter value and reading a second bit (<NUM>). The second bit may immediately follow the first bit in bit stream <NUM>.

If the second bit is an active bit (<NUM>), the techniques of <FIG> further include determining the voltage drop across a light source corresponding to the second bit (<NUM>). If the second bit is not an active bit, the techniques of <FIG> further include snooping circuitry <NUM> incrementing the counter value and reading a third bit (<NUM>).

If the third bit is an active bit (<NUM>), the techniques of <FIG> further include determining the voltage drop across a light source corresponding to the third bit (<NUM>). If the third bit is not an active bit, the techniques of <FIG> further include snooping circuitry <NUM> incrementing the counter value and reading bits until an active bit is reached (<NUM>). If snooping circuitry <NUM> reaches the end of a frame of bit stream <NUM> without reading an active bit, snooping circuitry <NUM> may be configured to read the first bit at the beginning of the next frame of bit stream <NUM>.

The techniques of this disclosure may be implemented in a device or article of manufacture comprising a computer-readable storage medium. The term "processing circuitry," as used herein may refer to any of the foregoing structure or any other structure suitable for processing program code and/or data or otherwise implementing the techniques described herein. Elements of device <NUM>, buffer circuitry <NUM>, driver circuitry <NUM>, monitor circuitry <NUM>, snooping circuitry <NUM>, and/or controller circuitry <NUM> may be implemented in any of a variety of types of solid state circuit elements, such as CPUs, CPU cores, GPUs, digital signal processors (DSPs), application-specific integrated circuits (ASICs), a mixed-signal integrated circuits, field programmable gate arrays (FPGAs), microcontrollers, programmable logic controllers (PLCs), programmable logic device (PLDs), complex PLDs (CPLDs), a system on a chip (SoC), any subsection of any of the above, an interconnected or distributed combination of any of the above, or any other integrated or discrete logic circuitry, or any other type of component or one or more components capable of being configured in accordance with any of the examples disclosed herein. Processing circuitry may also include analog components arranged in a mixed-signal IC.

Device <NUM>, buffer circuitry <NUM>, driver circuitry <NUM>, monitor circuitry <NUM>, snooping circuitry <NUM>, and/or controller circuitry <NUM> may include memory. One or more memory devices of the memory may include any volatile or non-volatile media, such as a RAM, ROM, non-volatile RAM (NVRAM), electrically erasable programmable ROM (EEPROM), flash memory, and the like. One or more memory devices of the memory may store computer readable instructions that, when executed by the processing circuitry, cause the processing circuitry to implement the techniques attributed herein to the processing circuitry.

Elements of device <NUM>, buffer circuitry <NUM>, driver circuitry <NUM>, monitor circuitry <NUM>, snooping circuitry <NUM>, and/or controller circuitry <NUM> may be programmed with various forms of software. The processing circuitry may be implemented at least in part as, or include, one or more executable applications, application modules, libraries, classes, methods, objects, routines, subroutines, firmware, and/or embedded code, for example. The processing circuitry may be configured to receive voltage signals, determine switching frequencies, and deliver control signals.

Claim 1:
A device (<NUM>) comprising:
at least two light sources (<NUM>);
a buffer circuitry (<NUM>) configured to receive a bit stream (<NUM>), wherein the bit stream (<NUM>) has at least a first frame and a second frame that follows the first frame;
a driver circuitry (<NUM>) configured to:
receive the bit stream (<NUM>) from the buffer circuitry (<NUM>), and
drive a corresponding light source of the at least two light sources (<NUM>) based on a bit value of a respective bit of the first frame of the bit stream (<NUM>) as the buffer circuitry (<NUM>) is receiving the second frame;
a monitor circuitry (<NUM>) configured to determine a voltage drop (<NUM>) across each light source of the at least two light sources (<NUM>) based on the bit value of the respective bit of the first frame while the driver circuitry (<NUM>) is driving the respective light source;
characterized by
a snooping circuitry (<NUM>) configured to:
read, as the buffer circuitry (<NUM>) is receiving the first frame, a first bit (118A) of the first frame of the bit stream (<NUM>) when the first bit has an inactive value,
read a second bit (118B) of the first frame of the bit stream (<NUM>) and when the second bit has an active value, cause the monitor circuitry (<NUM>) to determine a voltage drop (<NUM>) across the second light source of the at least two light sources (<NUM>) based on the active value of the second bit (118B) of the first frame while the driver circuitry (<NUM>) is driving the second light source,
wherein the inactive value of the first bit (118A) indicates that the driver circuitry (<NUM>) will not drive the first light source of the at least two light sources (<NUM>) as the buffer circuitry (<NUM>) is receiving the second frame,
wherein the active value of the second bit (118B) indicates that the driver circuitry (<NUM>) will drive the second light source of the at least two light sources (<NUM>) as the buffer circuitry (<NUM>) is receiving the second frame, and
wherein the first light source is different than the second light source.