| Literature DB >> 35458955 |
Ruhaifi Bin Abdullah Zawawi1, Jungsuk Kim2,3.
Abstract
Power-efficient digital controllers are proposed for wireless retinal prosthetic systems. Power management plays an important role in reducing the power consumption and avoiding malfunctions in implantable medical devices. In the case of implantable devices with only one-way communication, the received power level is uncertain because there is no feedback on the power status. Accordingly, system breakdown due to inefficient power management should be avoided to prevent harm to patients. In this study, digital power controllers were developed for achieving two-way communication. Three controllers-a forward and back telemetry control unit, a power control unit, and a preamble control unit-operated simultaneously to control the class-E amplifier input power, provided command data to stimulators, monitored the power levels of the implanted devices, and generated back telemetry data. For performance verification, we implemented a digital power control system using a field-programmable gate array and then demonstrated it by employing a wireless telemetry system.Entities:
Keywords: digital power controller; implantable medical devices; retinal prosthesis; wireless power telemetry
Mesh:
Year: 2022 PMID: 35458955 PMCID: PMC9032942 DOI: 10.3390/s22082970
Source DB: PubMed Journal: Sensors (Basel) ISSN: 1424-8220 Impact factor: 3.576
Figure 1Wireless power retinal prosthesis system.
Figure 2Power telemetry start-up and active flow diagram.
Figure 3(a) Timing diagram of the digital controllers; (b) FBCU, (c) PRCU, and (d) PCU.
Figure 4Parallel-to-serial converter of the transmitter.
Pin functions of the proposed digital controllers.
| Pin | I/O | Description |
|---|---|---|
|
| Input | Main clock source, fo = 13.56 MHz |
|
| Input | Back telemetry data |
|
| Input | |
|
| Input | |
|
| Input | Load/Shift pulse in Tx SP converter, 0/1 = load/shift |
|
| Input | Input data of Tx PS converter |
|
| Output | Output data of Tx SP converter, |
|
| Output | Transmitted data/reset pulse in Tx SP converter |
|
| Output | Used to generate |
|
| Output | Back telemetry data |
|
| Output | Master reset |
|
| Input | Input data of Rx SP converter |
|
| Output | Output data to stimulator controller |
Figure 5(a) Simulation results for the proposed PCU; (b) magnified signal of Q_TX; (c) zoomed signal of Q_RX; (d) zoomed signal of error data packet #1.
Figure 6Experimental setup for the proposed digital controllers.
Figure 7Measurement results for (a) the power efficiency and peak voltage with respect to the output load and (b) the power efficiency with respect to the distance d.
Figure 8Measurement results for the proposed system: (a) A1 = 0 and A2 = 0 (V < 3.5 V); (b) A1 = 0 and A2 = 1 (3.5 V < V < 5 V); (c) A1 = 1 and A2 = 1 (V > 5 V).
Figure 9System integration in the receiver.
Clocking.
| bufgctrl_available = 32 | bufgctrl_fixed = 0 | bufgctrl_used = 1 | bufgctrl_util_percentage = 3.13 |
| bufhce_available = 72 | bufhce_fixed = 0 | bufhce_used = 0 | bufhce_util_percentage = 0.00 |
| bufio_available = 20 | bufio_fixed = 0 | bufio_used = 0 | bufio_util_percentage = 0.00 |
| bufmrce_available = 10 | bufmrce_fixed = 0 | bufmrce_used = 0 | bufmrce_util_percentage = 0.00 |
| bufr_available = 20 | bufr_fixed = 0 | bufr_used = 0 | bufr_util_percentage = 0.00 |
| mmcme2_adv_available = 5 | mmcme2_adv_fixed = 0 | mmcme2_adv_used = 0 | mmcme2_adv_util_percentage = 0.00 |
| plle2_adv_available = 5 | plle2_adv_fixed = 0 | plle2_adv_used = 0 | plle2_adv_util_percentage = 0.00 |
IO standard.
| blvds_25 = 0 | diff_hstl_i = 0 | diff_hstl_i_18 = 0 | diff_hstl_ii = 0 |
| diff_hstl_ii_18 = 0 | diff_hsul_12 = 0 | diff_mobile_ddr = 0 | diff_sstl135 = 0 |
| diff_sstl135_r = 0 | diff_sstl15 = 0 | diff_sstl15_r = 0 | diff_sstl18_i = 0 |
| diff_sstl18_ii = 0 | hstl_i = 0 | hstl_i_18 = 0 | hstl_ii = 0 |
| hstl_ii_18 = 0 | hsul_12 = 0 | lvcmos12 = 0 | lvcmos15 = 0 |
| lvcmos18 = 0 | lvcmos25 = 0 | lvcmos33 = 1 | lvds_25 = 0 |
| lvttl = 0 | mini_lvds_25 = 0 | mobile_ddr = 0 | pci33_3 = 0 |
| ppds_25 = 0 | rsds_25 = 0 | sstl135 = 0 | sstl135_r = 0 |
| sstl15 = 0 | sstl15_r = 0 | sstl18_i = 0 | sstl18_ii = 0 |
Memory.
| block_ram_tile_available = 50 | block_ram_tile_fixed = 0 | block_ram_tile_used = 0 | block_ram_tile_util_percentage = 0.00 |
| ramb18_available = 100 | ramb18_fixed = 0 | ramb18_used = 0 | ramb18_util_percentage = 0.00 |
| ramb36_fifo_available = 50 | ramb36_fifo_fixed = 0 | ramb36_fifo_used = 0 | ramb36_fifo_util_percentage = 0.00 |
Primitives.
| bufg_functional_category = Clock | bufg_used = 1 | fdre_functional_category = Flop & Latch | fdre_used = 38 |
| fdse_functional_category = Flop & Latch | fdse_used = 1 | ibuf_functional_category = IO | ibuf_used = 16 |
| lut1_functional_category = LUT | lut1_used = 3 | lut2_functional_category = LUT | lut2_used = 1 |
| lut3_functional_category = LUT | lut3_used = 9 | lut4_functional_category = LUT | lut4_used = 2 |
| lut5_functional_category = LUT | lut5_used = 14 | lut6_functional_category = LUT | lut6_used = 7 |
Slice logic.
| f7_muxes_available = 16300 | f7_muxes_fixed = 0 | f7_muxes_used = 0 | f7_muxes_util_percentage = 0.00 |
| f8_muxes_available = 8150 | f8_muxes_fixed = 0 | f8_muxes_used = 0 | f8_muxes_util_percentage = 0.00 |
| lut_as_logic_available = 20800 | lut_as_logic_fixed = 0 | lut_as_logic_used = 31 | lut_as_logic_util_percentage = 0.15 |
| lut_as_memory_available = 9600 | lut_as_memory_fixed = 0 | lut_as_memory_used = 0 | lut_as_memory_util_percentage = 0.00 |
| register_as_flip_flop_available = 41600 | register_as_flip_flop_fixed = 0 | register_as_flip_flop_used = 39 | register_as_flip_flop_util_percentage = 0.09 |
| register_as_latch_available = 41600 | register_as_latch_fixed = 0 | register_as_latch_used = 0 | register_as_latch_util_percentage = 0.00 |
| slice_luts_available = 20800 | slice_luts_fixed = 0 | slice_luts_used = 31 | slice_luts_util_percentage = 0.15 |
| slice_registers_available = 41600 | slice_registers_fixed = 0 | slice_registers_used = 39 | slice_registers_util_percentage = 0.09 |
| lut_as_distributed_ram_fixed = 0 | lut_as_distributed_ram_used = 0 | lut_as_logic_available = 20800 | lut_as_logic_fixed = 0 |
| lut_as_logic_used = 31 | lut_as_logic_util_percentage = 0.15 | lut_as_memory_available = 9600 | lut_as_memory_fixed = 0 |
| lut_as_memory_used = 0 | lut_as_memory_util_percentage = 0.00 | lut_as_shift_register_fixed = 0 | lut_as_shift_register_used = 0 |
| lut_in_front_of_the_register_is_unused_fixed = 0 | lut_in_front_of_the_register_is_unused_used = 12 | lut_in_front_of_the_register_is_used_fixed = 12 | lut_in_front_of_the_register_is_used_used = 8 |
| register_driven_from_outside_the_slice_fixed = 8 | register_driven_from_outside_the_slice_used = 20 | register_driven_from_within_the_slice_fixed = 20 | register_driven_from_within_the_slice_used = 19 |
| slice_available = 8150 | slice_fixed = 0 | slice_registers_available = 41600 | slice_registers_fixed = 0 |
| slice_registers_used = 39 | slice_registers_util_percentage = 0.09 | slice_used = 24 | slice_util_percentage = 0.29 |
| slicel_fixed = 0 | slicel_used = 13 | slicem_fixed = 0 | slicem_used = 11 |
| unique_control_sets_available = 8150 | unique_control_sets_fixed = 8150 | unique_control_sets_used = 6 | unique_control_sets_util_percentage = 0.07 |
| using_o5_and_o6_fixed = 0.07 | using_o5_and_o6_used = 5 | using_o5_output_only_fixed = 5 | using_o5_output_only_used = 0 |