The present disclosure relates generally to touch and/or presence-based display systems, and more particularly to display controllers with display sensor diagnostic capabilities.
Capacitance sensing systems can sense electrical signals generated on electrodes that reflect changes in capacitance. Such changes in capacitance can indicate a touch event such as physical contact of or the proximity of an object to particular electrodes. Capacitive sensor arrays work by measuring the capacitance of a capacitive sensor (e.g., an electrode) and evaluating for a delta in capacitance indicating a touch or presence of a conductive object. When a conductive object (e.g., a finger, hand, or other object) comes into contact or close proximity with a capacitive sensor, the capacitance changes and the conductive object is detected. The capacitance changes can be measured by an electrical circuit. The electrical circuit converts the signals corresponding to measured capacitances of the capacitive sensors in the array into digital values. The measured capacitances are generally received as currents or voltages that are integrated and converted to the digital values.
Capacitive sensors are widely used in modern customer applications, providing user interface options in existing products. Capacitive sensors may be used to replace mechanical buttons, dials/knobs, and other similar mechanical user interface controls. The use of capacitive sensors may replace the functionality of complicated mechanical switches and buttons, providing reliable operation under harsh conditions. In addition, capacitive sensors can range from a single button to a large number arranged in the form of a capacitive sense array for a touch-sensing surface. Capacitive sensor arrays are ubiquitous in today's industrial and consumer markets. They can be found in automobiles, cellular phones, GPS devices, set-top boxes, cameras, computer screens, MP3 players, digital tablets, and the like.
There are two typical types of capacitance generally used in capacitive sensing: 1) mutual capacitance where the capacitance-sensing circuit measures a capacitance formed between two sensors coupled to the capacitance-sensing circuit; and 2) self-capacitance where the capacitance-sensing circuit measures a capacitance of one sensor. A touch panel has a distributed load of capacitance of both types (1) and (2) and some touch solutions sense both capacitances either uniquely or in hybrid form with its various sense modes.
The present embodiments are illustrated by way of example, and not of limitation, in the figures of the accompanying drawings.
In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present embodiments. It will be evident, however, to one skilled in the art that the present embodiments may be practiced without these specific details. In other instances, well-known circuits, structures, and techniques are not shown in detail, but rather in a block diagram in order to avoid unnecessarily obscuring an understanding of this description.
Reference in the description to “one embodiment” or “an embodiment” means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment. The phrase “in one embodiment” located in various places in this description does not necessarily refer to the same embodiment.
Capacitive sensor arrays are ubiquitous in today's industrial and consumer markets. Capacitive sense elements may be used to replace the functionality of mechanical buttons, dials/knobs, and other similar mechanical user interface controls. However, capacitive sense arrays are subject to faults and defects. For example, capacitive sense arrays may be subject to shorts, where multiple sensors are shorted, either on the panel itself or at the bonding of the integrated circuit where the sensors are realized. Another example of a fault is an “open,” which is a broken connection between traces of a sensor. Because these faults can affect the performance of the touch sensing display, detection of such faults, particularly in contexts such as automotive displays, is important. Sensor diagnostics procedures must be able to execute at run-time of the display module and, while running, must not disturb the displayed image.
The structure of a touch sensing display panel may include a number of layers such as a cover glass, a color filter glass, insulation, a color filter, one or more polarizers, a liquid crystal (LCD) layer, a common layer (VCOM), a layer where a display driver may be implemented, and a layer where a touch screen controller may be implemented. There are numerous ways that a display panel may be realized. For example, in an on-cell configuration, both of the top (TX & RX) sense layers are above the color filter glass substrate, but below the top polarizer. The LCD layers do not include the display driver or touch screen controller (capacitive sensing) functionality, and thus dedicated layers are required for the display driver or touch screen controller. In a hybrid in-cell configuration, the structure includes one capacitive sensing layer above the color filter glass and one below. The LCD layers can include the touch screen controller functionality but a separate layer is still required for the display driver functionality. In a true in-cell configuration, the structure integrates the touch screen controller and display driver functionality within the VCOM layer, and no additional layers are required.
The embodiments described herein are directed at detecting the presence of faults such as shorts and/or opens within a touch sensitive display panel. The display panel may include a touch screen comprising a capacitive sensor array and a touch screen controller operatively coupled to the touch screen. The sensor array may comprise a plurality of capacitive sensors and the touch screen controller may be operatively coupled to the capacitive sensor array in any appropriate configuration (e.g., true in-cell, on-cell, hybrid in-cell etc.).
Described herein are devices, methods, and systems that detect the presence of faults such as shorts and/or opens within a touch sensitive display panel. In one embodiment, a touch screen controller is disclosed, the touch screen controller comprising: one or more receive channels, where each receive channel is configured to scan a corresponding group of sensors of a plurality of sensors. The touch screen controller further comprises a plurality of multiplexers, and each multiplexer is configured to selectively couple a respective sensor of the plurality of sensors to a corresponding receive channel or a reference voltage. The touch screen controller further comprises a processing device configured to: detect one or more shorts using DC current sensing as well as detect one or more opens based on AC current sensing of each of the one or more receive channels.
In some embodiments, the capacitive sense array 110 includes electrodes 111(1)-111(L) (where L is a positive integer) that are disposed as a two-dimensional matrix (also referred to as an XY matrix). The capacitive sense array 110 is coupled to the touch screen controller 120 via one or more analog buses 115 that transport multiple signals. The capacitive sense array 110 may be a multi-dimension capacitive sense array, organized as rows and columns. In yet other embodiments, the capacitive sense array 110 is non-transparent capacitive sense array (e.g., PC touchpad). The capacitive sense array 110 may be disposed to have a flat surface profile. Alternatively, the capacitive sense array 110 may have non-flat surface profiles. Alternatively, other configurations of capacitive sense arrays may be used. For example, instead of vertical columns and horizontal rows, the capacitive sense array 110 may have a hexagon arrangement, or the like, as would be appreciated by one of ordinary skill in the art having the benefit of this disclosure. In one embodiment, the capacitive sense array 110 may be included in an ITO panel or a touch screen panel.
In some embodiments, the touch screen controller 120 may include one or more receive (RX) channels 125(1)-125(N) to measure charge on the electrodes 111 (also referred to herein as “sensors”). There are various methods of measuring capacitance on the capacitive sense array 110, such as self-capacitance sensing and mutual capacitance sensing. RX channels 125 may use any appropriate technique for measuring capacitance. For example, the RX channels 125 may each include a relaxation oscillator or other means to measure capacitance and a counter or timer to measure the oscillator output. Alternatively, the RX channels 125 may each include an operational amplifier, a switch, and an integrator capacitor. Other capacitance sensing methods known by those skilled in the art may also be utilized. In an embodiment, the touch screen controller 120 is of the Cypress PSoC® family of micro-controllers developed by Cypress Semiconductor™ Corporation, of San Jose, Calif. The RX channels 125 measure the signals representing the self-capacitance of the electrodes 111(1)-111(L). The touch screen controller 120 also includes a converter circuit (not shown), such an analog-to-digital converter (ADC) that converts the measured signals into digital values. The touch screen controller 120 may further include software components to convert the count value (e.g., capacitance value) into a touch detection decision (also referred to as switch detection decision) or relative magnitude. It should be noted that there are various known methods for measuring capacitance, such as current versus voltage phase shift measurement, resistor-capacitor charge timing, capacitive bridge divider, charge transfer, successive approximation, sigma-delta modulators, charge-accumulation circuits, field effect, mutual capacitance, frequency shift, or other capacitance measurement algorithms. It should be noted however, that in some embodiments, instead of evaluating the raw counts relative to a threshold, the touch screen controller 120 may be evaluating other measurements to determine the user interaction. For example, in the touch screen controller 120 having a sigma-delta modulator, the touch screen controller 120 is evaluating the ratio of pulse widths of the output (i.e., density domain), instead of the raw counts being over or under a certain threshold. It should be noted that the RX channels 125 may be one type of sensing channel that can be configured for different operational modes. For example, the RX channels 125 in a self-capacitance mode are configured as sensing channels for driving and sensing an electrode 111 to measure a self-capacitance of the electrode relative to ground or any appropriate reference voltage. Although embodiments of the present disclosure are discussed with respect to self-capacitance sensing, the RX channels 125 can also be configured to be sensing channels for a mutual capacitance mode in which a mutual capacitance between a first electrode (RX) and a second electrode (TX) is measured. Alternatively, the RX channels can be configured for a self-capacitance and mutual capacitance mode in which self-capacitance and mutual capacitance can be measured concurrently or sequentially.
The touch screen controller 120 is configured to detect one or more touches on the touch screen 105. The touch screen controller 120 can detect conductive objects, such as fingers, a passive stylus, an active stylus, or any combination thereof. As used herein, detecting a conductive object may refer to detecting the proximity of a conductive object to the touch screen 105 or actual physical contact between the conductive object and the touch screen 105. The touch screen controller 120 can measure touch data on the capacitive sense array 110.
The sensors 111 may be electrodes of conductive material, such as copper, while the touch screen 105 is an ITO panel. The sensors 111 can be configurable to allow the touch screen controller 120 to measure self-capacitance, mutual capacitance, or any combination thereof. In another embodiment, the touch data is a 2D capacitive image of the capacitive sense array 110. In one embodiment, when the touch screen controller 120 measures mutual capacitance of the touch-sensing device (e.g., capacitive sense array 110), the touch screen controller 120 obtains a 2D capacitive image of the touch-sensing device and processes the data for peaks and positional information. In another embodiment, the touch screen controller 120 obtains a capacitance touch signal data set, such as from the sense array 110, and finger detection firmware executing on the touch screen controller 120 identifies data set areas that indicate touches, detects and processes peaks, calculates the coordinates, or any combination therefore. The firmware identifies the peaks using the embodiments described herein. The firmware can calculate a precise coordinate for the resulting peaks. In one embodiment, the firmware can calculate the precise coordinates for the resulting peaks using a correlation algorithm, which calculates a correlation coefficient of each possible angle, and identifies the angle having the highest correlation coefficient as the position of the touch. The X/Y coordinates of the peak may describe the exact position of the touch, as described in further detail herein. Alternatively, other coordinate interpolation algorithms may be used to determine the coordinates of the resulting peaks. The touch screen controller 120 can report the precise coordinates to a host computing device (not shown), as well as other information.
In one embodiment, operations of the touch screen controller 120 may be implemented in on-board firmware. In other embodiments, they may be implemented in hardware or software. For example, the operations of the touch screen controller 120 may be stored as instructions in memory 135, located separately from touch screen controller 120 (e.g., because the high voltage display driver process is not compatible with known flash technology) which the touch screen controller 120 may execute to perform its functions. For example, touch screen controller 120 may include one or more processing devices 130 (a single processing device is illustrated in
In another embodiment, instead of performing the operations of the processing device 130 in the touch screen controller 120, the touch screen controller 120 may send the raw data or partially-processed data to the host computing device 140. The host computing device 140 (hereinafter referred to as “the host 140”) may include logic that performs some or all of the operations of the processing device 130. Operations of the decision logic may be implemented in firmware, hardware, software, or a combination thereof. The host 140 may include a high-level Application Programming Interface (API) in applications that perform routines on the received data, such as compensating for sensitivity differences, other compensation algorithms, baseline update routines, start-up and/or initialization routines, interpolation operations, or scaling operations. The operations described with respect to the processing device 130 may be implemented in the logic, applications, or in other hardware, software, and/or firmware of the host 140. The host 140 may also include non-sensing actions hardware or software which may be used to process and/or receive/transmit data to and from the host. For example, additional components may be implemented to operate with the touch screen controller 120 along with the capacitive sense array 110 (e.g., keyboard, keypad, mouse, trackball, LEDs, displays, or other peripheral devices).
In an embodiment, the sensors 111 are configured in rows and columns, respectively. It should be noted that the rows and columns of sensors 111 can be configured by the touch screen controller 120 as individual electrodes for self-capacitance measurements. The touch screen controller 120 via e.g., a multiplexer, can configure the electrodes 111 as RX electrodes for self-capacitance sensing, and one or more electrodes as barrier electrodes. In some embodiments, the touch screen controller 120 can also configure some electrodes 111 to be driven by a shield signal.
In some embodiments, the touch screen 105 may include multiple touch screen controllers 120, which may all reside with the capacitive sense array 110 on a common carrier substrate such as, for example, an integrated circuit (IC) die substrate, or a multi-chip module substrate. In these embodiments, a first touch screen controller 120 may act as a master controller, and may function to scan certain sensors of the capacitive sense array 110, and the other touch screen controllers 120X may act as slave controllers to scan the remaining sensors of the capacitive sense array 110.
Descriptions of touch screen controller 120 may be generated and compiled for incorporation into an integrated circuit. For example, behavioral level code describing the touch screen controller 120, or portions thereof, may be generated using a hardware descriptive language, such as VHDL or Verilog, and stored to a machine-accessible medium (e.g., CD-ROM, hard disk, floppy disk, etc.). Furthermore, the behavioral level code can be compiled into register transfer level (“RTL”) code, a netlist, or even a circuit layout and stored to a machine-accessible medium. The behavioral level code, the RTL code, the netlist, and the circuit layout may represent various levels of abstraction to describe touch screen controller 120.
In one embodiment, the touch screen display 100 is used in a tablet computer. Alternatively, the electronic device may be used in other applications, such as a notebook computer, a mobile handset, a personal data assistant (“PDA”), a keyboard, a television, a remote control, a monitor, a handheld multi-media device, a handheld media (audio and/or video) player, a handheld gaming device, a signature input device for point of sale transactions, an eBook reader, global position system (“GPS”) or a control panel. The embodiments described herein are not limited to touch screens or touch-sensor pads for notebook implementations, but can be used in other capacitive sensing implementations, for example, the sensing device may be a touch-sensor slider (not shown) or touch-sensor buttons (e.g., capacitance sensing buttons). In one embodiment, these sensing devices include one or more capacitive sensors or other types of capacitance-sensing circuitry. The operations described herein are not limited to notebook pointer operations, but can include other operations, such as lighting control (dimmer), volume control, graphic equalizer control, speed control, or other control operations requiring gradual or discrete adjustments. It should also be noted that these embodiments of capacitive sensing implementations may be used in conjunction with non-capacitive sensing elements, including but not limited to pick buttons, sliders (ex. display brightness and contrast), scroll-wheels, multi-media control (ex. volume, track advance, etc.) handwriting recognition, and numeric keypad operation.
As discussed in further detail with respect to
Each multiplexer 204 may couple a respective sensor 205 to an RX channel 201 corresponding to the sensor group the respective sensor 205 is a part of. More specifically, each multiplexer 204 may selectively couple a sensor 205 to a corresponding RX channel 201, the VCOM generator 202, and the shield generator 203 simultaneously, or to a ground (GND). In some embodiments, each multiplexer 204 may selectively couple a sensor 205 to a corresponding RX channel 201, the VCOM generator 202, and the shield generator 203 simultaneously, or to a programmable DC source (e.g., the shield generator 203). In this way, each RX channel 201 may couple to and scan each sensor 205 in the RX channel 201's sensor group sequentially. Hereinafter, the RX channels 201 are addressed by index i=[1; N]. Hereinafter, the multiplexers 204 and the sensors 205 are addressed by two indices (i, j), where the first index, i, defines the RX channel index the corresponding multiplexer and sensor can be connected to (i=[1; N]), and where the second index, j, defines the sensor index within i-th sensor group the corresponding multiplexer and sensor belong to (j=[1; M]). When RX channel 201(1) is coupled to sensor 205(1,1) via multiplexer 204(1,1), multiplexers 204(1,2)-204(1,M) may couple sensors 205(1,2)-205(1,M) to GND (or a programmable DC source). Similarly, when RX channel 201(1) is coupled to sensor 205(1,2) via multiplexer 204(1,2), other multiplexers 204(1,1)-204(1,M), excluding 204(1,2), may couple other sensors 205(1,1)-205(1,M), excluding 205(1,2), to GND or a programmable DC source. Both the GND and a programmable DC source may be referred to as examples of a reference voltage.
In some embodiments, the touch screen controller 200 may perform short detection using DC current sensing between a sensor connected to an RX channel and grounded sensors. A short creates a current path from an enabled RX channel to GND, which affects the ADC conversion result. Legacy on-cell shorts testing technology requires a scan per sensor (with the rest sensors grounded). Thus, if an in-cell panel consists of 960 sensors, then a shorts test will take 960 scans using the legacy technique.
As can be seen, for an in-cell panel with 960 sensors, and touch screen controller 200 having 160 RX channels (N=160) and 1:6 MUX ratio (M=6), the number of scans required may be given as M+N=6+160=166. Therefore, the test time may be reduced ˜M times compared to the legacy test technique which requires M×N=6×160=960 scans.
In some embodiments, if the grounding of unused sensors impacts the picture on display, instead of grounding unused sensors, touch screen controller 200 may drive them (and any other nodes that define parasitic capacitance seen by the RX channels 201) with a programmable constant voltage produced by the shield generator 203. Touch screen controller 200 may modulate the compensation signal of the shield generator 203 so that the difference in ADC readings between normal sensors and a broken sensor is detectable and can be determined algorithmically. In some embodiments, the touch screen controller 200 may use some intermediate voltage close to the touch scan reference voltage for the compensation signal.
As can be seen, the use of DC current sensing for short testing and diagnosis does not require additional hardware, but cannot be performed as part of a standard touch scan and requires a separate diagnostics scan.
The second method of testing for shorts utilizes individual DC offset voltages (programmable or constant) for each sensing channel. The use of individual DC offset voltages allows for short diagnostics to be performed in parallel during a scan.
When the touch information is accumulated for a sensor 205 during the scan, the magnitudes of even and odd samples (half periods) are summed and added. The touch response counts for a scan of a particular sensor on an RX channel 201 are thus calculated as:
T
DATA
=ΣN
EVEN
+ΣN
ODD
Detecting a short is based on the DC leakage current, given as the difference between even and odd sample magnitudes. Therefore, the DC leakage current for a scan of a particular sensor on an RX channel 201 is calculated as:
DC
DATA
=ΣN
EVEN
−ΣN
ODD
By contrast, the “channel-to-channel” graph shows that the half period data for both RX channels 201(1) and 201(2) is asymmetrical, thus indicating a channel-to-channel sensor short (indicated by the leakage resistance (RL) shown in
The “channel-to-shield” graph indicates half period data of RX channels 201(1) and 201(2) when there is a short (indicated by the leakage resistance (RL) shown in
In some embodiments, the use of individual DC offset voltages for short testing and diagnosis can be combined with correlated double sampling. The touch screen controller 200 may function to switch the DC offsets for each RX channel 201 ON and OFF. In this way, the touch screen controller 200 may calculate each sensor data half period imbalance twice, once when the DC offset is turned ON and once when the DC offset is turned OFF. For example, referring to
This concept allows canceling any RX channel internal data imbalance, e.g. due to the positive/negative IDAC currents mismatches, attenuator imperfections, etc. More specifically, during actual operation, the even/odd samples of half period data for an RX sensing channel are not ideally symmetrical, even if there are no shorted sensors. Due to manufacturing variances (such as poor matching of pos/neg baseline compensation iDAC sources, poor matching of attenuator gain for pos/neg current directions, and/or poor matching of pos/neg charge balancing iDAC sources, etc.), RX channel gain and/or offset may differ for positive and negative polarities of input sensing current. This causes inherent samples asymmetry (internal data imbalance). Although calibration procedures exist that allow for minimizing internal imbalance, some limited value still remains. This residual imbalance value may be treated by the diagnostics FW (touch screen controller 200) as a false short. However, use of the correlated double sampling technique (doing two readings with Voff1 OFF and ON and taking difference) cancels internal data imbalance value from the measurements. Therefore, only the imbalance data produced by the short remains in difference counts:
(1) Voff1 is OFF. Here ADC samples contain information about internal imbalance.
(2) Voff1 is ON. Here ADC samples contain data of internal imbalance+imbalance caused by a short.
If we take difference (2)−(1), only imbalance data caused by a short remains.
As can be seen, the use of individual DC offset voltages for short testing and diagnosis allows the short testing to be performed simultaneously with a touch scan (e.g., as part of the touch scan), and does not require a separate diagnostics scan. However, additional hardware in the form of programmable DC offset sources for each RX channel 201 is required to implement individualized DC offset voltages for each RX channel 201.
The touch screen controller 200 of
During operation of in-cell panels, opens testing and detection may be done with capacitive sensing. However, during a scan of the sensors 111 (e.g., a capacitive sensing time window), the shield generator 203 may apply a compensation signal (e.g., a copy of the waveform of the sensors 205 driven by RX channels 201) to gate lines and data lines of the display (See
After the baseline capacitance (Cp) is restored, the touch screen controller 200 can verify if the ADC readings are within normal operation range limits. The touch screen controller 200 reports a test failure if the measured data exceeds the operation range limits. The touch screen controller 200 may use reference data from a panel that is known to be free of opens/shorts to establish limits on the operation range for purposes of comparison.
Referring also to
Touch screen controller 200 may then commence the second stage of the DC current sensing method wherein the touch screen controller 200 may detect shorts between sensor groups. The touch screen controller 200 may perform N scan sets sequentially, where for each scan set, a single channel 201 is connected to all sensors 205 (indicated in
Referring also to
At block 910, the touch screen controller 200 may initiate a touch scan of the sensors 205 (e.g., to detect the capacitance values therefrom). More specifically, the touch screen controller 200 may initiate a first scan set wherein a first sensor of (the sensor group corresponding to) each available RX channel 201 is scanned in parallel (the sensors being scanned in each scan indicated as shaded sensors in
At block 920, the touch screen controller 200 may deactivate the offset voltage sources on each channel and at block 925 may run another touch scan. At block 930, the touch screen controller 200 may determine the half period imbalance for each sensor 205 and calculate the change in imbalance (difference between half period imbalance with and without offset voltages) for each sensor 205. At block 940, the touch screen controller 200 may determine whether the difference in half period imbalance for each sensor 205 is greater than or less than a threshold difference. If the difference in half period imbalance for all sensors 205 is less than the threshold, then touch screen controller 200 may report that the test is successful and that no shorts were detected. If the difference in half period imbalance for any sensors 205 is greater than the threshold, then touch screen controller 200 may determine that a short has been detected and report the test as failed.
Referring also to
During operation of in-cell panels, opens testing and detection may be done with capacitive sensing. However, during a scan of the sensors 111 (e.g., a capacitive sensing time window), the shield generator 203 may apply a compensation signal (e.g., a copy of the waveform of the sensors 205 driven by RX channels 201) to gate lines and data lines of the display (See
After the baseline capacitance (Cp) is restored, the touch screen controller 200 may perform a touch scan at block 1015 and may verify if the ADC readings (raw counts) are within normal operation range limits at block 1020. The touch screen controller 200 reports a test failure if the measured data exceeds the operation range limits. The touch screen controller 200 may use reference data from a panel that is known to be free of opens/shorts to establish limits on the operation range for purposes of comparison.
The core architecture 1100 may also include a CHub (core hub) 1116, including a bridge 1118 and a DMA controller 1120 that is coupled to the microcontroller 1102 via bus 1122. The CHub 1116 may provide the primary data and control interface between the microcontroller 1102 and its peripherals (e.g., peripherals) and memory, and a programmable core 1124. The DMA controller 1120 may be programmed to transfer data between system elements without burdening the CPU core 1104. In various embodiments, each of these subcomponents of the microcontroller 1102 and CHub 1116 may be different with each choice or type of CPU core 1104. The CHub 1116 may also be coupled to shared SRAM 1126 and an SPC (system performance controller) 1128. The private SRAM 1112 is independent of the shared SRAM 1126 that is accessed by the microcontroller 1102 through the bridge 1118. The CPU core 1104 accesses the private SRAM 1112 without going through the bridge 1118, thus allowing local register and RAM accesses to occur simultaneously with DMA access to shared SRAM 1126. Although labeled here as SRAM, these memory modules may be any suitable type of a wide variety of (volatile or non-volatile) memory or data storage modules in various other embodiments.
In various embodiments, the programmable core 1124 may include various combinations of subcomponents (not shown), including, but not limited to, a digital logic array, digital peripherals, analog processing channels, global routing analog peripherals, DMA controller(s), SRAM and other appropriate types of data storage, IO ports, and other suitable types of subcomponents. In one embodiment, the programmable core 1124 includes a GPIO (general purpose IO) and EMIF (extended memory interface) block 1130 to provide a mechanism to extend the external off-chip access of the microcontroller 1102, a programmable digital block 1132, a programmable analog block 1134, and a special functions block 1136, each configured to implement one or more of the subcomponent functions. In various embodiments, the special functions block 1136 may include dedicated (non-programmable) functional blocks and/or include one or more interfaces to dedicated functional blocks, such as USB, a crystal oscillator drive, JTAG, and the like.
The programmable digital block 1132 may include a digital logic array including an array of digital logic blocks and associated routing. In one embodiment, the digital block architecture is comprised of UDBs (universal digital blocks). For example, each UDB may include an ALU together with CPLD functionality.
In various embodiments, one or more UDBs of the programmable digital block 1132 may be configured to perform various digital functions, including, but not limited to, one or more of the following functions: a basic I2C slave; an I2C master; a SPI master or slave; a multi-wire (e.g., 3-wire) SPI master or slave (e.g., MISO/MOSI multiplexed on a single pin); timers and counters (e.g., a pair of 8-bit timers or counters, one 16 bit timer or counter, one 8-bit capture timer, or the like); PWMs (e.g., a pair of 8-bit PWMs, one 16-bit PWM, one 8-bit deadband PWM, or the like), a level sensitive I/O interrupt generator; a quadrature encoder, a UART (e.g., half-duplex); delay lines; and any other suitable type of digital function or combination of digital functions which can be implemented in a plurality of UDBs.
In other embodiments, additional functions may be implemented using a group of two or more UDBs. Merely for purposes of illustration and not limitation, the following functions can be implemented using multiple UDBs: an I2C slave that supports hardware address detection and the ability to handle a complete transaction without CPU core (e.g., CPU core 1104) intervention and to help prevent the force clock stretching on any bit in the data stream; an I2C multi-master which may include a slave option in a single block; an arbitrary length PRS or CRC (up to 32 bits); SDIO; SGPIO; a digital correlator (e.g., having up to 32 bits with 4× over-sampling and supporting a configurable threshold); a LINbus interface; a delta-sigma modulator (e.g., for class D audio DAC having a differential output pair); an I2S (stereo); an LCD drive control (e.g., UDBs may be used to implement timing control of the LCD drive blocks and provide display RAM addressing); full-duplex UART (e.g., 7-, 8- or 9-bit with 1 or 2 stop bits and parity, and RTS/CTS support), an IRDA (transmit or receive); capture timer (e.g., 16-bit or the like); deadband PWM (e.g., 16-bit or the like); an SMbus (including formatting of SMbus packets with CRC in software); a brushless motor drive (e.g., to support 6/12 step commutation); auto BAUD rate detection and generation (e.g., automatically determine BAUD rate for standard rates from 1200 to 115200 BAUD and after detection to generate required clock to generate BAUD rate); and any other suitable type of digital function or combination of digital functions which can be implemented in a plurality of UDBs.
The programmable analog block 1134 may include analog resources including, but not limited to, comparators, mixers, PGAs (programmable gain amplifiers), TIAs (trans-impedance amplifiers), ADCs (analog-to-digital converters), DACs (digital-to-analog converters), voltage references, current sources, sample and hold circuits, and any other suitable type of analog resources. The programmable analog block 1134 may support various analog functions including, but not limited to, analog routing, LCD drive TO support, capacitance-sensing, voltage measurement, motor control, current to voltage conversion, voltage to frequency conversion, differential amplification, light measurement, inductive position monitoring, filtering, voice coil driving, magnetic card reading, acoustic doppler measurement, echo-ranging, modem transmission and receive encoding, or any other suitable type of analog function.
The embodiments described herein may be used in various designs of mutual-capacitance sensing systems, in self-capacitance sensing systems, or combinations of both. The embodiments described herein are not tied to a particular capacitive sensing solution and can be used as well with other sensing solutions, including optical sensing solutions, as would be appreciated by one of ordinary skill in the art having the benefit of this disclosure.
In the above description, numerous details are set forth. It will be apparent, however, to one of ordinary skill in the art having the benefit of this disclosure, that embodiments of the present disclosure may be practiced without these specific details. In some instances, well-known structures and devices are shown in block diagram form, rather than in detail, in order to avoid obscuring the description.
Some portions of the detailed description are presented in terms of algorithms and symbolic representations of operations on data bits within a computer memory. These algorithmic descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. An algorithm is here and generally, conceived to be a self-consistent sequence of steps leading to a desired result. The steps are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared and otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like.
It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise as apparent from the above discussion, it is appreciated that throughout the description, discussions utilizing terms such as “determining,” “detecting,” “comparing,” “resetting,” “adding,” “calculating,” or the like, refer to the actions and processes of a computing system, or similar electronic computing device, that manipulates and transforms data represented as physical (e.g., electronic) quantities within the computing system's registers and memories into other data similarly represented as physical quantities within the computing system memories or registers or other such information storage, transmission or display devices.
The words “example” or “exemplary” are used herein to mean serving as an example, instance, or illustration. Any aspect or design described herein as “example’ or “exemplary” is not necessarily to be construed as preferred or advantageous over other aspects or designs. Rather, use of the words “example” or “exemplary” is intended to present concepts in a concrete fashion. As used in this application, the term “or” is intended to mean an inclusive “or” rather than an exclusive “or.” That is, unless specified otherwise, or clear from context, “X includes A or B” is intended to mean any of the natural inclusive permutations. That is, if X includes A; X includes B; or X includes both A and B, then “X includes A or B” is satisfied under any of the foregoing instances. In addition, the articles “a” and “an” as used in this application and the appended claims should generally be construed to mean “one or more” unless specified otherwise or clear from context to be directed to a singular form. Moreover, use of the term “an embodiment” or “one embodiment” or “an implementation” or “one implementation” throughout is not intended to mean the same embodiment or implementation unless described as such.
Embodiments descried herein may also relate to an apparatus for performing the operations herein. This apparatus may be specially constructed for the required purposes, or it may comprise a general-purpose computer selectively activated or reconfigured by a computer program stored in the computer. Such a computer program may be stored in a non-transitory computer-readable storage medium, such as, but not limited to, any type of disk including floppy disks, optical disks, CD-ROMs and magnetic-optical disks, read-only memories (ROMs), random access memories (RAMs), EPROMs, EEPROMs, magnetic or optical cards, flash memory, or any type of media suitable for storing electronic instructions. The term “computer-readable storage medium” should be taken to include a single medium or multiple media (e.g., a centralized or distributed database and/or associated caches and servers) that store one or more sets of instructions. The term “computer-readable medium” shall also be taken to include any medium that is capable of storing, encoding, or carrying a set of instructions for execution by the machine and that causes the machine to perform any one or more of the methodologies of the present embodiments. The term “computer-readable storage medium” shall accordingly be taken to include, but not be limited to, solid-state memories, optical media, magnetic media, any medium that is capable of storing a set of instructions for execution by the machine and that causes the machine to perform any one or more of the methodologies of the present embodiments.
The algorithms and displays presented herein are not inherently related to any particular computer or other apparatus. Various general-purpose systems may be used with programs in accordance with the teachings herein, or it may prove convenient to construct a more specialized apparatus to perform the required method steps. The required structure for a variety of these systems will appear from the description below. In addition, the present embodiments are not described with reference to any particular programming language. It will be appreciated that a variety of programming languages may be used to implement the teachings of the embodiments as described herein.
The above description sets forth numerous specific details such as examples of specific systems, components, methods, and so forth, in order to provide a good understanding of several embodiments of the present disclosure. It will be apparent to one skilled in the art, however, that at least some embodiments of the present disclosure may be practiced without these specific details. In other instances, well-known components or methods are not described in detail or are presented in simple block diagram format in order to avoid unnecessarily obscuring the present embodiments. Thus, the specific details set forth above are merely exemplary. Particular implementations may vary from these exemplary details and still be contemplated to be within the scope of the present embodiments.
It is to be understood that the above description is intended to be illustrative and not restrictive. Many other embodiments will be apparent to those of skill in the art upon reading and understanding the above description. The scope of the embodiments should, therefore, be determined with reference to the appended claims, along with the full scope of equivalents to which such claims are entitled.
This application claims the benefit of U.S. Provisional Application No. 62/977,923, filed Feb. 18, 2020, the disclosure of which is incorporated herein in its entirety.
Number | Date | Country | |
---|---|---|---|
62977923 | Feb 2020 | US |