c9ccf6de7fcd42aa1cca4c071abf5ca54a70bef9
Chip-cn-dat/Espressif-dat/ESP32-dat/ESP32-HDK-dat/ESP32-HDK-dat.md
... | ... | @@ -2,9 +2,14 @@ |
2 | 2 | |
3 | 3 | - [[ESP32-WROOM-dat]] |
4 | 4 | |
5 | -## pins |
|
5 | +- [[I2S-dat]] - [[I2C-dat]] - [[DAC-dat]] - [[ADC-dat]] - [[serial-dat]] |
|
6 | 6 | |
7 | -## Template |
|
7 | + |
|
8 | +## modules |
|
9 | + |
|
10 | +### pins |
|
11 | + |
|
12 | +#### Template |
|
8 | 13 | |
9 | 14 | | Pin | Prerequisite | Used for | Note | |
10 | 15 | | --- | ------------ | ---------- | ---- | |
Chip-cn-dat/Espressif-dat/ESP32-dat/ESP32-P4-dat/ESP32-P4-dat.md
... | ... | @@ -0,0 +1,44 @@ |
1 | + |
|
2 | +# ESP32-P4-dat |
|
3 | + |
|
4 | +The ESP32-P4 is a high-performance microcontroller in Espressif's ESP32 series, aimed at advanced applications that require robust processing power and efficient communication. Here are its most significant features: |
|
5 | + |
|
6 | +### **1. High-Performance Processor** |
|
7 | +- **Dual-Core Tensilica Processor**: The ESP32-P4 features a powerful dual-core Tensilica processor running at up to **400 MHz**, making it suitable for compute-intensive tasks. |
|
8 | +- **AI Acceleration**: Supports applications in artificial intelligence (AI) and machine learning (ML), thanks to its enhanced processing capabilities. |
|
9 | + |
|
10 | +### **2. Advanced Memory Architecture** |
|
11 | +- **Large On-Chip RAM**: Includes **up to 768 KB SRAM**, enabling efficient data handling for complex applications. |
|
12 | +- **External Memory Support**: Compatible with external Flash and PSRAM for scalable memory requirements. |
|
13 | + |
|
14 | +### **3. Peripheral Integration** |
|
15 | +- **Rich Peripheral Set**: |
|
16 | + - Multiple SPI, UART, I2C, and I2S interfaces for versatile communication. |
|
17 | + - High-speed USB OTG support for USB-based applications. |
|
18 | + - CAN bus for industrial and automotive applications. |
|
19 | + - ADCs and DACs for analog input/output. |
|
20 | +- **Motor Control**: Enhanced features for motor control applications, such as PWM and quadrature encoders. |
|
21 | + |
|
22 | +### **4. Connectivity** |
|
23 | +- **No Wi-Fi or Bluetooth**: Unlike other ESP32 modules, the ESP32-P4 focuses on standalone performance and peripheral expansion rather than wireless communication. |
|
24 | +- **Custom Connectivity Options**: It can work alongside wireless-enabled modules like ESP32-S3 to add advanced processing without duplicating Wi-Fi or Bluetooth. |
|
25 | + |
|
26 | +### **5. Power Efficiency** |
|
27 | +- **Low Power Modes**: Optimized for ultra-low-power applications with multiple sleep modes. |
|
28 | +- **Dynamic Frequency Scaling**: Reduces power consumption during less demanding tasks. |
|
29 | + |
|
30 | +### **6. Security** |
|
31 | +- **Integrated Security Features**: |
|
32 | + - Hardware Cryptographic Accelerators. |
|
33 | + - Secure Boot and Flash Encryption. |
|
34 | + - Support for Secure OTA (Over-the-Air) updates. |
|
35 | + |
|
36 | +### **7. Development Ecosystem** |
|
37 | +- Fully supported by Espressif's **ESP-IDF** development framework. |
|
38 | +- Compatibility with FreeRTOS for real-time applications. |
|
39 | + |
|
40 | +### **8. Target Applications** |
|
41 | +- Ideal for industrial automation, robotics, motor control, edge computing, and AI/ML applications. |
|
42 | +- Works as a companion processor to wireless-enabled ESP32 devices for offloading compute-heavy tasks. |
|
43 | + |
|
44 | +The ESP32-P4’s performance-oriented design sets it apart, catering to applications where processing power and versatile peripherals are more critical than wireless connectivity. |
|
... | ... | \ No newline at end of file |
Chip-dat/InvenSense-dat/INMP441-dat/2024-12-26-14-41-42.png
... | ... | Binary files /dev/null and b/Chip-dat/InvenSense-dat/INMP441-dat/2024-12-26-14-41-42.png differ |
Chip-dat/InvenSense-dat/INMP441-dat/INMP441-code/INMP441-code.ino
... | ... | @@ -0,0 +1,108 @@ |
1 | + |
|
2 | +/* |
|
3 | +ESP32 I2S Microphone Sample |
|
4 | +esp32-i2s-mic-sample.ino |
|
5 | +Sample sound from I2S microphone, display on Serial Plotter |
|
6 | +Requires INMP441 I2S microphone |
|
7 | + |
|
8 | +Faranux Electronics |
|
9 | +*/ |
|
10 | + |
|
11 | +// Include I2S driver |
|
12 | +#include <driver/i2s.h> |
|
13 | + |
|
14 | +// Connections to INMP441 I2S microphone |
|
15 | +#define I2S_WS 25 |
|
16 | +#define I2S_SD 33 |
|
17 | +#define I2S_SCK 32 |
|
18 | + |
|
19 | +// Use I2S Processor 0 |
|
20 | +#define I2S_PORT I2S_NUM_0 |
|
21 | + |
|
22 | +// Define input buffer length |
|
23 | +#define bufferLen 64 |
|
24 | +int16_t sBuffer[bufferLen]; |
|
25 | + |
|
26 | +void i2s_install() |
|
27 | +{ |
|
28 | + // Set up I2S Processor configuration |
|
29 | + const i2s_config_t i2s_config = { |
|
30 | + .mode = i2s_mode_t(I2S_MODE_MASTER | I2S_MODE_RX), |
|
31 | + .sample_rate = 44100, |
|
32 | + //.sample_rate = 11025, if you like |
|
33 | + .bits_per_sample = i2s_bits_per_sample_t(16), |
|
34 | + .channel_format = I2S_CHANNEL_FMT_ONLY_LEFT, |
|
35 | + //.communication_format = i2s_comm_format_t(I2S_COMM_FORMAT_STAND_I2S), |
|
36 | + .communication_format = i2s_comm_format_t(I2S_COMM_FORMAT_I2S | I2S_COMM_FORMAT_I2S_MSB), |
|
37 | + .intr_alloc_flags = 0, |
|
38 | + .dma_buf_count = 8, |
|
39 | + .dma_buf_len = bufferLen, |
|
40 | + .use_apll = false}; |
|
41 | + |
|
42 | + i2s_driver_install(I2S_PORT, &i2s_config, 0, NULL); |
|
43 | +} |
|
44 | + |
|
45 | +void i2s_setpin() |
|
46 | +{ |
|
47 | + // Set I2S pin configuration |
|
48 | + const i2s_pin_config_t pin_config = { |
|
49 | + .bck_io_num = I2S_SCK, |
|
50 | + .ws_io_num = I2S_WS, |
|
51 | + .data_out_num = -1, |
|
52 | + .data_in_num = I2S_SD}; |
|
53 | + |
|
54 | + i2s_set_pin(I2S_PORT, &pin_config); |
|
55 | +} |
|
56 | + |
|
57 | +void setup() |
|
58 | +{ |
|
59 | + |
|
60 | + // Set up Serial Monitor |
|
61 | + Serial.begin(115200); |
|
62 | + Serial.println(" "); |
|
63 | + |
|
64 | + delay(1000); |
|
65 | + |
|
66 | + // Set up I2S |
|
67 | + i2s_install(); |
|
68 | + i2s_setpin(); |
|
69 | + i2s_start(I2S_PORT); |
|
70 | + |
|
71 | + delay(500); |
|
72 | +} |
|
73 | + |
|
74 | +void loop() |
|
75 | +{ |
|
76 | + |
|
77 | + // False print statements to "lock range" on serial plotter display |
|
78 | + // Change rangelimit value to adjust "sensitivity" |
|
79 | + int rangelimit = 3000; |
|
80 | + Serial.print(rangelimit * -1); |
|
81 | + Serial.print(" "); |
|
82 | + Serial.print(rangelimit); |
|
83 | + Serial.print(" "); |
|
84 | + |
|
85 | + // Get I2S data and place in data buffer |
|
86 | + size_t bytesIn = 0; |
|
87 | + esp_err_t result = i2s_read(I2S_PORT, &sBuffer, bufferLen, &bytesIn, portMAX_DELAY); |
|
88 | + |
|
89 | + if (result == ESP_OK) |
|
90 | + { |
|
91 | + // Read I2S data buffer |
|
92 | + int16_t samples_read = bytesIn / 8; |
|
93 | + if (samples_read > 0) |
|
94 | + { |
|
95 | + float mean = 0; |
|
96 | + for (int16_t i = 0; i < samples_read; ++i) |
|
97 | + { |
|
98 | + mean += (sBuffer[i]); |
|
99 | + } |
|
100 | + |
|
101 | + // Average the data reading |
|
102 | + mean /= samples_read; |
|
103 | + |
|
104 | + // Print to serial plotter |
|
105 | + Serial.println(mean); |
|
106 | + } |
|
107 | + } |
|
108 | +} |
|
... | ... | \ No newline at end of file |
Chip-dat/InvenSense-dat/INMP441-dat/INMP441-dat.md
... | ... | @@ -0,0 +1,14 @@ |
1 | + |
|
2 | +# INMP441-dat |
|
3 | + |
|
4 | +https://invensense.tdk.com/wp-content/uploads/2015/02/INMP441.pdf |
|
5 | + |
|
6 | +## wiring to ESP32 |
|
7 | + |
|
8 | +![](2024-12-26-14-41-42.png) |
|
9 | + |
|
10 | +## code |
|
11 | + |
|
12 | +- [[INMP441-code.ino]] |
|
13 | + |
|
14 | + |
Shipment-dat/Shipment-price-up-dat/Shipment-price-up-dat.md
... | ... | @@ -0,0 +1,19 @@ |
1 | + |
|
2 | +# Shipment-price-up-dat |
|
3 | + |
|
4 | +Dear customer, |
|
5 | + |
|
6 | +Shipping cost by Fedex to Israel has raised recently from 35 to 50 usd, they will need an extra 15 usd to be added for your shipment. |
|
7 | + |
|
8 | +Very sorry for this issue! This shipping cost changes from time to time. |
|
9 | + |
|
10 | +There a couple of options to resolve this: |
|
11 | + |
|
12 | +- If you still want to use the express shipping option, please consider directly sending the extra cost to info@electrodragon.com, and reply to the email back. |
|
13 | + |
|
14 | +- use alternative shipping methods: |
|
15 | + |
|
16 | + - PFCEXPRESS to Israel, the estimated delivery time is about 12-25 days. This is a combination of the fast international shipment and local delivery. |
|
17 | + - And extra shipping cost will be refunded back via the original payment method. |
|
18 | + |
|
19 | +- Order cancel, please simply let us know by email back. |
|
... | ... | \ No newline at end of file |
Tech-dat/Interface-dat/I2C-dat/I2C-dat.md
... | ... | @@ -20,7 +20,7 @@ for [[IOD1001-dat]] |
20 | 20 | |
21 | 21 | ## Boards |
22 | 22 | |
23 | -- [[MPC1029-dat]] |
|
23 | +- [[MPC1029-dat]] - [[MPC1083-dat]] - [[PCM5122-RPI-dat]] |
|
24 | 24 | |
25 | 25 | - [[AHT20-dat]] - [[KX023-1025-dat]] |
26 | 26 |
Tech-dat/Interface-dat/I2S-dat/I2S-dat.md
... | ... | @@ -19,56 +19,13 @@ This makes I2S a popular choice for high-speed data transfer applications. |
19 | 19 | | WS | LRCK | Word clock line | G19 | PIN 35 | |
20 | 20 | | SD | SDIN / SDOUT | At least one multiplexed data line | G21 | PIN 40 | |
21 | 21 | |
22 | -## RPI I2S check |
|
23 | - |
|
24 | -Open the Raspberry Pi configuration tool: |
|
25 | - |
|
26 | - sudo raspi-config |
|
27 | - |
|
28 | -Navigate to Interfacing Options → I2S and enable it. |
|
29 | - |
|
30 | -Check if the module is loaded: |
|
31 | - |
|
32 | - lsmod | grep snd |
|
33 | - |
|
34 | -Look for snd_soc_bcm2835_i2s. |
|
35 | - |
|
36 | -Edit /boot/config.txt: |
|
37 | - |
|
38 | -Add the following lines to enable I2S and configure the DAC: |
|
39 | - |
|
40 | - dtparam=i2s=on |
|
41 | - dtoverlay=hifiberry-dac |
|
42 | - |
|
43 | -Save and reboot: |
|
44 | - |
|
45 | - sudo reboot |
|
46 | - |
|
47 | -Verify Device Tree Overlay: |
|
48 | - |
|
49 | -After reboot, check for the overlay: |
|
50 | - |
|
51 | - dmesg | grep -i i2s |
|
52 | - |
|
53 | -List audio devices: |
|
54 | - |
|
55 | - aplay -l |
|
56 | - |
|
57 | - |
|
58 | - |
|
59 | - |
|
60 | -## RPI ref |
|
61 | - |
|
62 | -- https://www.raspberrypi-spy.co.uk/2012/06/simple-guide-to-the-rpi-gpio-header-and-pins/#prettyPhoto |
|
63 | -- https://docs.microsoft.com/en-us/windows/iot-core/learn-about-hardware/pinmappings/pinmappingsrpi |
|
64 | - |
|
65 | - |
|
66 | - |
|
67 | 22 | |
68 | 23 | |
69 | 24 | |
70 | 25 | ## Solution |
71 | 26 | |
27 | +- [[INMP441-dat]] - [[ICS-43434-dat]] |
|
28 | + |
|
72 | 29 | - [[WM8960-dat]] |
73 | 30 | |
74 | 31 | - [[PCM5102-dat]] - [[AMP1006-dat]] |
Tech-dat/SBC-dat/RPI-dat/RPI-I2S-dat/RPI-I2S-dat.md
... | ... | @@ -0,0 +1,52 @@ |
1 | + |
|
2 | +# RPI-I2S-dat |
|
3 | + |
|
4 | +## RPI I2S check |
|
5 | + |
|
6 | +Open the Raspberry Pi configuration tool: |
|
7 | + |
|
8 | + sudo raspi-config |
|
9 | + |
|
10 | +Navigate to Interfacing Options → I2S and enable it. |
|
11 | + |
|
12 | +Check if the module is loaded: |
|
13 | + |
|
14 | + lsmod | grep snd |
|
15 | + |
|
16 | +Look for snd_soc_bcm2835_i2s. |
|
17 | + |
|
18 | +Edit /boot/config.txt: |
|
19 | + |
|
20 | +Add the following lines to enable I2S and configure the DAC: |
|
21 | + |
|
22 | + dtparam=i2s=on |
|
23 | + dtoverlay=hifiberry-dac |
|
24 | + |
|
25 | +Save and reboot: |
|
26 | + |
|
27 | + sudo reboot |
|
28 | + |
|
29 | +Verify Device Tree Overlay: |
|
30 | + |
|
31 | +After reboot, check for the overlay: |
|
32 | + |
|
33 | + dmesg | grep -i i2s |
|
34 | + |
|
35 | +List audio devices: |
|
36 | + |
|
37 | + aplay -l |
|
38 | + |
|
39 | + |
|
40 | + |
|
41 | + |
|
42 | +## RPI ref |
|
43 | + |
|
44 | +- https://www.raspberrypi-spy.co.uk/2012/06/simple-guide-to-the-rpi-gpio-header-and-pins/#prettyPhoto |
|
45 | +- https://docs.microsoft.com/en-us/windows/iot-core/learn-about-hardware/pinmappings/pinmappingsrpi |
|
46 | + |
|
47 | + |
|
48 | +## ref |
|
49 | + |
|
50 | +- [[RPI-dat]] |
|
51 | + |
|
52 | + |