The present disclosure relates in general to driver circuitry, in particular for use in driving an electromechanical load or device. One example of an electromechanical load (electromechanical device) is an actuator such as a linear resonant actuator (LRA).
The present disclosure extends to methods carried out by such driver circuitry and to systems, such as haptic systems, comprising such driver circuitry.
Driver circuitry may be implemented (at least partly on ICs) within a host device (host apparatus), which may be considered an electrical or electronic device and may be a mobile device. Example host devices include a portable and/or battery powered host device such as a mobile telephone, a smartphone, an audio player, a video player, a PDA, a mobile computing platform such as a laptop computer or tablet and/or a games device.
As is well known, haptic technology recreates the sense of touch by applying forces, vibrations, or motions to a user. Haptic devices (devices enabled with haptic technology) may incorporate tactile sensors (input transducers) that measure forces exerted by the user on a user interface (such as a button or touchscreen on a mobile telephone or tablet computer) as well as output transducers (electromechanical loads) which apply forces directly or indirectly (e.g. via a touchscreen) to a user. Taking a haptic system as an example, with an LRA serving as the electromechanical load, driver circuitry may be employed to drive the LRA to produce a haptic effect (such as a vibration or other tactile sensation) for a user. Audio-to-haptic conversion may also be employed for example in connection with a user playing a video game, to convert an audio signal into a corresponding haptic signal to provide a tactile sensation (output via an electromechanical load such as an LRA) alongside an audio signal (output via a speaker).
The main components of an LRA are a voice coil, a moveable magnetic mass, a spring and a casing or chassis. The magnetic mass is connected to the spring which in turn is mounted to the casing or chassis of the LRA. An AC voltage signal (a drive signal) is used to drive the voice coil, which is arranged to magnetically couple with the moveable magnetic mass.
An LRA typically produces an oscillating force or vibration along an axis. When the voice coil is driven with the AC voltage signal (particularly at the resonant frequency of spring-mass arrangement), the resultant magnetic field induces movement in the magnetic mass and causes it to vibrate with a human-perceptible force. It is the vibration of the mass with a perceptible force which provides the haptic effect. Essentially, the frequency and amplitude of the AC voltage signal is converted into a vibrational frequency and amplitude of the magnetic mass connected to the spring. The LRA is thus a form of transducer. LRAs are typically highly resonant, and as such are generally driven at their resonant frequency for efficiency, i.e. to optimise the relationship between the haptic effect and power consumption.
Of course, an LRA is one example type of electromechanical load (being an actuator or transducer), which is particularly suitable for producing a haptic effect for a user in the context of host devices as mentioned above. Driver circuitry may be used to drive other types of electromechanical load (electromechanical device), e.g. which can be modelled as a resonant actuator such as a speaker or microspeaker or which have non-resonant mechanical loads such as a solenoid or voice coil motor that is non-resonant.
The example of driving an LRA will be carried forward herein in the context of haptic systems as a convenient running example.
Accuracy of control of actuators and transducers is important, for example in the field of haptic technology (e.g. haptic feedback). The quality of the user haptic experience where an LRA is used is defined by the accuracy of control of the LRA, for example.
It is desirable to provide improved driver circuitry with this in mind, to improve control (e.g. mechanical control) of an electromechanical load driven by that circuitry.
According to a first aspect of the present disclosure, there is provided driver circuitry for driving an electromechanical load with a drive output signal based on a digital reference signal at a first sample rate, the drive output signal inducing a first electrical quantity at the electromechanical load. The driver circuitry may comprise: a function block configured, based on said first electrical quantity, to digitally determine at a second sample rate higher than the first sample rate an adjustment signal indicative of a second electrical quantity which would be induced at a target output impedance of the driver circuitry due to said first electrical quantity; and a driver configured to generate the drive output signal based on the reference signal and the adjustment signal to cause the drive output signal to behave as if an output impedance of the driver circuitry has been adjusted to comprise the target output impedance. The first electrical quantity may be a current and the second electrical quantity may be a voltage, or vice versa.
By digitally determining the adjustment signal, it is possible to cause the drive output signal to behave as if the output impedance of the driver circuitry has been adjusted to comprise the target output impedance in a highly adaptable and controllable manner. Further, by digitally determining the adjustment signal at the second sample rate higher than the first sample rate, the target output impedance is implemented over a relatively wide bandwidth.
The drive output signal may be a voltage signal (voltage mode control). In that case, the first electrical quantity may be a current drawn by the electromechanical load and the second electrical quantity may be a voltage across the target output impedance.
The drive output signal may be a current signal (current mode control). In that case, the first electrical quantity may be a voltage across the electromechanical load and the second electrical quantity may be a current drawn by the target output impedance.
The function block may be configured to digitally determine the adjustment signal based on the first electrical quantity and a definition of the target output impedance. For example, the definition may comprise one or more configuration values. The driver circuitry may comprise (or have access to) storage for storing the one or more configuration values, wherein an impedance value of the target output impedance is maintained when the one or more configuration values stored in the storage are maintained. That is, the impedance value of the target output impedance may be dependent on the configuration values.
A (hypothetical) target equivalent circuit representative of the target output impedance may comprise one or more impedance components and a circuit structure for connecting the one or more impedance components together. The one or more configuration values may define at least one said impedance component and/or said circuit structure.
The target equivalent circuit may comprise a plurality of impedance components connected together. The function block may be configured, based on said first electrical quantity and the one or more configuration values, to: determine a plurality of adjustment sub-signals each representative of a corresponding part of the target equivalent circuit and indicative of a portion of the second electrical quantity which would be induced at the corresponding part of the target equivalent circuit if said second electrical quantity were induced at the target equivalent circuit; and determine the adjustment signal by combining the plurality of adjustment sub-signals.
The portion of the second electrical quantity may be a voltage across the corresponding part of the target equivalent circuit if the second electrical quantity is the voltage across the target output impedance. The portion of the second electrical quantity may be a current drawn by the corresponding part of the target equivalent circuit if the second electrical quantity is the current drawn by the target output impedance.
The one or more configuration values may define the target equivalent circuit to comprise at least one of a series resistor, a series capacitor, a series inductor and a parallel network of impedances. The parallel network of impedances may comprise at least two of a parallel resistor, a parallel capacitor and a parallel inductor connected together in parallel. Each of those resistors, capacitors and inductors may be considered a said impedance component.
Those of the series resistor, the series capacitor, the series inductor and the parallel network of impedances present in the target equivalent circuit may be connected in series, for example where the second electrical quantity is the voltage across the target output impedance.
The one or more configuration values may define the target equivalent circuit to comprise, optionally only, the series resistor, wherein the series resistor has a negative resistance (for example substantially equal in magnitude to the positive resistance of a voice coil of the electromechanical load).
The one or more configuration values may define the target equivalent circuit to comprise, optionally only, the series resistor and the series inductor connected together in series, wherein the series resistor has a negative resistance (for example substantially equal in magnitude to the positive resistance of a voice coil of the electromechanical load) and the series inductor has a negative inductance (for example substantially equal in magnitude to the positive inductance of a voice coil of the electromechanical load).
The one or more configuration values may define the target equivalent circuit to comprise, optionally only, the series resistor and the series inductor connected together in series and to the parallel network of impedances, wherein the series resistor has a negative resistance and the series inductor has a negative inductance, and wherein the parallel network of impedances comprises the parallel resistor, the parallel capacitor and the parallel inductor connected together in parallel.
The one or more configuration values may define the target equivalent circuit to comprise, optionally only, the series resistor and the series capacitor connected together in series, wherein the series resistor has a negative resistance and the series capacitor has a positive capacitance.
The one or more configuration values may define the target equivalent circuit to comprise, optionally only, the series resistor, wherein the series resistor has a positive resistance, and wherein the positive resistance is substantially larger than a resistance of the electromechanical load, or than a resistance of a resistor in an electromechanical-load equivalent circuit representing a mechanical impedance of the electromechanical load.
The driver circuitry may comprise a controller. The controller may be configured to generate the reference signal based on a drive input signal and based on a current drawn by the electromechanical load and/or a voltage across the electromechanical load. The controller may be configured to control, based on said current drawn by the electromechanical load and/or said voltage across the electromechanical load, a definition of the target output impedance to cause a performance such as a mechanical performance of the electromechanical load to meet a performance target. The controller may be configured to control, based on said current drawn by the electromechanical load and/or said voltage across the electromechanical load, a definition of the target output impedance to cause the target output impedance to cancel an impedance of at least one electrical component of the electromechanical load, optionally a coil such as a voice coil. The controller may be configured to control a definition of the target output impedance based on an impedance control signal to cause a performance of the driver circuitry to vary with the impedance control signal.
The driver may be configured to generate the drive output signal so that the drive output signal has a predefined relationship with a summation of the adjustment signal and the reference signal.
The function block may be configured to generate a control signal having a predefined relationship with a summation of the adjustment signal and the reference signal. The driver may be configured to generate the drive output signal so that the drive output signal has a predefined relationship with the control signal.
The driver circuitry may be selectively operable in an impedance-drive mode or a current-drive mode. When the driver circuitry is in the impedance-drive mode, the control signal is generated based on the reference signal and the adjustment signal so that the drive output signal behaves as if the output impedance of the driver circuitry has been adjusted to comprise the target output impedance (as mentioned earlier). In the current-drive mode, the function block may be configured to generate the control signal as a function of a current-control reference signal and a current drawn by the electromechanical load, and to adjust the control signal based on said current drawn by the electromechanical load so that said current drawn by the electromechanical load has a predefined relationship with the current-control reference signal.
At least one of the control signal and the adjustment signal may be a digital signal. The control signal and the adjustment signal may be digital signals, and the function block may be a digital function block (e.g. implemented in digital hardware, or in software running on a processor). The drive output signal may be referred to as an analogue signal.
The control signal may be a digital signal. The driver may comprise a digital-to-analogue converter and an analogue amplifier connected together to convert the control signal into an analogue signal and then amplify that analogue signal to form the drive output signal.
The driver circuitry may comprise a monitoring unit configured to generate a current monitoring signal indicative of a current drawn by the electromechanical load and/or a voltage monitoring signal indicative of a voltage across the electromechanical load. The function block may be configured to digitally determine the adjustment signal based on the current monitoring signal and/or the voltage monitoring signal.
The reference signal may be indicative of an intended mechanical performance of the electromechanical load. The behaviour of the drive output signal as if the output impedance of the driver circuitry has been adjusted to comprise the target output impedance may be relative to an expected behaviour of an expected drive output signal expected to be generated by the driver based on the reference signal without the adjustment signal (or based on the adjustment signal having a zero value). The driver circuitry may comprise one or more analogue impedance components connected to contribute to the output impedance of the driver circuitry. The target output impedance may be configured to cancel an impedance of at least one electrical component of the electromechanical load, optionally a coil such as a voice coil. The electromechanical load may be an electromechanical device such as an actuator. The electromechanical load may be a resonant electromechanical load such as a linear resonant actuator, a speaker or a microspeaker.
It may be considered that the driver forms part of a first control loop operable to control the drive output signal based on the reference signal. The driver and the function block may be considered to form part of a second control loop operable to control the drive output signal based on a current drawn by the electromechanical load and/or a voltage across the electromechanical load. The second control loop may be configured to have a lower latency than the first control loop.
At least part of the first control loop and at least part of the second control loop may be implemented as digital circuitry. The latencies of the first and second control loops may be defined by sample rates of respective digital signals of the first and second control loops.
The driver circuitry may comprise an analogue impedance configured to form part of the output impedance of the driver circuitry. The analogue impedance may be a controllable analogue impedance and the function block may be configured to control the controllable analogue impedance to adjust the output impedance of the driver circuitry. For example, the driver circuitry may be configured to control a definition of the target output impedance and/or an impedance of the analogue impedance to control the output impedance of the driver circuitry.
The driver circuitry may be implemented as integrated circuitry such as on an IC chip.
According to a second aspect of the present disclosure, there is provided an IC chip comprising the driver circuitry according to the aforementioned first aspect of the present disclosure.
According to a third aspect of the present disclosure, there is provided a control system, comprising: the driver circuitry according to the aforementioned first aspect of the present disclosure; and the electromechanical load, wherein the electromechanical load is connected to be driven by said drive output signal.
According to a fourth aspect of the present disclosure, there is provided a haptic system comprising the control system of the aforementioned third aspect of the present disclosure, wherein the electromechanical load is a linear resonant actuator (or other type of actuator) coupled to a physical structure or surface of the system to produce a haptic effect for a user.
According to a fifth aspect of the present disclosure, there is provided a host device, such as portable electrical or electronic device, comprising the driver circuitry according to the aforementioned first aspect of the present disclosure, or the IC chip of the aforementioned second aspect of the present disclosure, or the control system of the aforementioned third aspect of the present disclosure or the haptic system of the aforementioned fourth aspect of the present disclosure.
According to a sixth aspect of the present disclosure, there is provided a method carried out by driver circuitry to drive an electromechanical load with a drive output signal based on a digital reference signal, the drive output signal inducing a first electrical quantity at the electromechanical load, the method comprising: based on said first electrical quantity, digitally determining at a second sample rate higher than the first sample rate an adjustment signal indicative of a second electrical quantity which would be induced at a target output impedance of the driver circuitry due to said first electrical quantity; and generating the drive output signal based on the reference signal and the adjustment signal to cause the drive output signal to behave as if an output impedance of the driver circuitry has been adjusted to comprise the target output impedance, wherein the first electrical quantity is a current and the second electrical quantity is a voltage, or vice versa.
According to a seventh aspect of the present disclosure, there is provided driver circuitry for driving an electromechanical load with a drive output signal, the driver circuitry comprising: a first control loop operable to control the drive output signal based on a drive input signal; and a second control loop operable to control the drive output signal based on a current flowing through and/or a voltage induced across the electromechanical load, wherein the second control loop is configured to have a lower latency than the first control loop.
The second control loop may be configured to control the drive output signal to compensate for an impedance of the electromechanical load. The second control loop may be configured to control the drive output signal so that it behaves as if an output impedance of the driver circuitry has been adjusted to comprise a target output impedance.
The drive output signal may be a voltage signal and the second control loop may be configured to perform its control of the drive output signal based on a voltage signal which would be induced across the target output impedance by said current. The second control loop may be configured to determine, based on said current, an adjustment signal indicative of said voltage signal, and control the drive output signal based on the adjustment signal.
The drive output signal may be a current signal and the second control loop may be configured to perform its control of the drive output signal based on a current signal of a current which would be induced to flow through the target output impedance by said voltage. The second control loop may be configured to determine, based on said voltage, an adjustment signal indicative of said current signal, and control the drive output signal based on the adjustment signal.
According to an eighth aspect of the present disclosure, there is provided driver circuitry for driving an electromechanical load with a drive output signal based on a reference signal, the drive output signal inducing a first electrical quantity at the electromechanical load, the driver circuitry comprising: a function block configured, based on said first electrical quantity, to digitally determine an adjustment signal indicative of a second electrical quantity which would be induced at a target output impedance of the driver circuitry due to said first electrical quantity; and a driver configured to generate the drive output signal based on the reference signal and the adjustment signal to cause the drive output signal to behave as if an output impedance of the driver circuitry has been adjusted to comprise the target output impedance.
The drive output signal may be a voltage signal. In that case, the first electrical quantity may be a current drawn by the electromechanical load and the second electrical quantity may be a voltage across the target output impedance.
The drive output signal may be a current signal. In that case, the first electrical quantity may be a voltage across the electromechanical load and the second electrical quantity may be a current drawn by the target output impedance.
According to a ninth aspect of the present disclosure, there is provided driver circuitry for driving an electromechanical load with a drive output signal based on a reference signal, the drive output signal being a voltage signal and causing a current to be drawn by the electromechanical load, the driver circuitry comprising: a function block configured, based on said current, to digitally determine an adjustment signal indicative of a voltage signal which would be induced across a target output impedance of the driver circuitry by said current; and a driver configured to generate the drive output signal based on the reference signal and the adjustment signal to cause the drive output signal to behave as if an output impedance of the driver circuitry has been adjusted to comprise the target output impedance.
According to a tenth aspect of the present disclosure, there is provided driver circuitry for driving a linear resonant actuator, the driver circuitry comprising: a function block configured to generate a digital control signal as a function of a digital reference signal, intended for controlling the linear resonant actuator, and a monitor signal; and a driver configured to convert the digital control signal into an analogue drive signal to drive the linear resonant actuator, wherein: the monitor signal is indicative of a current flowing through, and/or a voltage across, the linear resonant actuator; and the function block is configured, based on the monitor signal, to control a difference between the digital control signal and the digital reference signal so that the analogue drive signal when driving the linear resonant actuator has a target behaviour in which the analogue drive signal behaves, relative to an expected analogue drive signal expected to be generated with the digital control signal being the digital reference signal, as if the output impedance of the driver circuitry has been adjusted to comprise a target output impedance.
According to an eleventh aspect of the present disclosure, there is provided driver circuitry for driving an electromechanical load with a drive output signal based on a reference signal, the driver circuitry configured to generate the drive output signal based on a digital operation dependent on the reference signal and an electrical quantity induced at the electromechanical load to cause the drive output signal to behave as if an output impedance of the driver circuitry has been adjusted to comprise a target output impedance.
According to a twelfth aspect of the present disclosure, there is provided driver circuitry for driving an electromechanical load with a drive output signal based on a reference signal, the drive output signal inducing a first electrical quantity at the electromechanical load, the driver circuitry comprising: a function block configured, based on said first electrical quantity, to digitally determine an adjustment signal indicative of a second electrical quantity which would be induced at a target output impedance of the driver circuitry due to said first electrical quantity; and a driver configured to generate the drive output signal based on the reference signal and the adjustment signal to cause the drive output signal to behave as if an output impedance of the driver circuitry has been adjusted to comprise the target output impedance.
According to a thirteenth aspect of the present disclosure, there is provided driver circuitry for driving an electromechanical load with a drive output signal based on a reference signal, the driver circuitry configured to digitally control the drive output signal based on the reference signal to cause the drive output signal to behave as if an output impedance of the driver circuitry has been adjusted to comprise a defined or predetermined target output impedance.
According to a fourteenth aspect of the present disclosure, there is provided driver circuitry for driving an electromechanical load with a drive output signal based on a reference signal, the driver circuitry configured to digitally control the drive output signal based on the reference signal and (a feedback signal indicative of) an electrical quantity at the electromechanical load (responsive to the drive output signal) to cause the drive output signal to behave as if an output impedance of the driver circuitry has been adjusted to comprise a defined or predetermined target output impedance.
Method and computer program aspects are envisaged corresponding to the circuitry aspects. IC chip, control system, haptic system and host device system aspects are envisaged for each of the driver circuitry aspects, analogous to those specified above in relation to the first aspect.
Reference will now be made, by way of example only, to the accompanying drawings, of which:
Before introducing embodiments, the operation of an LRA will be considered in more detail. As above, an LRA is merely one convenient type of electromechanical load or electromechanical device, particularly of interest when haptic systems are considered. It will be understood that the teachings herein apply to driving electromechanical loads in general, for example other types of actuator useful in haptic systems.
When an LRA is driven with a voltage across its two electrical terminals a current flows through or is drawn by the voice coil (an inductor) producing an electromotive force (EMF) on the moveable magnetic mass and thus controlling its motion. The moveable magnetic mass is connected to a spring which thus also affects its motion. The moving magnetic mass in turn produces a back EMF (bemf) voltage proportional to its velocity, which is reflected at the electrical terminals. The setup is akin to a driven (damped) harmonic oscillator.
With this in mind it is helpful to consider the driving of an LRA in electrical terms.
The equivalent circuit 1 of
The LRA 20 comprises a coil impedance zcoil, which models the voice coil, and a mechanical impedance zmech, which models the moveable mass and spring arrangement. The coil impedance zcoil is modelled as an inductance le in series with a resistance re. The mechanical impedance zmech appears in series with the coil impedance zcoil and is modelled as a parallel network of a capacitance cmes, an inductance Ices and a resistance res. The capacitance cmes models the magnetic mass, the inductance Ices models the spring and the resistance res models the mechanical damping. The bemf voltage appears across the mechanical impedance zmech as indicated (recall it is induced by the moving magnetic mass).
The user haptic experience is defined by sensing the motion of the moving mass, and in particular the force generated by its acceleration (recall Newton's second law, F=ma). It is desirable therefore to control the acceleration of the moving mass, or a proxy such as the position or velocity of the moving mass (based on which the acceleration can be controlled). It is desirable in particular to control the acceleration to produce one or more of: a) crisp haptic effects (e.g. fast acceleration and braking of the mass, e.g. to simulate clicks or button presses); b) wide bandwidth effects (e.g. for audio-to-haptics or to replicate textures); and c) consistent effects (e.g. from LRA to LRA, or over changing environmental conditions). It is desirable to sharpen the onset of the LRA's response to haptic input pulses and to reduce ringing of the LRA (and e.g. smartphone screen in the context of surface audio/haptic applications) after the haptic input pulse has stopped.
The bemf voltage is proportional to the velocity of the moving mass as mentioned above, however the control by the driver circuitry as in
In particular, the ref-to-bemf transfer function (bemfTF) of the driven LRA load is set by the voltage divider defined by zcoil and zmech as apparent from the equivalent circuit of
Because the mechanical system is resonant with high Q (quality factor), and the mechanical impedance is a lot smaller than the coil impedance (i.e. zmech>>zcoil), the ref-to-bemf transfer function bemfTF has a very narrow bandwidth. The velocity effectively follows zmech (expressed as zBemf) away from resonance (where zbemf<<zcoil) and such driving is in practice only useful for simple vibration effects. To produce much acceleration the vibration frequency needs to be close to the resonant frequency.
The present inventors have considered modifying the AC voltage source 10 by adjusting its output impedance to affect control of the LRA 20 and in particular the bemf voltage.
It is assumed in
The target output impedance 30 is presented in equivalent-circuit form in the equivalent circuit 2 as comprising a series resistance ser_r, a series capacitance ser_c, a series inductance ser_l and a parallel network of impedances, connected together in series. The parallel network of impedances comprises a parallel resistance par_r, a parallel capacitance par_c and a parallel inductance par_l, connected together in parallel.
The target output impedance 30 is presented in
A number of such variants are presented in
At low frequencies (e.g. <1 kHz) the inductance le of the coil impedance zcoil may be negligible and be assumed to be shorted. In that case, as apparent from
Incidentally, it is noted in
If the target output impedance 30 in
Against this backdrop,
The driver circuitry 40A comprises a function block 50, a driver 60 and a controller 70. The controller 70 is optional—it may for example be provided separately from the driver circuitry 40A (the function block 50 and driver 60) in some applications. The combination of the function block 50, driver 60 and controller 70 corresponds to the modified circuitry and thus outputs its drive output signal to the LRA 20 at an output node 42 for consistency with
In general, for convenience, digital signals will be denoted in the following using block capitals (e.g. MON) and analogue signals will be denoted in lower case (e.g. mon).
The function block 50 is configured to generate a (digital) control signal CS as a function of a (digital) reference signal RS and a (digital) monitor signal MON (which—although not shown—may be generated from a corresponding analogue monitor signal mon). The reference signal RS is generated by the controller 70 and is intended for controlling the LRA 20. For example, the reference signal RS may exhibit haptic pulses to be used to control the LRA 20. The reference signal RS may be indicative of (e.g. proportional to, directly proportional to, or have a predefined, defined, or linear relationship with) an intended mechanical performance of the LRA 20 (electromechanical load). In this sense, the controller 70 and the reference signal RS may be compared with the driver circuitry and the reference voltage ref, respectively.
The driver 60 is configured to convert the control signal CS into an (analogue) drive output signal dos (a voltage signal) which is output via the output node 42 to drive the LRA 20. The LRA 20 draws the load current iload due to the drive output signal dos. The load current iload is thus the current (flowing) through the LRA 20. One or more of the reference signal RS (including any signal based on which the reference signal RS is generated), control signal CS and drive output signal dos may be referred to as an actuating signal. It is recalled that the LRA 20 is an example of an electromechanical load or electromechanical device. The driver 60 may comprise a digital-to-analogue converter (not shown) to convert the digital control signal CS into an analogue control signal cs and an amplifier (also not shown) to amplify the analogue control signal cs to generate the analogue drive output signal dos.
The monitor signal MON may comprise a current monitor signal IMON which is indicative of (e.g. proportional to, directly proportional to, or has a predefined, defined or linear relationship with) the load current iload flowing through or drawn by the LRA 20. The monitor signal MON may (additionally or alternatively) comprise a voltage monitor signal VMON which is indicative of (e.g. proportional to, directly proportional to, or has a predefined, defined or linear relationship with) a voltage induced across the LRA 20 due to the current flowing through the LRA 20 (effectively, the drive output signal dos where this is applied simply across the LRA 20). As such, the driver circuitry 40A may comprise monitoring circuitry 80 to monitor the current flowing through (and optionally also the voltage across) the LRA 20 and generate the monitor signal MON (or its analogue equivalent mon).
It is emphasised that the monitoring circuitry 80 need not be part of (e.g. housed within) the LRA 20 and indeed may be considered separate from the LRA 20 so that the LRA may be provided without needing any sensing technology (i.e. it may be a “sensorless” LRA). This will become more apparent in connection with
As indicated schematically in respect of the controller 70, the controller 70 is configured to generate the reference signal RS based on a drive input signal DIS. The drive input signal DIS may be generated within the controller 70 or received from a separate system or controller (e.g. from an applications processor). The drive input signal DIS may be generated within the controller 70 based on one or more received signals, e.g. from a separate system or controller (e.g. from an applications processor).
The controller 70 may be configured to receive the monitor signal MON or part thereof, and to control one or more of its signals based on the monitor signal MON or part thereof. For example, the controller 70 may be configured to receive the current monitor signal IMON and/or the voltage monitor signal VMON and to control one or more of the signals which it generates based on the current monitor signal IMON and/or the voltage monitor signal VMON.
The controller 70 may be configured to generate the reference signal RS based on the current monitor signal IMON and/or the voltage monitor signal VMON. The current monitor signal IMON and/or the voltage monitor signal VMON may for example be indicative of the performance of the LRA 20, such as its mechanical performance. The current monitor signal IMON and the voltage monitor signal VMON may be used together to assess e.g. the onset of the LRA 20 response to haptic input pulses (expressed by the drive input signal DIS and/or the reference signal RS) or the degree of ringing of the LRA after the haptic input pulse has stopped. The current monitor signal IMON and the voltage monitor signal VMON may be used together to assess e.g. the resonant frequency f0, quality factor Q, impedance and/or operational state (including failure states) of the LRA 20. The current monitor signal IMON and the voltage monitor signal VMON may for example be indicative of the effectiveness of the current (present or existing) configuration of the target output impedance 30, and indicate how that configuration should be varied to meet a performance target. The implementation of the target output impedance 30 in the driver circuitry 40A is described in more detail below.
In this way, a first control loop may be formed in which the drive output signal dos is controlled based on a drive input signal DIS. In such a control loop it can be understood that the monitor signal MON (the current monitor signal IMON and/or the voltage monitor signal VMON) serves as a feedback signal for feedback control (by the controller 70) of the reference signal RS and thus also of the control signal CS and the drive output signal dos. This feedback control may be used to keep the performance of the LRA 20 (as indicated by the current monitor signal IMON and/or the voltage monitor signal VMON, e.g. its mechanical performance) within performance limits.
The first control loop may also incorporate feedforward control (by the controller 70) of the reference signal RS and thus also of the control signal CS and the drive output signal dos. There are a multitude of possibilities, for example using high-pass filtering to remove lower-frequency components which may lead to low-efficiency driving of the LRA 20, or low-pass filtering to handle erroneous sounds that can be emitted by some real life mechanical integrations, or an audio-to-haptics analyser which converts audio content to haptic content. These are of course simply examples.
A second control loop may also be considered to be present, in which the drive output signal dos is controlled based on the monitor signal MON (the current monitor signal IMON and/or the voltage monitor signal VMON). In such a control loop it can be understood that the monitor signal MON (in particular, the current monitor signal IMON) serves as a feedback signal for feedback control (by the function block 50) of the control signal CS and thus also of the drive output signal dos. The control by the function block 50 will be described in more detail below.
A third control loop may also be considered to be present, in which the functionality of the function block 50 (described below) is controlled based on the monitor signal MON (the current monitor signal IMON and/or the voltage monitor signal VMON). In such a control loop it can be understood that the monitor signal MON (in particular, the current monitor signal IMON and the voltage monitor signal VMON) serves as a feedback signal for feedback control (by the controller 70) of a configuration signal CONFIG which is supplied to the function block 50 to define or affect or control its operation. As above, the control by the function block 50 will be described in more detail below.
A fourth control loop may also be considered to be present, in which the function of the driver 60 is controlled based on the monitor signal MON (the current monitor signal IMON and/or the voltage monitor signal VMON). In such a control loop it can be understood that the monitor signal MON (in particular, the voltage monitor signal VMON) serves as a feedback signal for feedback control (by the driver 60) of the drive output signal dos e.g. so that the drive output signal dos has a defined or predefined (e.g. linear, proportional or directly proportional) relationship with the control signal CS. This control may for example act to achieve linear operation of the driver 60 (which may be considered an amplifier).
It will become apparent that it may be desirable to operate the various control loops with different (relative) latencies. More particularly, for one or more of the control loops it may be desirable to have low latencies, e.g. so that analogue operation is closely simulated (across a bandwidth of interest—which may be e.g. a haptic or audio bandwidth as mentioned later), whereas for one or more others of the control loops it may be acceptable (or desirable, with power consumption and complexity in mind) to operate with higher latencies.
For example, the second control loop may have a lower latency than the first and/or third control loop. The fourth control loop may have a lower latency than the first and/or third control loop. The second control loop may have the same or substantially the same latency as the fourth control loop. The latencies of the control loops may be defined by sample rates (update rates, response rates) of respective digital signals of the control loops, as will become more apparent in connection with
The above control loops may be referred to as (or be considered to encompass) control paths or control systems or control networks. Each of the control loops may incorporate one or more of feedback control, feedforward control and open loop control.
In overview, the function block 50 controls a difference between the control signal CS and the reference signal RS so as to simulate the presence of an (analogue) target output impedance of the driver circuitry 40A corresponding to the target output impedance 30 of
Because the function block 50 controls the difference between the control signal CS and the reference signal RS in the digital domain (i.e. digitally, using digital signals and digital operations/calculations), the relationship between the control signal CS and the reference signal RS can be configured (e.g. over time) to define and/or adjust the configuration of the target output impedance 30 (e.g. which of the target output impedances 30A to 30E is being used). In this way, the response of the LRA 20 to the reference signal RS can be controlled enabling the haptic effect (expressed by the reference signal RS) to be controlled in the case of a haptic system.
The function block 50 is configured, based on the monitor signal MON (in particular, the current monitor signal IMON), to digitally determine an adjustment signal AS indicative of a voltage signal which would be induced across the target output impedance 30 of the driver circuitry 40A by the load current iload (i.e. if the load current were to flow through the target output impedance 30). In effect, the function block 50 is configured to digitally determine (e.g. calculate) the adjustment signal AS based on the load current iload. The driver 60 is then configured to generate the drive output signal dos based on the reference signal RS and the adjustment signal AS (or based on the control signal CS, which itself is generated based on the reference signal RS and the adjustment signal AS) to cause the drive output signal dos to behave as if an output impedance of the driver circuitry has been adjusted to comprise the target output impedance 30.
In more detail, the function block 50 is configured, based on the monitor signal MON (in particular, the current monitor signal IMON), to control a relationship or difference between the control signal CS and the reference signal RS. In particular, the function block 50 controls the relationship so that the drive output signal dos (when driving the LRA 20) has a target behaviour in which the drive output signal dos behaves, relative to an expected analogue drive output signal expected to be generated with the control signal CS being the reference signal RS (i.e. when CS=RS), as if the output impedance of the driver circuitry has been configured or adapted or adjusted to comprise (or simply comprises) a target output impedance such as the target output impedance 30 (e.g. configured to form any of the variants 30A to 30E). The expected analogue drive output signal is expected to be generated if the driver 60 generates the drive output signal dos based on the reference signal RS without the adjustment signal AS (effectively without the control of the second control loop, which may be taken to comprise the adjustment signal AS).
Thus, the function block 50 adjusts the control signal CS relative to the reference signal RS so that driver circuitry 40A behaves as if its output impedance (measured at node 42) includes the target output impedance 30 (whereas it otherwise would not, i.e. when CS=RS). For example, where CS=RS the driver circuitry 40A may be able to operate with zero output impedance (measured at node 42) due to the operation of the driver 60, in which case the function block 50 adjusts CS relative to RS based on IMON so that the output impedance of the driver circuitry 40A is substantially equal to the target output impedance.
In this sense, the function block 50 simulates or emulates the presence of the target output impedance 30 by making an adjustment (by way of adjustment signal AS) in the signal path between the controller 70 and the driver 60 so that the output impedance of the driver circuitry 40A appears to (and indeed in effect does) comprise the target output impedance 30. The target output impedance 30 in these terms may be considered a “virtual” impedance as mentioned earlier in that it is not implemented by providing analogue discrete passive impedance components, but by virtue of signal adjustments determined in the digital domain (i.e. made or determined digitally).
For example, the function block 50 may be configured to receive and/or store one or more configuration values which define the target output impedance, and thus govern how the control signal CS is generated as a function of the reference signal RS and the current monitor signal IMON. The configuration values may be set based on the (digital) configuration signal CONFIG received from the controller 70, as indicated in
Incidentally, the (digital) configuration signal CONFIG may be controlled by a separate impedance control signal (not shown), e.g. received from a separate system, either instead of or in addition to control by virtue of the third control loop. The configuration of the target output impedance may thus vary with (or be controlled by or be set by) the separate impedance control signal in this way.
Returning to
Thus, in this example the function block 50 simulates the presence of the target output impedance 30A between the controller 70 and the driver 60 by adding an amount represented by the adjustment signal AS (based on the product of the resistance value re and the load current iload flowing through or drawn by the LRA load 20, as indicated by the current monitor signal IMON) to the reference signal RS to form the control signal CS (i.e. CS=RS+AS), so that the output impedance of the driver circuitry 40A appears to (and in effect does) comprise the target output impedance 30A.
In this case, the adjustment signal AS could be considered to be a function of iload*re or IMON*re. In this way, the function block 50 enables a negative resistance to be implemented digitally. The CONFIG signal may for example simply provide the function block 50 with the value −re (or re) to define the series resistance ser_r, possibly along with other configuration values which define the target output impedance 30 as being of the form of (or configured as) the target output impedance 30A (rather than e.g. the target output impedance 30C).
The drive output signal dos is a voltage signal which appears across the LRA 20. The target behaviour can then be defined by how a voltage level of the drive output signal dos varies when driving the LRA 20 (or a voltage across the LRA 20) with the current flowing through the LRA 20 (i.e. the load current iload).
Incidentally, in the
For convenience, the example using the digital control signal CS, digital adjustment signal AS, digital reference signal RS and digital monitor signal MON will be carried forwards.
It was mentioned earlier that there may be one or more analogue output impedances (e.g. discrete or parasitic components) present in the driver circuitry 40A. The target output impedance 30 may be configured to take this into account. For example, if there is some analogue (positive) resistance of magnitude R1 (not shown) in the output impedance of the driver circuitry 40A, and it is desired that the output impedance of the driver circuitry 40A have an overall resistance of magnitude −R2 (a negative resistance), then the target output impedance 30 (assuming the
As another example, the function block 50 may be configured to control an analogue variable impedance (a discrete component—not shown) in the current path of the load current iload, such as between the output node 42 and the driver 60, so that the output impedance of the driver circuitry 40A is controlled or adjusted in part with the variable impedance (an actual discrete impedance component). Again, the target output impedance 30 may be configured to take this into account, i.e. adjusted or configured to compensate for (or allow for) the variable impedance. For example, an impedance formed by (equivalent to) a combination of the variable impedance and the target output impedance 30 may be controlled.
It will become apparent that in the present detailed implementation some digital signals have a relatively high sample (update) rate and other digital signals have a relatively low sample (update) rate, and this is indicated with the suffixes “(H)” and “(L)”, respectively. In this way, some signals and the corresponding control loops may be considered “fast” (or high bandwidth, or low latency) and some signals and the corresponding control loops may be considered “slow” (or low bandwidth, or high latency), as mentioned earlier. The signals with the low sample rate could be considered to have the same sample rate as one another, and the signals with the high sample rate could similarly be considered to have the same sample rate as one another, but this is not essential. Also, the various sample rates could be varied depending on the application and e.g. over time.
The function block 50A of the driver circuitry 40B comprises a current-monitoring ADC 510, a voltage-monitoring ADC 520, a current-monitoring decimator 530, a voltage-monitoring decimator 540, an adjustment signal (AS) determiner 550, an adder 560 and a clipper 570. The function block 50A is a digital block (except for analogue front-end portions of the ADCs 510 and 520), and may be implemented using “hardwired” circuitry, logic gates and/or a processor executing a computer program. For example, in some arrangements the function block 50A may be implemented as part of the controller 70, which may be a processor or microprocessor such as a digital signal processor (DSP). As such, the division of the function block 50A into interconnected component parts in
In some arrangements the controller 70 may be considered part of the driver circuitry 40B, e.g. provided as part of the same integrated circuitry as other elements of the driver circuitry 40B. In other arrangements, the controller 70 may be considered separate from the driver circuitry 40B, e.g. provided as separate integrated circuitry from integrated circuitry comprising other elements of the driver circuitry 40B.
It is assumed here that the monitoring circuitry 80 is configured to monitor the current flowing through the LRA 20 and output an analogue current-monitoring signal imon, and also to monitor the voltage across the LRA 20 and output an analogue voltage-monitoring signal vmon. It is also emphasised that the monitoring circuitry 80 may be separate from the LRA 20, with the LRA 20 in this case shown as being connected across terminals 82 and 84 of the monitoring circuitry 80 (which terminals 82 and 84 may be considered terminals of the driver circuitry 40B). Thus, the driver circuitry 40B including the monitoring circuitry 80 (but excluding the LRA 20) could be implemented as integrated circuitry, for example on an IC chip, with the terminals 82 and 84 being (external) terminals of the integrated circuitry.
As an example, the monitoring circuitry 80 may comprise a resistor (not shown) connected in series with the LRA 20 such as between nodes 42 and 82 (whose known resistance is taken into account when assessing the resistance re of the coil impedance zcoil), with a voltage across that resistor being proportional to the load current iload flowing through the LRA 20 and thus forming the current-monitoring signal imon. The voltage-monitoring signal vmon may be formed by a load voltage vload taken across the LRA 20, e.g. across terminals 82 and 84. Of course, there are other ways to obtain the signals vmon and imon in respect of the LRA 20.
The current-monitoring ADC 510 is connected to receive the analogue current-monitoring signal imon and output a corresponding digital current-monitoring signal IMON (H), i.e. having a high sample rate. The current-monitoring decimator 530 is connected to receive the current-monitoring signal IMON (H) and to output a corresponding digital current-monitoring signal IMON (L), i.e. having a low sample rate. The voltage-monitoring ADC 520 is connected to receive the analogue voltage-monitoring signal vmon and output a corresponding digital voltage-monitoring signal VMON (H), i.e. having a high sample rate. The voltage-monitoring decimator 540 is connected to receive the voltage-monitoring signal VMON (H) and to output a corresponding digital voltage-monitoring signal VMON (L), i.e. having a low sample rate. A decimator in this sense acts to reduce the sample rate between its input and output signals, e.g. by outputting one input sample per several input samples or averaging successive groups of samples.
The controller 70 is connected to receive the signals IMON (L) and VMON (L), the AS determiner 550 is connected to receive the signal IMON (H), and the driver 60 is connected to receive one or both of the signals vmon and VMON (H). It is assumed that the controller comprises an interpolator 710 which converts a digital reference signal RS (L), i.e. at a low sample rate, into a corresponding digital reference signal RS (H) at a high sample rate. An interpolator in this sense acts to increase the sample rate between its input and output signals, generating new samples by interpolation/estimation.
In overview, the function block 50A of the driver circuitry 40B is configured to determine, based on the monitor signal MON and one or more configuration values which define the target output impedance 30, the adjustment signal AS (H) to be applied to the reference signal RS (H) to form the control signal CS (H) and cause the drive output signal dos when driving the LRA 20 to have the target behaviour, and to generate the control signal CS (H) by applying the adjustment signal AS (H) to the reference signal RS (H). Note this forms part of the second control loop (which is fast, with low latency, using high sample (update) rate digital signals) so that the drive output signal dos behaves (over a wide bandwidth) as if the target output impedance 30 had been implemented in analogue form.
In detail, the AS determiner 550 is configured to generate the adjustment signal AS (H) based on the signal IMON (H) in a form to be added to the reference signal RS (H) to form the control signal CS (H). The adder 560 is configured to generate the control signal CS (H) by adding adjustment signal AS (H) to the reference signal RS (H). The control signal CS (H) is thus generated to have a defined or predefined (e.g. substantially linear, proportional or directly proportional) relationship with a summation of the adjustment signal AS (H) and the reference signal RS (H).
Effectively, the AS determiner 550 determines (e.g. by calculation or using a look-up table) a voltage which would be induced across the target output impedance 30 if the current flowing through the LRA 20 were to flow through the target output impedance 30, and generates the adjustment signal AS (H) to express this voltage so that adding the adjustment signal AS (H) to the reference signal RS (H) produces the control signal CS (H). Thus, the adjustment signal AS (H) may be considered as indicative of (e.g. proportional to, directly proportional to, or having a predefined, defined or linear relationship with) the load voltage vload which would be induced across the target output impedance 30 if the load current iload flowing through the LRA 20 were to flow through the target output impedance 30. In this way, the control signal CS (H) and thus the drive output signal dos will respond to the load current iload as if the output impedance of the driver circuitry 40B has been configured to comprise the target output impedance 30.
The clipper 570 serves to clip (i.e. keep within limits) the values of the control signal CS (H), e.g. so that its values are within a linear operation range of the driver 60 (e.g. of a DAC and/or analogue amplifier of the driver 60). The driver 60 is configured to control the drive output signal dos so that its voltage level has a defined or predefined (e.g. substantially linear, proportional or directly proportional) relationship with the control signal CS (H), by virtue of one or both of the signals VMON (H) and vmon as indicated, as part of the fourth control loop (which is fast similarly to the second control loop). The clipper 570 is optional in some arrangements.
Note that the controller 70 is connected to receive the monitor signal MON in the form of the digital current-monitoring signal IMON (L) and the voltage-monitoring signal VMON (L), both with the low sample rate. As such, the first control loop generates the reference signal RS (L) based on the drive input signal DIS (L) as indicated, acting as a relatively slow control loop. The interpolator 710 converts the reference signal RS (L) into the corresponding reference signal RS (H), for use in the second and fourth control loops which are fast control loops as already mentioned. Further, the third control loop generates the configuration signal CONFIG (L), i.e. with the low sample rate, for use by the function block 50A (in particular, the AS determiner 550) to define the target output impedance 30, i.e. by way of one or more configuration values, acting as a relatively slow control loop.
The first and third control loops may for example only need to respond to relatively slow (low frequency) disturbances, e.g. changes in temperature of the LRA 20. On the other hand, the second and fourth control loops may need very low latencies to simulate or emulate analogue performance (over a given bandwidth).
Looking further at the first and third control loops, it will be appreciated that the controller 70 has access to the monitor signal MON in the form of the digital current-monitoring signal IMON (L) and the voltage-monitoring signal VMON (L), as mentioned earlier. Based on these signals, the controller 70 may in some arrangements be configured to determine or estimate partly or fully the configuration of the LRA 20, e.g. to determine impedance values (or estimates thereof) of some or all of (see
This information can be used to define or update the configuration of the target output impedance 30 via the CONFIG (L) signal and/or to control parameters of the reference signal RS (L). An example may be determining or estimating the value of the coil resistance re (see
Of course, some of this defining/updating/controlling may be based on pre-set values or input control signals (e.g. received from another system or a user). The present disclosure will be understood accordingly. For example, values for the resonant frequency f0 and/or quality factor Q of the LRA 20 may be preset or provided from an external system via a control signal.
Merely as examples, the relatively high sample (update) rates indicated with the suffix (H) could be at 768 kHz (768000 samples per second) and the relatively low sample (update) rates indicated with the suffix (L) could be at 48 kHz (48000 samples per second). For example, the signals RS (H), AS (H), IMON (H), VMON (H) and CS (H) could be 768 kHz digital signals, whereas the signals RS (L), IMON (L) and VMON (L) could be 48 kHz digital signals. The signal CONFIG (L) might be a 48 kHz signal, or might have an even lower sample rate (e.g. in the range 1 kHz to 48 kHz, such as 3 kHz). Other sample rates (cf. audio signals) for the relatively low sample (update) rates indicated with the suffix (L) could be 44.1 kHz, 88.2 kHz, 96 kHz and 192 kHz (e.g. values within an example range of 10 kHz to 200 kHz). These are of course only examples.
Thus, for example, the second control loop (and the fourth control loop) could be 16 times (e.g. between 4 and 100 times) faster than the first control loop and 16 or 256 times (between 4 and 1000 times) faster than the third control loop. These are of course only examples.
As above, the reference signal RS (L) may be used to express haptic signals, which may have a bandwidth up to 500 Hz or even up to 1 kHz. Note, for use in audio applications, the generally accepted 20 Hz to 20 kHz typical range of human hearing—such signals could be expressed by a suitable reference signal RS (L), e.g. with a 44.1 kHz, 48 kHz, 88.2 kHz, 96 kHz or 192 kHz sample rate. Again, these values are examples.
Incidentally, the adder 560 and (optional) clipper 570 could be considered part of the driver 60, so that the driver 60 receives the reference signal RS (H) and the adjustment signal AS (H) and controls the drive output signal dos based on those received signals.
In overview, the AS determiner 550A comprises a first low-pass filter section 606, a high-pass filter section 608, a calculation section 610 and a second low-pass filter section 612 connected in series between the input node 604 and the output node 602.
The first low-pass filter section 606 comprises a pair of parallel paths, one of whose outputs can be selected by a selector based on an enable (selection) signal low1En. One of those paths comprises a low-pass filter, so that the enable signal low1En effectively determines whether or not the output signal of the first low-pass filter section 606 has been subject to low-pass filtering in that section 606.
Similarly, the high-pass filter section 608 comprises a pair of parallel paths, one of whose outputs can be selected by a selector based on an enable (selection) signal highEn. One of those paths comprises a high-pass filter, so that the enable signal highEn effectively determines whether or not the output signal of the high-pass filter section 608 has been subject to high-pass filtering in that section 608.
Similarly, the second low-pass filter section 612 comprises a pair of parallel paths, one of whose outputs can be selected by a selector based on an enable (selection) signal low2En. One of those paths comprises a low-pass filter, so that the enable signal low2En effectively determines whether or not the output signal of the second low-pass filter section 612 has been subject to low-pass filtering in that section 612.
Thus, the high and low-pass filtering may be considered optional (and as such need not be provided), and may be employed differently in different applications.
The calculation section 610 comprises a parallel RLC section 620 connected in parallel with a series RLC section 630. The parallel RLC section 620 comprises a calculation block 622 which operates on the current-monitoring signal IMON (H) to implement the parallel connection of the parallel resistance par_r, parallel capacitance par_c and parallel inductance par_l of the target output impedance 30, based on parameter or configuration values a0, a1, a2, b0, b1, b2 as indicated. The series RLC section 630 comprises calculation blocks 632, 634 and 636 connected together in parallel, which operate on the current-monitoring signal IMON (H) to implement the series resistance ser_r, series capacitance ser_c, and series inductance ser_l, respectively, of the target output impedance 30, based on corresponding parameter or configuration values ser_r, ser_c and ser_l as indicated.
The outputs of each of the calculation blocks 622, 632, 634, 636 pass via a corresponding AND block along with corresponding enable signals parEn, rEn, lEn and cEn, respectively, to an adder/subtractor 640 whose output is passed on to the second low-pass filter section 612. In this way, the contribution of the calculation blocks 622, 632, 634, 636 can be selectively included or removed from the signal received by the low-pass filter section 612 by virtue of the respective enable signals parEn, rEn, lEn and cEn. This, along with control of the parameter or configuration values as mentioned above has the effect of being able to configure the target output impedance 30 e.g. to take the form of any of the target output impedances 30A to 30E (see
The outputs of the calculation blocks 622, 632, 634, 636 may be referred to as adjustment sub-signals each representative of a corresponding part of the target equivalent circuit representative of the target output impedance 30. The adjustment sub-signals may thus be combined to arrive at the adjustment signal AS (H). The calculation blocks 622, 632, 634, 636 may perform calculations or access look-up tables, for example.
In the current-drive mode of operation, the function block 50 is configured to function in line with the example implementation 50B, and in particular to generate the control signal CS (H) as the result of subtracting (at a subtractor 702) the current-monitoring signal IMON (H) acting as a feedback signal from the reference signal RS (H). This negative feedback operation enables the current flowing through the LRA 20 to be controlled based on the reference signal RS (H).
It will be understood that the function block 50 of
These Bode plots compare the position, velocity, acceleration and power transfer functions in various modes for driving an example typical LRA 20 with resonant frequency f0=50 Hz, and quality factor Q=3, using the driver circuitry 40A, 40B.
Graph A considers driving the LRA 20 without simulating the presence of the target output impedance 30 or by simulating the presence of the target output impedance 30 when configured to have zero impedance. This is equivalent to driving the LRA 20 in line with
Graph B considers driving the LRA 20 (in impedance-drive mode), with the simulated target output impedance 30 being configured as in the variant 30A of
Graph C considers driving the LRA 20 (in impedance-drive mode), with the simulated target output impedance 30 being configured as in the variant 30E of
Graph D considers driving the LRA 20, but using the current-drive mode of operation in line with
The acceleration waveform of typical LRAs 20 with low Q can be controlled accurately over the full haptic sensitivity range (DC-500 Hz) using negative impedance (Graph B) around resonance (20-200 Hz) and current drive (Graph D) above resonance (>200 Hz).
A so-called “poor man's” current drive can be realized by configuring the negative impedance circuit to have large positive impedance (Graph C).
At this juncture it is noted that the driver circuitry arrangements have been described so far based on voltage source driving of the LRA 20 (electromechanical load), i.e. with the drive output signal dos being a voltage signal vload (and the reference signal RS being configured for voltage driving). This drive output signal dos induces a load current iload to be drawn by (or to flow through) the LRA 20. With this form of driving in mind, the load current iload is monitored (e.g. using signal IMON) and used to determine a voltage which would be induced across the target output impedance 30 so as to generate the adjustment signal AS. The driver 60 is configured to generate the drive output signal dos based on the reference signal RS and the adjustment signal AS to cause the drive output signal dos to behave as if an output impedance of the driver circuitry has been adjusted to comprise the target output impedance.
However, driver circuitry arrangements are also envisaged based on current source driving of the LRA 20. It will be appreciated that (with the principles of source transformation in mind) it would be possible to actively control the load current iload (rather than the load voltage vload) to drive the LRA 20 by current source control in an equivalent way to the driving by voltage source control.
Therefore (with
Thus, the description of
For example, in the voltage source driven arrangements described earlier the AS determiner 550 determines (e.g. by calculation or using a look-up table) a voltage which would be induced across the target output impedance 30 if the current flowing through the LRA 20 were to flow through the target output impedance 30. In equivalent current source driven arrangements, the AS determiner 550 determines (e.g. by calculation or using a look-up table) a current which would be drawn by the target output impedance in view of the voltage across the LRA 20. Similarly, the adjustment sub-signals were described in terms of voltages in the voltage source driven arrangements but would be currents in equivalent current source driven arrangements.
As another example, in the voltage source driven arrangements described earlier the second control loop (implementing the target output impedance) uses the current monitor signal IMON to adjust a voltage signal and the fourth control loop (aiming to achieve linear operation of the driver 60) uses the voltage monitor signal VMON to adjust a voltage signal. In equivalent current source driven arrangements, the second control loop (implementing the target output impedance) uses the voltage monitor signal VMON to adjust a current signal and the fourth control loop (aiming to achieve linear operation of the driver 60) uses the current monitor signal IMON to adjust a current signal. Indeed, one skilled in the art will appreciate that the logic used for the second and fourth control loops in the voltage source driven arrangements could effectively be swapped around (with suitable changes to the reference signal RS) to lead to current source driven arrangements.
The skilled person will recognise that some aspects of the above described apparatus (circuitry) and methods may be embodied as processor control code, for example on a non-volatile carrier medium such as a disk, CD- or DVD-ROM, programmed memory such as read only memory (Firmware), or on a data carrier such as an optical or electrical signal carrier.
For some applications, such aspects will be implemented on a DSP (Digital Signal Processor), ASIC (Application Specific Integrated Circuit) or FPGA (Field Programmable Gate Array). Thus the code may comprise conventional program code or microcode or, for example, code for setting up or controlling an ASIC or FPGA. The code may also comprise code for dynamically configuring re-configurable apparatus such as re-programmable logic gate arrays. Similarly, the code may comprise code for a hardware description language such as Verilog™ or VHDL. As the skilled person will appreciate, the code may be distributed between a plurality of coupled components in communication with one another. Where appropriate, such aspects may also be implemented using code running on a field-(re)programmable analogue array or similar device in order to configure analogue hardware.
Some embodiments of the present invention may be arranged as part of a haptic circuit, for instance a haptic circuit which may be provided in a host device 1000 as discussed above. A circuit or circuitry according to an embodiment of the present invention (such as driver circuitry 40A or 40B) may be implemented (at least in part) as an integrated circuit (IC), for example on an IC chip. One or more input or output transducers (such as LRA 20) may be connected to the integrated circuit in use.
It should be noted that the above-mentioned embodiments illustrate rather than limit the invention, and that those skilled in the art will be able to design many alternative embodiments without departing from the scope of the appended claims. The word “comprising” does not exclude the presence of elements or steps other than those listed in the claim, “a” or “an” does not exclude a plurality, and a single feature or other unit may fulfil the functions of several units recited in the claims. Any reference numerals or labels in the claims shall not be construed so as to limit their scope.
The present disclosure extends to the following set A of statements:
A1. Driver circuitry for driving an electromechanical load with a drive output signal based on a digital reference signal at a first sample rate, the drive output signal inducing a first electrical quantity at the electromechanical load, the driver circuitry comprising:
A2. The driver circuitry according to statement A1, wherein:
A3. The driver circuitry according to statement A1 or A2, wherein the function block is configured to digitally determine the adjustment signal based on said first electrical quantity and a definition of said target output impedance.
A4. The driver circuitry according to statement A3, wherein the definition comprises one or more configuration values.
A5. The driver circuitry according to statement A4, comprising storage for storing the one or more configuration values, wherein an impedance value of the target output impedance is maintained when the one or more configuration values stored in the storage are maintained.
A6. The driver circuitry according to any of statements A4 or A5, wherein:
A7. The driver circuitry according to statement A6, wherein:
A8. The driver circuitry according to statement A6 or A7, wherein:
A9. The driver circuitry according to statement A8, wherein the one or more configuration values define the target equivalent circuit to comprise, optionally only:
A10. The driver circuitry according to any of the preceding A statements, comprising a controller configured:
A11. The driver circuitry according to any of the preceding A statements, wherein the driver is configured to generate the drive output signal so that the drive output signal has a predefined relationship with a summation of the adjustment signal and the reference signal.
A12. The driver circuitry according to any of the preceding A statements, wherein:
A13. The driver circuitry according to statement A12, wherein:
A14. The driver circuitry according to statement A12 or A13, wherein:
A15. The driver circuitry according to any of statements A12 to A14, wherein:
A16. The driver circuitry according to any of the preceding A statements, comprising a monitoring unit configured to generate a current monitoring signal indicative of a current drawn by the electromechanical load and/or a voltage monitoring signal indicative of a voltage across the electromechanical load, wherein the function block is configured to digitally determine the adjustment signal based on the current monitoring signal and/or the voltage monitoring signal.
A17. The driver circuitry according to any of the preceding A statements, wherein:
A18. The driver circuitry according to any of the preceding A statements, wherein:
A19. The driver circuitry according to statement A18, wherein at least part of the first control loop and at least part of the second control loop are implemented as digital circuitry, and wherein the latencies of the first and second control loops are defined by sample rates of respective digital signals of the first and second control loops.
A20. The driver circuitry according to any of the preceding A statements, comprising an analogue impedance configured to form part of the output impedance of the driver circuitry,
A21. The driver circuitry according to statement A20, configured to control a definition of the target output impedance and/or an impedance of the analogue impedance to control the output impedance of the driver circuitry.
A22. The driver circuitry according to any of the preceding A statements, implemented as integrated circuitry such as on an IC chip.
A23. An IC chip comprising the driver circuitry according to any of the preceding A statements.
A24. A control system, comprising:
A25. A haptic system comprising the control system of statement A24, wherein the electromechanical load is a linear resonant actuator coupled to a physical structure or surface of the system to produce a haptic effect for a user.
A26. A host device, such as portable electrical or electronic device, comprising the driver circuitry according to any of statements A1 to A22, or the IC chip of statement A23, or the control system of statement A24 or the haptic system of statement A25.
A27. A method carried out by driver circuitry to drive an electromechanical load with a drive output signal based on a digital reference signal, the drive output signal inducing a first electrical quantity at the electromechanical load, the method comprising:
The present disclosure extends to the following set B of statements:
B1. Driver circuitry for driving an electromechanical load with a drive output signal, the driver circuitry comprising:
B2. The driver circuitry according to statement B1, wherein the second control loop is configured to control the drive output signal to compensate for an impedance of the electromechanical load.
B3. The driver circuitry according to statement B1 or B2, wherein the second control loop is configured to control the drive output signal so that it behaves as if an output impedance of the driver circuitry has been adjusted to comprise a target output impedance.
B4. The driver circuitry according to statement B3, wherein the drive output signal is a voltage signal and the second control loop is configured to perform its control of the drive output signal based on a voltage signal which would be induced across the target output impedance by said current,
B5. The driver circuitry according to statement B3, wherein the drive output signal is a current signal and the second control loop is configured to perform its control of the drive output signal based on a current signal of a current which would be induced to flow through the target output impedance by said voltage,
B6. The driver circuitry according to any of the preceding B statements, comprising a third control loop operable to:
B7. The driver circuitry according to statement B6, wherein the latency of the second control loop is lower than a latency of the third control loop.
B8. The driver circuitry according to any of the preceding B statements, wherein the first control loop is configured for feedback control of the electromechanical load based on said current and/or said voltage.
B9. The driver circuitry according to any of the preceding B statements, wherein the first control loop is configured for feedforward control of the electromechanical load.
B10. The driver circuitry according to any of the preceding B statements, wherein the second control loop is a feedback control loop, said current and/or said voltage being a feedback signal in the second control loop.
B11. The driver circuitry according to any of the preceding B statements, wherein at least part of the first control loop and at least part of the second control loop are implemented as digital circuitry, and wherein the latencies of the first and second control loops are defined by sample rates of respective digital signals of the first and second control loops.
B12. The driver circuitry according to any of the preceding B statements, comprising:
B13. The driver circuitry according to statement B12, wherein:
B14. The driver circuitry according to statement B13, wherein:
B15. The driver circuitry according to any of statements B12 to B14, wherein:
B16. The driver circuitry according to any of the preceding B statements, wherein:
B17. The driver circuitry according to any of the preceding B statements, implemented as integrated circuitry such as on an IC chip.
B18. An IC chip comprising the driver circuitry according to any of the preceding B statements.
B19. A control system, comprising:
B20. A haptic system comprising the control system of statement B19, wherein the electromechanical load is a linear resonant actuator coupled to a physical structure or surface of the system to produce a haptic effect for a user.
B21. A host device, such as portable electrical or electronic device, comprising the driver circuitry according to any of statements B1 to B17, or the IC chip of statement B18, or the control system of statement B19 or the haptic system of statement B20.
B22. A method of driving an electromechanical load with a drive output signal, the method comprising:
The present disclosure extends to the following set C of statements:
C1. Driver circuitry for driving an electromechanical load with a drive output signal based on a reference signal, the drive output signal inducing a first electrical quantity at the electromechanical load, the driver circuitry comprising:
C2. Driver circuitry for driving an electromechanical load with a drive output signal based on a reference signal, the drive output signal being a voltage signal and causing a current to be drawn by the electromechanical load, the driver circuitry comprising:
C3. Driver circuitry for driving a linear resonant actuator, the driver circuitry comprising:
C4. Driver circuitry for driving an electromechanical load with a drive output signal based on a reference signal, the driver circuitry configured to generate the drive output signal based on a digital operation dependent on the reference signal and an electrical quantity induced at the electromechanical load to cause the drive output signal to behave as if an output impedance of the driver circuitry has been adjusted to comprise a target output impedance.
C5. Driver circuitry for driving an electromechanical load with a drive output signal based on a reference signal, the drive output signal inducing a first electrical quantity at the electromechanical load, the driver circuitry comprising:
C6. Driver circuitry for driving an electromechanical load with a drive output signal based on a reference signal, the driver circuitry configured to digitally control the drive output signal based on the reference signal to cause the drive output signal to behave as if an output impedance of the driver circuitry has been adjusted to comprise a defined or predetermined target output impedance.
C7. Driver circuitry for driving an electromechanical load with a drive output signal based on a reference signal, the driver circuitry configured to digitally control the drive output signal based on the reference signal and an electrical quantity at the electromechanical load to cause the drive output signal to behave as if an output impedance of the driver circuitry has been adjusted to comprise a defined or predetermined target output impedance.
The present disclosure is a continuation of U.S. patent application Ser. No. 16/928,106, filed Jul. 14, 2020, which is a continuation of U.S. patent application Ser. No. 16/369,556, filed Mar. 29, 2019, issued as U.S. Pat. No. 10,828,672 on Nov. 10, 2020, each of which is incorporated by reference herein in its entirety.
Number | Name | Date | Kind |
---|---|---|---|
5374896 | Sato et al. | Dec 1994 | A |
6294891 | McConnell et al. | Sep 2001 | B1 |
6567478 | Oishi et al. | May 2003 | B2 |
6768779 | Nielsen | Jul 2004 | B1 |
6784740 | Tabatabaei | Aug 2004 | B1 |
6816833 | Iwamoto et al. | Nov 2004 | B1 |
7042286 | Meade et al. | May 2006 | B2 |
7277678 | Rozenblit et al. | Oct 2007 | B2 |
7456688 | Okazaki et al. | Nov 2008 | B2 |
7777566 | Drogi et al. | Aug 2010 | B1 |
7825838 | Srinivas et al. | Nov 2010 | B1 |
8648659 | Oh et al. | Feb 2014 | B2 |
8754758 | Ullrich et al. | Jun 2014 | B1 |
9019087 | Bakircioglu et al. | Apr 2015 | B2 |
9070856 | Rose et al. | Jun 2015 | B1 |
10039080 | Miller et al. | Jul 2018 | B2 |
10102722 | Levesque et al. | Oct 2018 | B2 |
10191579 | Forlines et al. | Jan 2019 | B2 |
10402031 | Vandermeijden et al. | Sep 2019 | B2 |
10735956 | Bae et al. | Aug 2020 | B2 |
10841696 | Mamou-Mani | Nov 2020 | B2 |
10955955 | Peso Parada et al. | Mar 2021 | B2 |
10976825 | Das et al. | Apr 2021 | B2 |
11079874 | Lapointe et al. | Aug 2021 | B2 |
11150733 | Das et al. | Oct 2021 | B2 |
11259121 | Lindemann et al. | Feb 2022 | B2 |
11460526 | Foo et al. | Oct 2022 | B1 |
11500469 | Rao et al. | Nov 2022 | B2 |
20020085647 | Oishi et al. | Jul 2002 | A1 |
20050195919 | Cova | Sep 2005 | A1 |
20070013337 | Liu et al. | Jan 2007 | A1 |
20070024254 | Radecker et al. | Feb 2007 | A1 |
20070241816 | Okazaki et al. | Oct 2007 | A1 |
20090128306 | Luden et al. | May 2009 | A1 |
20090189867 | Krah | Jul 2009 | A1 |
20090279719 | Esso | Nov 2009 | A1 |
20090313542 | Cruz-Hernandez et al. | Dec 2009 | A1 |
20100080331 | Garudadri et al. | Apr 2010 | A1 |
20100085317 | Park et al. | Apr 2010 | A1 |
20100260371 | Afshar | Oct 2010 | A1 |
20100331685 | Stein et al. | Dec 2010 | A1 |
20110077055 | Pakula et al. | Mar 2011 | A1 |
20120105367 | Son et al. | May 2012 | A1 |
20120229264 | Company Bosch | Sep 2012 | A1 |
20120249462 | Flanagan et al. | Oct 2012 | A1 |
20130016855 | Lee et al. | Jan 2013 | A1 |
20130096849 | Campbell et al. | Apr 2013 | A1 |
20130307786 | Heubel | Nov 2013 | A1 |
20140035736 | Weddle et al. | Feb 2014 | A1 |
20140125467 | Da Costa et al. | May 2014 | A1 |
20140176415 | Buuck et al. | Jun 2014 | A1 |
20140205260 | Lacroix et al. | Jul 2014 | A1 |
20140222377 | Bitan et al. | Aug 2014 | A1 |
20140253303 | Levesque | Sep 2014 | A1 |
20140300454 | Lacroix et al. | Oct 2014 | A1 |
20150049882 | Chiu et al. | Feb 2015 | A1 |
20150070149 | Cruz-Hernandez et al. | Mar 2015 | A1 |
20150070151 | Cruz-Hernandez et al. | Mar 2015 | A1 |
20150070154 | Levesque et al. | Mar 2015 | A1 |
20150077324 | Birnbaum et al. | Mar 2015 | A1 |
20150116205 | Westerman et al. | Apr 2015 | A1 |
20150204925 | Hernandez et al. | Jul 2015 | A1 |
20150234464 | Yliaho | Aug 2015 | A1 |
20150264455 | Granoto et al. | Sep 2015 | A1 |
20150268768 | Woodhull et al. | Sep 2015 | A1 |
20150339898 | Saboune et al. | Nov 2015 | A1 |
20150356981 | Johnson et al. | Dec 2015 | A1 |
20160004311 | Yliaho | Jan 2016 | A1 |
20160007095 | Lacroix | Jan 2016 | A1 |
20160097662 | Chang et al. | Apr 2016 | A1 |
20160187987 | Ulrich et al. | Jun 2016 | A1 |
20160277821 | Kunimoto | Sep 2016 | A1 |
20160291731 | Liu et al. | Oct 2016 | A1 |
20160305996 | Martens et al. | Oct 2016 | A1 |
20160328065 | Johnson et al. | Nov 2016 | A1 |
20170097381 | Stephens et al. | Apr 2017 | A1 |
20170168773 | Keller et al. | Jun 2017 | A1 |
20170169674 | Macours | Jun 2017 | A1 |
20170180863 | Biggs et al. | Jun 2017 | A1 |
20170031495 | Tse | Dec 2017 | A1 |
20180021811 | Kutej et al. | Jan 2018 | A1 |
20180033946 | Kemppinen et al. | Feb 2018 | A1 |
20180095596 | Turgeman | Apr 2018 | A1 |
20180159452 | Eke et al. | Jun 2018 | A1 |
20180159457 | Eke | Jun 2018 | A1 |
20180159545 | Eke et al. | Jun 2018 | A1 |
20180165925 | Israr et al. | Jun 2018 | A1 |
20180194369 | Lisseman et al. | Jul 2018 | A1 |
20180224963 | Lee et al. | Aug 2018 | A1 |
20180227063 | Heubel et al. | Aug 2018 | A1 |
20180206282 | Singh | Sep 2018 | A1 |
20180255411 | Lin et al. | Sep 2018 | A1 |
20180304310 | Long et al. | Oct 2018 | A1 |
20180321056 | Yoo et al. | Nov 2018 | A1 |
20180323725 | Cox et al. | Nov 2018 | A1 |
20190020760 | DeBates et al. | Jan 2019 | A1 |
20190035235 | Da Costa et al. | Jan 2019 | A1 |
20190044651 | Nakada | Feb 2019 | A1 |
20190051229 | Ozguner et al. | Feb 2019 | A1 |
20190069088 | Seiler | Feb 2019 | A1 |
20190102031 | Shutzberg et al. | Apr 2019 | A1 |
20190196596 | Yokoyama et al. | Jun 2019 | A1 |
20190220095 | Ogita et al. | Jul 2019 | A1 |
20190228619 | Yokoyama et al. | Jul 2019 | A1 |
20190253031 | Vellanki et al. | Aug 2019 | A1 |
20190295755 | Konradi et al. | Sep 2019 | A1 |
20190305851 | Vegas-Olmos et al. | Oct 2019 | A1 |
20190384393 | Cruz-Hernandez et al. | Dec 2019 | A1 |
20190384898 | Chen et al. | Dec 2019 | A1 |
20200139403 | Palit | May 2020 | A1 |
20200150767 | Karimi Eskandary et al. | May 2020 | A1 |
20200231085 | Kunii et al. | Jul 2020 | A1 |
20200306796 | Lindemann et al. | Oct 2020 | A1 |
20200348249 | Marchais et al. | Nov 2020 | A1 |
20210153562 | Fishwick et al. | May 2021 | A1 |
20210325967 | Khenkin et al. | Oct 2021 | A1 |
20210328535 | Khenkin et al. | Oct 2021 | A1 |
20210365118 | Rajapurkar et al. | Nov 2021 | A1 |
20220026989 | Rao et al. | Jan 2022 | A1 |
20220328752 | Lesso et al. | Oct 2022 | A1 |
20220404398 | Reynaga et al. | Dec 2022 | A1 |
20220408181 | Hendrix et al. | Dec 2022 | A1 |
Number | Date | Country |
---|---|---|
104811838 | Jul 2015 | CN |
107835968 | Mar 2018 | CN |
210628147 | May 2020 | CN |
113268138 | Aug 2021 | CN |
114237414 | Mar 2022 | CN |
2306269 | Apr 2011 | EP |
H10184782 | Jul 1998 | JP |
2017034973 | Mar 2017 | WO |
2017113652 | Jul 2017 | WO |
Entry |
---|
Examination Report under Section 18(3), UKIPO, Application No. GB2112207.2, dated Nov. 7, 2022. |
Examination Report, Intellectual Property India, Application No. 202117019138, dated Jan. 4, 2023. |
Search Report, China National Intellectual Property Administration, Application No. 2019107179621, dated Jan. 11, 2023. |
First Office Action, China National Intellectual Property Administration, Application No. 2019107179621, dated Jan. 19, 2023. |
Examination Report under Section 18(3), UKIPO, Application No. GB2113228.7, dated Feb. 10, 2023. |
Examination Report under Section 18(3), UKIPO, Application No. GB2113154.5, dated Feb. 17, 2023. |
Examination Report under Section 18(3), United Kingdom Intellectual Property Office, Application No. GB2106247.6, dated Mar. 31, 2022. |
Steinbach et al., Haptic Data Compression and Communication, IFFF Signal Processing Magazine, Jan. 2011. |
Pezent et al., Syntacts Open-Source Software and Hardware for Audio-Controlled Haptics, IEEE Transactions on Haptics, vol. 14, No. 1, Jan.-Mar. 2021. |
Danieau et al., Enhancing Audiovisual Experience with Haptic Feedback: A Survey on HAV, IEEE Transactions on Haptics, vol. 6, No. 2, Apr.-Jun. 2013. |
Danieau et al., Toward Haptic Cinematography: Enhancing Movie Experiences with Camera-Based Haptic Effects, IEEE Computer Society, IEEE MultiMedia, Apr.-Jun. 2014. |
Jaijongrak et al., A Haptic and Auditory Assistive User Interface: Helping the Blinds on their Computer Operations, 2011 IEEE International Conference on Rehabilitation Robotics, Rehab Week Zurich, ETH Zurich Science City, Switzerland, Jun. 29-Jul. 1, 2011. |
Lim et al., An Audio-Haptic Feedbacks for Enhancing User Experience in Mobile Devices, 2013 IEEE International Conference on Consumer Electronics (ICCE). |
Weddle et al., How Does Audio-Haptic Enhancement Influence Emotional Response to Mobile Media, 2013 Fifth International Workshop on Quality of Multimedia Experience (QoMEX), QMEX 2013. |
Final Notice of Preliminary Rejection, Korean Patent Office, Application No. 10-2019-7036236, dated Nov. 29, 2021. |
Examination Report, United Kingdom Intellectual Property Office, Application No. GB2018051.9, dated Nov. 5, 2021. |
Examination Report under Section 18(3), United Kingdom Intellectual Property Office, Application No. GB2018050.1, dated Dec. 22, 2021. |
Second Office Action, National Intellectual Property Administration, PRC, Application No. 2019800208570, dated Jan. 19, 2022. |
Combined Search and Examination Report under Sections 17 and 18(3), UKIPO, Application No. GB2210174.5, dated Aug. 1, 2022. |
Examination Report under Sections 17 and 18(3), UKIPO, Application No. GB2112207.2, dated Aug. 18, 2022. |
International Search Report and Written Opinion of the International Searching Authority, International Application No. PCT/US2022/030541, dated Sep. 1, 2022. |
Vanderborght, B. et al., Variable impedance actuators: A review; Robotics and Autonomous Systems 61, Aug. 6, 2013, pp. 1601-1614. |
International Search Report and Written Opinion of the International Searching Authority, International Application No. PCT/US2022/033190, dated Sep. 8, 2022. |
International Search Report and Written Opinion of the International Searching Authority, International Application No. PCT/US2022/033230, dated Sep. 15, 2022. |
Examination Report under Section 18(3), UKIPO, Application No. GB2115048.7, dated Aug. 24, 2022. |
Communication pursuant to Article 94(3) EPC, European Patent Office, Application No. 18727512.8, dated Sep. 26, 2022. |
Examination Report under Section 18(3), UKIPO, Application No. GB2117488.3, dated Apr. 27, 2023. |
Second Office Action, National Intellectual Property Administration, PRC, Application No. 2019107179621, dated May 24, 2023. |
Examination Report under Section 18(3), UKIPO, Application No. GB2113228.7, dated Jun. 28, 2023. |
Number | Date | Country | |
---|---|---|---|
20220080457 A1 | Mar 2022 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 16928106 | Jul 2020 | US |
Child | 17505199 | US | |
Parent | 16369556 | Mar 2019 | US |
Child | 16928106 | US |