| A | B | C | D | E | F | G | H | I | ||
|---|---|---|---|---|---|---|---|---|---|---|
1 | Group A | sources(link or doc page) | Group B | sources | OG | sources | ||||
2 | From Datasheet/Online | |||||||||
3 | Microcontroller | RP2040 | ATTiny1614 | ATtiny1614/1616/1617 | ESP32-S2 | esp32-s2_datasheet_en.pdf | ||||
4 | Architecture | ARM | Datasheet pg. 10 | TinyAVR | datasheet pg 1 | Harvard Architecture Xtensa | Page 19 | |||
5 | Operating System | N/A | N/A | N/A | ||||||
6 | # of Cores | 2 | Datasheet pg. 10 | 1 | datasheet pg 1 | 1 | Page 3 | |||
7 | Core Clock speed | 113 MHz | Datasheet pg. 10 | 20 MHz | datasheet pg 1 | 240 MHz | Page 3 | |||
8 | # of Registers | 28 | 4 | datasheet pg 23 | 16 | Page 47 Instruction Set Architecture (ISA) Summary | Cadence | ||||
9 | Register Size (8/16/32/64) | 8-bit | Datasheet pg. 34 | 8 | datasheet pg 23 | 32-bit | Page 47 Instruction Set Architecture (ISA) Summary | Cadence | |||
10 | SRAM | 264kB | Datasheet pg. 123 | 2 KB | datasheet pg 1 | 320 KB | Page 47 Instruction Set Architecture (ISA) Summary | Cadence | |||
11 | Flash | 16MB | Datasheet pg. 124 | 16 KB | datasheet pg 1 | 0/2/4 MB | Page 11 | |||
12 | EEPROM | n/a | 256 bytes | datasheet pg 1 | n/a | |||||
13 | Compatible Programming Languages | C, 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 Interface | JTAG and SWD | UPDI | datasheet pg 1 | esptool.py | https://github.com/espressif/esptool/#readme | ||||
15 | Programming Workflow | 1. 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 55 | programmingworkflow.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) | Below | Datasheet page 12 | image below | datasheet pg 13 | ESP32-S2 Block Diagram.png | Page 3 | |||
17 | # of I/O Pins | 30 | Datasheet page 10 | 22 | datasheet pg 2 | 43 | Page 23 | |||
18 | ADC/DAC (how many bits??) | 32 | 2 | datasheet pg 2 | 2 X 13-bit SAR ADCs / two 8-bit DAC | Page 21/22 | ||||
19 | PWM | 30 | Datasheet page 525 | 16 bit single and dual slope | datasheet pg 176 | 8 channels with accuracy up to 18bits/ms | Page 26 | |||
20 | Operating Voltage Range | 1.63v-3.63v | datasheeet 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 14 | 200 mA | datasheet pg 505 | 342mA Max w/ RF & CPU active | Page 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 Frequency | 4Mhz | 380.52kHz | Wave form generator | 1MHz | |||||
25 | - Temperature? | 26.57626C | No thermometer | |||||||
26 | get pictures of scope | |||||||||
27 | Make this image a link | |||||||||
28 | ||||||||||
29 | Block Diagram image | make 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 |