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 | + |
|
| 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 [email protected], 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 | + |