Chapter 4. API Guides
• Mux - selected PAD, SARADC Pad[Mux-1] is enabled. If the user passes Mux value 1, then ADC pad
0 gets used.
Cycles 23 + max(1, SAR_AMP_WAIT1) + max(1, SAR_AMP_WAIT2) + max(1,
SAR_AMP_WAIT3) + SARx_SAMPLE_CYCLE + SARx_SAMPLE_BIT cycles to execute, 4 cycles
to fetch next instruction
Description The instruction makes measurements from ADC.
Examples:
1: ADC R1, 0, 1 // Measure value using ADC1 pad 2 and store␣
,→result into R1
REG_RD –read from peripheral register
Syntax REG_RD Addr, High, Low
Operands
• Addr –Register address, in 32-bit words
• High –Register end bit number
• Low –Register start bit number
Cycles 4 cycles to execute, 4 cycles to fetch next instruction
Description The instruction reads up to 16 bits from a peripheral register into a general purpose register: R0 =
REG[Addr][High:Low].
This instruction can access registers in RTC_CNTL, RTC_IO, SENS, and RTC_I2C peripherals. Address of
the the register, as seen from the ULP, can be calculated from the address of the same register on the PeriBUS1
as follows:
addr_ulp = (addr_peribus1 - DR_REG_RTCCNTL_BASE) / 4
Examples:
1: REG_RD 0x120, 7, 4 // load 4 bits: R0 = {12'b0, REG[0x120][7:4]}
REG_WR –write to peripheral register
Syntax REG_WR Addr, High, Low, Data
Operands
• Addr –Register address, in 32-bit words.
• High –Register end bit number
• Low –Register start bit number
• Data –Value to write, 8 bits
Cycles 8 cycles to execute, 4 cycles to fetch next instruction
Description The instruction writes up to 8 bits from an immediate data value into a peripheral register:
REG[Addr][High:Low] = data.
This instruction can access registers in RTC_CNTL, RTC_IO, SENS, and RTC_I2C peripherals. Address of
the the register, as seen from the ULP, can be calculated from the address of the same register on the PeriBUS1
as follows:
addr_ulp = (addr_peribus1 - DR_REG_RTCCNTL_BASE) / 4
Examples:
1: REG_WR 0x120, 7, 0, 0x10 // set 8 bits: REG[0x120][7:0] = 0x10
Convenience macros for peripheral registers access
ULP source files are passed through C preprocessor before the assembler. This allows certain macros to be used to
facilitate access to peripheral registers.
Espressif Systems 1490
Submit Document Feedback
Release v4.4