IP Library Granted Patent US 10,282,189
Granted Patent B2
US 10,282,189 · App. 15/198,412 · Granted May 7, 2019

Updating program code stored in an external non-volatile memory

Inventors: Eric Wu (San Jose, CA); Padma Uppalapati (Santa Clara, CA); Jackson Philip (San Ramon, CA)
Assignee: SYNAPTICS INCORPORATED
G06F8/65G06F3/065G06F3/0619G06F3/0685
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,282,189
App. No.
15/198,412
Granted
May 7, 2019
Kind
B2
Abstract

In a method of updating program code in an external non-volatile memory, updated program code is received at an Application Specific Integrated Circuitry (ASIC). The updated program code is received from a host device. The updated program code is stored in a volatile memory of the ASIC. The ASIC performs operations. The updated program code is copied from the volatile memory to a non-volatile memory while performing the operations. The non-volatile memory is located external to the ASIC.

Claims (51)

1. A method of updating program code in an external non-volatile memory, said method comprising:

at an application specific integrated circuitry (ASIC) of an input device, receiving updated program code from a host device, wherein the host device is external to the input device and communicatively coupled to the input device;

storing said updated program code in a volatile memory of said ASIC;

executing instructions of the updated program code in the volatile memory, the instructions performing operations comprising acquiring and processing touch data with said ASIC, wherein the touch data is acquired from sensing electrodes of the input device;

determining whether the touch data has been acquired from all the sensing electrodes being driven;

in response to determining that the touch data has not been acquired from all the sensing electrodes,

writing a block of the updated program code from the volatile memory to a non-volatile memory of the input device; and

in response to determining that the touch data has been acquired from all the sensing electrodes, processing the acquired touch data to determine a presence of an input object near the input device.

2. The method of claim 1 , further comprising:

based on determining that all blocks of the updated program code have been written from the volatile memory to the non-volatile memory of the input device, sending a completion message from said ASIC to said host device.

3. The method of claim 1 , wherein said receiving updated program code from a host device comprises:

receiving said updated program code from said host device upon boot-up of said ASIC.

4. The method of claim 1 , wherein said acquiring the touch data and said writing the block of the updated program code at least partially overlap in time.

5. The method of claim 1 , wherein said acquiring the touch data comprises:

driving sensor electrodes for capacitive sensing.

6. An application specific integrated circuit (ASIC) of an input device, the ASIC comprising:

a volatile memory;

a first communication interface coupled with a host device, said host device external to said ASIC and to said input device; a second communication interface coupled with said volatile memory and with a non-volatile memory, said non-volatile memory located in the input device, external to said ASIC; and

a processor coupled with said volatile memory, said first communication interface, and said second communication interface, said processor configured to:

receive updated program code from said host device via said first communication interface;

store said updated program code in said volatile memory;

execute instructions of the updated program code in the volatile memory, the instructions performing operations comprising acquiring and processing touch data, wherein the touch data is acquired from sensing electrodes of the input device;

determine whether the touch data has been acquired from all the sensing electrodes being driven;

in response to determining that the touch data has not been acquired from all the sensing electrodes,

write a block of the updated program code from the volatile memory to the non-volatile memory of the input device; and

in response to determining that the touch data has been acquired from all the sensing electrodes, process the acquired touch data to determine a presence of an input object near the input device.

7. The ASIC of claim 6 , wherein said acquiring the touch data comprises:

driving sensor electrodes for capacitive sensing.

8. The ASIC of claim 6 , wherein a first speed of communication of said updated program code between said host device and said ASIC is faster than a second speed of communication of said updated program code between said ASIC and said non-volatile memory.

9. The ASIC of claim 6 , wherein said acquiring the touch data and said writing the block of the updated program code at least partially overlap in time.

10. The ASIC of claim 6 , wherein said updated program code comprises information selected from the list of information consisting of: ASIC configuration information; touch sensing frequency information; display operation information; sensor electrode drive information: and capacitive sensing mode information.

11. A processing system for a capacitive sensing input device, said processing system comprising:

a volatile memory; and

a processor coupled with said volatile memory, said processor configured to:

receive updated program code from a host device, wherein the host device is external to the capacitive sensing input device and communicatively coupled to the capacitive sensing input device;

store said updated program code in said volatile memory;

execute instructions of the updated program code in the volatile memory, the instructions performing operations comprising acquiring and processing touch data, wherein the touch data is acquired from sensing electrodes of the capacitive sensing input device;

determine whether the touch data has been acquired from all the sensing electrodes being driven;

in response to determining that the touch data has not been acquired from all the sensing electrodes, write a block of the updated program code from the volatile memory to a non-volatile memory of the capacitive sensing input device; and

in response to determining that the touch data has been acquired from all the sensing electrodes, process the acquired touch data to determine a presence of an input object near the capacitance sensing input device.

12. The processing system of claim 11 , wherein acquiring the touch data comprises

driving sensor electrodes for capacitive sensing.

13. The processing system of claim 11 , wherein said processor is further configured to:

based on determining that all blocks of the updated program code have been written from the volatile memory to the non-volatile memory of the capacitive sensing input device, send a completion message to said host device.

14. The processing system of claim 11 , wherein a first speed of storing said updated program code in said volatile memory is faster than a second speed of copying said updated program code from said volatile memory to said non-volatile memory.

15. The processing system of claim 11 , wherein said acquiring the touch data and said writing the block of the updated program code at least partially overlap in time.

16. The processing system of claim 11 , wherein said updated program code comprises information selected from the list of information consisting of: application specific integrated circuit (ASIC) configuration information; touch sensing frequency information; display operation information; sensor electrode drive information; and capacitive sensing mode information.

17. The method of claim 1 , further comprising:

prior to making the determination that the touch data has been acquired from all the sensing electrodes, writing additional blocks of the updated program code from the volatile memory to the non-volatile memory of the input device.

18. The ASC of claim 6 , wherein prior to making the determination that the touch data has been acquired from all the sensing electrodes, additional blocks of the updated program code are written from the volatile memory to the non-volatile memory of the input device.

19. The processing system of claim 11 , wherein prior to making the determination that the touch data has been acquired from all the sensing electrodes, additional blocks of the updated program code are written from the volatile memory to the nonvolatile memory of the capacitive sensing input device.

Assignments (3)
CORRECTIVE ASSIGNMENT TO CORRECT THE CORRECT THE SPELLING OF THE ASSIGNOR NAME PREVIOUSLY RECORDED AT REEL: 051316 FRAME: 0777. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Mar 18, 2020
From: SYNAPTICS INCORPORATED
To: WELLS FARGO BANK, NATIONAL ASSOCIATION
Reel/Frame 052186/0756 →
SECURITY INTEREST Recorded Dec 16, 2019
From: SYNAPTICS INCORPROATED
To: WELLS FARGO BANK, NATIONAL ASSOCIATION
Reel/Frame 051316/0777 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 4, 2019
From: WU, ERIC; UPPALAPATI, PADMA; PHILIP, JACKSON
To: SYNAPTICS INCORPORATED
Reel/Frame 049685/0442 →
Continuity (1)
Related Publication 20180004501A1 · Jan 4, 2018