ABCDEFGHI
1
Group Asources(link or doc page)Group BsourcesOGsources
2
From Datasheet/Online
3
MicrocontrollerRP2040ATTiny1614
ATtiny1614/1616/1617
ESP32-S2esp32-s2_datasheet_en.pdf
4
ArchitectureARMDatasheet pg. 10TinyAVRdatasheet pg 1Harvard Architecture XtensaPage 19
5
Operating SystemN/AN/AN/A
6
# of Cores2Datasheet pg. 101datasheet pg 11Page 3
7
Core Clock speed113 MHzDatasheet pg. 1020 MHzdatasheet pg 1240 MHzPage 3
8
# of Registers284datasheet pg 2316
Page 47 Instruction Set Architecture (ISA) Summary | Cadence
9
Register Size (8/16/32/64)8-bitDatasheet pg. 348datasheet pg 2332-bit
Page 47 Instruction Set Architecture (ISA) Summary | Cadence
10
SRAM264kBDatasheet pg. 1232 KBdatasheet pg 1320 KB
Page 47 Instruction Set Architecture (ISA) Summary | Cadence
11
Flash16MBDatasheet pg. 12416 KBdatasheet pg 10/2/4 MBPage 11
12
EEPROMn/a256 bytesdatasheet pg 1n/a
13
Compatible Programming LanguagesC, C++, Python
https://www.raspberrypi.com/documentation/microcontrollers/rp2040.html
arduino, C, C++C, C++, MicroPython, JS, Lua, Rust
Programming Languages for the ESP32-s2 from ChatGPT
14
Programming InterfaceJTAG and SWDUPDIdatasheet pg 1esptool.pyhttps://github.com/espressif/esptool/#readme
15
Programming Workflow1. Set up your development environment: Before you can start programming the RP2040 microcontroller, you'll need to set up your development environment. This will involve installing the necessary software and tools on your computer. You can use either the official Raspberry Pi Pico C/C++ SDK or other third-party toolchains such as the ARM GCC toolchain. You'll also need to download and install a code editor or an Integrated Development Environment (IDE) like Visual Studio Code, Eclipse, Keil, or Thonny.
2. Create a new project: Once your development environment is set up, create a new project for your RP2040 microcontroller. In this project, you'll be able to write, compile, and test your code.
3. Write your code: Start writing your code using C, C++, or MicroPython. The RP2040 microcontroller supports these programming languages, and you can use any text editor or IDE to write your code. You will have to interact with peripherals such as GPIO, I2C, SPI, UART, and timers, among others. You can use the RP2040's SDK and its libraries to make the development process easier.
4. Compile your code: After you've written your code, compile it using the tools you installed earlier. Make sure that you've included all the necessary header files and libraries in your code.
5. Flash your code: Once your code is compiled, it needs to be uploaded to the RP2040 microcontroller. You can use a programming tool, such as a Raspberry Pi Pico, or a USB-to-UART converter to upload the code to the microcontroller's flash memory.
6. Test your code: After you've uploaded your code to the RP2040 microcontroller, you can test it to make sure it's working correctly. You can use a debugger or a serial console to view the output from the microcontroller and debug any issues.
"Sequence for Execution of Self-Programming
In order to execute self-programming (the execution of writes to the NVM controller’s command register), the
following steps are required:
1. The software temporarily enables self-programming by writing the SPM signature to the CCP register
(CPU.CCP).
2. Within four instructions, the software must execute the appropriate instruction. The protected change is
immediately disabled if the CPU performs accesses to the Flash, NVMCTRL, or EEPROM, or if the SLEEP
instruction is executed.
Once the correct signature is written by the CPU, interrupts will be ignored for the duration of the configuration
change enable period. Any interrupt request (including non-maskable interrupts) during the CCP period will set the
corresponding Interrupt flag as normal, and the request is kept pending. After the CCP period is completed, any
pending interrupts are executed according to their level and priority"
datasheet pg 55programmingworkflow.jpg
Tehcnical Reference 667 https://cdn-learn.adafruit.com/assets/assets/000/096/706/original/esp32-s2_technical_reference_manual_en.pdf?1604350614#417
16
Block Diagram (image)BelowDatasheet page 12image belowdatasheet pg 13ESP32-S2 Block Diagram.pngPage 3
17
# of I/O Pins30Datasheet page 1022datasheet pg 243Page 23
18
ADC/DAC (how many bits??)322datasheet pg 22 X 13-bit SAR ADCs / two 8-bit DACPage 21/22
19
PWM30Datasheet page 525
16 bit single and dual slope
datasheet pg 176
8 channels with accuracy up to 18bits/ms
Page 26
20
Operating Voltage Range1.63v-3.63vdatasheeet page 164
0.55V • 1.1V • 1.5V • 2.5V • 4.3V
datasheet pg 2
3.3 V or 1.8 V (uses stepdown from usb)
Page 16
21
Power Consumption
150ma min, 350ma avg, 450ma max.
datasheeet page 14200 mAdatasheet pg 505342mA Max w/ RF & CPU activePage 37
22
Built-in Features
PWM, I2C, SPI, Tempertaure Sensor and ADC
pg 440, 503
CIPs, capacitive touch, PTC,
Wifi, IR Interface, LCD interface, I2C, Page 4
23
Oscilloscope Tests
24
Flip-Bit Speed Test Frequency4Mhz380.52kHzWave form generator1MHz
25
- Temperature?26.57626CNo thermometer
26
get pictures of scope
27
Make this image a link
28
29
Block Diagram imagemake this image a link
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58