0
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心
发布
  • 发文章

  • 发资料

  • 发帖

  • 提问

  • 发视频

创作活动
DA14583IOTSENSDNGL

DA14583IOTSENSDNGL

  • 厂商:

    DIALOGSEMICONDUCTOR(戴乐格)

  • 封装:

    -

  • 描述:

    DONGLE IOT SENSOR DA14583

  • 数据手册
  • 价格&库存
DA14583IOTSENSDNGL 数据手册
DA14583 Bluetooth Low Energy 4.2 SoC with Flash Memory General Description FINAL  AES-128 bit encryption Processor Memories The DA14583 integrated circuit has a fully integrated  1 Mbit Flash memory radio transceiver and baseband processor for Blue 32 kB One-Time-Programmable (OTP) memory ® tooth low energy. It can be used as a standalone  42 kB System SRAM application processor or as a data pump in hosted sys 84 kB ROM tems.  8 kB Retention SRAM  Power management The DA14583 supports a flexible memory architecture,  Integrated Buck mode DC-DC converter including 1 Mbit of Flash memory, for storing Bluetooth  Embedded charge pump for Flash programming profiles and custom application code, which can be  P0, P1, and P2 ports with 3.3 V tolerance updated over the air (OTA). The qualified Bluetooth low  Supports coin (typ. 3.0 V) battery cells energy protocol stack is stored in a dedicated ROM. All  10-bit ADC for battery voltage measurement software runs on the ARM® Cortex®-M0 processor via  Digital controlled oscillators a simple scheduler.  16 MHz crystal (±20 ppm max) and RC oscillator The Bluetooth low energy firmware includes the  32 kHz crystal (±50 ppm, ±500 ppm max) and L2CAP service layer protocols, Security Manager RCX oscillator (SM), Attribute Protocol (ATT), the Generic Attribute  General purpose, Capture and Sleep timers Profile (GATT) and the Generic Access Profile (GAP).  Digital interfaces All profiles published by the Bluetooth SIG as well as  24 general purpose I/Os custom profiles are supported.  2 UARTs with hardware flow control up to 1 MBd  SPI+™ interface The transceiver interfaces directly to the antenna and  I2C bus at 100 kHz, 400 kHz is fully compliant with the Bluetooth 4.2 standard.  3-axes capable Quadrature Decoder The DA14583 has dedicated hardware for the Link  Analog interfaces Layer implementation of Bluetooth low energy and  4-channel 10-bit ADC interface controllers for enhanced connectivity capabili Radio transceiver ties.  Fully integrated 2.4 GHz CMOS transceiver  Single wire antenna: no RF matching or RX/TX Features switching required  Complies with Bluetooth V4.2, ETSI EN 300 328 and  Supply current at VBAT3V: EN 300 440 Class 2 (Europe), FCC CFR47 Part 15 TX: 3.4 mA, RX: 3.7 mA (with ideal DC-DC)  0 dBm transmit output power (US) and ARIB STD-T66 (Japan)  Processing power  -20 dBm output power in “Near Field Mode”  16 MHz 32 bit ARM Cortex-M0 with SWD inter -93 dBm receiver sensitivity  Packages: face  Dedicated Link Layer Processor  QFN 40 pins, 5 mm x 5 mm ________________________________________________________________________________________________ C O N FI D EN TI AL  N D A System Diagram Datasheet CFR0011-120-01 Revision 3.1 1 of 230 04-Jan-2022 © 2022 Renesas Electronics DA14583 Bluetooth Low Energy 4.2 SoC with Flash Memory FINAL Contents 1 Block Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 13 I2C Interface. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 2 Pinout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 13.1 I2C BUS TERMS . . . . . . . . . . . . . . . . . . . . . . 34 3 Ordering Information . . . . . . . . . . . . . . . . . . . . . . . . 8 13.2 I2C BEHAVIOR . . . . . . . . . . . . . . . . . . . . . . . 35 4 System Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 13.2.1 START and STOP Generation . . . . . . . 36 4.1 INTERNAL BLOCKS . . . . . . . . . . . . . . . . . . . . . 9 13.2.2 Combined Formats . . . . . . . . . . . . . . . 36 4.2 FUNCTIONAL MODES . . . . . . . . . . . . . . . . . . 10 13.3 I2C PROTOCOLS . . . . . . . . . . . . . . . . . . . . . 36 4.3 OTP MEMORY LAYOUT . . . . . . . . . . . . . . . . 10 13.3.1 START and STOP Conditions . . . . . . . 36 4.3.1 OTP Header. . . . . . . . . . . . . . . . . . . . . . .11 13.3.2 Addressing Slave Protocol. . . . . . . . . . 36 4.4 SYSTEM START PROCEDURE . . . . . . . . . . . 12 13.3.3 Transmitting and Receiving Protocols . 37 4.4.1 Power/Wake-up Sequence . . . . . . . . . . 12 13.4 MULTIPLE MASTER ARBITRATION . . . . . . 39 4.4.2 OTP Mirroring . . . . . . . . . . . . . . . . . . . . 13 13.5 CLOCK SYNCHRONIZATION . . . . . . . . . . . 40 4.4.3 BootROM Sequence . . . . . . . . . . . . . . . 14 13.6 OPERATION MODES . . . . . . . . . . . . . . . . . . 41 4.5 POWER SUPPLY CONFIGURATION . . . . . . 17 13.6.1 Slave Mode Operation . . . . . . . . . . . . . 41 4.5.2 Power Modes . . . . . . . . . . . . . . . . . . . . . 18 4.5.3 Retention Registers . . . . . . . . . . . . . . . . 18 13.6.2 Master Mode Operation . . . . . . . . . . . . 43 13.6.3 Disabling the I2C Controller . . . . . . . . . 43 14 UART . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 14.1 UART (RS232) SERIAL PROTOCOL . . . . . . 45 FI D 5 Reset. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 EN 4.5.1 Power Domains . . . . . . . . . . . . . . . . . . . 17 TI AL 13.1.1 Bus Transfer Terms . . . . . . . . . . . . . . . 35 14.2 IRDA 1.0 SIR PROTOCOL . . . . . . . . . . . . . . 45 5.1 POR, HW AND SW RESET . . . . . . . . . . . . . . 20 14.3 CLOCK SUPPORT . . . . . . . . . . . . . . . . . . . . 46 14.4 INTERRUPTS . . . . . . . . . . . . . . . . . . . . . . . . 47 6.1 INTERRUPTS . . . . . . . . . . . . . . . . . . . . . . . . . 22 14.5 PROGRAMMABLE THRE INTERRUPT . . . . 47 6.2 SYSTEM TIMER (SYSTICK). . . . . . . . . . . . . . 23 14.6 SHADOW REGISTERS . . . . . . . . . . . . . . . . 49 6.3 WAKE-UP INTERRUPT CONTROLLER. . . . . 23 14.7 DIRECT TEST MODE . . . . . . . . . . . . . . . . . . 49 N 6 ARM Cortex-M0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 O 6.4 REFERENCE . . . . . . . . . . . . . . . . . . . . . . . . . 23 15 SPI+ Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 C 7 AMBA Bus Overview. . . . . . . . . . . . . . . . . . . . . . . . 24 15.1 OPERATION WITHOUT FIFOS . . . . . . . . . . 50 15.2 9 BITS MODE . . . . . . . . . . . . . . . . . . . . . . . . 51 9 Memory Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 16 Quadrature Decoder . . . . . . . . . . . . . . . . . . . . . . . 54 10 Memory Controller . . . . . . . . . . . . . . . . . . . . . . . . 28 17 Wake-Up Timer . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 10.1 ARBITRATION . . . . . . . . . . . . . . . . . . . . . . . 28 18 General Purpose Timers. . . . . . . . . . . . . . . . . . . . 56 D A 8 Patch Block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 18.1 TIMER 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 11.1 CRYSTAL OSCILLATORS . . . . . . . . . . . . . . 29 18.2 TIMER 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 11.1.1 Frequency Control (16 MHz Crystal) . . 29 19 Watchdog Timer . . . . . . . . . . . . . . . . . . . . . . . . . . 60 N 11 Clock Generation. . . . . . . . . . . . . . . . . . . . . . . . . . 29 11.1.2 Automated Trimming Mechanism . . . . 29 11.2 RC OSCILLATORS . . . . . . . . . . . . . . . . . . . . 30 20 Keyboard Controller . . . . . . . . . . . . . . . . . . . . . . . 61 11.2.1 Frequency Calibration . . . . . . . . . . . . . 30 20.1 KEYBOARD SCANNER . . . . . . . . . . . . . . . . 61 11.3 SYSTEM CLOCK GENERATION . . . . . . . . . 31 20.2 GPIO INTERRUPT GENERATOR . . . . . . . . 61 11.4 GENERAL CLOCK CONSTRAINTS . . . . . . . 32 21 Input/Output Ports. . . . . . . . . . . . . . . . . . . . . . . . . 63 12 OTP Controller. . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 21.1 PROGRAMMABLE PIN ASSIGNMENT . . . . 63 12.1 OPERATING MODES . . . . . . . . . . . . . . . . . . 33 21.2 GENERAL PURPOSE PORT REGISTERS . 63 12.2 AHB MASTER INTERFACE . . . . . . . . . . . . . 33 21.2.1 Port Data Register . . . . . . . . . . . . . . . . 64 21.2.2 Port Set Data Output Register . . . . . . . 64 Datasheet CFR0011-120-01 Revision 3.1 2 of 230 04-Jan-2022 © 2022 Renesas Electronics DA14583 Bluetooth Low Energy 4.2 SoC with Flash Memory FINAL 21.2.3 Port Reset Data Output Register . . . . . 64 21.3 FIXED ASSIGNMENT FUNCTIONALITY . . . 64 22 General Purpose ADC. . . . . . . . . . . . . . . . . . . . . . 65 22.1 INPUT CHANNELS AND INPUT SCALE . . . 65 22.2 STARTING THE ADC AND SAMPLING RATE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 22.3 NON-IDEAL EFFECTS . . . . . . . . . . . . . . . . . 66 TI AL 22.4 CHOPPING . . . . . . . . . . . . . . . . . . . . . . . . . . 66 22.5 OFFSET CALIBRATION . . . . . . . . . . . . . . . . 66 22.6 ZERO-SCALE ADJUSTMENT . . . . . . . . . . . 67 22.7 COMMON MODE ADJUSTMENT. . . . . . . . . 67 22.8 INPUT IMPEDANCE, INDUCTANCE AND INPUT SETTLING. . . . . . . . . . . . . . . . . . . . . . . . 67 23 Power Management. . . . . . . . . . . . . . . . . . . . . . . . 69 24 BLE Core . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 24.1 EXCHANGE MEMORY . . . . . . . . . . . . . . . . . 71 FI D 24.2 PROGRAMMING BLE WAKE UP IRQ . . . . . 73 EN 22.9 DELAY COUNTER . . . . . . . . . . . . . . . . . . . . 68 24.3 SWITCH FROM ACTIVE MODE TO DEEP SLEEP MODE . . . . . . . . . . . . . . . . . . . . . . . . . 73 24.4 SWITCH FROM DEEP SLEEP MODE TO AC- TIVE MODE. . . . . . . . . . . . . . . . . . . . . . . . . . . 74 N 24.4.1 Switching at Anchor Points . . . . . . . . . 74 24.4.2 Switching Due to an External Event . . 76 O 25 Radio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 25.1 RECEIVER . . . . . . . . . . . . . . . . . . . . . . . . . . 77 C 25.2 SYNTHESIZER . . . . . . . . . . . . . . . . . . . . . . . 77 25.3 TRANSMITTER . . . . . . . . . . . . . . . . . . . . . . . 77 25.4 RFIO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 A 25.5 BIASING . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 D 25.6 CONTROL . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 26 Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 N 27 Specifications . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 28 Package Information . . . . . . . . . . . . . . . . . . . . . . 228 28.1 MOISTURE SENSITIVITY LEVEL (MSL) . . 228 28.2 SOLDERING INFORMATION . . . . . . . . . . . 228 28.3 PACKAGE OUTLINES . . . . . . . . . . . . . . . . 229 Datasheet CFR0011-120-01 Revision 3.1 3 of 230 04-Jan-2022 © 2022 Renesas Electronics DA14583 Bluetooth Low Energy 4.2 SoC with Flash Memory EN TI AL Block Diagram 24 April 2012 XTAL 32.768 kHz DCDC (BUCK/BOOST) XTAL 16 MHz LDO SYS CORE BLE Core N ROM 84 kB Datasheet CFR0011-120-01 RC 32 kHz RCX POReset Radio Transceiver LINK LAYER HARDWARE Timer 2 3x PWM FIFO SPI GP ADC FIFO I2C FIFO QUAD DECODER N O Timer 0 1x PWM UART2 DMA OTPC SW TIMER C OTP 32 kB POWER/CLOCK Management (PMU) Ret. RAM4 1 kB APB bridge Ret. RAM3 2 kB A Ret. RAM2 3 kB D Ret. RAM 2 kB Memory Controller System/ Exchange RAM 42 kB LDO LDO LDO SYS SYS RF FI D AES-128 WAKE UP TIMER SWD (JTAG) LDO RET RC 16 MHz UART ARM Cortex M0 KEYBOARD CTRL 1 FINAL SPI FLASH 1 Mbit FIFO GPIO MULTIPLEXING Figure 1: DA14583 Block Diagram Revision 3.1 4 of 230 04-Jan-2022 © 2022 Renesas Electronics DA14583 Bluetooth Low Energy 4.2 SoC with Flash Memory Pinout The pin/ball assignment is depicted in the following figure: P2_0/SPI_CLK P2_9/SPI_DI VPP P2_8 P2_7 RFIOp RFIOm P2_6 P2_5 VDCDC_RF 39 38 37 36 35 34 33 32 30 XTAL16Mm 29 XTAL16Mp 28 P1_3 27 P1_2 26 SW_CLK 25 SWDIO 31 EN 18 19 20 P2_3/SPI_EN VDCDC P2_4/SPI_DO Pin 0: GND plane 17 P0_7 16 9 10 N P0_6 RST 8 GND 7 P2_1 FI D P0_5 (Top View) 15 6 14 5 P0_4 VBAT3V VCC_FLASH DA14583 VBAT_RF 4 13 P0_3 12 P0_2 3 P2_2 2 XTAL32Kp P0_1 11 1 XTAL32Km P0_0 40 The DA14583 comes in a Quad Flat Package No Leads (QFN) with 40 pins. TI AL 2 FINAL 24 P1_1 23 VBAT1V 22 P1_0 21 SWITCH N D A C O Figure 2: QFN40 Pin Assignment Datasheet CFR0011-120-01 Revision 3.1 5 of 230 04-Jan-2022 © 2022 Renesas Electronics DA14583 Bluetooth Low Energy 4.2 SoC with Flash Memory FINAL Table 1: Pin Description Pin Name Drive (mA) Type Reset State (Note 1) Description General Purpose I/Os DIO DIO DIO DIO DIO DIO DIO DIO 4.8 I-PD I-PD I-PD I-PD I-PD I-PD I-PD I-PD INPUT/OUTPUT with selectable pull up/down resistor. Pull-down enabled during and after reset. General purpose I/O port bit or alternate function nodes. Contains state retention mechanism during power down. P1_0 P1_1 P1_2 P1_3 P1_4/SW_CLK P1_5/SWDIO DIO DIO DIO DIO DIO DIO 4.8 I-PD I-PD I-PD I-PD I-PD I-PU INPUT/OUTPUT with selectable pull up/down resistor. Pull-down enabled during and after reset. General purpose I/O port bit or alternate function nodes. Contains state retention mechanism during power down. This signal is the JTAG clock by default This signal is the JTAG data I/O by default P2_0/SPI_CLK P2_1 P2_2 P2_3/SPI_EN P2_4/SPI_DO P2_5 P2_6 P2_7 P2_8 P2_9/SPI_DI DIO DIO DIO DIO DIO DIO DIO DIO DIO DIO 4.8 I-PD I-PD I-PD I-PD I-PD I-PD I-PD I-PD I-PD I-PD INPUT/OUTPUT with selectable pull up/down resistor. Pull-down enabled during and after reset. General purpose I/O port bit or alternate function nodes. Contains state retention mechanism during power down. P3_0 to P3_7 DIO 4.8 I-PD Not supported SW_CLK/P1_4 Clocks EN FI D DIO DIO 4.8 4.8 Note: During the boot sequence, the four SPI pins of port P2 are used to access the internal Flash memory. Therefore these pins shall not be remapped or used for any other purpose. N O SWDIO/P1_5 C Debug Interface TI AL P0_0 P0_1 P0_2 P0_3 P0_4 P0_5 P0_6 P0_7 I-PU INPUT/OUTPUT. JTAG Data input/output. Bidirectional data and control communication. Can also be used as a GPIO I-PD INPUT JTAG clock signal. Can also be used as a GPIO AI INPUT. Crystal input for the 16 MHz XTAL XTAL16Mm AO OUTPUT. Crystal output for the 16 MHz XTAL XTAL32kp AI INPUT. Crystal input for the 32.768 kHz XTAL XTAL32km AO OUTPUT. Crystal output for the 32.768 kHz XTAL D A XTAL16Mp N Quadrature Decoder QD_CHA_X DI INPUT. Channel A for the X axis. Mapped on Px ports QD_CHB_X DI INPUT. Channel B for the X axis. Mapped on Px ports QD_CHA_Y DI INPUT. Channel A for the Y axis. Mapped on Px ports QD_CHB_Y DI INPUT. Channel B for the Y axis. Mapped on Px ports QD_CHA_Z DI INPUT. Channel A for the Z axis. Mapped on Px ports QD_CHB_Z DI INPUT. Channel B for the Z axis. Mapped on Px ports DO INPUT/OUTPUT. SPI Clock. Shall not be remapped. SPI_DI/P2_9 DI INPUT. SPI Data input. Shall not be remapped. SPI_DO/P2_4 DO OUTPUT. SPI Data output. Shall not be remapped. SPI Bus Interface SPI_CLK/P2_0 Datasheet CFR0011-120-01 Revision 3.1 6 of 230 04-Jan-2022 © 2022 Renesas Electronics DA14583 Bluetooth Low Energy 4.2 SoC with Flash Memory FINAL Table 1: Pin Description Pin Name Drive (mA) Type SPI_EN/P2_3 Reset State (Note 1) DI Description INPUT. SPI Clock enable. Shall not be remapped. I2C Bus Interface DIO/ DIOD INPUT/OUTPUT. I2C bus Data with open drain port. Mapped on Px ports SCL DIO/ DIOD INPUT/OUTPUT. I2C bus Clock with open drain port. In open drain mode, SCL is monitored to support bit stretching by a slave. Mapped on Px ports. TI AL SDA UART Interface UTX DO OUTPUT. UART transmit data. Mapped on Px ports URX DI INPUT. UART receive data. Mapped on Px ports URTS DO OUTPUT. UART Request to Send. Mapped on Px ports DI INPUT. UART Clear to Send. Mapped on Px ports UTX2 DO OUTPUT. UART 2 transmit data. Mapped on Px ports URX2 DI INPUT. UART 2 receive data. Mapped on Px ports URTS2 DO OUTPUT. UART 2 Request to Send. Mapped on Px ports UCTS2 DI INPUT. UART 2 Clear to Send. Mapped on Px ports FI D EN UCTS Analog Interface AI ADC[1] AI ADC[2] AI ADC[3] AI INPUT. Analog to Digital Converter input 0. Mapped on P0[0] INPUT. Analog to Digital Converter input 1. Mapped on P0[1] INPUT. Analog to Digital Converter input 2. Mapped on P0[2] INPUT. Analog to Digital Converter input 3. Mapped on P0[3] N ADC[0] AIO RFIOm AIO Miscellaneous VBAT_RF VDCDC_RF AIO Connect to VBAT3V on the PCB AIO Connect to VDCDC on the PCB AI INPUT. This pin is used while OTP programming and testing. OTP programming: VPP = 6.7 V ± 0.1 V OTP normal operation: leave VPP floating VBAT3V AIO INPUT/OUTPUT. Battery connection for a coin battery (3 V). VBAT1V AI INPUT. This pin must be connected to GND. AI INPUT. Flash memory supply voltage (2.35 V to 3.6 V). D VPP RF ground INPUT. Reset signal (active high). Must be connected to GND if not used. DI A RST RF input/output. Impedance 50  C RFIOp O Radio Transceiver N Power Supply VCC_FLASH SWITCH AIO VDCDC AO GND AIO Note 1: INPUT/OUTPUT. Connection for the external DC-DC converter inductor. Output of the DC-DC converter - - Ground During the boot sequence, the four SPI pins of port P2 are used to access the internal Flash memory and shall not be used for any other purpose. The specified pin assignment of the SPI interface is mandatory for booting from internal Flash memory and shall not be modified. Datasheet CFR0011-120-01 Revision 3.1 7 of 230 04-Jan-2022 © 2022 Renesas Electronics DA14583 Bluetooth Low Energy 4.2 SoC with Flash Memory 3 FINAL Ordering Information Table 2: Ordering Information (Samples) Part Number Package Size (mm) Shipment Form Pack Quantity DA14583-01F01AT1 QFN40 5x5 Tray 50 TI AL Table 3: Ordering Information (Production) Part Number Package Size (mm) Shipment Form Pack Quantity DA14583-01F01AT2 QFN40 5x5 Reel 5000 Part Number Legend: DA14583-nnF01XYZ EN nn: chip revision number XY: package code N D A C O N FI D Z: packing method Datasheet CFR0011-120-01 Revision 3.1 8 of 230 04-Jan-2022 © 2022 Renesas Electronics DA14583 Bluetooth Low Energy 4.2 SoC with Flash Memory System Overview Radio Transceiver. This block implements the RF part of the Bluetooth low energy protocol. ARM Cortex M0 CPU with Wake-up Interrupt Controller (WIC). This processor provides 0.9 dMIPS/MHz and is used for assisting the Bluetooth low energy protocol implementation, providing processing power for calculations or data fetches required by the application and finally housekeeping, including controlling of the power scheme of the system. BLE Core. This is the baseband hardware accelerator for the Bluetooth low energy protocol. ROM. This is a 84 kB ROM containing the Bluetooth low energy protocol stack as well as the boot code sequence. Software Timer. This block contains a 16-bit general purpose timer (Timer0) with PWM capability as well as a 14-bits timer (Timer2) which controls 3 PWM signals with respect to frequency and duty cycle. Wake-up Timer. This is a timer for capturing external events and it can be used as a wake-up trigger based on a programmable number of external events on any of the GPIO ports. FI D OTP: This is a 32 kB One-Time Programmable memory array used to store the secondary boot loader, which loads the application code from Flash memory after power/wake up. The OTP memory also contains the system configuration and the calibration data. Optionally, the OTP can also contain a user defined Advanced Bootloader, used to override the standard booting sequence of the secondary bootloader. See Dialog User Manual UM-B-012 for details about the secondary bootloader and the advanced bootloader. Clock Generator. This block is responsible for the clocking of the system. It contains 2 XTAL oscillators: one running at 16 MHz (XTAL16M) which is used for the active mode of the system and one running at 32.768 kHz (XTAL32K) which is used for the sleep modes of the system. There are also three RC oscillators available: a 16 MHz and a 32 kHz oscillator (RC16M and RC32K) with low precision (> 500 ppm) and an 10.5 kHz oscillator (RCX) with high precision (< 500 ppm). The RCX oscillator can be used as a sleep clock replacing the XTAL32K oscillator to further improve the power dissipation of the system while reducing the bill of materials of the system. The RC16M oscillator is used to provide a clock used for the mirroring of the OTP code into the SysRAM while the XTAL16M oscillator is settling directly after power/ wake up. TI AL 4.1 INTERNAL BLOCKS The DA14583 contains the following blocks: EN 4 FINAL O N System SRAM. This is a 42 kB system SRAM (SysRAM) which is primarily used for mirroring the program code from the OTP when the system wakes/powers up. It also serves as Data RAM for intermediate variables and various data that the protocol requires. Optionally, it can be used as extra memory space for the BLE TX and RX data structures. D A C Retention RAMs. These are 4 special low leakage SRAM cells (2 kB + 2 kB + 3 kB + 1 kB) used to store various data of the Bluetooth low energy protocol as well as the system’s global variables and processor stack when the system goes into Extended Sleep mode. Storage of this data ensures secure and quick configuration of the BLE Core after the system wakes up. Every cell can be powered on or off according to the application needs for retention area when in Extended Sleep mode. Quadrature Decoder. This block decodes the pulse trains from a rotary encoder to provide the step and the direction of the movement of an external device. Three axes (X, Y, Z) are supported. Keyboard Controller. This circuit enables the reading and debouncing of a programmable number of GPIOs and generates an interrupt upon a configurable action. AHB/APB Bus. Implements the AMBA Lite version of the AHB and APB specifications. Power Management. A sophisticated power management circuit with a Buck/Boost DC-DC converter and several LDOs that can be turned on/off via software. Note: The DA14583 does not support Boost mode. A more detailed description of each of the components of the DA14583 is presented in the following sections. N Flash. This is a 1 Mbit Flash memory, which is used to store the application code and code for all supported Bluetooth low energy profiles. UART and UART2. These asynchronous serial interfaces implement hardware flow control with FIFO depths of 16 bytes each. SPI. This is the serial peripheral interface with master/ slave capability and a FIFO of 2 16-bit words. I2C. This is Master/Slave I2C interface used for sensors and/or host MCUs communication. It comprises a 32 places 9-bits wide FIFO. General Purpose (GP) ADC. This is a 10-bits analogto-digital converter with 4 external input channels. Datasheet CFR0011-120-01 Revision 3.1 9 of 230 04-Jan-2022 © 2022 Renesas Electronics DA14583 Bluetooth Low Energy 4.2 SoC with Flash Memory 4.2 FUNCTIONAL MODES The DA14583 is optimized for deeply embedded applications such as health monitoring, sports measuring, human interaction devices etc. Customers are able to develop and test their own applications. Upon completion of the development, the application code can be programmed into the Flash memory. In general, the system has three functional modes of operation: FINAL 0x0000 Interrupt Vectors (64 words) CUSTOMER CODE (variable but known size) EN OTP . Patch Header 2 0x7F00 N C. Calibration Mode: Between Development and Normal mode, there is an intermediate stage where the chip needs to be calibrated with respect to two important features: Patch Header 1 OTP Header (64 words) O Figure 3: OTP Layout Scheme C • Programming of the trimming value for the external 16 MHz crystal. The OTP memory comprises 8K of 32-bit words. The contents are described bellow: A This mode of operation applies to the final product and is performed by the customer. During this phase, certain fields in the OTP should be programmed as described in section 4.3.1. D Patch Payload 1 0x7FFC • Programming of the Bluetooth device address 4.3 OTP MEMORY LAYOUT The One Time Programmable memory has to be programmed according to a specific layout, which structures information to be easily accessible from the BootROM code as well as the actual application. An overview of the layout scheme is presented in the following figure: N . . Patch Payload 2 FI D B. Normal Mode: When the application is ready and has been verified, the code can be burned into the embedded Flash memory. When the system boots/ wakes up, the DMA of the OTP controller will automatically copy the secondary boot loader from OTP to system RAM. This boot loader then copies the content of the Flash memory into system RAM. Next, a software reset or a jump to the system RAM occurs and execution of the application code is started. Hence, in this mode the system is autonomous, contains the required software in the Flash memory and is ready for integration into the final product. TI AL A. Development Mode: During this phase application code is developed using the ARM Cortex-M0 SW environment. The compiled code is then downloaded into the System RAM or any Retention RAMs by means of SWD (JTAG) or any serial interface (e.g. UART). Address 0x00 is remapped to the physical memory that contains the code and the CPU is configured to reset and execute code from the remapped device. This mode is enabling application development, debugging and on-the-fly testing. • Interrupt Vectors: These are the vectors of the interrupt service routines always residing at address 0x0. This is part of the application (customer) code. The size of this vector list is 64 words. • Customer Code: contains the application and the profiles that a customer has developed. The size is known and fixed before mass production and programming of the OTP. • Patch Area: contains changes that have to be applied on the Customer Code. Each patch area comprises a Header and a Payload. Multiple patch areas are possible, however a single word must be left unprogrammed between the Customer Code area and the Patch Area. The patching mechanism is described in detail in Application Note AN-B-002. • OTP Header: contains various information about the configuration of the system as well as Bluetooth low energy specific data. Datasheet CFR0011-120-01 Revision 3.1 10 of 230 04-Jan-2022 © 2022 Renesas Electronics DA14583 Bluetooth Low Energy 4.2 SoC with Flash Memory 4.3.1 OTP Header FINAL Table 4: OTP Header The OTP header breakdown is presented in the following table: Address Table 4: OTP Header 0x7F12 Advanced Bootloader image length 0x7F10 Advanced Bootloader image offset 0x7F0C CRC for Trim and Calibration values SWD enable flag: 0x00 = JTAG is enabled 0xAA = JTAG is disabled 0x7F08 IQ Trim value 0x7F04 Application Programmed Flag #2 0xA5A51234 = Application is in OTP 0x7FF8 OTP DMA length (number of 32-bit words) 0x7F00 Application Programmed Flag #1 0x1234A5A5 = Application is in OTP 0x7FF4 Reserved. Keep to 0x0 0x7FFC Description (single byte values apply to all 4 bytes) The first word (at address 0x7FFC) is a flag which defines whether SWD (JTAG) is mapped on pins or not. Default value is activating the SDW on the respective pins. The Length field (0x7FF8) specifies the number of 32-bit words to be copied to the SRAM. 0x7FDC Customer Specific Field (6 32-bit words) to 0x7FF0 0x7FD0 Signature Algorithm Selector: 0x00 = None 0xAA = MD5 0x55 = SHA-1 0xFF = CRC32 0x7F94 to 0x7FCC Signature of Customer Code (15 32-bit words) 0x7F8C Trim value for the XTAL16M oscillator 0x7F88 Trim value for the RC16M oscillator 0x7F84 Trim value for the BandGap O N Trim value for the VCO Trim value for the RFIO capacitance Trim value for the LNA 0x7F78 Calibration Flags: Bit[31:16] 0xA5A5 = at least 1 calibration was done 0x0000 = no calibration was done Bit[15:6] - Reserved Bit[5] - 1 = VCO trim value is valid Bit[4] - 1 = XTAL16M trim value is valid Bit[3] - 1 = RC16M trim value is valid Bit[2] - 1 = BandGap trim value is valid Bit[1] - 1 = RFIO trim value is valid Bit[0] - 1 = LNA trim value is valid N D A C 0x7F80 0x7F7C 0x7F70 Sleep Clock Source Flag: 0x00 = External crystal (XTAL32K) 0xAA = Internal RCX oscillator (RCX) Package Flag: Byte 0: 0x22 = QFN40 Byte 1 to 3: Reserved. 0x7F64 to 0x7F6C Reserved 0x7F14 to 0x7F60 Customer Specific Field (20 32-bit words) Datasheet CFR0011-120-01 The Bluetooth device address is stored at 0x7FD4 (2 32-bit words). The next field (0x7FD0) identifies the algorithm to be used for creating a signature on the OTP payload. The actual signature value is stored in the next fields (if a signature algorithm is selected). This is an optional feature to guarantee trusted OTP images. 0x7F90 0x7F74 EN Bluetooth Device Address (2 32-bit words). It is handled as a string of bytes. Leftmost number will be programmed at 0x7FD4 etc. FI D 0x7FD4 to 0x7FDB TI AL Address Description (single byte values apply to all 4 bytes) The next memory locations contain the trim values for the XTAL16M and the RC16M oscillators. Since every crystal is different, an extra calibration step is required in the production line process, to identify the correct trimming value for the XTALs so that they provide the precision required by the Bluetooth low energy protocol. Since the crystal is an external component, this step has to be performed during the calibration phase. A similar procedure is required for the trimming of the RC capacitance to keep the RC clock within a certain range of frequencies. However, this trimming is done during production tests by Dialog Semiconductor. Trimming values for the VCO, Bandgap reference, the RFIO capacitance and the LNA of the Radio are also stored in the OTP header. These values are generated and programmed during production testing by Dialog Semiconductor. The Calibration Flags defines whether the chip has been already calibrated and if so, which trim values are valid. The 32 kHz Source Flag indicates to the application software whether an external 32 kHz crystal is used or not. The Package Flag specifies the package that is used: 40 pins QFN. The IQ Trim value contains the value of respective radio configuration fields and is delivered at production testing. Two more flags indicate if the application code has indeed been programmed (burned) into the OTP. Both flags are read by the BootROM software designating Revision 3.1 11 of 230 04-Jan-2022 © 2022 Renesas Electronics DA14583 Bluetooth Low Energy 4.2 SoC with Flash Memory 1. The Power/Wake-up sequence 2. The OTP mirroring sequence 3. The BootROM booting sequence The Power/Wake-up sequence is a hardwired state machine that enables the LDOs and prepares the system’s internal voltages. The OTP mirroring is a hardwired state machine which instructs the copying of the OTP contents into the SysRAM even before the ARM CPU starts. The BootROM code will only be executed when the system is powered up or a hardware reset occurs. Power ON C BootROM code booting  (includes OTP Mirroring) Is it Power Up or  Wake Up ? When no timeout occurs, the time required from the Power/Wake-up until the state that the chip is powered correctly and either the BootROM (in the case of a cold start) or the OTP mirroring (in the case of a programmed wake up) takes over, is ranging from 1.2 ms upto 1.5 ms depending on the supply voltage. Wake Up Is OTP Mirroring  enabled? Is SP pointing  close to 0x00? A Yes Since LDOs as well as the XTAL16M oscillator take sometime to settle, the state machine is polling on signals indicating that the startup of these blocks has occurred successfully. However, if these signals are not set in a timely manner, the state machine ignores the status of these blocks and continues with the power-up sequence. The timeout can be disabled by software via SYS_CTRL_REG[TIMEOUT_DISABLE]. O Power Up N Power/Wake Up Sequence Initially, it checks whether the voltage at the VBAT1V pin is above the threshold indicating that the system is in BOOST mode and if so, it activates the DC-DC converter accordingly. If not, it continues enabling the Bandgap, the digital LDO and the OTP LDO to provide a stable 1.2 V for the core and 2.4 V for the OTP cell. Next, the XTAL16M oscillator is started while a second check overwrites the programming of the DC-DC converter in the correct mode. FI D The relation between the aforementioned sequences is presented in the following figure: The Power/Wake-up sequence is a hardwired state machine that is activated every time the system is powered up (cold start) or woken up from one of the Sleep modes. This state machine uses information from internal analog comparators to reliably identify whether the system is set up in BUCK (VBAT3V > 2 V) or BOOST (VBAT1B > 0.5 V) mode automatically. TI AL 4.4 SYSTEM START PROCEDURE The actual start procedure consists of the following distinct stages that are sequentially combined to form the preferred system start sequence: 4.4.1 Power/Wake-up Sequence EN that the system is now in Normal mode and not in Development mode, as explained in the next section. FINAL YES No OTP Mirroring D Remap  (Register is retainable) N SW Reset Application SW  takes over Figure 4: General Startup Flow The system will enter the Power/Wake-Up sequence after cold power up or after waking up from one of the Sleep modes, which are described in section 4.5.2. The distinction is made by means of a flip-flop which is set to ‘1’ to indicate that the system has been just powered up (cold start). The whole process from power on up to the point that the system starts advertising (considering a typical application) takes around 145 ms. Datasheet CFR0011-120-01 Revision 3.1 12 of 230 04-Jan-2022 © 2022 Renesas Electronics DA14583 Bluetooth Low Energy 4.2 SoC with Flash Memory FINAL Extended Sleep OFF NO POR TI AL Wakeup ? YES Disable: BANDGAP, DCDC-CONVERTER, LDOs, XTAL16M PMU_CTRL_REG [FORCE_BOOST, FORCE_BUCK] FORCE_BOOST = ‘1’ FORCE_BUCK = don’t care FORCE_BOOST = ‘0’ FORCE_BUCK = ‘1’ EN FORCE_BOOST = ‘0’ FORCE_BUCK = ‘0’ VBAT1V > 0.5V BOOST Is PCB BUCK or  BOOST ? FI D Enable: BANDGAP, BOOSTCONVERTER, LDO_SYS, XTAL16M BUCK No clear decision Enable: BANDGAP, BUCK-CONVERTER, LDO_SYS, XTAL16M ‘1’ SYS_CTRL_REG [TIMEOUT_DISABLE] A D Voltages OK within >64ms? YES ‘0’ System Power UP  END C O N NO Active Go into Extended  Sleep Figure 5: Power/Wake-up Sequence N 4.4.2 OTP Mirroring This is one of the two branches of the decision regarding Power-up or Wake-up as illustrated in Figure 4. During the OTP mirroring process, the contents of the OTP memory are copied into the SysRAM, so that the ARM CPU can start executing code from there instead of the power hungry OTP memory. This task is programmable (via SYS_CTRL_REG[OTP_COPY]). In case of a Power Up, this task is performed by SW in the BootROM, i.e. the ARM CPU takes care of the mirroring of the application code into the SysRAM. However, in case of a Wake-up, the BootROM code is not executed and a small hardware state machine performs the mirroring as shown in the following figure. Datasheet CFR0011-120-01 Revision 3.1 13 of 230 04-Jan-2022 © 2022 Renesas Electronics DA14583 Bluetooth Low Energy 4.2 SoC with Flash Memory can be calibrated. In the second case, the BootROM code recognizes the OTP to be malfunctioning due to power issues (e.g. battery life is ending and thus the OTP LDO cannot generate the required voltages) and continues to activate the peripherals so that the system is still usable and can be debugged. Wake Up Start Interrupt FINAL The booting process of the DA14583 is presented in the following figure: TI AL HW FSM activates the OTP  Controller to start  mirroring OTP Controller starts  copying OTPC_NWORDS  words via DMA into  SysRAM EN OTP Controller notifies HW  FSM that mirroring is done FI D HW FSM enables ARM CPU  clock Wake Up End Figure 6: Wake-Up OTP Mirroring A C O N The flow chart of Figure 6 assumes that the OTP controller is aware of the number of words that need to be copied from the OTP memory. This value resides in the OTP Header (see Table 4) and at power up will be copied by the BootROM code (i.e. the ARM CPU) into the OTPC_NWORDS register. This is done only once, since the OTPC_NWORDS register retains its value even when the system goes into any of the Sleep modes. In this way, the number of words to be transferred from the OTP memory into the SysRAM by the OTP controller DMA engine is always available. D The typical time required for a full OTP mirroring (all 32 kB) using a trimmed RC16M clock is close to 1.2 ms. N 4.4.3 BootROM Sequence The BootROM code identifies whether the chip is in Development mode of Normal mode by reading the “Application Programmed” flags from the OTP header (see Table 4). The OTP contains all zeros when it is not programmed. If the predefined value is identified this ensures that the OTP is functional and that the application code has been programmed. However, if the predefined value is not identified, either the OTP is not programmed (all zeros) or the OTP memory is not operational (random data). In the first case, the system enters Development mode where the application can be developed and values Datasheet CFR0011-120-01 Revision 3.1 14 of 230 04-Jan-2022 © 2022 Renesas Electronics DA14583 Bluetooth Low Energy 4.2 SoC with Flash Memory Default clock is XTAL16M FINAL Boot start Avoid voltage drops due to battery contact Wait for 100 ms Switch to RC16M No (timeout 64 ms) Enable OTP LDO TI AL OTP LDO voltage OK? Yes OR timeout Read OTP “Application Flags” Yes Calibration has been performed once App programmed ? Calibration Flag=0xA5A5 ? App Flag=0x0000 ? FI D Read and program 32 kHz source config. Switch to XTAL16M N Read and program DMA length Initialise peripheral devices O Boot from Yes SPI Master C Start copy of OTP to SRAM No OTPC_STAT_REG Boot from UART Copy done? A NORMAL MODE D Ext SPI Master? No ARM is polling Yes UART? No Yes Boot from SPI Slave Run patching function Yes Ext SPI Slave? No Boot from I2C SP  0x2000... Yes Download code to SRAM Enable watchdog No Yes No Remap SysRAM to address 0x00 and SW reset I2C? Enable JTAG 5 times looped? No DEVELOPMENT MODE N CALIBRATION MODE No Read and program No respective trim values No Enable/disable JTAG Yes Calibration has been performed once Yes Read and program trim values Length register will be automatically read by the OTP controller after wake-up If the application is built for having SysRAM at address 0x00, the stack pointer will point to an address relative to 0x00 Yes Calibration Flag=0xA5A5 ? Yes Read from OTP and program registers on the PD_AON domain No OTP not programmed but operational EN Magic Number identified goto Secondary Bootloader Figure 7: BootROM Sequence Datasheet CFR0011-120-01 Revision 3.1 15 of 230 04-Jan-2022 © 2022 Renesas Electronics DA14583 Bluetooth Low Energy 4.2 SoC with Flash Memory FINAL Boot start Freeze Watchdog Read Advanced Bootloader Offset Pointer Valid Size & Offset ? No No EN Advanced Bootloader Present ? Yes TI AL Power up Peripherals No Select UART Port FI D Yes Copy Image to 0x20000000 Rx Pin High ? No Yes N Initialize UART No Last Port ? Valid Image ? Yes N D No Yes Load FW Image from SPI Flash A C O Download FW Image Valid Image ? Yes PowerDown Flash Enable Watchdog Boot FW Image Start User Application Figure 8: Secondary Bootloader Datasheet CFR0011-120-01 Revision 3.1 16 of 230 04-Jan-2022 © 2022 Renesas Electronics DA14583 Bluetooth Low Energy 4.2 SoC with Flash Memory Table 5: Development Mode Peripheral Pin Mapping Signal SPI Slave I2C P0_0 P0_0 P0_3 P0_1 A SW reset as a last step, instructs the ARM CPU to reboot running code from the SRAM. MISO P0_6 P0_2 4.5 POWER SUPPLY CONFIGURATION MOSI P0_5 P0_3 TX P0_0 P0_2 P0_4 P0_6 RX P0_1 P0_3 P0_5 P0_7 SCK P0_0 CS P0_3 MOSI P0_6 MISO P0_5 SCL P0_0 P0_2 P0_4 SDA P0_1 P0_3 P0_5 4.5.1 Power Domains The DA14583 comprises several different power domains, that are controlled by power switching elements, thus eliminating leakage currents by totally powering them down. The partitioning of the DA14583’s resources with respect to the various power domains is presented in the following table: EN UART Step A Step B Step C Step D FI D SPI SCK Master CS When in Normal Mode, the ARM CPU programs OTP header configuration information into actual registers, some of them retaining this value even if the system enters one of the Sleep modes. Next, the actual Application Code is mirrored into the System RAM and the patching function is executed to ensure that SW updates are applied. The patching mechanism is described in detail in Application Note AN-B-002. Finally, the Remap register (SYS_CTRL_REG[REMAP_ADR0]) is programmed to ensure that address zero is now pointing to the System RAM. TI AL When in Development Mode, the BootROM code initializes all peripheral devices from which the DA14583 might download code: UART, SPI (both Master and Slave) and I2C. The code searches for a valid response on various combinations of I/Os one after the other. The step sequence and GPIO mapping is presented in the following tables: FINAL P0_6 Table 7: Power Domains P0_7 Power Domain N Table 6: Development Mode Peripheral Search Sequence 3 UART Step A UART Step B UART Step C UART Step D 6 SPI Slave Step A 7 I2C Step A 8 I2C Step B N D A 4 9 I2C Step C 10 I2C Step D At each step, the BootROM code sends a certain character to the peripheral controller waiting for an answer. If no answer is received within a certain amount of time, a timeout instructs the code to continue to the next step. If a response is detected, a specific protocol is executed and communication between the DA14583 and the external device is established. The protocol and the timeout values are described in detail in Application Note AN-B-001. CFR0011-120-01 System: This power line connects to all the resources that should be powered only when the ARM M0 is running: the AHB bus, the OTP cell and controllers, the ROM, the System RAM the Watchdog, the SW Timer and the GPIO port multiplexing. PD_PER Peripherals: This power line connects to the peripherals that can be switched off after completing their operation: the UARTs, the SPI, the I2C the Keyboard controller and the ADC. PD_DBG Debug: Powers the debug part of the ARM Cortex-M0 processor. PD_RAD Radio: This is the power domain that includes the digital part of the Radio (DPHY) and the BLE Core. The power management of the Radio (RF) subsystem is controlled via several dedicated LDOs. SPI Master Step B 5 Datasheet PD_SYS SPI Master Step A C 2 Always ON: This power line connects to all the resources that must be powered constantly: the ARM/WIC, the LLP/Timer, the Retention SRAM, the PMU/CRG, the Capture Timer, the Quadrature Decoder, the padring and various registers required for the Wake Up sequence. Action 0 1 PD_AON O Sequence Description Revision 3.1 17 of 230 04-Jan-2022 © 2022 Renesas Electronics DA14583 Bluetooth Low Energy 4.2 SoC with Flash Memory 2. Sleep Mode: No power gating has been programmed, the ARM CPU is idle, waiting for an interrupt. PD_SYS is on. PD_PER and PED_RAD depending on the programmed enabled value. Table 7: Power Domains Retention_RAM: This is a separate power line that only controls the 2 kB Retention SRAM. If this memory cell is not needed, it should always be OFF. PD_RR2 PD_RR3 3. Extended Sleep Mode: All power domains are off except for the PD_AON, the programmed PD_RRx and the PD_SR. Since the SysRAM retains its data, not OTP/Flash mirroring is required upon waking up the system. Retention_RAM2: This is a separate power line that only controls the 3 kB Retention SRAM. If this memory cell is not needed, it should always be OFF The first two power modes do not include any special power gating or manipulation of power domains. The Extended Sleep mode is activated as follows: Retention_RAM3: This is a separate power line that only controls the second 2 kB Retention SRAM. If this memory cell is not needed, it should always be OFF Retention_RAM4: This is a separate power line that only controls the 1 kB Retention SRAM. If this memory cell is not needed, it should always be OFF PD_SR System_RAM: This is a separate power line that only powers the 42 kB SysRAM. This power line keeps the SysRAM’s contents retained but not accessible. Power Mode Extended Sleep Activation Steps SYS_CTRL_REG[RET_SYSRAM] = 1; SCB->SCR |= 1 7 ... The principle schematic of the two oscillators is shown in Figure 14 below. No external components to the DA14583 are required other than the crystal itself. If the crystal has a case connection, it is advised to connect the case to ground. TI AL 11 FINAL ... 3.2 pF 1.6 pF 3.2 pF ... 27 fF 13 fF Input[2:0] 2 1 FI D XTAL32Kp 0-22.4 pF clock16MHz Table 15: CLK_FREQ_TRIM_REG Decoding 3 --> 7 XTAL32Km 32.768 kHz XTAL16Mm XTAL16Mp 16 MHz EN Figure 15: Frequency Trimming N clock32kHz O Figure 14: Crystal Oscillator Circuits Output[6:0] 0 6 5 4 3 2 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 1 0 1 1 0 0 0 0 1 1 1 1 0 0 0 0 0 1 1 1 1 1 0 1 0 0 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 C 11.1.1 Frequency Control (16 MHz Crystal) A Register CLK_FREQ_TRIM_REG controls the trimming of the 16 MHz crystal oscillator. The frequency is trimmed by two on-chip variable capacitor banks. Both capacitor banks are controlled by the same register. N D The capacitance of both variable capacitor banks varies from minimum to maximum value in 2048 equal steps. With CLK_FREQ_TRIM_REG = 0x000 the maximum capacitance and thus the minimum frequency is selected. With CLK_FREQ_TRIM_REG = 0x7FF the minimum capacitance and thus the maximum frequency is selected. The eight least significant bits of CLK_FREQ_TRIM_REG directly control eight binary weighted capacitors, as shown in Figure 15. The three most significant bits are decoded according to Table 15. Each of the seven outputs of the decoder controls a capacitor (value is 256 times the value of the smallest capacitor). Datasheet CFR0011-120-01 Trimming might cause phase jumps in the oscillator signal. To reduce these phase jumps the user should only change one switch at a time (this especially applies to the seven larger capacitors). Use bits 10 to 8 for coarse adjustment and always increment or decrement this value by 1. Wait approximately 200 s to allow the adjustment to settle. Bits 7...0 are used for fine adjustment. As an example, the recommended way to change the frequency trim register from 0x7FF to 0x100 is first to decrement the value of the three most significant bits by 1 at a time, and then change the least significant bits until the desired frequency is reached: 0x7FF --> 0x6FF -->0x5FF --> 0x4FF --> 0x3FF --> 0x2FF --> 0x1FF --> 0x100. 11.1.2 Automated Trimming Mechanism There is provision in the DA14583 for automating the actual trimming of the 16 MHz crystal oscillator. This is a special hardware block that realizes the XTAL trimming in a single step. Revision 3.1 29 of 230 04-Jan-2022 © 2022 Renesas Electronics DA14583 Bluetooth Low Energy 4.2 SoC with Flash Memory • TRIM_CTRL_REG[SETTLE_TIME] This field controls a counter that counts 250 s intervals starting when XTAL16_TRIM_READY has been asserted. Upon completion of the SETTLE_TIME periods, the XTAL_SETTLED bit in the SYS_STAT_REG becomes ‘1’, indicating that XTAL16M clock is settled and trimmed and may be safely used as the system clock. The measurement procedure is as follows: 1. REF_CNT_VAL = N (the higher N, the more accurate and longer the calibration will be) 2. CLK_REF_SEL_REG = 0x0006 (XTAL32K) or CLK_REF_SEL_REG = 0x0005 (RC16M) or CLK_REF_SEL_REG = 0x0004 (RC32K) or CLK_REF_SEL_REG = 0x0007 (RCX) 3. Wait until CLK_REF_SEL_REG[REF_CAL_START] = 0 4. Read CLK_REF_VAL_H_REG and CLK_REF_VAL_H_REG = M (32-bits values) 5. Frequency = (N/M) * 16 MHz In the case of using the RCX as a sleep clock, the frequency calibration should be implemented on each active time of a connection interval to guarantee correct operation. FI D An initial manual frequency measuring action is required to store the wanted value in the OTP header (See "OTP Memory Layout" on page 10). The output frequency of the 32 kHz crystal oscillator and the three RC-oscillators can be measured relative to the 16 MHz crystal oscillator using the on-chip reference counter. TI AL • TRIM_CTRL_REG[TRIM_TIME] This field controls the time that elapses between the enabling of the XTAL and the application of the trim value specified by CLK_FREQ_TRIM_REG. The TRIM_TIME value counts cycles of 250 s. As soon as TRIM_TIME*250 s time has passed, the SYS_STAT_REG[XTAL16_TRIM_READY] bit becomes ‘1’. This is the point that the trim value will be applied at the oscillator. If TRIM_TIME = 0000 the trim value is applied immediately when XTAL16M starts up, to reduce time. 11.2.1 Frequency Calibration EN Two programmable parameters are involved in the trimming of the XTAL16M oscillator: FINAL N 11.2 RC OSCILLATORS There are 3 RC oscillators in the DA14583: one providing 16 MHz (RC16M), one providing 32 kHz (RC32K) and one providing a frequency in the range of 10.5 kHz (RCX). A C O The 16 MHz RC oscillator is powered by the Digital LDO i.e. the VDD = 1.2 V which is available for the core logic during Active or Sleep mode. The output clock is slightly slower than 16 MHz and is used to clock the system during the OTP mirroring procedure after wakeup, while the XTAL16M oscillator is settling. It is important to keep the 16 MHz RC oscillator at a frequency equal or below 16 MHz to guarantee correct behavior of the digital circuits. This is why the reset value of CLK_16M_REG[RC16M_TRIM] is equal to the minimum value. N D The simple RC oscillator (RC32K) operates on VDD = 1.2 V and provides 32 kHz. The enhanced RC oscillator (RCX) provides a stable 18 kHz and operates only if the external voltage is > 1.8 V (i.e. either on pin VBAT1V in BOOST mode or on pin VBAT3V in BUCK mode). The main usage of the RC32K oscillator is for internal clocking during startup. The RCX oscillator can be used to replace a 32.768 kHz crystal, since it has a precision of < 500 ppm, while its output frequency is quite stable over temperature. Although a different frequency is used, the accuracy is good enough to ensure that the correct number of slots (625 s) is counted for the Sleep time. Datasheet CFR0011-120-01 Revision 3.1 30 of 230 04-Jan-2022 © 2022 Renesas Electronics DA14583 Bluetooth Low Energy 4.2 SoC with Flash Memory 11.3 SYSTEM CLOCK GENERATION The DA14583 clock generation overview is presented in the following figure. External clock sources of the device are pins XTAL16Mp/XTAL16Mm and pins FINAL XTAL32Kp/XTAL32Km for the 16 MHz and 32.768 kHz oscillators respectively. CLK_AMBA_REG[OTP_ENABLE] otp_clk CLK_PER_REG[WAKEUPCT_ENABLE] wakeupct_clk CLK_CTRL_REG[SYS_CLK_SEL] Divide by PCLK_DIV XTAL16M OSC 1 sys_clk Divide by HCLK_DIV ble_hclk 2 CLK_RCX20K_REG[RCX20K_SELECT] RC32K OSC CLK_PER_REG[SPI_ENABLE] Divide by SPI_DIV CLK_PER_REG[I2C_ENABLE] 0 System clocks TI AL hclk 0 RC16M OSC apb_clk arb_clk spi_clk i2c_clk 1 0 CLK_PER_REG[UART1_ENABLE] 1 CLK_PER_REG[UART2_ENABLE] uart_clk XTAL32K OSC EN RCX OSC uart2_clk CLK_PER_REG[QUAD_ENABLE] SYS_CTRL_REG[CLK32_SOURCE] CLK_PER_REG[TMR_ENABLE] Peripheral clocks TIMER0_CTRL_REG[TIM0_CTRL] 0 FI D CLK_PER_REG[TMR_ENABLE] Divide by TMR_DIV quad_clk 1 TIMER0_CTRL_REG[TIM0_CLK_SEL] 1 Divide by 10 0 tmr0_clk tmr0_on_clk TIMER0_CTRL_REG[TIM0_CLK_DIV] TRIPLE_PWM_CTRL_REG[TRIPLE_PWM_ENABLE] N 1 O Internal ADC osc C tmr2_clk GP_ADC_CTRL_REG[GP_ADC_EN] gp_adc_clk 0 GP_ADC_CTRL_REG[GP_ADC_CLK_SEL] CLK_RADIO_REG[RFCU_ENABLE] Divide by RFCU_DIV CLK_RADIO_REG[BLE_ENABLE] Divide by BLE_DIV rfcu_clk ble_master1_clk ble_master2_clk D A ble_crypt_clk ble_lp_clk Figure 16: Clock Generation Block Diagram N Each of the clocks is generated by either a divider or a clock gate. Both dividers and clock gates are able to start/stop the clock of the module they drive. The control of the peripheral clocks is provided by CLK_PER_REG. The clock names depicted in Figure 16 are explained in the following Table: Table 16: Generated Clocks Description Clock Name Description wakeupct_clk This is the clock for the wake-up capture timer. Datasheet CFR0011-120-01 BLE & radio clocks Table 16: Generated Clocks Description Clock Name Description apb_clk AMBA APB interface clock otp_clk OTP controller clock. This is also used for the OTP macro cell and should not be higher than 16 MHz hclk AMBA AHB interface clock ble_hclk AMBA AHB clock for the BLE core spi_clk Clock for the SPI controller. This clock is further divided by 2, 4, 8 or 14 as defined by SPI_CTRL_REG[SPI_CLK] Revision 3.1 31 of 230 04-Jan-2022 © 2022 Renesas Electronics DA14583 Bluetooth Low Energy 4.2 SoC with Flash Memory FINAL Table 16: Generated Clocks Description Clock Name Description i2c_clk Clock for the I2C controller. This clock is further divided to provide 100 kHz or 400 kHz as defined by I2C_CON_REG[I2C_SPEED] Table 17: Actual UART Baud Rates Target baud rate (kBd) Divisor value Actual baud rate (kBd) Error (%) Clock for the UART 115.2 9 111.1 3.54 uart2_clk Clock for the UART2 57.6 17 58.82 2.12 quad_clk Clock for the quadrature decoders 38.4 26 38.46 0.16 rfcu_clk Clock for the RF control unit of the Radio 28.8 tmr0_clk, tmr2_clk Timer0/2 clocks 9.6 tmr0_on_clk Timer0 ON counter clock gp_adc_clk General Purpose ADC conversion clock ble_crypt_clk Clock for the Crypto block of the BLE core 19.2 TI AL uart_clk 35 28.57 0.79 52 19.23 0.16 104 9.61 0.16 EN If there is a hard requirement for having an average baud rate deviation of no more than 5 % on both ends of the UART connection, a baud rate with an error of maximum 2.5 % should be selected from the table above. ble_master1_clk Internal clock for the BLE core FI D ble_master2_clk Internal clock for the BLE core arb_clk Clock for the memory controller arbiter ble_lp_clk BLE core low power clock N 11.4 GENERAL CLOCK CONSTRAINTS There are certain constraints on various clocks regarding their frequency relations or the effectiveness. This section summarizes these rules: C O • Minimum hclk clock should be 8 MHz. This is also the clock of the ARM CPU and ensures the required MIPS for the Bluetooth low energy Protocol handling. D A • hclk should always be greater or equal to the ble_*_clks. This is required for the proper operation of the protocol. For example, hclk at 16 MHz and BLE clocks at 8 MHz is an acceptable combination but not the other way around. N • When the SPI block is set to Slave mode, then the spi_clk (as depicted in Figure 16) should be at least 4x the clock frequency provided by the external SPI Master. This is required for proper sampling of the data line. • The UART clock is derived from the system clock as follows: baud rate = (system clock DIV 16) / divisor. The division by 16 is hard coded and hence, the baud rate is generated by the divisor on the 1 MHz input. This results in a certain error percentage with respect to the well defined baud rates as presented in the following table: Datasheet CFR0011-120-01 Revision 3.1 32 of 230 04-Jan-2022 © 2022 Renesas Electronics DA14583 Bluetooth Low Energy 4.2 SoC with Flash Memory OTP Controller The OTP Controller realizes all functions of the OTP macro cell in an automated and transparent way. The controller facilitates all data transfers (reading and programming), while implementing the required OTP test modes in hardware. The block diagram is presented in Figure 17. Features • Embedded DMA engine for fast mirroring of the OTP contents into the System RAM. • Embedded DMA supports reading in bursts of 4 32bit words • Standby state consumes minimum power • Hardwired handshaking with the PMU to realize the mirroring procedure • Emulation of the mirroring procedure for the Development mode. • Implements all timing constraints for any access to the physical memory cells. TI AL 12 FINAL • Transparent random address access to the OTP memory cells via the AHB slave memory interface. AHB Bus Copy R e q /A c k A H B S la v e M e m o ry M a s te r M e m o ry C o n tr o lle r EN A H B S la v e R e g is te r s DMA FI D O T P C o n t r o lle r O T P M a c r o c e ll Upper Bank O T P M a c r o c e ll Low Bank N Figure 17: OTP Controller Block Diagram The APROG mode gives the ability for programming large data blocks into the macro cell. The programming is an automated procedure, during which it is only necessary to feed the controller with the required data. Data blocks can be fetched in two ways: The MREAD mode enables the use of the memory slave interface. By activating this mode the contents of the macro cell are transparently mapped onto the specific AHB slave address space. This mode can be used for execution of software in place (XIP). • Via the AHB memory interface D A C O 12.1 OPERATING MODES There are two different functional modes of operation for reading and programming respectively: manual (MREAD, MPROG) and automatic (AREAD, APROG). The OTP operating mode is programmable at OTPC_MODE_REG[OTPC_MODE_MODE]. N The AREAD mode provides the ability for reading data from the macro cell in bursts, without the use of the slave interface. This mode is used for copying large data blocks from the macro cell, as in the case of the OTP mirroring into the System RAM. The MPROG mode implements the single step of the program/verify sequence. In this mode, when the programming of a bit fails, the controller does not automatically try to reprogram the bit. Hence, reprogramming should be triggered by software. The value and the address of the bit are defined through a configuration register (OTPC_PCTRL_REG), for both macro cell banks. The programming sequence can be enabled or disabled for each of the memory banks. The result of the program/verify is stored in register OTPC_STAT_REG. There is a status bit for each one of the two memory banks. Datasheet CFR0011-120-01 • Via the AHB master interface, i.e. the DMA In the latter case, data are pumped into the OTP controller through a register, which acts as a port providing access to a FIFO. 12.2 AHB MASTER INTERFACE The AHB master interface is controlled by a DMA engine with an internal FIFO of 8 32-bit words. The DMA engine supports AHB reads and writes. The AHB address where memory access should begin, is programmed into the DMA engine at OTPC_AHBADR_REG[OTPC_AHBADR]. The number of 32-bit words (minus 1) of a transfer must be specified in OTPC_NWORDS_REG[OTP_NWORDS]. The DMA engine internally supports the following burst types: • Four words incremental burst • Unspecified incremental burst of 2 or 3 words • Single word access Revision 3.1 33 of 230 04-Jan-2022 © 2022 Renesas Electronics DA14583 Bluetooth Low Energy 4.2 SoC with Flash Memory 13 I2C Interface FINAL • Clock synchronization The I2C interface is a programmable control bus that provides support for the communications link between Integrated Circuits in a system. It is a simple two-wire bus with a software-defined protocol for system control, which is used in temperature sensors and voltage level translators to EEPROMs, general-purpose I/O, A/D and D/A converters. • 32 deep transmit/receive FIFOs Features • Default slave address of 0x055 • Two-wire I2C serial interface consists of a serial data line (SDA) and a serial clock (SCL) • Interrupt or polled-mode operation • Two speeds are supported: • Programmable SDA hold time • Master transmit, Master receive operation • 7 or 10-bit addressing • 7 or 10-bit combined format transfers TI AL • Bulk transmit mode • Handles Bit and Byte waiting at both bus speeds • Standard mode (0 to 100 kbit/s) • Fast mode (= MAX_T_POLL_COUNT, exit with the relevant error code. 7. If I2C_ENABLE_STATUS[0] is 1, then sleep for ti2c_poll and proceed to the previous step. Otherwise, exit with a relevant success code. Note 13: Depending on the reset values chosen, steps 2, 3, 4, and 5 may not be necessary because the reset values can be configured. The values stored are static and do not need to be reprogrammed if the I2C Controller is disabled, with the exception of the transfer direction and data. Datasheet CFR0011-120-01 Revision 3.1 43 of 230 04-Jan-2022 © 2022 Renesas Electronics DA14583 Bluetooth Low Energy 4.2 SoC with Flash Memory UART The DA14583 contains two identical instances of this block, i.e. UART and UART2. The UART is compliant to the industry-standard 16550 and is used for serial communication with a peripheral, modem (data carrier equipment, DCE) or data set. Data is written from a master (CPU) over the APB bus to the UART and it is converted to serial form and transmitted to the destination device. Serial data is also received by the UART and stored for the master (CPU) to read back. • Shadow registers to reduce software overhead and also include a software programmable reset • Transmitter Holding Register Empty (THRE) interrupt mode • IrDA 1.0 SIR mode supporting low power mode. • Functionality based on the 16550 industry standard: • Programmable character properties, such as number of data bits per character (5-8), optional • parity bit (with odd or even select) and number of stop bits (1, 1.5 or 2) TI AL 14 FINAL There is no DMA support on the UART block since its contains internal FIFOs. Both UARTs support hardware flow control signals (RTS, CTS, DTR, DSR). • Line break generation and detection Features • Programmable serial data baud rate as calculated by the following: baud rate = (serial clock frequency)/ (divisor). • 16 bytes Transmit and receive FIFOs EN • Hardware flow control support (CTS/RTS) • Prioritized interrupt identification pclk APB Interface FIFO Block C O N APB Bus FI D UART UART2 uart_int Register Block cts_n Modem Sync Block Sync Block N D A rts_n Baud Clock Generator uart_clk uart_rx Timeout Detector Serial Receiver Serial Transmitter uart_tx Figure 29: UART Block Diagram Datasheet CFR0011-120-01 Revision 3.1 44 of 230 04-Jan-2022 © 2022 Renesas Electronics DA14583 Bluetooth Low Energy 4.2 SoC with Flash Memory FINAL ted for exactly the same time duration. This is referred to as a Bit Period or Bit Time. One BitTime equals 16 baud clocks. To ensure stability on the line the receiver samples the serial input data at approximately the mid point of the Bit Time once the start bit has been detected. As the exact number of baud clocks that each bit was transmitted for is known, calculating the mid point for sampling is not difficult, that is every 16 baud clocks after the mid point sample of the start bit. Figure 31 shows the sampling points of the first couple of bits in a serial character. FI D An additional parity bit may be added to the serial character. This bit appears after the last data bit and before the stop bit(s) in the character structure to provide the UART with the ability to perform simple error checking on the received data. EN Figure 30: Serial Data Format TI AL 14.1 UART (RS232) SERIAL PROTOCOL Because the serial communication between the UART and the selected device is asynchronous, additional bits (start and stop) are added to the serial data to indicate the beginning and end. Utilizing these bits allows two devices to be synchronized. This structure of serial data accompanied by start and stop bits is referred to as a character, as shown in Figure 30 N The UART Line Control Register (UART_LCR_REG) is used to control the serial character characteristics. The individual bits of the data word are sent after the start bit, starting with the least-significant bit (LSB). These are followed by the optional parity bit, followed by the stop bit(s), which can be 1, 1.5 or 2. Figure 31: Receiver Serial Data Sampling Points N D A C O All the bits in the transmission (with exception to the half stop bit when 1.5 stop bits are used) are transmit- As part of the 16550 standard an optional baud clock reference output signal (baudout_n) is supplied to provide timing information to receiving devices that require it. The baud rate of the UART is controlled by the serial clock (sclk or pclk in a single clock implementation) and the Divisor Latch Register (DLH and DLL). 14.2 IRDA 1.0 SIR PROTOCOL The Infrared Data Association (IrDA) 1.0 Serial Infrared (SIR) mode supports bi-directional data communications with remote devices using infrared radiation as the transmission medium. IrDA 1.0 SIR mode specifies a maximum baud rate of 115.2 kBaud. Note 15: Attention. Information provided on IrDA SIR mode in this section assumes that the reader is fully familiar with the IrDA Serial Infrared Physical Layer Specifications. This specification can be obtained from the following website: http://www.irda.org The data format is similar to the standard serial (sout and sin) data format. Each data character is sent serially, beginning with a start bit, followed by 8 data bits, and ending with at least one stop bit. Thus, the number of data bits that can be sent is fixed. No parity information can be supplied and only one stop bit is used while in this mode. Trying to adjust the number of data bits sent or enable Datasheet CFR0011-120-01 Revision 3.1 45 of 230 04-Jan-2022 © 2022 Renesas Electronics DA14583 Bluetooth Low Energy 4.2 SoC with Flash Memory FI D EN Transmitting a single infrared pulse signals a logic zero, while a logic one is represented by not sending a pulse. The width of each pulse is 3/16th of a normal serial bit time. Thus, each new character begins with an infrared pulse for the start bit. However, received data is inverted from transmitted data due to the infrared pulses energizing the photo transistor base of the IrDA receiver, pulling its output low. This inverted transistor output is then fed to the UART sir_in port, which then has correct UART polarity. Figure 32 shows the timing diagram for the IrDA SIR data format in comparison to the standard serial format. TI AL parity with the Line Control Register (LCR) has no effect. When the UART is configured to support IrDA 1.0 SIR it can be enabled with Mode Control Register (MCR) bit 6. When the UART is not configured to support IrDA SIR mode, none of the logic is implemented and the mode cannot be activated, reducing total gate counts. When SIR mode is enabled and active, serial data is transmitted and received on the sir_out_n and sir_in ports, respectively. FINAL Figure 32: IrDA SIR Data Format D A C O N As detailed in the IrDA 1.0 SIR, the UART can be configured to support a low-power reception mode. When the UART is configured in this mode, the reception of SIR pulses of 1.41 s (minimum pulse duration) is possible, as well as nominal 3/16th of a normal serial bit time. Using this low-power reception mode requires programming the Low Power Divisor Latch (LPDLL/ LPDLH) registers. It should be noted that for all sclk frequencies greater than or equal to 7.37 MHz (and obey the requirements of the Low Power Divisor Latch registers), pulses of 1.41 s are detectable. However there are several values of sclk that do not allow the detection of such a narrow pulse and these are as follows: Table 19: Low Power Divisor Latch Register Values Low Power Divisor Latch Register Value N SCLK Min. Pulse Width for Detection 1.84 MHz 1 3.77 s 3.69 MHz 2 2.086 s 5.33 MHz 3 1.584 s 14.3 CLOCK SUPPORT The UART has two system clocks (pclk and sclk). Having the second asynchronous serial clock (sclk) implemented accommodates accurate serial baud rate settings, as well as APB bus interface requirements. With the two clock design a synchronization module is implemented for synchronization of all control and data across the two system clock boundaries. A serial clock faster than four-times the PCLK does not leave enough time for a complete incoming character to be received and pushed into the receiver FIFO. However, in most cases, the PCLK signal is faster than the serial clock and this should never be an issue. The serial clock modules must have time to see new register values and reset their respective state machines. This total time is guaranteed to be no more than eight clock cycles of the slower of the two system clocks. Therefore, no data should be transmitted or received before this maximum time expires, after initial configuration. For a clear view of the baud rate generation and the constraints, please refer to section 11.4. When IrDA SIR mode is enabled, the UART operation is similar to when the mode is disabled, with one exception; data transfers can only occur in half-duplex fashion when IrDA SIR mode is enabled. This is because the IrDA SIR physical layer specifies a minimum of 10 ms delay between transmission and reception. This 10 ms delay must be generated by software. Datasheet CFR0011-120-01 Revision 3.1 46 of 230 04-Jan-2022 © 2022 Renesas Electronics DA14583 Bluetooth Low Energy 4.2 SoC with Flash Memory 14.4 INTERRUPTS The assertion of the UART interrupt (UART_INT) occurs whenever one of the several prioritized interrupt types are enabled and active. The following interrupt types can be enabled with the IER register: • Receiver Error • Receiver Data Available FINAL • Character Timeout (in FIFO mode only) • Transmitter Holding Register Empty at/below threshold (in Programmable THRE interrupt mode) When an interrupt occurs the master accesses the UART_IIR_REG to determine the source of the interrupt before dealing with it accordingly. These interrupt types are described in more detail in Table 20. Table 20: UART Interrupt Priorities Interrupt Set and Reset Functions Priority Level Bits [3-0] Interrupt Type Interrupt Source TI AL Interrupt Id Interrupt Reset Control 0001 - None 0110 Highest Receiver Line status 0100 1 Receiver Data Available Receiver data available (nonFIFO mode or FIFOs disabled) or RCVR FIFO trigger level reached (FIFO mode and FIFOs enabled) Reading the receiver buffer register (non-FIFO mode or FIFOs disabled) or the FIFO drops below the trigger level (FIFO mode and FIFOs enabled) 1100 2 Character timeout indication Reading the receiver buffer register 0010 3 Transmitter holding reg- Transmitter holding register ister empty empty (Prog. THRE Mode disabled) or XMIT FIFO at or below threshold (Prog. THRE Mode enabled). 0000 4 0111 Lowest N FI D No characters in or out of the RCVR FIFO during the last 4 character times and there is at least 1 character in it during this time. O C Reading the line status register EN Overrun/parity/ framing errors or break interrupt Reading the IIR register (if source of interrupt); or, writing into THR (FIFOs or THRE Mode not selected or disabled) or XMIT FIFO above threshold (FIFOs and THRE Mode selected and enabled). Reserved - - A Reserved D 14.5 PROGRAMMABLE THRE INTERRUPT The UART can be configured to have a Programmable THRE Interrupt mode available to increase system performance. N When Programmable THRE Interrupt mode is selected it can be enabled via the Interrupt Enable Register (IER[7]). When FIFOs and the THRE Mode are implemented and enabled, THRE Interrupts are active at, and below, a programmed transmitter FIFO empty threshold level, as opposed to empty, as shown in the flowchart in Figure 33. Datasheet CFR0011-120-01 Revision 3.1 47 of 230 04-Jan-2022 © 2022 Renesas Electronics DA14583 Bluetooth Low Energy 4.2 SoC with Flash Memory EN TI AL FINAL Figure 33: Flowchart of Interrupt Generation for Programmable THRE Interrupt Mode occurs and there is data to transmit”, instead of waiting until the FIFO is completely empty. Waiting until the FIFO is empty causes a performance hit whenever the system is too busy to respond immediately. N FI D This threshold level is programmed into FCR[5:4]. The available empty thresholds are: empty, 2, ¼ and ½. See UART_FCR_REG for threshold setting details. Selection of the best threshold value depends on the system's ability to begin a new transmission sequence in a timely manner. However, one of these thresholds should prove optimum in increasing system performance by preventing the transmitter FIFO from running empty. N D A C O In addition to the interrupt change, Line Status Register (LSR[5]) also switches function from indicating transmitter FIFO empty, to FIFO full. This allows software to fill the FIFO each transmit sequence by polling LSR[5] before writing another character. The flow then becomes, “fill transmitter FIFO whenever an interrupt Even if everything else is selected and enabled, if the FIFOs are disabled via FCR[0], the Programmable THRE Interrupt mode is also disabled. When not selected or disabled, THRE interrupts and LSR[5] function normally (both reflecting an empty THR or FIFO). The flowchart of THRE interrupt generation when not in programmable THRE interrupt mode is shown in Figure 34. Figure 34: Flowchart of Interrupt Generation When Not in Programmable THRE Interrupt Mode Datasheet CFR0011-120-01 Revision 3.1 48 of 230 04-Jan-2022 © 2022 Renesas Electronics DA14583 Bluetooth Low Energy 4.2 SoC with Flash Memory FINAL 14.6 SHADOW REGISTERS The shadow registers shadow some of the existing register bits that are regularly modified by software. These can be used to reduce the software overhead that is introduced by having to perform read-modify writes. • UART_SRBR_REG support a host burst mode where the host increments it address but still accesses the same Receive buffer register TI AL • UART_STHR support a host burst mode where the host increments it address but still accesses the same transmit holding register. • UART_SFE_REG accesses the FCR[0] register without accessing the other UART_FCR_REG bits. • UART_STER_REG accesses the FCR[5-4] register without accessing the other UART_FCR_REG bits. N D A C O N FI D 14.7 DIRECT TEST MODE The on-chip UARTS can be used for the Direct Test Mode required for the final product PHY layer testing. It can be done either over the HCI layer, which engages a full CTS/RTS UART or using a 2-wire UART directly as described in the Bluetooth Low Energy Specification (Volume 6, Part F). EN • UART_SRT_REG accesses the FCR[7-6] register without accessing the other UART_FCR_REG bits. Datasheet CFR0011-120-01 Revision 3.1 49 of 230 04-Jan-2022 © 2022 Renesas Electronics DA14583 Bluetooth Low Energy 4.2 SoC with Flash Memory 15 SPI+ Interface This interface supports a subset of the Serial Peripheral Interface SPITM. The serial interface can transmit and receive 8, 16 or 32 bits in master/slave mode and transmit 9 bits in master mode. The SPI + interface has enhanced functionality with bidirectional 2x16-bit word FIFOs. FINAL • Clock speeds upto 16 MHz for the SPI controller. Programmable output frequencies of SPI source clock divided by 1, 2, 4, 8 • SPI clock line speed up to 8 MHz • SPI mode 0, 1, 2, 3 support (clock edge and phase) • Programmable SPI_DO idle level SPI™ is a trademark of Motorola, Inc. • Maskable Interrupt generation Features • Bus load reduction by unidirectional writes-only and reads-only modes. TI AL • Slave and Master mode • Built-in RX/TX FIFOs for continuous SPI bursts. • 8 bit, 9 bit, 16 bit or 32 bit operation SPI_MINT EN SPI_INT APB bus Request & Interrupt Selection TX-FIFO SPIx_TX_REG0 SPIx_TX_REG1 FI D tx_req clear_tx_req SPI_SMn SPI clock IO buffer SPI_CLK N SPI_ON RX-FIFO rx_req SPI_PHA SPI_POL SPIx_RX_REG0 O clear_rx_req SPI_FORCE_DO SPI_DO SPI_RST SPI_9BIT_VAL SPIx_RX_REG1 SPI_EN_CTRL C APB bus Port x Px_MODE_REG[] D A SPIx_CLK SPI_EN SPIx_DO Figure 35: SPI Block Diagram N 15.1 OPERATION WITHOUT FIFOS This mode is the default mode. Master Mode To enable SPITM operation, first the individual port signal must be enabled. Next the SPI must be configured in SPI_CTRL_REG, for the desired mode. Finally bit SPI_ON must be set to 1. A SPI transfer cycle starts after writing to the SPIx_RX_TX_REG0. In case of 32 bits mode, the SPIx_RX_TX_REG1 must be written first. Writing to SPIx_RX_TX_REG0 also sets the SPI_TXH. As soon as the holding register is copied to the IO buffer, the SPI_TXH is reset and a serial transfer cycle of 8/9/16/ 32 clock-cycles is started which causes 8/9/16/32 bits Datasheet CFR0011-120-01 SPIx_DI to be transmitted on SPIx_DO. Simultaneously, data is received on SPIx_DI and shifted into the IO buffer. The transfer cycle finishes after the 8th/9th/16th/32nd clock cycle and SPI_INT_BIT bit is set in the SPIx_CTRL_REG and SPI_INT_PEND bit in (RE)SET_INT_PENDING_REG is set. The received bits in the IO buffer are copied to the SPIx_RX_TX_REG0 (and SPIx_RX_TX_REG1 in case of 32 bits mode) were they can be read by the CPU. Interrupts to the ICU can be disabled using the SPI_MINT bit. To clear the SPI interrupt source, any value to SPIx_CLEAR_INT_REG must be written. Note however that SPI_INT will be set as long as the RXFIFO contains unread data. Revision 3.1 50 of 230 04-Jan-2022 © 2022 Renesas Electronics DA14583 Bluetooth Low Energy 4.2 SoC with Flash Memory The slave mode is selected with SPI_SMn set to 1 and the Px_MODE_REG must also select SPIx_CLK as input. The functionality of the IO buffer in slave and master mode is identical. The SPI module clocks data in on SPIx_DI and out on SPIx_DO on every active edge of SPIx_CLK. As shown in Figure 36 to Figure 39. SPI1 has an active low clock enable SPI1_EN which can be enabled with bit SPI_EN_CTRL=1. In slave mode the internal SPI clock must be more than four times the SPIx_CLK In slave mode the SPI_EN serves as a clock enable and bit synchronization If enabled with bit SPI_EN_CTRL. As soon as SPI_EN is deactivated between the MSB and LSB bits, the I/O buffer is reset. (all 0’s after reset). This means that no dummy writes are needed for reads only transfers. In Slave Mode transfers only take place if the external master initiates them, but in master mode this means that transfers will continue until the RX-FIFO is full. If this happens SPIx_CTRL_REG1[SPI_BUSY] will become ‘0’. If exactly N words need to be read from SPI device, first read (N - fifosize+1) words. Then wait until the SPI_BUSY becomes ‘0’, set SPI_FIFO_MODE to “00” and finally read the remaining (fifosize +1) words. Here fifosize is 4/2/1 words for 8/16/32 bits mode respectively. TI AL Slave Mode FINAL If this is not done, more data will be read from the SPI device until the FIFO is completely filled, or the SPI is turned off. Bidirectional Transfers with FIFO The phase and polarity of the serial clock can be changed with bits SPI_POL and SPI_PHA in the SPIx_CTRL_REG. SPI_DO Idle Levels 15.2 9 BITS MODE The 9 bits mode can be used to support 9 bits displays and is selected with SPIx_CTRL_REG[SPI_WORD] set to ‘11’. The value of the 9th bit, set in the SPIx_CTRL_REG1[SPI_9BIT_VAL] and is used to determine if the next 8 bits form a command word or data word. Because the 9th bit is not part of the data, the FIFOs are still used in the 8 bits mode. The 9th bit is received but not saved because it is shifted out of the 8 bits shift register upon reception. FI D The idle level of signal SPI_DO depends on the master or slave mode and polarity and phase mode of the clock. If SPI_FIFO_MODE is “00“, both registers are used as a FIFO. SPI_TXH indicates that TX-FIFO is full, SPI_INT indicates that there is data in the RX-FIFO. EN SPI_POL and SPI_PHA In master mode pin SPIx_DO gets the value of bit SPI_DO if the SPI is idle in all modes. Also if slave in SPI modes 0 and 2, SPI_DO is the initial and final idle level. Writes Only Mode C O N In SPI modes 1 and 3 however there is no clock edge after the sampled lsb and pin SPIx_DO gets the lsb value of the IO buffer. If required, the SPIx_DO can be forced to the SPI_DO bit level by resetting the SPI to the idle state by shortly setting bit SPI_RST to 1. (Optionally SPI_FORCE_DO can be set, but this does not reset the IO buffer). The following diagrams show the timing of the SPITM interface. D A In “writes only” mode (SPI_FIFO_MODE = “10“) only the TX-FIFO is used. Received data will be copied to the SPIx_RX_TX_REGx, but if a new SPI transfer is finished before the old data is read from the memory, this register will be overwritten. N SPI_INT acts as a tx_request signal, indicating that there is still place in the FIFO. It will be ‘0’ when the FIFO is full or else ‘1’ when it’s not full. This is also indicated in the SPIx_CTRL_REG[SPI_TXH], which is ‘1’ if the TX-FIFO is full. Writing to the FIFO if this bit is still 1, will result in transmission of undefined data. If all data has been transferred, SPIx_CTRL_REG1 [SPI_BUSY] will become ‘0’. Reads Only Mode In “reads only” mode (SPI_FIFO_MODE = “01“) only the RX-FIFO is used. Transfers will start immediately when the SPI is turned on in this mode. In transmit direction the SPI_DO pin will transmit the IO buffer contents being the actual value of the SPIx_TX_REGx Datasheet CFR0011-120-01 Revision 3.1 51 of 230 04-Jan-2022 © 2022 Renesas Electronics DA14583 Bluetooth Low Energy 4.2 SoC with Flash Memory FINAL SPI_CLK SPI_DO SPI_DO (Master) MSB SPI_DO SPI_DO 1 (Slave) LSB MSB SPI_DO LSB SPI_DO LSB SPI_DO ^ write to SPIx_RX_TX_REG0 TI AL MSB SPI_DO 2 (Slave) ^ write to SPIx_RX_TX_REG0 MSB SPI_DI LSB EN SPI_EN (Slave) Figure 36: SPI Master/Slave, Mode 0: SPI_POL=0 and SPI_PHA=0 Note 16: If 9 bits SPI mode, the MSB bit in transmit direction is determined by bit SPIx_CTRL_REG[SPI_9BIT_VAL]. In receive direction, the MSB is FI D received but not stored. SPI_DO SPI_DO (Master) SPI_DO LSB MSB O SPI_DO (Slave) MSB N SPI_CLK SPI_DO LSB ^ write to SPIx_RX_TX_REG0 MSB A SPI_EN (Slave) LSB C SPI_DI Figure 37: SPI Master/Slave, Mode 1: SPI_POL=0 and SPI_PHA=1 N D For the MSB bit refer to note 16. Datasheet CFR0011-120-01 Revision 3.1 52 of 230 04-Jan-2022 © 2022 Renesas Electronics DA14583 Bluetooth Low Energy 4.2 SoC with Flash Memory FINAL SPI_CLK SPI_DO (Master) SPI_DO 1 (Slave) SPI_DO MSB SPI_DO LSB MSB LSB LSB ^ write to SPIx_RX_TX_REG0 MSB SPI_DI SPI_DO TI AL ^ write to SPIx_RX_TX_REG0 MSB SPI_DO 2 (Slave) SPI_DO SPI_DO LSB EN SPI_EN (Slave) Figure 38: SPI Master/Slave, Mode 2: SPI_POL=1 and SPI_PHA=0 FI D For the MSB bit refer to note 16. SPI_CLK SPI_DO MSB LSB N SPI_DO (Master) SPI_DO SPI_DO (Slave) MSB SPI_DO LSB O ^ write to SPIx_RX_TX_REG0 MSB SPI_EN (Slave) LSB C SPI_DI A Figure 39: SPI Master/Slave, Mode 3: SPI_POL=1 and SPI_PHA=1 N D For the MSB bit refer to note 16. Datasheet CFR0011-120-01 Revision 3.1 53 of 230 04-Jan-2022 © 2022 Renesas Electronics DA14583 Bluetooth Low Energy 4.2 SoC with Flash Memory 16 FINAL Quadrature Decoder The DA14583 has a integrated quadrature decoder that can automatically decode the signals for the X, Y and Z axes of a HID input device, reporting step count and direction. This block can be used for waking up the chip as soon as there is any kind of movement from the external device connected to it. The block diagram of the quadrature decoder is presented in Figure 40. QD_CHA_X QD_CHB_X Figure 42: Moving Backwards on Axis X Features • Programmable system clock sampling at maximum 16 MHz. • APB interface for control and programming • Digital filter on the channel inputs to avoid spikes APB Interface N 16-bit Counter (Z Axis) C QD_CHB_Z The quadrature decoder operates on the system clock. The QDEC_CLOCKDIV register defines the number of clock cycles of the period at which the decoding logic samples the data on the channel inputs. O QD_CHA_Z 16-bit Counter (Y Axis) Digital Filter QD_CHB_Y Digital Filter QD_CHA_Y Digital Filter QD_CHB_X 16-bit Counter (X Axis) The digital filter eliminates any spike shorter than two clock periods. The counter holds the movement events of the channel. When a channel is disabled the counter is reset. The counters are accessible via the APB bus. FI D Register File EN Since six channels are required (two for each axis), all P0 and P1 signals and some of the P2 port can be mapped onto this block. The user can choose which GPIOs to use for the channels by programming the QDEC_CTRL2_REG register. • Programmable source from P0, P1 and P2 ports QD_CHA_X Depending on whether channel A or channel B is leading in phase, the quadrature decoding block calculates the direction on the related axis. Furthermore, the signed counter value represents the number of steps moved. TI AL • Three 16-bit signed counters that provide the step count and direction on each of the axes (X, Y and Z) Quad_Dec_IRQn A Interrupt Generator Figure 40: Quadrature Decoder Block Diagram N D Channels are expected to provide a pulse train with 90 degrees rotation as displayed in the following figures: QD_CHA_X QD_CHB_X Figure 41: Moving Forward on Axis X Datasheet CFR0011-120-01 Revision 3.1 54 of 230 04-Jan-2022 © 2022 Renesas Electronics DA14583 Bluetooth Low Energy 4.2 SoC with Flash Memory Wake-Up Timer The block diagram illustrating the Wake-up function is shown in Figure 43. The Wake-up timer can be programmed to wake up the DA14583 from power down mode after a preprogrammed number of GPIO events. Features • Monitors any GPIO state change Each of the GPIO inputs can be selected to generate an event by programming the corresponding WKUP_SELECT_Px_REG register. When all WKUP_SELECT_Px_REG registers are configured to generate a wake-up interrupt, a toggle on any GPIO will wake up the system. • Implements debouncing time from 0 upto 63 ms • Accumulates external events and compares the number to a programmed value • Generates an interrupt to the CPU TI AL 17 FINAL The input signal edge can be selected by programming the WKUP_POL_Px_REG register. + wkup_select_p0_reg[0] P37 wkup_pol_p3_reg[7] + wkup_select_p3_reg[7] & . . . DEBOUNCE TIMER > & key_hit EVENT COUNTER EN P00 wkup_pol_p0_reg[0] WUPCT_IRQ WKUP_COMPARE_REG FI D wkup_ctrl_reg[6] Figure 43: Wake-Up Timer Block Diagram O N A LOW to HIGH level transition on the selected input port, while WKUP_POL_Px_REG[y] = 0, sets internal signal “key_hit” to ‘1’. This signal triggers the event counter state machine as shown in Figure 44. The debounce timer is loaded with value WKUP_CTRL_REG[WKUP_DEB_VALUE]. The timer counts down every 1 ms. If the timer reaches 0 and the “key_hit” signal is still ‘1’, the event counter will be incremented. If the event counter is equal to the value set in the WKUP_COMPARE_REG register, the counter will be reset and an interrupt will be generated, if it was enabled by WKUP_CTRL_REG[ENABLE_IRQ]. The interrupt can be cleared by writing any value to register WKUP_RESET_IRQ_REG. The event counter can be reset by writing any value to register WKUP_RESET_CNTR_REG. The value of the event counter can be read at any time by reading register WKUP_COUNTER_REG. RST IDLE N D A C The event counter is edge sensitive. After detecting an active edge a reverse edge must be detected first before it goes back to the IDLE state and from there starts waiting for a new active edge. A minimum pulse duration of 2 sleep clock cycles must be applied to the GPIO to ensure a successful system wake-up. key_hit = 0 key_hit = 0 and timer = 0 key_hit = 1 timer = DEBOUNCE KEY_PRESSED key_hit = 1 KEY_RELEASE timer not 0 key_hit = 1 and timer = 0 event_count = event_count +1 Figure 44: Event Counter State Machine for the Wake-Up Interrupt Generator Datasheet CFR0011-120-01 Revision 3.1 55 of 230 04-Jan-2022 © 2022 Renesas Electronics DA14583 Bluetooth Low Energy 4.2 SoC with Flash Memory 18 General Purpose Timers Features • 16-bit general purpose timer The Timer block contains 2 timer modules that are software controlled, programmable and can be used for various tasks. Timer 0 is a 16-bit general purpose timer with a PWM output capability. Timer 2 is a 14-bit counter that generates three identical PWM signals in a quite flexible manner. • Ability to generate 2 Pulse Width Modulated signals (PWM0 and PWM1) • Programmable output frequency: 16, 8, 4, 2 MHz or 32 kHz  f = -----------------------------------------------------------------------M + 1 + N + 1 18.1 TIMER 0 Timer 0 is a 16-bit general purpose software programmable timer, which has the ability of generating Pulse Width Modulated signals, namely PWM0 and PWM1. It also generates the SWTIM_IRQ interrupt to the ARM Cortex-M0. It can be configured in various modes regarding output frequency, duty cycle and the modulation of the PWM signals. TIMER0_0N_REG LSBreg TI AL • Programmable duty cycle: M+1  = --------------------------------------------  100 % M + 1 + N + 1 • Separately programmable interrupt timer: 16, 8, 4, 2 MHz or 32 kHz  T = ----------------------------------------------------------------------- ON + 1  TIMER0_RELOAD_M_REG TIMER0_RELOAD_N_REG LSBreg MSBreg with N = 0 to (216-1), M = 0 to (216-1) EN Timer 0 FINAL LSBreg MSBreg 0 1 loadnew FI D 1 loadnew LSBshadow N T0-toggle 0 1 Interrupt generation: PWM mode: if (T0_toggle=0 and ON-counter=0) OR TIM0_CTRL =0->1 loadnew 1 LSBreg MSBreg If T0-counter = 0 then T0_toggle = ~T0_toggle D N Compare T0_ge_M0 If PWM_MODE = 1 then AND signal with clock PWM0 to GPIO PWM1 If PWM_MODE = 1 then AND signal with clock December 13, 2012 Figure 45: Timer 0 Block Diagram The timer can run at five different clocks: 16 MHz, 8 MHz, 4 MHz, 2 MHz or 32 kHz. The 32 kHz clock is CFR0011-120-01 -1 T0-counter Figure 45 shows the block diagram of Timer 0. The 16 bits timer consists of two counters: T0-counter and ONcounter, and three registers: TIMER0_RELOAD_M_REG, TIMER0_RELOAD_N_REG and TIMER0_ON_REG. Upon reset, the counter and register values are 0x0000. Timer 0 will generate a Pulse Width Modulated signal PWM0. The frequency and duty cycle of PWM0 are determined by the contents of the TIMER0_RELOAD_N_REG and the TIMER0_RELOAD_M_REG registers. Datasheet MSBshadow 0 0 A loadnew MSBreg C TIM0_INT O ON-counter LSBreg 0 1 T0-counter=0 loadnew LSBshadow MSBshadow MSBreg selected by default with bit TIM0_CLK_SEL in the TIMER0_CTRL_REG register. This ‘slow’ clock has no enabling bit. The other four options can be selected by setting the TIM0_CLK_SEL bit and the TMR_ENABLE bit in the CLK_PER_REG (default disabled). This register also controls the frequency via the TMR_DIV bits. An extra clock divider is available that can be activated via bit TIM0_CLK_DIV of the timer control register TIMER0_CTRL_REG. This clock divider is only used for the ON-counter and always divides by 10. Timer 0 operates in PWM mode. The signals PWM0 and PWM1 can be mapped to any GPIOs. Revision 3.1 56 of 230 04-Jan-2022 © 2022 Renesas Electronics DA14583 Bluetooth Low Energy 4.2 SoC with Flash Memory If the ON-counter reaches zero it will remain zero until the T0-counter also reaches zero, while decrementing the value loaded from the TIM0_CTRL ON-counter 0 N 1 0 1 0 4 3 2 1 During the time that the ON-counter is non-zero, new values for the ON-register, M0-register and N0-register can be written, but they are not used by the T0-counter until a full cycle is finished. More specifically, the newly written values in the TIMER0_RELOAD_M_REG and TIMER0_RELOAD_N_REG registers are only stored into the shadow registers when the ON-counter and the T0-counter have both reached zero and the T0counter was decrementing the value loaded from the TIMER0_RELOAD_N_REG register (see Figure 46). M 1 N 0 1 0 M 0 N 1 0 1 4 3 2 A C 0 O M T0-counter N clk PWM0 pin Note that it is possible to generate interrupts at a high rate, when selecting a high clock frequency in combination with low counter values. This could result in missed interrupt events. FI D When the T0-counter reaches zero, the internal signal T0-toggle will be toggled to select the TIMER0_RELOAD_N_REG whose value will be loaded in the T0-counter. Each time the T0-counter reaches zero it will alternately be reloaded with the values of the M0- and N0-shadow registers respectively. PWM0 will be high when the M0-value decrements and low when the N0-value decrements. For PWM1 the opposite is applicable since it is inverted. If bit PWM_MODE in the TIMER0_CTRL_REG register is set, the PWM signals are not HIGH during the ‘high time’ but output a clock in that stage. The frequency is based on the clock settings defined in the CLK_PER_REG register (also in 32 kHz mode), but the selected clock frequency is divided by two to get a 50 % duty cycle. TI AL If bit TIM0_CTRL in the TIMER0_CTRL_REG is set, Timer 0 will start running. SWTIM_IRQ will be generated and the T0-counter will load its start value from the TIMER0_RELOAD_M_REG register, and will decrement on each clock. The ON-counter also loads its start value from the TIMER0_ON_REG register and decrements with the selected clock. TIMER0_RELOAD_N_REGregister (PWM0 is low). The counter will then generate an interrupt (SWTIM_IRQ). The ON-counter will be reloaded with the value of the TIMER0_ON_REG register. The T0counter as well as the M0-shadow register will be loaded with the value of the TIMER0_RELOAD_M_REG register. At the same time, the N0-shadow register will be loaded by the TIMER0_RELOAD_N_REG register. Both counters will be decremented on the next clock again and the sequence will be repeated. EN Timer 0 PWM Mode FINAL PWM1 pin N D SWTIM_IRQ M0=1 N0=1 ON=4 TIM0580-01 Figure 46: Timer 0 PWM Mode At start-up both counters and the PWM0 signal are LOW so also at start-up an interrupt is generated. If Timer 0 is disabled all flip-flops, counters and outputs are in reset state except for the ON-register, the TIMER0_RELOAD_N_REG register and the TIMER0_RELOAD_M_REG register. The timer input registers ON-register, TIMER0_RELOAD_N_REGand TIMER0_RELOAD_M_REG can be written and the Datasheet CFR0011-120-01 counter registers ON-counter and T0-counter can be read. When reading from the address of the ON-register, the value of the ON-counter is returned. Reading from the address of either the TIMER0_RELOAD_N_REG or the TIMER0_RELOAD_M_REG register, returns the value of the T0-counter. It is possible to freeze Timer 0 with bit FRZ_SWTIM of the register SET_FREEZE_REG. When the timer is fro- Revision 3.1 57 of 230 04-Jan-2022 © 2022 Renesas Electronics DA14583 Bluetooth Low Energy 4.2 SoC with Flash Memory zen the timer counters are not decremented. This will freeze all the timer registers at their last value. The timer will continue its operation again when bit FRZ_SWTIM is cleared via register RESET_FREEZE_REG. FINAL • Input clock frequency: f IN = sys_clk ------------------- with N = 1, 2, 4 or 8 N and sys_clk = 16 MHz or 32 kHz • Programmable output frequency: 18.2 TIMER 2 Timer 2 has three Pulse Width Modulated (PWM) outputs. The block diagram in shown in Figure 47. f IN  f IN  - f OUT =  ------ to  ---------------- 2  2 14 – 1 Features • Three outputs with programmable duty cycle from 0 % to 100 % TI AL • 14-bit general purpose timer • Used for white LED intensity (on/off) control Timer 2 System bus 13 0 0 13 PWM2_DUTY PWM3_DUTY FI D TRIPLE_PWM_FREQ 0 13 EN • Ability to generate 3 Pulse Width Modulated signals (PWM2, PWM3 and PWM4) N O 1/2/4/8 14 bits PWM4_DUTY Reset Reset +1 14 bits C T2_FREQ_CNTR +1 =0 Reset A D T2_PWM2 Set -1 TRIPLE_PWM_CTRL_REG N T2_PWM1 Set TRIPLE_PWM_ENABLE SW_PAUSE_EN RX_EN TX_EN HW_PAUSE_EN TRIPLE_PWM_CTRL_REG Figure 47: Timer 2 PWM Block Diagram The Timer 2 is clocked with the system clock divided by TMR_DIV (1, 2, 4 or 8) and can be enabled with TRIPLE_PWM_CTRL_REG[TRIPLE_PWM_ENABLE]. T2_FREQ_CNTR determines the output frequency of the T2_PMWn output. This counter counts down from the value stored in register TRIPLE_PWM_FREQUENCY. At counter value 0, T2_FREQ_CNTR sets the T2_PWMn output to ‘1’ and the counter is reloaded again. T2_DUTY_CNTR is an up-counter that determines the CFR0011-120-01 T2_PWM3 Set T2_DUTY_CNTR reset Hold /Reset block Datasheet 0 equal3 equal1 equal2 3x14 bits Comparators sys_clk DIV 13 duty cycle of the T2_PWMn output signal. After the block is enabled, the counter starts from 0. If T2_DUTY_CNTR is equal to the value stored in the respective PWMn_DUTY_CYCLE register, this resets the T2_PWMn output to 0. T2_DUTY_CNTR is reset when TRIPLE_PWM_FREQUENCY is 0. Note that the value of PWMn_DUTY_CYCLE must be less or equal than TRIPLE_PWM_FREQUENCY. The Timer 2 is enabled/disabled by programming the TRIPLE_PWM_CTRL_REG[TRIPLE_PWM_EN] bit. Revision 3.1 58 of 230 04-Jan-2022 © 2022 Renesas Electronics DA14583 Bluetooth Low Energy 4.2 SoC with Flash Memory The timing diagram of Timer 2 is shown in Figure 48. nals are zero), T2_DUTY_CNTR resumes counting and finalizes the remaining part of the PWM duty cycle. Freeze Function TRIPLE_PWM_CTRL_REG[SW_PAUSE_EN] can be set to ‘0’ to disable the automatic, hardware driven freeze function of the duty counter and keep the duty cycle constant. During RF activity it may be desirable to temporarily suppress the PWM switching noise. This can be done by setting TRIPLE_PWM_CTRL_REG[HW_PAUSE_EN] = 1. The effect is that whenever there is a transmission or a reception process from the Radio, T2_DUTY_CNTR is frozen and T2_PWMx output is switched to ‘0’ to disable the selected T2_PWM1, T2_PWM2, T2_PWM3. As soon as the Radio is idle (i.e. RX_EN or TX_EN sig- TRIPLE_PWN_EN 0 1 2 T2_FREQ_CNTR N N N-1 N-2 2 N-3 ... 3 .. ... 1 ... 0 1 2 3 0 N N-1 N-2 N-3 FI D T2_PWMn 2 EN 0 TI AL Note that the RX_EN and TX_EN signals are not software driven but controlled by the BLE core hardware. TMR2_CLK T2_DUTY_CNTR FINAL N D A C O N Figure 48: Timer 2 PWM Timing Diagram Datasheet CFR0011-120-01 Revision 3.1 59 of 230 04-Jan-2022 © 2022 Renesas Electronics DA14583 Bluetooth Low Energy 4.2 SoC with Flash Memory 19 Watchdog Timer FINAL • Non-Maskable Interrupt (NMI) or WDOG reset. The Watchdog timer is an 8-bit timer with sign bit that can be used to detect an unexpected execution sequence caused by a software run-away and can generate a full system reset or a Non-Maskable Interrupt (NMI). • Optional automatic WDOG reset if NMI handler fails to update the Watchdog register. Features • Maskable Watchdog freeze by user program. • Non-maskable Watchdog freeze of the Cortex-M0 Debug module when the Cortex-M0 is halted in Debug state. TI AL • 8 bits down counter with sign bit, clocked with a 10.24 ms clock for a maximum 2.6 s time-out. Freeze Wake-up Timer, Software Timer, BLE master clock Reset to 0xFF by SYS reset Cortex-M0 (debug) DHCSR[S_HALT] WATCHDOG_REG[8-0] Reset Reset Bits[15-9] =0 1 Freeze 0 key_hit = 0 and KEY_REL = 1 and debounce = 0 key_hit = 0 and KEY_REL = 0 key_hit = 1 and KEY_REPEAT != 0 N KEY_REPEAT timer not 0 key_hit = 1 and timer = 0 KEYB_INT = 0 KEY_VALID FI D timer = DEBOUNCE timer not 0 timer = DEBOUNCE KEYBR_IRQ KEYBR_IRQ = 1 key_hit = 1 and timer = 0 timer = KEY_REPEAT timer not 0 A C O Figure 51: Keyboard Scanner State Machine GPIOx_IRQ = 0 RST IDLE key_hit = 0 key_hit = 1 D key_hit = 0 and timer = 0 WAIT_FOR_RELEASE KEY_PRESSED timer not 0 key_hit = 1 and DEB_ENABLE_KBRD = 0 GPIOx_IRQ = 0 GPIOx_IRQ = 0 N key_hit = 1 and DEB_ENABLE_KBRD = 1 timer = DEBOUNCE reset_interrupt = 1 and edge_leveln = 0 key_hit = 1 and timer = 0 reset_interrupt = 1 and edge_leveln = 1 KEY_VALID reset_int = 0 GPIOx_IRQ = 1 Figure 52: GPIO Interrupt Generator State Machine Datasheet CFR0011-120-01 Revision 3.1 62 of 230 04-Jan-2022 © 2022 Renesas Electronics DA14583 Bluetooth Low Energy 4.2 SoC with Flash Memory 21 Input/Output Ports FINAL • Fully programmable pin assignment The DA14583 has software-configurable I/O pin assignment, organized into ports Port 0, Port 1 and Port 2. Note: During the boot sequence, the four SPI pins of port P2 are used to access the internal Flash memory. Therefore these pins shall not be remapped or used for any other purpose. • Selectable 25 k pull-up, pull-down resistors per pin • Pull-up voltage VBAT3V (BUCK mode); BOOST mode is not supported in the DA14583 • Fixed assignment for analog pin ADC[3:0] • Pins retain their last state when system enters the Extended Sleep mode. • Port 0: 8 pins, Port 1: 6 pins (including SW_CLK and SWDIO), Port 2: 10 pins Px[y] EN Peripheral X input TI AL Features Px_DATA_REG (input) VBAT3V or VBAT1V Px_MODE_REG FI D PUPD PID Peripheral X output Peripheral Y output Px[y] Px_RESET_OUTPUT_DATA_REG Px_DATA_REG (output) O N Px_SET_OUTPUT_DATA_REG VSS C Figure 53: Port P0, P1 and P2 with Programmable Pin Assignment Direction Control The port direction is controlled by setting: Pxy_MODE_REG[9-8] 00 = Input, no resistors selected 01 = Input, pull-up selected 10 = Input, Pull-down selected 11 = Output, no resistors selected D A 21.1 PROGRAMMABLE PIN ASSIGNMENT The Programmable Pin Assignment (PPA) provides a multiplexing function to the I/Os of on-chip peripherals. Any peripheral input or output signal can be freely mapped to any I/O port bit by setting: Pxy_MODE_REG[4-0]: N 0x00 to 0x16: Peripheral IO ID (PID) In output mode and analog mode the pull-up/down resistors are automatically disabled. Priority 21.2 GENERAL PURPOSE PORT REGISTERS The general purpose ports are selected with PID=0. The port function is accessible through registers: Refer to the Px_MODE_REGs for an overview of the available PIDs. Analog ADC has fixed pin assignment in order to limit interference with the digital domain. The SWD interface (JTAG) is mapped on P1_4 and P1_5. The firmware has the possibility to assign the same peripheral output to more than one pin. It is the responsibility of the user to make a unique assignment. • Px_DATA_REG: Port data input/output register In case more than one input signal is assigned to a peripheral input, the left most pin in the lowest port pin number has priority. (e.g P00_MODE_REG has priority over P01_MODE_REG) • Px_RESET_OUTPUT_DATA_REG: Port reset output register Datasheet CFR0011-120-01 • Px_SET_OUTPUT_DATA_REG: Port set output register Revision 3.1 63 of 230 04-Jan-2022 © 2022 Renesas Electronics DA14583 Bluetooth Low Energy 4.2 SoC with Flash Memory FINAL 21.2.1 Port Data Register 21.2.2 Port Set Data Output Register The registers input Px_DATA_REG and output Px_DATA_REG are mapped on the same address. Writing a 1 in the set data output register (Px_SET_OUTPUT_DATA_REG) sets the corresponding output pin. Writing a 0 is ignored. The data output register (Px_DATA_REG) holds the data to be driven on the output port pins. In this configuration, writing to the register changes the output value. 21.2.3 Port Reset Data Output Register Writing a 1 in the reset data output register (Px_RESET_OUTPUT_DATA_REG) resets the corresponding output pin. Writing a 0 is ignored. 21.3 FIXED ASSIGNMENT FUNCTIONALITY There are certain signals that have a fixed mapping on specific general purpose IOs. This assignment is illustrated in the following table: TI AL The data input register (Px_DATA_REG) is a read-only register that returns the current state on each port pin even if the output direction is selected, regardless of the programmed PID, unless the analog function is selected (in this case it reads 0). The ARM CPU can read this register at any time even when the pin is configured as an output. Table 21: Fixed Assignment of Specific Signals SWD QUAD DEC ADC (Note 17) EN GPIO CHY_A/CHX_A/CHZ_A ADC_0 P0_1 CHY_B/CHX_B/CHZ_B ADC_1 P0_2 CHY_A/CHX_A/CHZ_A ADC_2 P0_3 CHY_B/CHX_B/CHZ_B ADC_3 P0_4 CHY_A/CHX_A/CHZ_A FI D P0_0 P0_5 CHY_B/CHX_B/CHZ_B P0_6 CHY_A/CHX_A/CHZ_A P0_7 CHY_B/CHX_B/CHZ_B CHY_A/CHX_A/CHZ_A N P1_0 P1_1 CHY_B/CHX_B/CHZ_B CHY_A/CHX_A/CHZ_A O P1_2 P1_3 CHY_B/CHX_B/CHZ_B SW_CLK CHY_A/CHX_A/CHZ_A P1_5 SWDIO CHY_B/CHX_B/CHZ_B C P1_4 P2_0 CHY_A/CHX_A/CHZ_A CHY_B/CHX_B/CHZ_B A P2_9 Note 17: The ADC case can be selected by the PID bit field on the respective P port. However, the mapping of the Quad Decoder signals on the D respective pins, is overruled by the QDEC_CTRL_REG[CHx_PORT_SEL] register. Furthermore, the SWD signals mapping is defined by N SYS_CTRL_REG[DEBUGGER_ENABLE]. However, these signals are mapped on the ports by default. Datasheet CFR0011-120-01 Revision 3.1 64 of 230 04-Jan-2022 © 2022 Renesas Electronics DA14583 Bluetooth Low Energy 4.2 SoC with Flash Memory 22 FINAL power (5 A typical supply current at 100 ksample/s) General Purpose ADC • Single-ended as well as differential input with two input scales The DA14583 is equipped with a high-speed ultra low power 10-bit general purpose Analog-to-Digital Converter (GPADC). It can operate in unipolar (single ended) mode as well as in bipolar (differential) mode. The ADC has its own voltage regulator (LDO) of 1.2 V, which represents the full scale reference voltage. • Battery monitoring function Features • Chopper function • 10-bit dynamic ADC with 65 ns conversion time • Offset and zero scale adjust • Maximum sampling rate 3.3 Msample/sUltra low • Common-mode input level adjust TI AL • Four single-ended or two differential external input channels General Purpose ADC GP_ADC_SEL P0_0 P0_1 GP_ADC_SE P0_2 1 P0_0 0 EN VDCDC P0_3 GP_ADC_ATTN3X 1.2V  LDO Vref=1.2V FI D GP_ADC_ATTN3X P0_2 200kOhm ADC 100kOhm P0_1 N AVS VDD_REF VDD_RTT VBAT3V VDCDC VBAT1V 100kOhm P0_3 GP_ADC_SE GP_ADC_ATTN3X GP_ADC_ATTN3X C O 200kOhm Figure 54: Block Diagram of the General Purpose ADC N D A 22.1 INPUT CHANNELS AND INPUT SCALE The DA14583 has a multiplexer between the ADC and four specific GPIO ports (P0_0 to P0_3). Furthermore, the ADC can also be used to monitor the battery voltage and several internal voltages of the system (see GP_ADC_CTRL_REG). Single-ended or differential operation is selected via bit GP_ADC_CTRL_REG[GP_ADC_SE]. In differential mode the voltage difference between two GPIO input ports will be converted. Via bit GP_ADC_CTRL2_REG[GP_ADC_ATTN3X] the input scale can be enlarged by a factor of three, as summarized in Table 22. Table 22: GPADC Input Channels and Voltage Scale GP_ADC_ATTN3X GP_ADC_SE Input Channels Input Scale Input Limits 0 1 P0_0, P0_1, P0_2, P0_3 0 V to +1.2 V -0.1 V to +1.3 V 0 0 [P0_0, P0_1], [P0_2, P0_3] -1.2 V to +1.2 V -1.3 V to +1.3 V 1 1 P0_0, P0_1, P0_2, P0_3 0 V to +3.6 V -0.1 V to +3.45 V 1 0 [P0_0, P0_1], [P0_2, P0_3] -3.6 V to +3.6 V -3.45 V to +3.45 V 22.2 STARTING THE ADC AND SAMPLING RATE The GPADC is a dynamic ADC and consumes no static power, except for the LDO which consumes less than Datasheet CFR0011-120-01 5 A. Enabling/disabling of the ADC is triggered by configur- Revision 3.1 65 of 230 04-Jan-2022 © 2022 Renesas Electronics DA14583 Bluetooth Low Energy 4.2 SoC with Flash Memory The conversion itself is fast and takes approximately one clock cycle of 16 MHz, though the data handling will require several additional clock cycles, depending on the software code style. The fastest code can handle the data in four clock cycles of 16 MHz, resulting to a highest sampling rate of 16 MHz/5 = 3.3 Msample/s. At full speed the ADC consumes approximately 50 A. If the data rate is less than 100 ksample/s, the current consumption will be in the range of 5 A. Chopping is enabled by setting GP_ADC_CTRL_REG[GP_ADC_CHOP] to ‘1’. bit The mid-scale value of the ADC is the 'natural' zero point of the ADC (ADC result = 511.5 = 1FF or 200 Hex = 01.1111.1111 or 10.0000.0000 Bin). Ideally this corresponds to Vi = 1.2 V/2 = 0.6 V in single-ended mode and Vi = 0.0 V in differential mode. If bit GP_ADC_CTRL2_REG[GP_ADC_ATTN3X] is set to ‘1’, the zero point is 3 times higher (1.8 V singleended and 0.0 V differential). With bit GP_ADC_CTRL_REG[GP_ADC_MUTE], the ADC input is switched to the centre scale input level, so the ADC result ideally is 511.5. If instead a value of 515 is observed, the output offset is +3.5 (adc_off_p = 3.5). N FI D 22.3 NON-IDEAL EFFECTS Besides Differential Non-Linearity (DNL) and Integral Non-Linearity (INL), each ADC has a gain error (linear) and an offset error (linear). The gain error of the GPADC slightly reduces the effective input scale (up to 50 mV). The offset error causes the effective input scale to become non-centred. The offset error of the GPADC is less than 20 mV and can be reduced by chopping or by offset calibration. 22.4 CHOPPING Chopping is a technique to cancel offset by taking two samples with opposite signal polarity. This method also smooths out other non-ideal effects and is recommended for DC and slowly changing signals. TI AL Each conversion has two phases: the sampling phase and the conversion phase. When bit GP_ADC_CTRL_REG[GP_ADC_EN] is set to ‘1’, the ADC continuously tracks (samples) the selected input voltage. Writing a '1' at bit GP_ADC_CTRL_REG[GP_ADC_START] ends the sampling phase and triggers the conversion phase. When the conversion is ready, the ADC resets bit GP_ADC_START to ‘0’ and returns to the sampling phase. to zero. Bit GP_ADC_IDYN enables a 10 A load current during sampling phase so that the load current during sampling and conversion phase becomes approximately the same. EN ing bit GP_ADC_CTRL_REG[GP_ADC_LDO_EN]. After enabling the LDO, a settling time of 20 s is required before an AD-conversion can be started. FINAL C O The ADC result will also include some noise. If the input signal itself is noise free (inductive effects included), the average noise level will be ±1 LSB. Taking more samples and calculating the average value will reduce the noise and increase the resolution. D A With a 'perfect' input signal (e.g. if a filter capacitor is placed close to the input pin) most of the noise comes from the low-power voltage regulator (LDO) of the ADC. Since the DA14583 is targeted for ultra-compact applications, there is no pin available to add a capacitor at this voltage regulator output. N The dynamic current of the ADC causes extra noise at the regulator output. This noise can be reduced by setting bits GP_ADC_CTRL2_REG[GP_ADC_I20U] and GP_ADC_CTRL2_REG[GP_ADC_IDYN] to ‘1’. Bit GP_ADC_I20U enables a constant 20 A load current at the regulator output so that the current will not drop With bit GP_ADC_CTRL_REG[GP_ADC_SIGN] the sign of the ADC input and output is changed. Two sign changes have no effect on the signal path, though the sign of the ADC offset will change. If adc_off_p = 3.5 the ADC_result with opposite GP_ADC_SIGN will be 508. The sum of these equals 515 + 508 = 1023. This is the mid-scale value of an 11bit ADC, so one extra bit due to the over-sampling by a factor of two. The LSB of this 11-bit word should be ignored if a 10bit word is preferred. In that case the result is 511.5, so the actual output value will be 511 or 512. 22.5 OFFSET CALIBRATION A relative high offset caused by a very small dynamic comparator (up to 20 mV, so approximately 20 LSB). This offset can be cancelled with the chopping function, but it still causes unwanted saturation effects at zero scale or full scale. With the GP_ADC_OFFP and GP_ADC_OFFN registers the offset can be compensated in the ADC network itself. To calibrate the ADC follow the steps in Table 23. Table 23: GPADC Calibration Procedure for Single-Ended and Differential Modes Step Single-Ended Mode (GP_ADC_SE = 1) Differential Mode (GP_ADC_SE = 0) 1 Set GP_ADC_OFFP = GP_ADC_OFFN=0x200; GP_ADC_MUTE = 0x1; GP_ADC_SIGN = 0x0 Set GP_ADC_OFFP=GP_ADC_OFFN = 0x200; GP_ADC_MUTE = 0x1; GP_ADC_SIGN = 0x0 2 Start conversion Start conversion 3 adc_off_p = GP_ADC_RESULT - 0x200 adc_off_p = GP_ADC_RESULT - 0x200 4 Set GP_ADC_SIGN = 0x1 Set GP_ADC_SIGN = 0x1 Datasheet CFR0011-120-01 Revision 3.1 66 of 230 04-Jan-2022 © 2022 Renesas Electronics DA14583 Bluetooth Low Energy 4.2 SoC with Flash Memory FINAL Table 23: GPADC Calibration Procedure for Single-Ended and Differential Modes Step Single-Ended Mode (GP_ADC_SE = 1) Differential Mode (GP_ADC_SE = 0) 5 Start conversion Start conversion 6 adc_off_n = GP_ADC_RESULT - 0x200 adc_off_n = GP_ADC_RESULT - 0x200 7 GP_ADC_OFFP = 0x200 - 2*adc_off_p GP_ADC_OFFN = 0x200 - 2*adc_off_n GP_ADC_OFFP = 0x200 - adc_off_p GP_ADC_OFFN = 0x200 - adc_off_n Note: The average of GP_ADC_OFFP and GP_ADC_OFFN should be 0x200 (with a margin of 20 LSB). At 100 ksample/s, zero or full-scale single-ended input signal, this sampling capacitor will load the input with: ILOAD = V * C * fS = ±0.6 V * 0.2 pF * 100 kHz = ±12 nA (differential: ±1.2 V * 0.2 pF * 100 kHz = ±24 nA at both pins). 22.6 ZERO-SCALE ADJUSTMENT The GP_ADC_OFFP and GP_ADC_OFFN registers can also be used to set the zero-scale or full-scale input level at a certain target value. For instance, they can be used to calibrate GP_ADC_RESULT to 0x000 at an input voltage of exactly 0.0 V, or to calibrate the zero scale of a sensor. During sampling phase a certain settling time is required. A 10-bit accuracy requires at least 7 time constants of the output impedance of the input signal source and the 0.2 pF sampling capacitor. The conversion time is approximately one clock cycle of 16 MHz (62.5 ns). EN 7 * ROUT * 0.2 pF - 62.5 ns < 1/fS => ROUT < (1 + 62.5 ns * fS) / (7 * 0.2 pF * fS) N FI D 22.7 COMMON MODE ADJUSTMENT The common mode level of the differential signal must be 0.6 V (or 1.8 V with GP_ADC_ATTN3X = 1). If the common mode input level of 0.6 V cannot be achieved, the common mode level of the GP_ADC can be adjusted (the GP_ADC can tolerate a common mode margin up to 50 mV) according to Table 24. TI AL It is recommended to implement the above calibration routine during the initialization phase of the DA14583. To verify the calibration results, check whether the GP_ADC_RESULT value is close to 0x200 while bit GP_ADC_MUTE = 1. Table 24: Common Mode Adjustment GP_ADC_OFFP = GP_ADC_OFFN 0.3 V 0x300 0x200 0x100 A 0.9 V C 0.6 V O CM Voltage (Vcmm) N D Any other common mode level between 0.0 V and 1.2 V can be calculated from the table above. Offset calibration can be combined with common mode adjustment by replacing the 0x200 value in the offset calibration routine by the value required to get the appropriate common mode level. Note: The input voltage limits for the ADC in differential mode are: -1.3 V to +1.3 V (for GP_ADC_ATTN3X = 0, see Table 22). The differential input range of the ADC is: -1.2 V < V[P0_0,P0_1] < +1.2 V. Therefore, if Vcmm < 0.5 V or Vcmm > 0.7 V, the input can no longer cover the whole ADC range. 22.8 INPUT IMPEDANCE, INDUCTANCE AND INPUT SETTLING The GPADC has no input buffer stage. During sampling phase a capacitor of 0.2 pF is switched to the input line. The precharge of this capacitor is at midscale level so the input impedance is infinite. Datasheet CFR0011-120-01 Examples: ROUT < 7.2 M at fS = 100 kHz ROUT < 760 k at fS = 1 MHz The inductance from the signal source to the ADC input pin must be very small. Otherwise, filter capacitors are required from the input pins to ground (differential mode: from pin to pin). To observe the noise level of the ADC and the voltage regulator, bit GP_ADC_CTRL_REG[GP_ADC_MUTE] must be set to ‘1’. The noise should be less than ±1 LSB on average, with occasionally a ±2 LSB peak value. If a higher noise level is observed on the input channel(s), applying filter capacitor(s) will reduce the noise. The 3x input attenuator is realized with a resistor divider network. When bit GP_ADC_CTRL_REG2[GP_ADC_ATTN3X] is set to ‘1’, the input impedance of the selected ADC input channel becomes 300 k (typical) instead of infinite. In addition, the resistor divider network will require more settling time in the sampling phase. The general guideline with bit GP_ADC_ATTN3X = 1 is: select the input channel, then wait 1 s (16 clock cycles) before starting the conversion. Only the required sampling time is affected by the attenuator, the conversion time remains approximately one clock cycle of 16 MHz (62.5 ns). Note: Selecting the battery measurement channel automatically activates the 3x input attenuator (bit GP_ADC_ATTN3X = 1). Therefore the 1 s waiting time also applies when measuring the battery voltage, otherwise the resulting Vbat level will be too low. Revision 3.1 67 of 230 04-Jan-2022 © 2022 Renesas Electronics DA14583 Bluetooth Low Energy 4.2 SoC with Flash Memory FINAL 22.9 DELAY COUNTER The GPADC has a delay counter that can be used to add delays to several ADC control signals. A delay of up to 32 s can added for the bits GP_ADC_LDO_EN, GP_ADC_START and GP_ADC_EN via registers GP_ADC_DELAY_REG and GP_ADC_DELAY2_REG. The reset values of these two registers are the recommended values for a correct start-up, since it is not allowed to activate all signals at once. EN N D A C O N FI D The delay counter must be reset before reuse, which is typically only required after the LDO was disabled. Bit GP_ADC_DELAY_EN must be made zero to reset the counter. It is recommended to check that this bit is zero before (re)activating it. TI AL To make use of the delay counter for a certain signal, the corresponding bit has to be set in register GP_ADC_CTRL_REG and the delay counter must be enabled via bit GP_ADC_DELAY_EN in register GP_ADC_CTRL2_REG. The delay counter starts counting when the GP_ADC_START bit is programmed while the GP_ADC_DELAY_EN bit is set. The counter is stopped after the conversion is finished. Datasheet CFR0011-120-01 Revision 3.1 68 of 230 04-Jan-2022 © 2022 Renesas Electronics DA14583 Bluetooth Low Energy 4.2 SoC with Flash Memory Power Management • Synchronous DC-DC converter configured as Buck (step-down) converter for increased efficiency when running from a Lithium coin-cell or 2 Alkaline batteries down to 2.35 V. The DA14583 has a complete power management function integrated with a Buck DC-DC converter and separate LDOs for the different power domains of the system. The system diagram of the analog power block is presented in Figure 55. • Battery voltage measurement ADC (multiplexed input from general purpose ADC) • Use of small external components (2.2 H inductor and 1F capacitor) Features • On-chip LDOs, without external capacitors TI AL 23 FINAL VBATxV-levels VBAT1V SWITCH GPIO < 0.9 V boost con. EN on LDO RET on 2.5 V N OTP memory O Retention memories Dig. core LDO OTP PMU VDD VBAT3V VDCDC Lithium coin-cell (2.35 V to 3.3 V) ADC RF 16 MHz C 32 kHz LDO various VDD buck conv. VPP LDO SYS FI D enable_buck bandg. Figure 55: Block Diagram of the Analog Power Block and Internal Interconnections D A The Power Block contains a DC-DC converter operating as a Buck (step-down) converter. The converter provides power to four LDO groups in the system: N 1. LDO RET: This is the LDO providing power to the Retention domain (PD_AON). It powers the Retention RAMs and the digital part which is always on. 2. LDO OTP: This is the LDO powering the OTP macro cell. This is the reason for using the step-up DC-DC converter when running from an Alkaline battery. 3. LDO SYS: This is the LDO providing the system with the actual VDD power required for the digital part to operate. 4. LDO (various): This a group of LDOs used for the elaborate control of the powering up/down of the Radio, the GP ADC and the XTAL16M oscillator. The Power Block of the DA14583 only supports the use of Lithium coin cells (2.35 V to 3.3 V) as external battery. The connection diagram is shown in Figure 56. Datasheet CFR0011-120-01 Revision 3.1 69 of 230 04-Jan-2022 © 2022 Renesas Electronics DA14583 LDO LDO analog/RF retention VBAT1V VDCDC_RF VDCDC SWITCH FINAL TI AL Flash memory VBAT3V 2.35 V to 3.3 V Lithium coin-cell VBAT_RF VCC_FLASH Bluetooth Low Energy 4.2 SoC with Flash Memory digital LDO analog/RF EN Buck Converter DA14583 FI D Figure 56: Supply overview, Coin-Cell Application N The voltage range and efficiency of the Buck mode DCDC converter is shown in the following figure, assuming a 10 mA constant load. DC‐DC Efficiency vs Voltage C O 95% 90% 85% 80% 75% 70% 65% 60% 55% 50% 0.5 1 1.5 2 2.35 2.5 3 3.5 A 0 Buck D Figure 57: DC-DC Efficiency in Buck Mode at Various Voltage Levels N The X axis represents the supply voltage. The Buck mode DC-DC converter operates correctly with voltages in the range of 2.35 V to 3.3 V. Note: The system should never be cold booted when the supply voltage is less than 2.5 V. A manual power up with a power supply less than 2.5 V in buck mode might create instability. Datasheet CFR0011-120-01 Revision 3.1 70 of 230 04-Jan-2022 © 2022 Renesas Electronics DA14583 Bluetooth Low Energy 4.2 SoC with Flash Memory 24 BLE Core FINAL • FDMA/TDMA/events formatting and synchronization The BLE (Bluetooth low energy) core is a qualified Bluetooth baseband controller compatible with the Bluetooth low energy 4.2 specification and it is in charge of packet encoding/decoding and frame scheduling. • Frequency hopping calculation Note: Deep Sleep mode is not supported in DA14583. • Supports power down of the baseband during the protocol’s idle periods The block diagram is presented in Figure 58. • Operating clock 16 MHz or 8 MHz • Low power modes supporting 32.0 kHz or 32.768 kHz • AHB Slave interface for register file access Features TI AL • AHB Slave interface for Exchange Memory access of CPU via BLE core • All device classes support (Broadcaster, Central, Observer, Peripheral) • AHB Master interface for direct access of BLE core to Exchange Memory space • All packet types (Advertising / Data / Control) • Encryption (AES / CCM) EN • Bit stream processing (CRC, Whitening) AHB Slave AHB Master Radio FI D BLE Timer (Timing Generators) BLE Core Control Frequency Selection Interrupt Generator AES CCM Bus Interface Memory Controller A C O Radio Controller Registers N Test MUXes Exchange Memory mapping N D Data Whitening CRC Packet Controller Event Controller White List Search Event Scheduler Figure 58 BLE Core Block Diagram 24.1 EXCHANGE MEMORY The BLE Core requires access to a memory space named “Exchange Memory” to store control structures and frame buffers. The access to Exchange Memory is performed via the AHB Master interface. The mapping of the BLE Core address space to the System Bus address space is controlled via the register bit field GP_CONTROL_REG[EM_MAP]. Figure 59 illustrates all the address mapping options. Datasheet CFR0011-120-01 Revision 3.1 71 of 230 04-Jan-2022 © 2022 Renesas Electronics DA14583 Bluetooth Low Energy 4.2 SoC with Flash Memory Case 0 i.e. no remap (BLE EM: 0 kB) (SysRAM: 42 kB) FINAL Case 1 Case 2 Case 3 Case 4 Case 5 Case 6 Case 7 Case 9 Case 10 Case 11 (BLE EM: 2 kB) (SysRAM: 48 kB) (BLE EM: 3 kB) (SysRAM: 47 kB) (BLE EM: 4 kB) (SysRAM: 46 kB) (BLE EM: 5 kB) (SysRAM: 45 kB) (BLE EM:6 kB) (SysRAM: 44 kB) (BLE EM: 7 kB) (SysRAM: 43 kB) (BLE EM: 8 kB) (SysRAM: 42 kB) (BLE EM: 4 kB) (SysRAM: 40 kB) (BLE EM: 5 kB) (SysRAM: 40 kB) (BLE EM: 6 kB) (SysRAM: 40 kB) 0x2000.C000 RetRAM4 1 kB RetRAM3 2 kB RetRAM3 2 kB RetRAM2 3 kB RetRAM2 3 kB RetRAM2 3 kB SysRAM Page 0 2 kB SysRAM Page 0 2 kB SysRAM Page 0 2 kB SysRAM Page 1 2 kB SysRAM Page 1 2 kB SysRAM Page 1 2 kB RetRAM4 1 kB RetRAM4 1 kB RetRAM3 2 kB RetRAM3 2 kB SysRAM Page 0 2 kB SysRAM Page 0 2 kB SysRAM Page 0 2 kB SysRAM Page 0 2 kB SysRAM Page 1 2 kB SysRAM Page 1 2 kB SysRAM Page 1 2 kB SysRAM Page 1 2 kB TI AL RetRAM4 1 kB 0x2000.A800 SysRAM Page 0 2 kB 0x2000.A000 SysRAM Page 2 38 kB ~ SysRAM Page 2 38 kB ~~ 0x2000.0000 0x0008.3000 0x0008.2000 ~~ ~~ SysRAM Page 2 38 kB ~~ ~~ SysRAM Page 2 38 kB ~~ ~~ SysRAM Page 2 38 kB ~~ ~~ SysRAM Page 2 38 kB ~~ ~~ ~~ SysRAM Page 2 38 kB ~~ SysRAM Page 2 38 kB ~~ SysRAM Page 1 2 kB ~~ SysRAM Page 2 38 kB ~~ SysRAM Page 1 2 kB ~~ SysRAM Page 2 38 kB ~~ SysRAM Page 1 2 kB ~~ RetRAM4 1 kB SysRAM Page 2 38 kB ~~ EN ~ 0x2000.9800 SysRAM Page 1 2 kB RetRAM4 1 kB RetRAM3 2 kB RetRAM3 2 kB RetRAM2 3 kB RetRAM 2 kB RetRAM 2 kB RetRAM2 3 kB RetRAM3 2 kB RetRAM4 1 kB 0x0008.0800 RetRAM3 2 kB FI D RetRAM4 1 kB RetRAM 2 kB RetRAM 2 kB RetRAM 2 kB RetRAM2 3 kB RetRAM 2 kB N 0x0008.0000 RetRAM2 3 kB RetRAM2 3 kB RetRAM 2 kB SysRAM Page 0 2 kB RetRAM 2 kB SysRAM Page 0 2 kB SysRAM Page 0 2 kB RetRAM3 2 kB RetRAM4 1 kB RetRAM 2 kB RetRAM 2 kB RetRAM 2 kB Case 12 Case 13 Case 14 Case 15 Case 17 Case 18 Case 19 Case 20 Case 21 Case 22 Case 23 (BLE EM: 7 kB) (SysRAM: 40 kB) (BLE EM: 8 kB) (SysRAM: 40 kB) (BLE EM: 9 kB) (SysRAM: 40 kB) (BLE EM:10 kB) (SysRAM: 40 kB) (BLE EM: 6 kB) (SysRAM: 38 kB) (BLE EM: 7 kB) (SysRAM: 38 kB) (BLE EM: 8 kB) (SysRAM: 38 kB) (BLE EM: 9 kB) (SysRAM: 38 kB) (BLE EM: 10 kB) (SysRAM: 38 kB) (BLE EM: 11 kB) (SysRAM: 38 kB) (BLE EM: 12 kB) (SysRAM: 38 kB) C O 0x2000.C000 A 0x2000.A800 0x2000.A000 SysRAM Page 1 2 kB ~ ~~ D 0x2000.9800 SysRAM Page 1 2 kB ~ N 0x2000.0000 SysRAM Page 2 38 kB 0x0008.3000 SysRAM Page 2 38 kB ~~ RetRAM2 3 kB ~~ SysRAM Page 2 38 kB ~~ 0x0008.2000 SysRAM Page 0 2 kB SysRAM Page 1 2 kB SysRAM Page 0 2 kB RetRAM4 1 kB RetRAM2 3 kB SysRAM Page 1 2 kB ~~ SysRAM Page 2 38 kB ~~ SysRAM Page 0 2 kB ~~ SysRAM Page 2 38 kB ~~ RetRAM 2 kB ~~ SysRAM Page 2 38 kB ~~ RetRAM4 1 kB RetRAM3 2 kB RetRAM2 3 kB RetRAM2 3 kB SysRAM Page 1 2 kB SysRAM Page 0 2 kB RetRAM 2 kB RetRAM 2 kB SysRAM Page 1 2 kB SysRAM Page 0 2 kB RetRAM4 1 kB RetRAM 2 kB ~~ SysRAM Page 2 38 kB ~~ SysRAM Page 0 2 kB RetRAM3 2 kB RetRAM 2 kB SysRAM Page 2 38 kB ~~ 0x0008.0800 RetRAM 2 kB ~~ SysRAM Page 1 2 kB SysRAM Page 0 2 kB RetRAM3 2 kB RetRAM 2 kB ~~ SysRAM Page 2 38 kB ~~ SysRAM Page 1 2 kB SysRAM Page 0 2 kB ~~ SysRAM Page 2 38 kB ~~ SysRAM Page 1 2 kB SysRAM Page 0 2 kB RetRAM4 1 kB ~~ SysRAM Page 2 38 kB ~~ SysRAM Page 1 2 kB SysRAM Page 0 2 kB ~ ~ SysRAM Page 1 2 kB SysRAM Page 0 2 kB RetRAM4 1 kB RetRAM3 2 kB RetRAM3 2 kB RetRAM2 3 kB RetRAM2 3 kB RetRAM2 3 kB RetRAM2 3 kB RetRAM 2 kB RetRAM 2 kB RetRAM 2 kB RetRAM 2 kB 0x0008.0000 Figure 59 Exchange Memory Mapping Possibilities Datasheet CFR0011-120-01 Revision 3.1 72 of 230 04-Jan-2022 © 2022 Renesas Electronics DA14583 Bluetooth Low Energy 4.2 SoC with Flash Memory FINAL TWEXT: Determines the high period of BLE_WAKEUP_LP_IRQ, in the case of an external wake up event (refer to GP_CONTROL_REG[BLE_WAKEUP_REQ]). Minimum value is "TWIRQ_RESET + X", where X is the number of “ble_lp_clk” clock cycles that BLE_WAKEUP_LP_IRQ will be held high. Recommended value is "TWIRQ_RESET + 1". Note that as soon as GP_CONTROL_REG[BLE_WAKEUP_REQ] is set to “1” the BLE_WAKEUP_LP_IRQ will be asserted. If the BLE core access an Exchange Memory area that is out of the boundaries specified by the GP_CONTROL_REG[EM_MAP], then EMACCERRSTAT bit field is asserted, causing BLE_ERROR_IRQ to be raised. The Interrupt Service Routine can detect the error condition by accessing the EMACCERRSTAT and can acknowledge by writing a “1” to EMACCERRACK. BLE_ERROR_IRQ is raised when either EMACCERRSTAT or ERRORINTSTAT are asserted. Minimum BLE Sleep Duration: The minimum value of BLE_DEEPSLWKUP_REG[DEEPSLTIME] time, measured in “ble_lp_clk” cycles, is the maximum of (a) “TWIRQ_SET + 1” and (b) the SW execution time from setting BLE_DEEPSLCNTL_REG[DEEP_SLEEP_ON] up to preparing CPU to accept the BLE_WAKEUP_LP_IRQ (e.g. to call the ARM instruction WFI). If programmed DEEPSLTIME is less than the aforementioned minimum value, then BLE_WAKEUP_LP_IRQ Handler may execute sooner than the call of ARM WFI instruction for example, causing SW instability. EN 24.3 SWITCH FROM ACTIVE MODE TO DEEP SLEEP MODE Software can set the BLE core into the “BLE Deep Sleep mode”, by first programming the timing of BLE_WAKEUP_LP_IRQ generation, then program the desired sleep duration at BLE_DEEPSLWKUP_REG and finally set the register bit BLE_DEEPSLCNTL_REG[DEEP_SLEEP_ON]. The BLE Core will switch to the “ble_lp_clk” (32.0 kHz or 32.768 kHz) in order to maintain its internal 625 s timing reference. Software must poll the state of BLE_CNTL2_REG[RADIO_PWRDN_ALLOW] to detect the completion of this mode transition. Once the “ble_lp_clk” is used for base time reference, SW must disable the BLE clocks (“ble_master1_clk”, “ble_master2_clk” and “ble_crypt_clk”) by setting to “0” the CLK_RADIO_REG[BLE_ENABLE] register bit. Finally, SW can optionally power down the Radio Subsystem by using the PMU_CTRL_REG[RADIO_SLEEP] and the Peripheral and System power domains as well. N FI D 24.2 PROGRAMMING BLE WAKE UP IRQ Once BLE core switches to “BLE Deep Sleep mode” the only way to correctly exit from this state is by initially generating the BLE_WAKEUP_LP_IRQ and consecutively the BLE_SLP_IRQ. This sequence must be followed regardless of the cause of the termination of the “BLE Deep Sleep mode”, i.e. regardless if the BLE Timer expired or BLE Timer has been stopped due to the assertion of BLE_WAKEUP_REQ. TI AL There are 24 different cases of mapping the Exchange Memory onto the 5 physical memories (4 Retention RAMs and 1 SysRAM) in pages of 2 kB each. They should be selected according to the application needs regarding the amount of the Exchange Memory. So, for example, Case 15 provides 40 kB of SysRAM and 10 kB of Exchange Memory (8 kB using the Retention and another 2 kB page of the SysRAM cell). Hence, exchange memory requirements can be met by programming the respective case in the EM_MAP field of the GP_CONTROL_REG. O The assertion and de-assertion of BLE_WAKEUP_LP_IRQ is fully controlled via the BLE_ENBPRESET_REG bit fields. Detailed description is following: N D A C TWIRQ_SET: Number of “ble_lp_clk” cycles before the expiration of the BLE Timer, when the BLE_WAKEUP_LP_IRQ must be asserted. It is recommended to select a TWIRQ_SET value larger than the time required for the XTAL16_TRIM_READY_DELAY event, plus the IRQ Handler execution time. If the programmed value of TWIRQ_SET is less than the minimum recommended value, then the system will wake up but the actual BLE sleep duration (refer to BLE_DEEPSLSTAT_REG) will be larger than the programmed sleep duration (refer to BLE_DEEPSLWKUP_REG). TWIRQ_RESET: Number of “ble_lp_clk” cycles before the expiration of the sleep period, when the BLE_WAKEUP_LP_IRQ will be de-asserted. It is recommended to always set to “1”. Datasheet CFR0011-120-01 Figure 60 presents the waveforms while entering in BLE Deep Sleep mode. In this case, SW, as soon as it detects that RADIO_PWRDOWN_ALLOW is “1”, it sets the PMU_CTRL_REG[RADIO_SLEEP] to power down the Radio Subsystem. At the following figures, the corresponding BLE Core signals are marked with red while Radio Subsystem is in power down state. Revision 3.1 73 of 230 04-Jan-2022 © 2022 Renesas Electronics DA14583 Bluetooth Low Energy 4.2 SoC with Flash Memory FINAL ble_lp_clk ble_master1_gclken ble_master1_clk tick_625us_p 0 deepsltime[31:0] (hld) N TI AL deep_sleep_on radio_pwrdown_allow 0 deepsldur[31:0] 1 2 3 Figure 60 Entering into BLE Deep Sleep Mode 1. Termination at the end of a predetermined time. After the expiration of the sleep period (as specified in BLE_DEEPSLWKUP_REG[DEEPSLTIME]) the BLE Timer will not exit the BLE Deep Sleep mode until it will detect that BLE Core is powered up. That means that if the SW requires more time to power up the BLE Core, then the final sleep duration (provided by BLE_DEEPSLSTAT_REG) will be larger than the preprogrammed value. FI D 2. Termination on software wake-up request, due to an external event. Once the SW decides that BLE Core can wake up, it must enable the BLE clocks (via CLK_RADIO_REG[BLE_ENABLE]) and power up the Radio Power Domain (refer to PMU_CTRL_REG[RADIO_SLEEP] and SYS_STAT_REG[RAD_IS_UP]). EN 24.4 SWITCH FROM DEEP SLEEP MODE TO ACTIVE MODE There are two possibilities for BLE Core to terminate the BLE Deep Sleep mode: 24.4.1 Switching at Anchor Points When BLE Timer is expired, BLE clocks are enabled and BLE Core (Radio Subsystem) is powered up, the BLE Core exits the “BLE Core Deep Sleep mode” and asserts the BLE_SLP_IRQ. A C O N Figure 63 shows a typical deep sleep phase that is terminated at predetermined time. After a configurable time before the scheduled wake up time (configured via BLE_ENBPRESET_REG register bit fields), the BLE Timer asserts the BLE_WAKEUP_LP_IRQ in order to wake-up the CPU (powering up the System Power Domain). The BLE_WAKEUP_LP_IRQ Interrupt Handler will prepare the code environment and the XTAL16M oscillator stabilization (refer to SYS_STAT_REG[XTAL16_SETTLED]) and will decide when the BLE Core will be ready to exit from the BLE Deep Sleep mode. twirq_reset=1 D ble_wakeup_lp_irq ble_slp_irq N xtal16_settled ble_enable rad_is_up ble_lp_clk ble_master1_gclken ble_master1_clk deepsltime[31:0] (hld) N 0 N deepsldur[31:0] finecnt[9:0] clk_status Figure 61 Exit BLE Deep Sleep Mode at Predetermined Time (Zoom In) Datasheet CFR0011-120-01 Revision 3.1 74 of 230 04-Jan-2022 © 2022 Renesas Electronics DA14583 Bluetooth Low Energy 4.2 SoC with Flash Memory FINAL twirq_reset=1 ble_wakeup_lp_irq ble_slp_irq xtal16_settled rad_is_up ble_lp_clk ble_master1_gclken ble_master1_clk N deepsltime[31:0] (hld) 0 N+5 N deepsldur[31:0] EN finecnt[9:0] TI AL ble_enable clk_status FI D Figure 62 Exit BLE Deep Sleep Mode Later than the Predetermined Time (Zoom In) (N ‐ twirq_set) ble_wakeup_lp_irq ble_slp_irq down rad_is_up O xtal16_settled ble_enable mirror powerup N sys_state C ble_master1_gclken ble_master1_clk deepsltime[31:0] (hld) N 0 N A deepsldur[31:0] finecnt[9:0] D tick_625us_p N Figure 63 Exit BLE Deep Sleep Mode at Predetermined Time (Zoom Out) Datasheet CFR0011-120-01 Revision 3.1 75 of 230 04-Jan-2022 © 2022 Renesas Electronics DA14583 Bluetooth Low Energy 4.2 SoC with Flash Memory Figure 64 shows a wake up from a deep sleep period forced by the assertion of register bit GP_CONTROL_REG[BLE_WAKEUP_REQ]. Assume that the system is in Deep Sleep state, i.e. all Power Domains have been switched off, and both the Wake-up Timer and Wake-up Controller have been programmed appropriately. Then assume that an event is detected at one of the GPIOs, causing the System Power Domain to wake-up due to WKUP_QUADDEC_IRQ. In that case, the SW will decide to wake-up the BLE core, then it should set to “1” the GP_CONTROL_REG[BLE_WAKEUP_REQ] in order to force the wake up sequence. At Figure 64 the BLE_WAKEUP_REQ is by the software raised as soon as possible, causing BLE_WAKEUP_LP_IRQ Handler to be executed as soon as possible. It is also possible to raise BLE_WAKEUP_REQ after the detection of XTAL16_TRIM_READY, causing both BLE_WAKEUP_LP_IRQ and BLE_SLP_IRQ Handlers to execute sequentially. The decision depends on the software structure and the application. TI AL 24.4.2 Switching Due to an External Event FINAL twext=1 down sys_state mirror powerup wakeup_irq EN ble_wakeup_req xtal16_settled rad_is_up ble_slp_irq deepsltime[31:0] (hld) N deepsldur[31:0] finecnt[9:0] 0 K Disabling the I2C Ctrl => Reading the IC_CLR_ACTIVITY register => Reading the IC_CLR_INTR register => System reset Once this bit is set, it stays set unless one of the four methods is used to clear it. Even if the controller module is idle, this bit remains set until cleared, indicating that there was activity on the bus. 0x0 7 r R_RX_DONE When the controller is acting as a slave-transmitter, this bit is set to 1 if the master does not acknowledge a transmitted byte. This occurs on the last byte of the transmission, indicating that the transmission is done. 0x0 6 r R_TX_ABRT This bit indicates if the controller, as an I2C transmitter, is unable to complete the intended actions on the contents of the transmit FIFO. This situation can occur both as an I2C master or an I2C slave, and is referred to as a "transmit abort". When this bit is set to 1, the I2C_TX_ABRT_SOURCE register indicates the reason why the transmit abort takes places. NOTE: The controller flushes/resets/empties the TX FIFO whenever this bit is set. The TX FIFO remains in this flushed state until the register I2C_CLR_TX_ABRT is read. Once this read is performed, the TX FIFO is then ready to accept more data bytes from the APB interface. 0x0 5 r R_RD_REQ This bit is set to 1 when the controller is acting as a slave and another I2C master is attempting to read data from the controller. The controller holds the I2C bus in a wait state (SCL=0) until this interrupt is serviced, which means that the slave has been addressed by a remote master that is asking for data to be transferred. The processor must respond to this interrupt and then write the requested data to the I2C_DATA_CMD register. This bit is set to 0 just after the processor reads the I2C_CLR_RD_REQ register 0x0 R_TX_EMPTY This bit is set to 1 when the transmit buffer is at or below the threshold value set in the I2C_TX_TL register. It is automatically cleared by hardware when the buffer level goes above the threshold. When the IC_ENABLE bit 0 is 0, the TX FIFO is flushed and held in reset. There the TX FIFO looks like it has no data within it, so this bit is set to 1, provided there is activity in the master or slave state machines. When there is no longer activity, then with ic_en=0, this bit is set to 0. 0x0 R_TX_OVER Set during transmit if the transmit buffer is filled to 32 and the processor attempts to issue another I2C command by writing to the IC_DATA_CMD register. When the module is disabled, this bit keeps its level until the master or slave state machines go into idle, and when ic_en goes to 0, this interrupt is cleared 0x0 r N 4 D A C O N FI D EN TI AL Bit 3 r Datasheet CFR0011-120-01 Revision 3.1 179 of 230 04-Jan-2022 © 2022 Renesas Electronics DA14583 Bluetooth Low Energy 4.2 SoC with Flash Memory FINAL Table 208: I2C_INTR_STAT_REG (0x5000132C) Mode Symbol Description Reset 2 r R_RX_FULL Set when the receive buffer reaches or goes above the RX_TL threshold in the I2C_RX_TL register. It is automatically cleared by hardware when buffer level goes below the threshold. If the module is disabled (I2C_ENABLE[0]=0), the RX FIFO is flushed and held in reset; therefore the RX FIFO is not full. So this bit is cleared once the I2C_ENABLE bit 0 is programmed with a 0, regardless of the activity that continues. 0x0 1 r R_RX_OVER Set if the receive buffer is completely filled to 32 and an additional byte is received from an external I2C device. The controller acknowledges this, but any data bytes received after the FIFO is full are lost. If the module is disabled (I2C_ENABLE[0]=0), this bit keeps its level until the master or slave state machines go into idle, and when ic_en goes to 0, this interrupt is cleared. 0x0 0 r R_RX_UNDER Set if the processor attempts to read the receive buffer when it is empty by reading from the IC_DATA_CMD register. If the module is disabled (I2C_ENABLE[0]=0), this bit keeps its level until the master or slave state machines go into idle, and when ic_en goes to 0, this interrupt is cleared. 0x0 FI D EN TI AL Bit Mode Symbol Description Reset 15:12 - - Reserved 0x0 11 r/w M_GEN_CALL These bits mask their corresponding interrupt status bits in the I2C_INTR_STAT register. 0x1 10 r/w M_START_DET These bits mask their corresponding interrupt status bits in the I2C_INTR_STAT register. 0x0 9 r/w M_STOP_DET These bits mask their corresponding interrupt status bits in the I2C_INTR_STAT register. 0x0 8 r/w M_ACTIVITY These bits mask their corresponding interrupt status bits in the I2C_INTR_STAT register. 0x0 7 r/w M_RX_DONE These bits mask their corresponding interrupt status bits in the I2C_INTR_STAT register. 0x1 6 r/w M_TX_ABRT These bits mask their corresponding interrupt status bits in the I2C_INTR_STAT register. 0x1 5 r/w M_RD_REQ These bits mask their corresponding interrupt status bits in the I2C_INTR_STAT register. 0x1 r/w M_TX_EMPTY These bits mask their corresponding interrupt status bits in the I2C_INTR_STAT register. 0x1 O C D N 4 N Bit A Table 209: I2C_INTR_MASK_REG (0x50001330) 3 r/w M_TX_OVER These bits mask their corresponding interrupt status bits in the I2C_INTR_STAT register. 0x1 2 r/w M_RX_FULL These bits mask their corresponding interrupt status bits in the I2C_INTR_STAT register. 0x1 1 r/w M_RX_OVER These bits mask their corresponding interrupt status bits in the I2C_INTR_STAT register. 0x1 0 r/w M_RX_UNDER These bits mask their corresponding interrupt status bits in the I2C_INTR_STAT register. 0x1 Datasheet CFR0011-120-01 Revision 3.1 180 of 230 04-Jan-2022 © 2022 Renesas Electronics DA14583 Bluetooth Low Energy 4.2 SoC with Flash Memory FINAL Table 210: I2C_RAW_INTR_STAT_REG (0x50001334) Bit Mode Symbol Description Reset - - Reserved 0x0 11 r GEN_CALL Set only when a General Call address is received and it is acknowledged. It stays set until it is cleared either by disabling controller or when the CPU reads bit 0 of the I2C_CLR_GEN_CALL register. I2C Ctrl stores the received data in the Rx buffer. 0x0 10 r START_DET Indicates whether a START or RESTART condition has occurred on the I2C interface regardless of whether controller is operating in slave or master mode. 0x0 9 r STOP_DET Indicates whether a STOP condition has occurred on the I2C interface regardless of whether controller is operating in slave or master mode. 0x0 8 r ACTIVITY This bit captures I2C Ctrl activity and stays set until it is cleared. There are four ways to clear it: => Disabling the I2C Ctrl => Reading the IC_CLR_ACTIVITY register => Reading the IC_CLR_INTR register => System reset Once this bit is set, it stays set unless one of the four methods is used to clear it. Even if the controller module is idle, this bit remains set until cleared, indicating that there was activity on the bus. 0x0 7 r RX_DONE When the controller is acting as a slave-transmitter, this bit is set to 1 if the master does not acknowledge a transmitted byte. This occurs on the last byte of the transmission, indicating that the transmission is done. 0x0 6 r TX_ABRT 5 r N FI D EN TI AL 15:12 0x0 RD_REQ This bit is set to 1 when I2C Ctrl is acting as a slave and another I2C master is attempting to read data from the controller. The controller holds the I2C bus in a wait state (SCL=0) until this interrupt is serviced, which means that the slave has been addressed by a remote master that is asking for data to be transferred. The processor must respond to this interrupt and then write the requested data to the I2C_DATA_CMD register. This bit is set to 0 just after the processor reads the I2C_CLR_RD_REQ register 0x0 TX_EMPTY This bit is set to 1 when the transmit buffer is at or below the threshold value set in the I2C_TX_TL register. It is automatically cleared by hardware when the buffer level goes above the threshold. When the IC_ENABLE bit 0 is 0, the TX FIFO is flushed and held in reset. There the TX FIFO looks like it has no data within it, so this bit is set to 1, provided there is activity in the master or slave state machines. When there is no longer activity, then with ic_en=0, this bit is set to 0. 0x0 N D A C O This bit indicates if the controller, as an I2C transmitter, is unable to complete the intended actions on the contents of the transmit FIFO. This situation can occur both as an I2C master or an I2C slave, and is referred to as a "transmit abort". When this bit is set to 1, the I2C_TX_ABRT_SOURCE register indicates the reason why the transmit abort takes places. NOTE: The controller flushes/resets/empties the TX FIFO whenever this bit is set. The TX FIFO remains in this flushed state until the register I2C_CLR_TX_ABRT is read. Once this read is performed, the TX FIFO is then ready to accept more data bytes from the APB interface. 4 r Datasheet CFR0011-120-01 Revision 3.1 181 of 230 04-Jan-2022 © 2022 Renesas Electronics DA14583 Bluetooth Low Energy 4.2 SoC with Flash Memory FINAL Table 210: I2C_RAW_INTR_STAT_REG (0x50001334) Mode Symbol Description Reset 3 r TX_OVER Set during transmit if the transmit buffer is filled to 32 and the processor attempts to issue another I2C command by writing to the IC_DATA_CMD register. When the module is disabled, this bit keeps its level until the master or slave state machines go into idle, and when ic_en goes to 0, this interrupt is cleared 0x0 2 r RX_FULL Set when the receive buffer reaches or goes above the RX_TL threshold in the I2C_RX_TL register. It is automatically cleared by hardware when buffer level goes below the threshold. If the module is disabled (I2C_ENABLE[0]=0), the RX FIFO is flushed and held in reset; therefore the RX FIFO is not full. So this bit is cleared once the I2C_ENABLE bit 0 is programmed with a 0, regardless of the activity that continues. 0x0 1 r RX_OVER Set if the receive buffer is completely filled to 32 and an additional byte is received from an external I2C device. The controller acknowledges this, but any data bytes received after the FIFO is full are lost. If the module is disabled (I2C_ENABLE[0]=0), this bit keeps its level until the master or slave state machines go into idle, and when ic_en goes to 0, this interrupt is cleared. 0x0 0 r RX_UNDER Set if the processor attempts to read the receive buffer when it is empty by reading from the IC_DATA_CMD register. If the module is disabled (I2C_ENABLE[0]=0), this bit keeps its level until the master or slave state machines go into idle, and when ic_en goes to 0, this interrupt is cleared. 0x0 N FI D EN TI AL Bit Table 211: I2C_RX_TL_REG (0x50001338) Mode Symbol - - r/w RX_TL D A C 15:5 4:0 Description Reset Reserved 0x0 Receive FIFO Threshold Level Controls the level of entries (or above) that triggers the RX_FULL interrupt (bit 2 in I2C_RAW_INTR_STAT register). The valid range is 0-31, with the additional restriction that hardware does not allow this value to be set to a value larger than the depth of the buffer. If an attempt is made to do that, the actual value set will be the maximum depth of the buffer. A value of 0 sets the threshold for 1 entry, and a value of 31 sets the threshold for 32 entries. 0x0 O Bit N Table 212: I2C_TX_TL_REG (0x5000133C) Bit Mode Symbol Description Reset 15:5 - - Reserved 0x0 4:0 r/w RX_TL Transmit FIFO Threshold Level Controls the level of entries (or below) that trigger the TX_EMPTY interrupt (bit 4 in I2C_RAW_INTR_STAT register). The valid range is 0-31, with the additional restriction that it may not be set to value larger than the depth of the buffer. If an attempt is made to do that, the actual value set will be the maximum depth of the buffer. A value of 0 sets the threshold for 0 entries, and a value of 31 sets the threshold for 32 entries.. 0x0 Datasheet CFR0011-120-01 Revision 3.1 182 of 230 04-Jan-2022 © 2022 Renesas Electronics DA14583 Bluetooth Low Energy 4.2 SoC with Flash Memory FINAL Table 213: I2C_CLR_INTR_REG (0x50001340) Bit Mode Symbol Description Reset - - Reserved 0x0 r CLR_INTR Read this register to clear the combined interrupt, all individual interrupts, and the I2C_TX_ABRT_SOURCE register. This bit does not clear hardware clearable interrupts but software clearable interrupts. Refer to Bit 9 of the I2C_TX_ABRT_SOURCE register for an exception to clearing I2C_TX_ABRT_SOURCE 0x0 TI AL 15:1 0 Table 214: I2C_CLR_RX_UNDER_REG (0x50001344) Bit Mode Symbol Description 15:1 - - Reserved Reset 0 r CLR_RX_UNDER Read this register to clear the RX_UNDER interrupt (bit 0) of the I2C_RAW_INTR_STAT register. Table 215: I2C_CLR_RX_OVER_REG (0x50001348) EN 0x0 0x0 Mode Symbol Description Reset 15:1 - - Reserved 0x0 0 r CLR_RX_OVER Read this register to clear the RX_OVER interrupt (bit 1) of the I2C_RAW_INTR_STAT register. 0x0 N FI D Bit Table 216: I2C_CLR_TX_OVER_REG (0x5000134C) Mode Symbol Description Reset O Bit - - r CLR_TX_OVER C 15:1 0 Reserved 0x0 Read this register to clear the TX_OVER interrupt (bit 3) of the I2C_RAW_INTR_STAT register. 0x0 Bit Description Reserved 0x0 r Read this register to clear the RD_REQ interrupt (bit 5) of the I2C_RAW_INTR_STAT register. 0x0 Mode - Symbol - D 15:1 CLR_RD_REQ Reset N 0 A Table 217: I2C_CLR_RD_REQ_REG (0x50001350) Table 218: I2C_CLR_TX_ABRT_REG (0x50001354) Bit Mode Symbol Description Reset 15:1 - - Reserved 0x0 0 r CLR_TX_ABRT Read this register to clear the TX_ABRT interrupt (bit 6) of the IC_RAW_INTR_STAT register, and the I2C_TX_ABRT_SOURCE register. This also releases the TX FIFO from the flushed/reset state, allowing more writes to the TX FIFO. Refer to Bit 9 of the I2C_TX_ABRT_SOURCE register for an exception to clearing IC_TX_ABRT_SOURCE. 0x0 Datasheet CFR0011-120-01 Revision 3.1 183 of 230 04-Jan-2022 © 2022 Renesas Electronics DA14583 Bluetooth Low Energy 4.2 SoC with Flash Memory FINAL Table 219: I2C_CLR_RX_DONE_REG (0x50001358) Bit Mode Symbol Description Reset 15:1 - - Reserved 0x0 0 r CLR_RX_DONE Read this register to clear the RX_DONE interrupt (bit 7) of the I2C_RAW_INTR_STAT register. 0x0 TI AL Table 220: I2C_CLR_ACTIVITY_REG (0x5000135C) Bit Mode Symbol Description 15:1 - - Reserved 0 r CLR_ACTIVITY Reading this register clears the ACTIVITY interrupt if the I2C is not active anymore. If the I2C module is still active on the bus, the ACTIVITY interrupt bit continues to be set. It is automatically cleared by hardware if the module is disabled and if there is no further activity on the bus. The value read from this register to get status of the ACTIVITY interrupt (bit 8) of the IC_RAW_INTR_STAT register 0x0 Mode Symbol 0x0 EN FI D Table 221: I2C_CLR_STOP_DET_REG (0x50001360) Bit Reset Description Reset - - Reserved 0x0 r CLR_ACTIVITY Reading this register clears the ACTIVITY interrupt if the I2C is not active anymore. If the I2C module is still active on the bus, the ACTIVITY interrupt bit continues to be set. It is automatically cleared by hardware if the module is disabled and if there is no further activity on the bus. The value read from this register to get status of the ACTIVITY interrupt (bit 8) of the IC_RAW_INTR_STAT register. 0x0 O N 15:1 0 Bit Mode C Table 222: I2C_CLR_START_DET_REG (0x50001364) Symbol - - r CLR_START_DET D A 15:1 0 Description Reset Reserved 0x0 Read this register to clear the START_DET interrupt (bit 10) of the IC_RAW_INTR_STAT register. 0x0 Table 223: I2C_CLR_GEN_CALL_REG (0x50001368) Mode N Bit Symbol Description Reset 15:1 - - Reserved 0x0 0 r CLR_GEN_CALL Read this register to clear the GEN_CALL interrupt (bit 11) of I2C_RAW_INTR_STAT register. 0x0 Table 224: I2C_ENABLE_REG (0x5000136C) Bit Mode Symbol Description Reset 15:1 - - Reserved 0x0 Datasheet CFR0011-120-01 Revision 3.1 184 of 230 04-Jan-2022 © 2022 Renesas Electronics DA14583 Bluetooth Low Energy 4.2 SoC with Flash Memory FINAL Table 224: I2C_ENABLE_REG (0x5000136C) Mode Symbol Description Reset 0 r/w CTRL_ENABLE Controls whether the controller is enabled. 0: Disables the controller (TX and RX FIFOs are held in an erased state) 1: Enables the controller Software can disable the controller while it is active. However, it is important that care be taken to ensure that the controller is disabled properly. When the controller is disabled, the following occurs: * The TX FIFO and RX FIFO get flushed. * Status bits in the IC_INTR_STAT register are still active until the controller goes into IDLE state. If the module is transmitting, it stops as well as deletes the contents of the transmit buffer after the current transfer is complete. If the module is receiving, the controller stops the current transfer at the end of the current byte and does not acknowledge the transfer. There is a two ic_clk delay when enabling or disabling the controller 0x0 Table 225: I2C_STATUS_REG (0x50001370) EN TI AL Bit Mode Symbol Description 15:7 - - Reserved 0x0 6 r SLV_ACTIVITY Slave FSM Activity Status. When the Slave Finite State Machine (FSM) is not in the IDLE state, this bit is set. 0: Slave FSM is in IDLE state so the Slave part of the controller is not Active 1: Slave FSM is not in IDLE state so the Slave part of the controller is Active 0x0 5 r MST_ACTIVITY Master FSM Activity Status. When the Master Finite State Machine (FSM) is not in the IDLE state, this bit is set. 0: Master FSM is in IDLE state so the Master part of the controller is not Active 1: Master FSM is not in IDLE state so the Master part of the controller is Active 0x0 4 r RFF Receive FIFO Completely Full. When the receive FIFO is completely full, this bit is set. When the receive FIFO contains one or more empty location, this bit is cleared. 0: Receive FIFO is not full 1: Receive FIFO is full 0x0 RFNE Receive FIFO Not Empty. This bit is set when the receive FIFO contains one or more entries; it is cleared when the receive FIFO is empty. 0: Receive FIFO is empty 1: Receive FIFO is not empty 0x0 N O C A D r N 3 Reset FI D Bit 2 r TFE Transmit FIFO Completely Empty. When the transmit FIFO is completely empty, this bit is set. When it contains one or more valid entries, this bit is cleared. This bit field does not request an interrupt. 0: Transmit FIFO is not empty 1: Transmit FIFO is empty 0x1 1 r TFNF Transmit FIFO Not Full. Set when the transmit FIFO contains one or more empty locations, and is cleared when the FIFO is full. 0: Transmit FIFO is full 1: Transmit FIFO is not full 0x1 Datasheet CFR0011-120-01 Revision 3.1 185 of 230 04-Jan-2022 © 2022 Renesas Electronics DA14583 Bluetooth Low Energy 4.2 SoC with Flash Memory FINAL Table 225: I2C_STATUS_REG (0x50001370) Bit Mode Symbol Description Reset 0 r I2C_ACTIVITY I2C Activity Status. 0x0 Table 226: I2C_TXFLR_REG (0x50001374) Mode Symbol Description Reset 15:6 - - Reserved 0x0 5:0 r TXFLR Transmit FIFO Level. Contains the number of valid data entries in the transmit FIFO. Size is constrained by the TXFLR value 0x0 TI AL Bit Table 227: I2C_RXFLR_REG (0x50001378) Bit Mode Symbol Description Reset 15:6 - - Reserved 5:0 r RXFLR Receive FIFO Level. Contains the number of valid data entries in the receive FIFO. Size is constrained by the RXFLR value EN 0x0 FI D Table 228: I2C_SDA_HOLD_REG (0x5000137C) 0x0 Bit Mode Symbol Description Reset 15:0 r/w IC_SDA_HOLD SDA Hold time 0x1 Mode Symbol Description Reset 15 r ABRT_SLVRD_INTX 1: When the processor side responds to a slave mode request for data to be transmitted to a remote master and user writes a 1 in CMD (bit 8) of 2IC_DATA_CMD register 0x0 14 r ABRT_SLV_ARBLOS T 1: Slave lost the bus while transmitting data to a remote master. I2C_TX_ABRT_SOURCE[12] is set at the same time. Note: Even though the slave never "owns" the bus, something could go wrong on the bus. This is a fail safe check. For instance, during a data transmission at the low-to-high transition of SCL, if what is on the data bus is not what is supposed to be transmitted, then the controller no longer own the bus. 0x0 D A C O Bit N Table 229: I2C_TX_ABRT_SOURCE_REG (0x50001380) r ABRT_SLVFLUSH_T XFIFO 1: Slave has received a read command and some data exists in the TX FIFO so the slave issues a TX_ABRT interrupt to flush old data in TX FIFO. 0x0 12 r ARB_LOST 1: Master has lost arbitration, or if I2C_TX_ABRT_SOURCE[14] is also set, then the slave transmitter has lost arbitration. Note: I2C can be both master and slave at the same time. 0x0 11 r ABRT_MASTER_DIS 1: User tries to initiate a Master operation with the Master mode disabled. 0x0 10 r ABRT_10B_RD_NO RSTRT 1: The restart is disabled (IC_RESTART_EN bit (I2C_CON[5]) = 0) and the master sends a read command in 10-bit addressing mode. 0x0 N 13 Datasheet CFR0011-120-01 Revision 3.1 186 of 230 04-Jan-2022 © 2022 Renesas Electronics DA14583 Bluetooth Low Energy 4.2 SoC with Flash Memory FINAL Table 229: I2C_TX_ABRT_SOURCE_REG (0x50001380) Mode Symbol Description Reset 9 r ABRT_SBYTE_NOR STRT To clear Bit 9, the source of the ABRT_SBYTE_NORSTRT must be fixed first; restart must be enabled (I2C_CON[5]=1), the SPECIAL bit must be cleared (I2C_TAR[11]), or the GC_OR_START bit must be cleared (I2C_TAR[10]). Once the source of the ABRT_SBYTE_NORSTRT is fixed, then this bit can be cleared in the same manner as other bits in this register. If the source of the ABRT_SBYTE_NORSTRT is not fixed before attempting to clear this bit, bit 9 clears for one cycle and then gets re-asserted. 1: The restart is disabled (IC_RESTART_EN bit (I2C_CON[5]) = 0) and the user is trying to send a START Byte. 0x0 8 r ABRT_HS_NORSTR T 1: The restart is disabled (IC_RESTART_EN bit (I2C_CON[5]) = 0) and the user is trying to use the master to transfer data in High Speed mode 0x0 7 r ABRT_SBYTE_ACK DET 1: Master has sent a START Byte and the START Byte was acknowledged (wrong behavior). 0x0 6 r ABRT_HS_ACKDET 1: Master is in High Speed mode and the High Speed Master code was acknowledged (wrong behavior). 0x0 5 r ABRT_GCALL_REA D 1: the controller in master mode sent a General Call but the user programmed the byte following the General Call to be a read from the bus (IC_DATA_CMD[9] is set to 1). 0x0 4 r ABRT_GCALL_NOA CK 1: the controller in master mode sent a General Call and no slave on the bus acknowledged the General Call. 0x0 3 r ABRT_TXDATA_NO ACK 1: This is a master-mode only bit. Master has received an acknowledgement for the address, but when it sent data byte(s) following the address, it did not receive an acknowledge from the remote slave(s). 0x0 2 r ABRT_10ADDR2_N OACK 1: Master is in 10-bit address mode and the second address byte of the 10-bit address was not acknowledged by any slave. 0x0 1 r ABRT_10ADDR1_N OACK 1: Master is in 10-bit address mode and the first 10-bit address byte was not acknowledged by any slave. 0x0 0 r ABRT_7B_ADDR_N OACK 1: Master is in 7-bit addressing mode and the address sent was not acknowledged by any slave. 0x0 A C O N FI D EN TI AL Bit Table 230: I2C_SDA_SETUP_REG (0x50001394) Mode Symbol D Bit Description Reset - - Reserved 0x0 r/w SDA_SETUP SDA Setup. This register controls the amount of time delay (number of I2C clock periods) between the rising edge of SCL and SDA changing by holding SCL low when I2C block services a read request while operating as a slave-transmitter. The relevant I2C requirement is tSU:DAT (note 4) as detailed in the I2C Bus Specification. This register must be programmed with a value equal to or greater than 2. It is recommended that if the required delay is 1000ns, then for an I2C frequency of 10 MHz, IC_SDA_SETUP should be programmed to a value of 11.Writes to this register succeed only when IC_ENABLE[0] = 0. 0x64 N 15:8 7:0 Datasheet CFR0011-120-01 Revision 3.1 187 of 230 04-Jan-2022 © 2022 Renesas Electronics DA14583 Bluetooth Low Energy 4.2 SoC with Flash Memory FINAL Table 231: I2C_ACK_GENERAL_CALL_REG (0x50001398) Bit Mode Symbol Description Reset 15:1 - - Reserved 0x0 0 r/w ACK_GEN_CALL ACK General Call. When set to 1, I2C Ctrl responds with a ACK (by asserting ic_data_oe) when it receives a General Call. When set to 0, the controller does not generate General Call interrupts. 0x0 TI AL Table 232: I2C_ENABLE_STATUS_REG (0x5000139C) Bit Mode Symbol Description Reset 15:3 - - Reserved 2 r SLV_RX_DATA_LOS T Slave Received Data Lost. This bit indicates if a SlaveReceiver operation has been aborted with at least one data byte received from an I2C transfer due to the setting of IC_ENABLE from 1 to 0. When read as 1, the controller is deemed to have been actively engaged in an aborted I2C transfer (with matching address) and the data phase of the I2C transfer has been entered, even though a data byte has been responded with a NACK. NOTE: If the remote I2C master terminates the transfer with a STOP condition before the controller has a chance to NACK a transfer, and IC_ENABLE has been set to 0, then this bit is also set to 1. When read as 0, the controller is deemed to have been disabled without being actively involved in the data phase of a Slave-Receiver transfer. NOTE: The CPU can safely read this bit when IC_EN (bit 0) is read as 0. 0x0 1 r SLV_DISABLED_WH ILE_BUSY Slave Disabled While Busy (Transmit, Receive). This bit indicates if a potential or active Slave operation has been aborted due to the setting of the IC_ENABLE register from 1 to 0. This bit is set when the CPU writes a 0 to the IC_ENABLE register while: (a) I2C Ctrl is receiving the address byte of the Slave-Transmitter operation from a remote master; OR, (b) address and data bytes of the Slave-Receiver operation from a remote master. When read as 1, the controller is deemed to have forced a NACK during any part of an I2C transfer, irrespective of whether the I2C address matches the slave address set in I2C Ctrl (IC_SAR register) OR if the transfer is completed before IC_ENABLE is set to 0 but has not taken effect. NOTE: If the remote I2C master terminates the transfer with a STOP condition before the the controller has a chance to NACK a transfer, and IC_ENABLE has been set to 0, then this bit will also be set to 1. When read as 0, the controller is deemed to have been disabled when there is master activity, or when the I2C bus is idle. NOTE: The CPU can safely read this bit when IC_EN (bit 0) is read as 0. 0x0 N D A C O N FI D EN 0x0 Datasheet CFR0011-120-01 Revision 3.1 188 of 230 04-Jan-2022 © 2022 Renesas Electronics DA14583 Bluetooth Low Energy 4.2 SoC with Flash Memory FINAL Table 232: I2C_ENABLE_STATUS_REG (0x5000139C) Mode Symbol Description Reset 0 r IC_EN ic_en Status. This bit always reflects the value driven on the output port ic_en. When read as 1, the controller is deemed to be in an enabled state. When read as 0, the controller is deemed completely inactive. NOTE: The CPU can safely read this bit anytime. When this bit is read as 0, the CPU can safely read SLV_RX_DATA_LOST (bit 2) and SLV_DISABLED_WHILE_BUSY (bit 1). 0x0 TI AL Bit Table 233: I2C_IC_FS_SPKLEN_REG (0x500013A0) Bit Mode Symbol Description 15:8 - - Reserved Reset 7:0 r/w IC_FS_SPKLEN This register must be set before any I2C bus transaction can take place to ensure stable operation. This register sets the duration, measured in ic_clk cycles, of the longest spike in the SCL or SDA lines that will be filtered out by the spike suppression logic. This register can be written only when the I2C interface is disabled which corresponds to the IC_ENABLE register being set to 0. Writes at other times have no effect. The minimum valid value is 2; hardware prevents values less than this being written, and if attempted results in 2 being set. 0x0 FI D EN 0x1 Mode Symbol 15:6 - - Description Reset Reserved 0x0 N D A C O Bit N Table 234: GPIO_IRQ0_IN_SEL_REG (0x50001400) Datasheet CFR0011-120-01 Revision 3.1 189 of 230 04-Jan-2022 © 2022 Renesas Electronics DA14583 Bluetooth Low Energy 4.2 SoC with Flash Memory FINAL Table 234: GPIO_IRQ0_IN_SEL_REG (0x50001400) Mode Symbol Description Reset 5:0 r/w KBRD_IRQ0_SEL input selection that can generate a GPIO interrupt 0: no input selected 1: P0[0] is selected 2: P0[1] is selected 3: P0[2] is selected 4: P0[3] is selected 5: P0[4] is selected 6: P0[5] is selected 7: P0[6] is selected 8: P0[7] is selected 9: P1[0] is selected 10: P1[1] is selected 11: P1[2] is selected 12: P1[3] is selected 13: P1[4] is selected 14: P1[5] is selected 15: P2[0] is selected 16: P2[1] is selected 17: P2[2] is selected 18: P2[3] is selected 19: P2[4] is selected 20: P2[5] is selected 21: P2[6] is selected 22: P2[7] is selected 23: P2[8] is selected 24: P2[9] is selected 25: P3[0] is selected 26: P3[1] is selected 27: P3[2] is selected 28: P3[3] is selected 29: P3[4] is selected 30: P3[5] is selected 31: P3[6] is selected 32: P3[7] is selected all others: no input selected 0x0 C O N FI D EN TI AL Bit Table 235: GPIO_IRQ1_IN_SEL_REG (0x50001402) Symbol 15:6 - - Reserved 0x0 5:0 r/w KBRD_IRQ1_SEL see KBRD_IRQ0_SEL 0x0 A Mode D Bit Description Reset N Table 236: GPIO_IRQ2_IN_SEL_REG (0x50001404) Bit Mode Symbol Description Reset 15:6 - - Reserved 0x0 5:0 r/w KBRD_IRQ2_SEL see KBRD_IRQ0_SEL 0x0 Table 237: GPIO_IRQ3_IN_SEL_REG (0x50001406) Bit Mode Symbol 15:6 - - Reserved 0x0 5:0 r/w KBRD_IRQ3_SEL see KBRD_IRQ0_SEL 0x0 Datasheet CFR0011-120-01 Description Revision 3.1 190 of 230 Reset 04-Jan-2022 © 2022 Renesas Electronics DA14583 Bluetooth Low Energy 4.2 SoC with Flash Memory FINAL Table 238: GPIO_IRQ4_IN_SEL_REG (0x50001408) Bit Mode Symbol Description Reset 15:6 - - Reserved 0x0 5:0 r/w KBRD_IRQ4_SEL see KBRD_IRQ0_SEL 0x0 Table 239: GPIO_DEBOUNCE_REG (0x5000140C) Mode Symbol Description Reset 15:14 - - Reserved 13 r/w DEB_ENABLE_KBR D enables the debounce counter for the KBRD interface 12 r/w DEB_ENABLE4 enables the debounce counter for GPIO IRQ4 0x0 11 r/w DEB_ENABLE3 enables the debounce counter for GPIO IRQ3 0x0 10 r/w DEB_ENABLE2 enables the debounce counter for GPIO IRQ2 0x0 9 r/w DEB_ENABLE1 enables the debounce counter for GPIO IRQ1 0x0 8 r/w DEB_ENABLE0 enables the debounce counter for GPIO IRQ0 0x0 7:6 - - Reserved 0x0 5:0 r/w DEB_VALUE Keyboard debounce time if enabled. Generate KEYB_INT after specified time. Debounce time: N*1 ms. N =0..63 TI AL Bit FI D EN 0x0 0x0 0x0 Table 240: GPIO_RESET_IRQ_REG (0x5000140E) Mode Symbol Description Reset 15:6 - - Reserved 0x0 5 r0/w RESET_KBRD_IRQ writing a 1 to this bit will reset the KBRD IRQ. Reading returns 0. 0x0 4 r0/w RESET_GPIO4_IRQ writing a 1 to this bit will reset the GPIO4 IRQ. Reading returns 0. 0x0 3 r0/w RESET_GPIO3_IRQ writing a 1 to this bit will reset the GPIO3 IRQ. Reading returns 0. 0x0 2 r0/w RESET_GPIO2_IRQ writing a 1 to this bit will reset the GPIO2 IRQ. Reading returns 0. 0x0 1 r0/w RESET_GPIO1_IRQ writing a 1 to this bit will reset the GPIO1 IRQ. Reading returns 0. 0x0 0 r0/w RESET_GPIO0_IRQ writing a 1 to this bit will reset the GPIO0 IRQ. Reading returns 0. 0x0 N D A C O N Bit Table 241: GPIO_INT_LEVEL_CTRL_REG (0x50001410) Bit Mode Symbol Description Reset 15:14 - 12 r/w - Reserved 0x0 EDGE_LEVELN4 see EDGE_LEVELn0, but for GPIO IRQ4 0x0 11 r/w EDGE_LEVELN3 see EDGE_LEVELn0, but for GPIO IRQ3 0x0 10 r/w EDGE_LEVELN2 see EDGE_LEVELn0, but for GPIO IRQ2 0x0 9 r/w EDGE_LEVELN1 see EDGE_LEVELn0, but for GPIO IRQ1 0x0 8 r/w EDGE_LEVELN0 0: do not wait for key release after interrupt was reset for GPIO IRQ0, so a new interrupt can be initiated immediately 1: wait for key release after interrupt was reset for IRQ0 0x0 7:6 - - Reserved 0x0 Datasheet CFR0011-120-01 Revision 3.1 191 of 230 04-Jan-2022 © 2022 Renesas Electronics DA14583 Bluetooth Low Energy 4.2 SoC with Flash Memory FINAL Table 241: GPIO_INT_LEVEL_CTRL_REG (0x50001410) Mode Symbol Description Reset 4 r/w INPUT_LEVEL4 see INPUT_LEVEL0, but for GPIO IRQ4 0x0 3 r/w INPUT_LEVEL3 see INPUT_LEVEL0, but for GPIO IRQ3 0x0 2 r/w INPUT_LEVEL2 see INPUT_LEVEL0, but for GPIO IRQ2 0x0 1 r/w INPUT_LEVEL1 see INPUT_LEVEL0, but for GPIO IRQ1 0x0 0 r/w INPUT_LEVEL0 0 = selected input will generate GPIO IRQ0 if that input is high. 1 = selected input will generate GPIO IRQ0 if that input is low. 0x0 TI AL Bit Table 242: KBRD_IRQ_IN_SEL0_REG (0x50001412) Mode Symbol Description 15 r/w KBRD_REL 0 = No interrupt on key release 1 = Interrupt also on key release (also debouncing if enabled) 0x0 Reset 14 r/w KBRD_LEVEL 0 = enabled input will generate KBRD IRQ if that input is high. 1 = enabled input will generate KBRD IRQ if that input is low. 0x0 13:8 r/w KEY_REPEAT While key is pressed, automatically generate repeating KEYB_INT after specified time unequal to 0. Repeat time: N*1 ms. N =1..63, N=0 disables the timer. 0x0 7 r/w KBRD_P07_EN enable P0[7] for the keyboard interrupt 0x0 6 r/w KBRD_P06_EN enable P0[6] for the keyboard interrupt 0x0 5 r/w KBRD_P05_EN enable P0[5] for the keyboard interrupt 0x0 4 r/w KBRD_P04_EN enable P0[4] for the keyboard interrupt 0x0 3 r/w KBRD_P03_EN enable P0[3] for the keyboard interrupt 0x0 2 r/w KBRD_P02_EN enable P0[2] for the keyboard interrupt 0x0 1 r/w KBRD_P01_EN enable P0[1] for the keyboard interrupt 0x0 0 r/w KBRD_P00_EN enable P0[0] for the keyboard interrupt 0x0 C O N FI D EN Bit Mode Symbol Description Reset 15 r/w KBRD_P15_EN enable P1[5] for the keyboard interrupt 0x0 14 r/w KBRD_P14_EN enable P1[4] for the keyboard interrupt 0x0 13 r/w KBRD_P13_EN enable P1[3] for the keyboard interrupt 0x0 D Bit A Table 243: KBRD_IRQ_IN_SEL1_REG (0x50001414) r/w KBRD_P12_EN enable P1[2] for the keyboard interrupt 0x0 11 r/w KBRD_P11_EN enable P1[1] for the keyboard interrupt 0x0 10 r/w KBRD_P10_EN enable P1[0] for the keyboard interrupt 0x0 9 r/w KBRD_P29_EN enable P2[9] for the keyboard interrupt 0x0 8 r/w KBRD_P28_EN enable P2[8] for the keyboard interrupt 0x0 7 r/w KBRD_P27_EN enable P2[7] for the keyboard interrupt 0x0 6 r/w KBRD_P26_EN enable P2[6] for the keyboard interrupt 0x0 5 r/w KBRD_P25_EN enable P2[5] for the keyboard interrupt 0x0 4 r/w KBRD_P24_EN enable P2[4] for the keyboard interrupt 0x0 3 r/w KBRD_P23_EN enable P2[3] for the keyboard interrupt 0x0 2 r/w KBRD_P22_EN enable P2[2] for the keyboard interrupt 0x0 N 12 Datasheet CFR0011-120-01 Revision 3.1 192 of 230 04-Jan-2022 © 2022 Renesas Electronics DA14583 Bluetooth Low Energy 4.2 SoC with Flash Memory FINAL Table 243: KBRD_IRQ_IN_SEL1_REG (0x50001414) Bit Mode Symbol Description Reset 1 r/w KBRD_P21_EN enable P2[1] for the keyboard interrupt 0x0 0 r/w KBRD_P20_EN enable P2[0] for the keyboard interrupt 0x0 Table 244: KBRD_IRQ_IN_SEL2_REG (0x50001416) Mode Symbol Description Reset 7 r/w KBRD_P37_EN enable P3[7] for the keyboard interrupt 0x0 6 r/w KBRD_P36_EN enable P3[6] for the keyboard interrupt 0x0 5 r/w KBRD_P35_EN enable P3[5] for the keyboard interrupt 0x0 4 r/w KBRD_P34_EN enable P3[4] for the keyboard interrupt 0x0 3 r/w KBRD_P33_EN enable P3[3] for the keyboard interrupt 0x0 2 r/w KBRD_P32_EN enable P3[2] for the keyboard interrupt 0x0 1 r/w KBRD_P31_EN enable P3[1] for the keyboard interrupt 0x0 0 r/w KBRD_P30_EN enable P3[0] for the keyboard interrupt Table 245: GP_ADC_CTRL_REG (0x50001500) EN TI AL Bit 0x0 Mode Symbol Description 15 r/w GP_ADC_LDO_ZER O Forces LDO-output to 0V. 0x0 14 r/w GP_ADC_LDO_EN Turns on LDO. 0x0 13 r/w GP_ADC_CHOP Takes two samples with opposite GP_ADC_SIGN to cancel the internal offset voltage of the ADC; Highly recommended for DC-measurements. 0x0 12 r/w GP_ADC_MUTE Takes sample at mid-scale (to dertermine the internal offset and/or noise of the ADC with regards to VDD_REF which is also sampled by the ADC). 0x0 11 r/w GP_ADC_SE 0 = Differential mode 1 = Single ended mode 0x0 10 r/w GP_ADC_SIGN 0 = Default 1 = Conversion with opposite sign at input and output to cancel out the internal offset of the ADC and low-frequency 0x0 9:6 r/w ADC input selection which must be set before the GP_ADC_START bit is enabled. If GP_ADC_SE = 1 (single ended mode): 0000 = P0[0] 0001 = P0[1] 0010 = P0[2] 0011 = P0[3] 0100 = AVS 0101 = VDD_REF 0110 = VDD_RTT 0111 = VBAT3V 1000 = VDCDC 1001 = VBAT1V All other combinations are reserved. If GP_ADC_SE = 0 (differential mode): 0000 = P0[0] vs P0[1] All other combinations are P0[2] vs P0[3]. 0x0 0 = Disable (mask) GP_ADC_INT. 1 = Enable GP_ADC_INT to ICU. 0x0 r/w Datasheet CFR0011-120-01 N O C A D GP_ADC_SEL N 5 Reset FI D Bit GP_ADC_MINT Revision 3.1 193 of 230 04-Jan-2022 © 2022 Renesas Electronics DA14583 Bluetooth Low Energy 4.2 SoC with Flash Memory FINAL Table 245: GP_ADC_CTRL_REG (0x50001500) Mode Symbol Description Reset 4 r GP_ADC_INT 1 = AD conversion ready and has generated an interrupt. Must be cleared by writing any value to GP_ADC_CLEAR_INT_REG. 0x0 3 r/w GP_ADC_CLK_SEL 0 = Internal high-speed ADC clock used. 1 = Digital clock used. 0x0 2 rsvd GP_ADC_TEST Reserved, keep 0. 0x0 1 r/w GP_ADC_START 0 = ADC conversion ready. 1 = If a 1 is written, the ADC starts a conversion. After the conversion this bit will be set to 0 and the GP_ADC_INT bit will be set. 0x0 0 r/w GP_ADC_EN 0 = ADC is disabled and in reset. 1 = ADC is enabled and sampling of input is started. 0x0 TI AL Bit Bit Mode Symbol Description EN Table 246: GP_ADC_CTRL2_REG (0x50001502) Reset - - Reserved r/w GP_ADC_I20U Adds 20uA constant load current at the ADC LDO to minimize ripple on the reference voltage of the ADC. 0x0 0x0 2 r/w GP_ADC_IDYN Enables dynamic load current at the ADC LDO to minimize ripple on the reference voltage of the ADC. 0x0 1 r/w GP_ADC_ATTN3X 0 = Input voltages up to 1.2V allowed. 1 = Input voltages up to 3.6V allowed by enabling 3x attenuator. 0x0 0 r/w GP_ADC_DELAY_E N Enables delay function for several signals. This is not autocleared. Toggle this bit before every sampling to enable succesive conversions. 0x0 O N FI D 15:4 3 Table 247: GP_ADC_OFFP_REG (0x50001504) Symbol 15:10 - - 9:0 r/w GP_ADC_OFFP C Mode D A Bit Description Reset Reserved 0x0 Offset adjust of 'positive' array of ADC-network (effective if "GP_ADC_SE=0", or "GP_ADC_SE=1 AND GP_ADC_SIGN=0") 0x200 Table 248: GP_ADC_OFFN_REG (0x50001506) Mode Symbol Description Reset 15:10 - - Reserved 0x0 9:0 r/w GP_ADC_OFFN Offset adjust of 'negative' array of ADC-network (effective if "GP_ADC_SE=0", or "GP_ADC_SE=1 AND GP_ADC_SIGN=1") 0x200 N Bit Table 249: GP_ADC_CLEAR_INT_REG (0x50001508) Bit Mode Symbol Description Reset 15:0 r0/w GP_ADC_CLR_INT Writing any value to this register will clear the ADC_INT interrupt. Reading returns 0. 0x0 Datasheet CFR0011-120-01 Revision 3.1 194 of 230 04-Jan-2022 © 2022 Renesas Electronics DA14583 Bluetooth Low Energy 4.2 SoC with Flash Memory FINAL Table 250: GP_ADC_RESULT_REG (0x5000150A) Bit Mode Symbol Description Reset 15:10 - - Reserved 0x0 9:0 r GP_ADC_VAL Returns the 10 bits linear value of the last AD conversion. 0x0 Table 251: GP_ADC_DELAY_REG (0x5000150C) Mode Symbol Description Reset 15:8 - - Reserved 7:0 r/w DEL_LDO_EN Defines the delay before the LDO enable (GP_ADC_LDO_EN). Reset value is 0 µs since the LDO enable should be the first thing to be programmed in the sequence of bringing the GP ADC up. TI AL Bit 0x0 EN Table 252: GP_ADC_DELAY2_REG (0x5000150E) 0x0 Mode Symbol Description Reset 15:8 r/w DEL_ADC_START Defines the delay for the GP_ADC_START bit. Reset value is 17 µs which is the recommended value to wait before starting the GP ADC. This is the third and last step of bringing up the GP ADC 0x88 7:0 r/w DEL_ADC_EN Defines the delay for the GP_ADC_EN bit. Reset value is 16 µs which is the recommended value to wait after enabling the LDO. This is the second step in bringing up the GP ADC. 0x80 FI D Bit N Table 253: CLK_REF_SEL_REG (0x50001600) Mode Symbol 15:3 - - 2 r/w REF_CAL_START 1:0 r/w REF_CLK_SEL Description Reset Reserved 0x0 Writing a '1' starts a calibration. This bit is cleared when calibration is finished, and CLK_REF_VAL is ready. 0x0 Select clock input for calibration: 0x0 : RC32KHz oscillator 0x0 D A C O Bit 0x1 : RC16MHz oscillator 0x2 : XTAL32KHz oscillator 0x3 : RCX32KHz oscillator N Table 254: CLK_REF_CNT_REG (0x50001602) Bit Mode Symbol Description Reset 15:0 r/w REF_CNT_VAL Indicates the calibration time, with a decrement counter to 1. 0x0 Table 255: CLK_REF_VAL_L_REG (0x50001604) Bit Mode Symbol Description Reset 15:0 r XTAL_CNT_VAL Returns the lower 16 bits of XTAL16 clock cycles during the calibration time, defined with REF_CNT_VAL 0x0 Datasheet CFR0011-120-01 Revision 3.1 195 of 230 04-Jan-2022 © 2022 Renesas Electronics DA14583 Bluetooth Low Energy 4.2 SoC with Flash Memory FINAL Table 256: CLK_REF_VAL_H_REG (0x50001606) Bit Mode Symbol Description Reset 15:0 r XTAL_CNT_VAL Returns the upper 16 bits of XTAL16 clock cycles during the calibration time, defined with REF_CNT_VAL 0x0 Table 257: P0_DATA_REG (0x50003000) Mode Symbol Description Reset 15:8 - - Reserved 0x0 7:0 r/w P0_DATA Set P0 output register when written; Returns the value of P0 port when read TI AL Bit Table 258: P0_SET_DATA_REG (0x50003002) Bit Mode Symbol Description 15:8 - - Reserved 7:0 r/w P0_SET Writing a 1 to P0[y] sets P0[y] to 1. Writing 0 is discarded; Reading returns 0 Reset 0x0 EN FI D Table 259: P0_RESET_DATA_REG (0x50003004) 0x0 0x0 Mode Symbol Description Reset 15:8 - - Reserved 0x0 7:0 r/w P0_RESET Writing a 1 to P0[y] sets P0[y] to 0. Writing 0 is discarded; Reading returns 0 0x0 N Bit Symbol 15:10 - - 9:8 r/w PUPD 7:5 - A C Mode - Description Reset Reserved 0x0 00 = Input, no resistors selected 01 = Input, pull-up selected 10 = Input, Pull-down selected 11 = Output, no resistors selected In ADC mode, these bits are don't care 0x2 Reserved 0x0 N D Bit O Table 260: P00_MODE_REG (0x50003006) Datasheet CFR0011-120-01 Revision 3.1 196 of 230 04-Jan-2022 © 2022 Renesas Electronics DA14583 Bluetooth Low Energy 4.2 SoC with Flash Memory FINAL Table 260: P00_MODE_REG (0x50003006) Mode Symbol Description Reset 4:0 r/w PID Function of port 0 = Port function, PUPD as set above 1 = UART1_RX 2 = UART1_TX 3 = UART2_RX 4 = UART2_TX 5 = SPI_DI 6 = SPI_DO 7 = SPI_CLK 8 = SPI_EN 9 = I2C_SCL 10 = I2C_SDA 11 = UART1_IRDA_RX 12 = UART1_IRDA_TX 13 = UART2_IRDA_RX 14 = UART2_IRDA_TX 15 = ADC (only for P0[3:0]) 16 = PWM0 17 = PWM1 18 = BLE_DIAG (only for P0[7:0]) 19 = UART1_CTSN 20 = UART1_RTSN 21 = UART2_CTSN 22 = UART2_RTSN 23 = PWM2 24 = PWM3 25 = PWM4 Note: when a certain input function (like SPI_DI) is selected on more than 1 port pin, the port with the lowest index has the highest priority and P0 has higher priority than P1. 0x0 O N FI D EN TI AL Bit Table 261: P01_MODE_REG (0x50003008) Symbol 15:10 - - 9:8 r/w PUPD Reset Reserved 0x0 00 = Input, no resistors selected 01 = Input, pull-up selected 10 = Input, Pull-down selected 11 = Output, no resistors selected In ADC mode, these bits are don't care 0x2 - Reserved 0x0 - N 7:5 Description A C Mode D Bit Datasheet CFR0011-120-01 Revision 3.1 197 of 230 04-Jan-2022 © 2022 Renesas Electronics DA14583 Bluetooth Low Energy 4.2 SoC with Flash Memory FINAL Table 261: P01_MODE_REG (0x50003008) Mode Symbol Description Reset 4:0 r/w PID Function of port 0 = Port function, PUPD as set above 1 = UART1_RX 2 = UART1_TX 3 = UART2_RX 4 = UART2_TX 5 = SPI_DI 6 = SPI_DO 7 = SPI_CLK 8 = SPI_EN 9 = I2C_SCL 10 = I2C_SDA 11 = UART1_IRDA_RX 12 = UART1_IRDA_TX 13 = UART2_IRDA_RX 14 = UART2_IRDA_TX 15 = ADC (only for P0[3:0]) 16 = PWM0 17 = PWM1 18 = BLE_DIAG (only for P0[7:0]) 19 = UART1_CTSN 20 = UART1_RTSN 21 = UART2_CTSN 22 = UART2_RTSN 23 = PWM2 24 = PWM3 25 = PWM4 Note: when a certain input function (like SPI_DI) is selected on more than 1 port pin, the port with the lowest index has the highest priority and P0 has higher priority than P1. 0x0 O N FI D EN TI AL Bit Table 262: P02_MODE_REG (0x5000300A) Symbol 15:10 - - 9:8 r/w PUPD Reset Reserved 0x0 00 = Input, no resistors selected 01 = Input, pull-up selected 10 = Input, Pull-down selected 11 = Output, no resistors selected In ADC mode, these bits are don't care 0x2 - Reserved 0x0 - N 7:5 Description A C Mode D Bit Datasheet CFR0011-120-01 Revision 3.1 198 of 230 04-Jan-2022 © 2022 Renesas Electronics DA14583 Bluetooth Low Energy 4.2 SoC with Flash Memory FINAL Table 262: P02_MODE_REG (0x5000300A) Mode Symbol Description Reset 4:0 r/w PID Function of port 0 = Port function, PUPD as set above 1 = UART1_RX 2 = UART1_TX 3 = UART2_RX 4 = UART2_TX 5 = SPI_DI 6 = SPI_DO 7 = SPI_CLK 8 = SPI_EN 9 = I2C_SCL 10 = I2C_SDA 11 = UART1_IRDA_RX 12 = UART1_IRDA_TX 13 = UART2_IRDA_RX 14 = UART2_IRDA_TX 15 = ADC (only for P0[3:0]) 16 = PWM0 17 = PWM1 18 = BLE_DIAG (only for P0[7:0]) 19 = UART1_CTSN 20 = UART1_RTSN 21 = UART2_CTSN 22 = UART2_RTSN 23 = PWM2 24 = PWM3 25 = PWM4 Note: when a certain input function (like SPI_DI) is selected on more than 1 port pin, the port with the lowest index has the highest priority and P0 has higher priority than P1. 0x0 O N FI D EN TI AL Bit Table 263: P03_MODE_REG (0x5000300C) Symbol 15:10 - - 9:8 r/w PUPD Reset Reserved 0x0 00 = Input, no resistors selected 01 = Input, pull-up selected 10 = Input, Pull-down selected 11 = Output, no resistors selected In ADC mode, these bits are don't care 0x2 - Reserved 0x0 - N 7:5 Description A C Mode D Bit Datasheet CFR0011-120-01 Revision 3.1 199 of 230 04-Jan-2022 © 2022 Renesas Electronics DA14583 Bluetooth Low Energy 4.2 SoC with Flash Memory FINAL Table 263: P03_MODE_REG (0x5000300C) Mode Symbol Description Reset 4:0 r/w PID Function of port 0 = Port function, PUPD as set above 1 = UART1_RX 2 = UART1_TX 3 = UART2_RX 4 = UART2_TX 5 = SPI_DI 6 = SPI_DO 7 = SPI_CLK 8 = SPI_EN 9 = I2C_SCL 10 = I2C_SDA 11 = UART1_IRDA_RX 12 = UART1_IRDA_TX 13 = UART2_IRDA_RX 14 = UART2_IRDA_TX 15 = ADC (only for P0[3:0]) 16 = PWM0 17 = PWM1 18 = BLE_DIAG (only for P0[7:0]) 19 = UART1_CTSN 20 = UART1_RTSN 21 = UART2_CTSN 22 = UART2_RTSN 23 = PWM2 24 = PWM3 25 = PWM4 Note: when a certain input function (like SPI_DI) is selected on more than 1 port pin, the port with the lowest index has the highest priority and P0 has higher priority than P1. 0x0 O N FI D EN TI AL Bit Table 264: P04_MODE_REG (0x5000300E) Symbol 15:10 - - 9:8 r/w PUPD Reset Reserved 0x0 00 = Input, no resistors selected 01 = Input, pull-up selected 10 = Input, Pull-down selected 11 = Output, no resistors selected In ADC mode, these bits are don't care 0x2 - Reserved 0x0 - N 7:5 Description A C Mode D Bit Datasheet CFR0011-120-01 Revision 3.1 200 of 230 04-Jan-2022 © 2022 Renesas Electronics DA14583 Bluetooth Low Energy 4.2 SoC with Flash Memory FINAL Table 264: P04_MODE_REG (0x5000300E) Mode Symbol Description Reset 4:0 r/w PID Function of port 0 = Port function, PUPD as set above 1 = UART1_RX 2 = UART1_TX 3 = UART2_RX 4 = UART2_TX 5 = SPI_DI 6 = SPI_DO 7 = SPI_CLK 8 = SPI_EN 9 = I2C_SCL 10 = I2C_SDA 11 = UART1_IRDA_RX 12 = UART1_IRDA_TX 13 = UART2_IRDA_RX 14 = UART2_IRDA_TX 15 = ADC (only for P0[3:0]) 16 = PWM0 17 = PWM1 18 = BLE_DIAG (only for P0[7:0]) 19 = UART1_CTSN 20 = UART1_RTSN 21 = UART2_CTSN 22 = UART2_RTSN 23 = PWM2 24 = PWM3 25 = PWM4 Note: when a certain input function (like SPI_DI) is selected on more than 1 port pin, the port with the lowest index has the highest priority and P0 has higher priority than P1. 0x0 O N FI D EN TI AL Bit Table 265: P05_MODE_REG (0x50003010) Symbol 15:10 - - 9:8 r/w PUPD Reset Reserved 0x0 00 = Input, no resistors selected 01 = Input, pull-up selected 10 = Input, Pull-down selected 11 = Output, no resistors selected In ADC mode, these bits are don't care 0x2 - Reserved 0x0 - N 7:5 Description A C Mode D Bit Datasheet CFR0011-120-01 Revision 3.1 201 of 230 04-Jan-2022 © 2022 Renesas Electronics DA14583 Bluetooth Low Energy 4.2 SoC with Flash Memory FINAL Table 265: P05_MODE_REG (0x50003010) Mode Symbol Description Reset 4:0 r/w PID Function of port 0 = Port function, PUPD as set above 1 = UART1_RX 2 = UART1_TX 3 = UART2_RX 4 = UART2_TX 5 = SPI_DI 6 = SPI_DO 7 = SPI_CLK 8 = SPI_EN 9 = I2C_SCL 10 = I2C_SDA 11 = UART1_IRDA_RX 12 = UART1_IRDA_TX 13 = UART2_IRDA_RX 14 = UART2_IRDA_TX 15 = ADC (only for P0[3:0]) 16 = PWM0 17 = PWM1 18 = BLE_DIAG (only for P0[7:0]) 19 = UART1_CTSN 20 = UART1_RTSN 21 = UART2_CTSN 22 = UART2_RTSN 23 = PWM2 24 = PWM3 25 = PWM4 Note: when a certain input function (like SPI_DI) is selected on more than 1 port pin, the port with the lowest index has the highest priority and P0 has higher priority than P1. 0x0 O N FI D EN TI AL Bit Table 266: P06_MODE_REG (0x50003012) Symbol 15:10 - - 9:8 r/w PUPD Reset Reserved 0x0 00 = Input, no resistors selected 01 = Input, pull-up selected 10 = Input, Pull-down selected 11 = Output, no resistors selected In ADC mode, these bits are don't care 0x2 - Reserved 0x0 - N 7:5 Description A C Mode D Bit Datasheet CFR0011-120-01 Revision 3.1 202 of 230 04-Jan-2022 © 2022 Renesas Electronics DA14583 Bluetooth Low Energy 4.2 SoC with Flash Memory FINAL Table 266: P06_MODE_REG (0x50003012) Mode Symbol Description Reset 4:0 r/w PID Function of port 0 = Port function, PUPD as set above 1 = UART1_RX 2 = UART1_TX 3 = UART2_RX 4 = UART2_TX 5 = SPI_DI 6 = SPI_DO 7 = SPI_CLK 8 = SPI_EN 9 = I2C_SCL 10 = I2C_SDA 11 = UART1_IRDA_RX 12 = UART1_IRDA_TX 13 = UART2_IRDA_RX 14 = UART2_IRDA_TX 15 = ADC (only for P0[3:0]) 16 = PWM0 17 = PWM1 18 = BLE_DIAG (only for P0[7:0]) 19 = UART1_CTSN 20 = UART1_RTSN 21 = UART2_CTSN 22 = UART2_RTSN 23 = PWM2 24 = PWM3 25 = PWM4 Note: when a certain input function (like SPI_DI) is selected on more than 1 port pin, the port with the lowest index has the highest priority and P0 has higher priority than P1. 0x0 O N FI D EN TI AL Bit Table 267: P07_MODE_REG (0x50003014) Symbol 15:10 - - 9:8 r/w PUPD Reset Reserved 0x0 00 = Input, no resistors selected 01 = Input, pull-up selected 10 = Input, Pull-down selected 11 = Output, no resistors selected In ADC mode, these bits are don't care 0x2 - Reserved 0x0 - N 7:5 Description A C Mode D Bit Datasheet CFR0011-120-01 Revision 3.1 203 of 230 04-Jan-2022 © 2022 Renesas Electronics DA14583 Bluetooth Low Energy 4.2 SoC with Flash Memory FINAL Table 267: P07_MODE_REG (0x50003014) Mode Symbol Description Reset 4:0 r/w PID Function of port 0 = Port function, PUPD as set above 1 = UART1_RX 2 = UART1_TX 3 = UART2_RX 4 = UART2_TX 5 = SPI_DI 6 = SPI_DO 7 = SPI_CLK 8 = SPI_EN 9 = I2C_SCL 10 = I2C_SDA 11 = UART1_IRDA_RX 12 = UART1_IRDA_TX 13 = UART2_IRDA_RX 14 = UART2_IRDA_TX 15 = ADC (only for P0[3:0]) 16 = PWM0 17 = PWM1 18 = BLE_DIAG (only for P0[7:0]) 19 = UART1_CTSN 20 = UART1_RTSN 21 = UART2_CTSN 22 = UART2_RTSN 23 = PWM2 24 = PWM3 25 = PWM4 Note: when a certain input function (like SPI_DI) is selected on more than 1 port pin, the port with the lowest index has the highest priority and P0 has higher priority than P1. 0x0 O N FI D EN TI AL Bit Table 268: P1_DATA_REG (0x50003020) Mode Symbol C Bit - - r/w P1_DATA Reset Reserved 0x0 Set P1 output register when written; Returns the value of P1 port when read 0x0 A 15:8 7:0 Description D Table 269: P1_SET_DATA_REG (0x50003022) Mode Symbol 15:8 - 7:0 r/w N Bit Description Reset - Reserved 0x0 P1_SET Writing a 1 to P1[y] sets P1[y] to 1. Writing 0 is discarded; Reading returns 0 0x0 Table 270: P1_RESET_DATA_REG (0x50003024) Bit Mode Symbol 15:8 - - Reserved 0x0 7:0 r/w P1_RESET Writing a 1 to P1[y] sets P1[y] to 0. Writing 0 is discarded; Reading returns 0 0x0 Datasheet CFR0011-120-01 Description Revision 3.1 204 of 230 Reset 04-Jan-2022 © 2022 Renesas Electronics DA14583 Bluetooth Low Energy 4.2 SoC with Flash Memory FINAL Table 271: P10_MODE_REG (0x50003026) Mode Symbol Description Reset 15:10 - 9:8 r/w - Reserved 0x0 PUPD 00 = Input, no resistors selected 01 = Input, pull-up selected 10 = Input, Pull-down selected 11 = Output, no resistors selected In analog mode, these bits are don't care P14_MODE_REG and P15_MODE_REG reset value is 1 (i.e. pulled up) 0x2 7:5 - - Reserved 4:0 r/w PID See P0x_MODE_REG[PID] 0x0 Table 272: P11_MODE_REG (0x50003028) Mode Symbol Reset 15:10 - - Reserved 9:8 r/w PUPD 00 = Input, no resistors selected 01 = Input, pull-up selected 10 = Input, Pull-down selected 11 = Output, no resistors selected In analog mode, these bits are don't care P14_MODE_REG and P15_MODE_REG reset value is 1 (i.e. pulled up) EN Description 0x0 0x0 FI D Bit TI AL Bit 0x2 - - Reserved 0x0 r/w PID See P0x_MODE_REG[PID] 0x0 N 7:5 4:0 Table 273: P12_MODE_REG (0x5000302A) Symbol 15:10 - - 9:8 r/w PUPD A D Description Reset Reserved 0x0 00 = Input, no resistors selected 01 = Input, pull-up selected 10 = Input, Pull-down selected 11 = Output, no resistors selected In analog mode, these bits are don't care P14_MODE_REG and P15_MODE_REG reset value is 1 (i.e. pulled up) 0x2 O Mode C Bit - - Reserved 0x0 r/w PID See P0x_MODE_REG[PID] 0x0 N 7:5 4:0 Table 274: P13_MODE_REG (0x5000302C) Bit Mode Symbol Description Reset 15:10 - - Reserved 0x0 9:8 r/w PUPD 00 = Input, no resistors selected 01 = Input, pull-up selected 10 = Input, Pull-down selected 11 = Output, no resistors selected In analog mode, these bits are don't care P14_MODE_REG and P15_MODE_REG reset value is 1 (i.e. pulled up) 0x2 7:5 - - Reserved 0x0 Datasheet CFR0011-120-01 Revision 3.1 205 of 230 04-Jan-2022 © 2022 Renesas Electronics DA14583 Bluetooth Low Energy 4.2 SoC with Flash Memory FINAL Table 274: P13_MODE_REG (0x5000302C) Bit Mode Symbol Description Reset 4:0 r/w PID See P0x_MODE_REG[PID] 0x0 Table 275: P14_MODE_REG (0x5000302E) Mode Symbol Description Reset 15:10 - - Reserved 0x0 9:8 r/w PUPD 00 = Input, no resistors selected 01 = Input, pull-up selected 10 = Input, Pull-down selected 11 = Output, no resistors selected In analog mode, these bits are don't care P14_MODE_REG and P15_MODE_REG reset value is 1 (i.e. pulled up) 0x2 7:5 - - Reserved 0x0 4:0 r/w PID See P0x_MODE_REG[PID] Mode Symbol Reset 15:10 - - Reserved 9:8 r/w PUPD 00 = Input, no resistors selected 01 = Input, pull-up selected 10 = Input, Pull-down selected 11 = Output, no resistors selected In analog mode, these bits are don't care P14_MODE_REG and P15_MODE_REG reset value is 1 (i.e. pulled up) 0x1 7:5 - - Reserved 0x0 4:0 r/w PID See P0x_MODE_REG[PID] 0x0 Description Reset 0x0 O N FI D Description C Bit 0x0 EN Table 276: P15_MODE_REG (0x50003030) TI AL Bit Table 277: P2_DATA_REG (0x50003040) Symbol 15:10 - - Reserved 0x0 9:0 r/w P2_DATA Set P2 output register when written; Returns the value of P2 port when read 0x0 A Mode D Bit N Table 278: P2_SET_DATA_REG (0x50003042) Bit Mode Symbol Description Reset 15:10 - 9:0 r/w - Reserved 0x0 P2_SET Writing a 1 to P2[y] sets P2[y] to 1. Writing 0 is discarded; Reading returns 0 0x0 Table 279: P2_RESET_DATA_REG (0x50003044) Bit Mode Symbol Description Reset 15:10 - - Reserved 0x0 9:0 r/w P2_RESET Writing a 1 to P2[y] sets P2[y] to 0. Writing 0 is discarded; Reading returns 0 0x0 Datasheet CFR0011-120-01 Revision 3.1 206 of 230 04-Jan-2022 © 2022 Renesas Electronics DA14583 Bluetooth Low Energy 4.2 SoC with Flash Memory FINAL Table 280: P20_MODE_REG (0x50003046) Mode Symbol Description Reset 15:10 - 9:8 r/w - Reserved 0x0 PUPD 00 = Input, no resistors selected 01 = Input, pull-up selected 10 = Input, Pull-down selected 11 = Output, no resistors selected In analog mode, these bits are don't care 0x2 7:5 - - Reserved 0x0 4:0 r/w PID See P0x_MODE_REG[PID] Table 281: P21_MODE_REG (0x50003048) Description 0x0 Mode Symbol Reset 15:10 - - Reserved 9:8 r/w PUPD 00 = Input, no resistors selected 01 = Input, pull-up selected 10 = Input, Pull-down selected 11 = Output, no resistors selected In analog mode, these bits are don't care 0x2 7:5 - - Reserved 0x0 4:0 r/w PID See P0x_MODE_REG[PID] EN 0x0 FI D Bit TI AL Bit 0x0 Table 282: P22_MODE_REG (0x5000304A) Symbol 15:10 - - 9:8 r/w PUPD 7:5 - - 4:0 r/w PID Description N Mode Reset Reserved 0x0 00 = Input, no resistors selected 01 = Input, pull-up selected 10 = Input, Pull-down selected 11 = Output, no resistors selected In analog mode, these bits are don't care 0x2 Reserved 0x0 See P0x_MODE_REG[PID] 0x0 A C O Bit D Table 283: P23_MODE_REG (0x5000304C) Bit Symbol - Description Reset - Reserved 0x0 9:8 r/w PUPD 00 = Input, no resistors selected 01 = Input, pull-up selected 10 = Input, Pull-down selected 11 = Output, no resistors selected In analog mode, these bits are don't care 0x2 7:5 - - Reserved 0x0 4:0 r/w PID See P0x_MODE_REG[PID] 0x0 N 15:10 Mode Table 284: P24_MODE_REG (0x5000304E) Bit Mode Symbol Description Reset 15:10 - - Reserved 0x0 Datasheet CFR0011-120-01 Revision 3.1 207 of 230 04-Jan-2022 © 2022 Renesas Electronics DA14583 Bluetooth Low Energy 4.2 SoC with Flash Memory FINAL Table 284: P24_MODE_REG (0x5000304E) Bit Mode Symbol Description Reset 9:8 r/w PUPD 00 = Input, no resistors selected 01 = Input, pull-up selected 10 = Input, Pull-down selected 11 = Output, no resistors selected In analog mode, these bits are don't care 0x2 - - Reserved 0x0 r/w PID See P0x_MODE_REG[PID] 0x0 TI AL 7:5 4:0 Table 285: P25_MODE_REG (0x50003050) Mode Symbol Description Reset 15:10 - - Reserved 9:8 r/w PUPD 00 = Input, no resistors selected 01 = Input, pull-up selected 10 = Input, Pull-down selected 11 = Output, no resistors selected In analog mode, these bits are don't care 0x2 7:5 - - Reserved 0x0 4:0 r/w PID See P0x_MODE_REG[PID] EN 0x0 FI D Bit 0x0 Table 286: P26_MODE_REG (0x50003052) Description Reset 15:10 - 9:8 r/w - Reserved 0x0 PUPD 00 = Input, no resistors selected 01 = Input, pull-up selected 10 = Input, Pull-down selected 11 = Output, no resistors selected In analog mode, these bits are don't care 0x2 7:5 - - Reserved 0x0 4:0 r/w PID See P0x_MODE_REG[PID] 0x0 N Symbol O Mode C Bit Mode Symbol Description Reset 15:10 - 9:8 r/w - Reserved 0x0 PUPD 00 = Input, no resistors selected 01 = Input, pull-up selected 10 = Input, Pull-down selected 11 = Output, no resistors selected In analog mode, these bits are don't care 0x2 N D Bit A Table 287: P27_MODE_REG (0x50003054) 7:5 - - Reserved 0x0 4:0 r/w PID See P0x_MODE_REG[PID] 0x0 Table 288: P28_MODE_REG (0x50003056) Bit Mode Symbol Description Reset 15:10 - - Reserved 0x0 Datasheet CFR0011-120-01 Revision 3.1 208 of 230 04-Jan-2022 © 2022 Renesas Electronics DA14583 Bluetooth Low Energy 4.2 SoC with Flash Memory FINAL Table 288: P28_MODE_REG (0x50003056) Bit Mode Symbol Description Reset 9:8 r/w PUPD 00 = Input, no resistors selected 01 = Input, pull-up selected 10 = Input, Pull-down selected 11 = Output, no resistors selected In analog mode, these bits are don't care 0x2 - - Reserved 0x0 r/w PID See P0x_MODE_REG[PID] 0x0 TI AL 7:5 4:0 Table 289: P29_MODE_REG (0x50003058) Mode Symbol Description Reset 15:10 - - Reserved 9:8 r/w PUPD 00 = Input, no resistors selected 01 = Input, pull-up selected 10 = Input, Pull-down selected 11 = Output, no resistors selected In analog mode, these bits are don't care 0x2 7:5 - - Reserved 0x0 4:0 r/w PID See P0x_MODE_REG[PID] EN 0x0 FI D Bit 0x0 Table 290: P01_PADPWR_CTRL_REG (0x50003070) Symbol Description Reset 15:14 - - Reserved 0x0 13:8 r/w P1_OUT_CTRL 1 = P1_x port output is powered by the 1 V rail 0 = P1_x port output is powered by the 3 V rail bit 8 controls the power of P1[0], bit 13 controls the power of P1[5] (Note 20) 0x0 7:0 r/w P0_OUT_CTRL 1 = P0_x port output is powered by the 1 V rail 0 = P0_x port output is powered by the 3 V rail bit 0 controls the power of P0[0], bit 7 controls the power of P0[7] (Note 21) 0x0 O N Mode A C Bit Note 20: In Buck mode the output must be powered by the 3 V rail. In Boost mode the outputs can be powered by the 1 V rail or by the 3 V rail. In D Boost mode the 3 V rail can only supply a limited current, e.g. for switching a high-impedance input of an external device. See table 'Digital input/output characteristics'. Note 21: In Buck mode the output must be powered by the 3 V rail. In Boost mode the outputs can be powered by the 1 V rail or by the 3 V rail. In N Boost mode the 3 V rail can only supply a limited current, e.g. for switching a high-impedance input of an external device. See table 'Digital input/output characteristics'. Table 291: P2_PADPWR_CTRL_REG (0x50003072) Bit Mode Symbol Description Reset 15:10 - - Reserved 0x0 9:0 r/w P2_OUT_CTRL 1 = P2_x port output is powered by the 1 V rail 0 = P2_x port output is powered by the 3 V rail bit 0 controls the power of P2[0], bit 9 controls the power of P2[9], (Note 22) 0x0 Note 22: In Buck mode the output must be powered by the 3 V rail. In Boost mode the outputs can be powered by the 1 V rail or by the 3 V rail. In Boost mode the 3 V rail can only supply a limited current, e.g. for switching a high-impedance input of an external device. See table 'Digital Datasheet CFR0011-120-01 Revision 3.1 209 of 230 04-Jan-2022 © 2022 Renesas Electronics DA14583 Bluetooth Low Energy 4.2 SoC with Flash Memory FINAL input/output characteristics'. Table 292: P3_PADPWR_CTRL_REG (0x50003074) Mode Symbol Description Reset 15:8 - - Reserved 0 7:0 r/w P3_OUT_CTRL 1 = P3_x port output is powered by the 1 V rail 0 = P3_x port output is powered by the 3 V rail bit 0 controls the power of P3[0], bit 7 controls the power of P3[7], (Note 23) 0 TI AL Bit Note 23: In Buck mode the output must be powered by the 3 V rail. In Boost mode the outputs can be powered by the 1 V rail or by the 3 V rail. In Boost mode the 3 V rail can only supply a limited current, e.g. for switching a high-impedance input of an external device. See table 'Digital input/output characteristics'. Table 293: P3_DATA_REG (0x50003080) Bit Mode Symbol Description Reset 15:8 - - Reserved 7:0 r/w P3_DATA Set P3 output register when written; Returns the value of P3 port when read EN 0 FI D Table 294: P3_SET_DATA_REG (0x50003082) 0 Mode Symbol Description Reset 15:8 - - Reserved 0 7:0 r0/w P3_SET Writing a 1 to P3[y] sets P3[y] to 1. Writing 0 is discarded; Reading returns 0 0 N Bit O Table 295: P3_RESET_DATA_REG (0x50003084) Mode Symbol 15:8 - - 7:0 r0/w P3_RESET C Bit Description Reset Reserved 0 Writing a 1 to P0[y] sets P0[y] to 0. Writing 0 is discarded; Reading returns 0 0 A Table 296: P30_MODE_REG (0x50003086) Description Reset 15:10 - - Reserved 0 9:8 r/w PUPD 00 = Input, no resistors selected 01 = Input, pull-up selected 10 = Input, Pull-down selected 11 = Output, no resistors selected In ADC mode, these bits are don't care 2 Mode Symbol N D Bit 7:5 - - Reserved 0 4:0 r/w PID See P0x_MODE_REG[PID] 0 Table 297: P31_MODE_REG (0x50003088) Bit Mode Symbol Description Reset 15:10 - - Reserved 0 Datasheet CFR0011-120-01 Revision 3.1 210 of 230 04-Jan-2022 © 2022 Renesas Electronics DA14583 Bluetooth Low Energy 4.2 SoC with Flash Memory FINAL Table 297: P31_MODE_REG (0x50003088) Mode Symbol Description Reset 9:8 r/w PUPD 00 = Input, no resistors selected 01 = Input, pull-up selected 10 = Input, Pull-down selected 11 = Output, no resistors selected In ADC mode, these bits are don't care 2 7:5 - - Reserved 0 4:0 r/w PID See P0x_MODE_REG[PID] 0 TI AL Bit Table 298: P32_MODE_REG (0x5000308A) Mode Symbol Description Reset 15:10 - - Reserved 9:8 r/w PUPD 00 = Input, no resistors selected 01 = Input, pull-up selected 10 = Input, Pull-down selected 11 = Output, no resistors selected In ADC mode, these bits are don't care 2 7:5 - - Reserved 0 4:0 r/w PID See P0x_MODE_REG[PID] EN 0 FI D Bit 0 Table 299: P33_MODE_REG (0x5000308C) Description Reset 15:10 - 9:8 r/w - Reserved 0 PUPD 00 = Input, no resistors selected 01 = Input, pull-up selected 10 = Input, Pull-down selected 11 = Output, no resistors selected In ADC mode, these bits are don't care 2 7:5 - - Reserved 0 4:0 r/w PID See P0x_MODE_REG[PID] 0 N Symbol O Mode C Bit Mode Symbol Description Reset 15:10 - 9:8 r/w - Reserved 0 PUPD 00 = Input, no resistors selected 01 = Input, pull-up selected 10 = Input, Pull-down selected 11 = Output, no resistors selected In ADC mode, these bits are don't care 2 N D Bit A Table 300: P34_MODE_REG (0x5000308E) 7:5 - - Reserved 0 4:0 r/w PID See P0x_MODE_REG[PID] 0 Table 301: P35_MODE_REG (0x50003090) Bit Mode Symbol Description Reset 15:10 - - Reserved 0 Datasheet CFR0011-120-01 Revision 3.1 211 of 230 04-Jan-2022 © 2022 Renesas Electronics DA14583 Bluetooth Low Energy 4.2 SoC with Flash Memory FINAL Table 301: P35_MODE_REG (0x50003090) Mode Symbol Description Reset 9:8 r/w PUPD 00 = Input, no resistors selected 01 = Input, pull-up selected 10 = Input, Pull-down selected 11 = Output, no resistors selected In ADC mode, these bits are don't care 2 7:5 - - Reserved 0 4:0 r/w PID See P0x_MODE_REG[PID] 0 TI AL Bit Table 302: P36_MODE_REG (0x50003092) Mode Symbol Description Reset 15:10 - - Reserved 9:8 r/w PUPD 00 = Input, no resistors selected 01 = Input, pull-up selected 10 = Input, Pull-down selected 11 = Output, no resistors selected In ADC mode, these bits are don't care 2 7:5 - - Reserved 0 4:0 r/w PID See P0x_MODE_REG[PID] EN 0 0 FI D Bit Table 303: P37_MODE_REG (0x50003094) Description Reset 15:10 - 9:8 r/w - Reserved 0 PUPD 00 = Input, no resistors selected 01 = Input, pull-up selected 10 = Input, Pull-down selected 11 = Output, no resistors selected In ADC mode, these bits are don't care 2 7:5 - - Reserved 0 4:0 r/w PID See P0x_MODE_REG[PID] 0 N Symbol O Mode C Bit A Table 304: WATCHDOG_REG (0x50003100) Mode Symbol Description Reset 15:9 r0/w WDOG_WEN 0000.000 = Write enable for Watchdog timer else Write disable. This filter prevents unintentional presetting the watchdog with a SW run-away. 0x0 8 r/w WDOG_VAL_NEG 0 = Watchdog timer value is positive. 1 = Watchdog timer value is negative. 0x0 r/w WDOG_VAL Write: Watchdog timer reload value. Note that all bits 15-9 must be 0 to reload this register. Read: Actual Watchdog timer value. Decremented by 1 every 10.24 msec. Bit 8 indicates a negative counter value. 2, 1, 0, 1FF16, 1FE16 etc. An NMI or WDOG (SYS) reset is generated under the following conditions: If WATCHDOG_CTRL_REG[NMI_RST] = 0 then If WDOG_VAL = 0 -> NMI (Non Maskable Interrupt) if WDOG_VAL = 1F016 -> WDOG reset -> reload FF16 If WATCHDOG_CTRL_REG[NMI_RST] = 1 then if WDOG_VAL WDOG reset -> reload FF16 0xFF N D Bit 7:0 Datasheet CFR0011-120-01 Revision 3.1 212 of 230 04-Jan-2022 © 2022 Renesas Electronics DA14583 Bluetooth Low Energy 4.2 SoC with Flash Memory FINAL Table 305: WATCHDOG_CTRL_REG (0x50003102) Bit Mode Symbol Description Reset - - Reserved 0x0 - - Reserved 0x0 0 r/w NMI_RST 0 = Watchdog timer generates NMI at value 0, and WDOG (SYS) reset at
DA14583IOTSENSDNGL 价格&库存

很抱歉,暂时无法提供与“DA14583IOTSENSDNGL”相匹配的价格&库存,您可以联系我们找货

免费人工找货