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
+