I am trying with small steps to operate the DMA on I2S, so I have an array of 40 values (0 through 0x27) to write to the I2S-TX through DMA. Then I read the I2S-SDO line on logic analyzer.
First, to configure the UDB datapath to be 32-bit wide to have 4-words deep FIFO, do it just configure the data_size to "word" ? or do I have to manually configure some register ?
I set up the system as follows:
Data to send: uint32_t txBuff
Tx-only, 24-bits, period 64-bits
In case of I2S set to 16-bits: The output reads 2 consecutive elements from the array at a time, concatenates them and and sends them to the I2S.
In case of I2S set to 24-bits: The output reads 2 consecutive elements from the array at a time, concatenates them and and sends them to the I2S, and skips other some elements in the array:
I expired all the trials and errors and the resources in TRM and datasheets,
Any clue what is wrong with the setup ?
Hardware: PSoC 4 Pioneer Kit 042
2x TLE493D 3D Hallsensors
The problem is that after I flash or reset the board, the sensors are sometimes (almost every second reset) not initialized correctly.
After the reset I get a normal communication or only the first sensor is initialized and the second one gets stuck and there are only interrupts on the SDC line.
Although I only have a delay of 150 µs between the initialization of the first and second sensor in my source code, I measure a delay after the reset of the board of 60 ms as shown in the picture.
The reset() function resets both sensors by sending 0xFF twice and 0x00 twice with a delay of 30 µs to the I2C bus as described in the User Manual.
After that I initialize the sensor one with the address 0x22 and then the Vcc of the second sensor power up and init the second sensor with the address 0x35
// --------------------------------------------------------- /********************************************************* * Configuration and initialization of the TLE493D sensor ********************************************************/ reset(); // Power Off / Power On the TLE493D VDD_sensor_Write(0); TLE493D_Init(TLE493D_AW2B6_I2C_A1_ADDR); VDD_sensor_Write(1); CyDelayUs(150); // Small Delay TLE493D_Init(TLE493D_AW2B6_I2C_A0_ADDR); UART_PutString(" Beginne mit der Kalibrierung "); UART_PutCRLF(); CyDelay(100);
Why does this error happen and where does the 60 ms delay come from?
hi，we have encountered the click noise issue when press power off key to power off the unit in standby mode (no audio played this time), the irs2092 circuit is same as application note description. from the application note we know this chip have the click noise elimination function when power off, please advice why still occur the pop noise from speaker output of Tweeter, thanks.
Anyone can tell me why CYW20704UA2KFFB1G has additional marking on the chip? Our QC compared the marking format of CYW20704UA2KFFB1G with CYW20704UA1KFFB1G,but it cannot match!!!! Or can someone else share me the lastest version (2021 Version) of Cypress Marking Format document ? Plsssssssss!!!Show Less
I need to implement an additional I2S port on the PSoC-6, my PSoC has only a single I2S module.
I found few resources for UDB I2S, and I have a few questions:
What I am trying to do:
1- I need left and right interleaved (24-bits data, 64-bits word length) --> This makes up 8-bytes (UDB FIFO is only 4-bytes).
2- I need to stream 160-bytes at at time.
3- I can use DMA.
4- UDB FIFO is 4-bytes, interleaved between left and right.
5- UDB FIFO interrupts is for non-empty or overflow.
Given those conditions (interrupt, buffer size, data format):
1- How can I capture the 160-bytes, which interrupt to use ?
2- And, how can I figure out which byte is received (is it left or right and which byte within the 4-bytes it is).
I have severe problems getting USB peripheral of PSoC5 to work. Attached are schematics and layout of my board design.
Whatever I burn into MCU, nothing works...my application, any changes to it, USB-UART CDC example. This I believe rules out software problems. Device simply cannot be detected by computer at all. If I hard-reset USB data-line by applying external pull-up, unknown device is detected.
I have replaced MCU, ESD protection IC, series resistors, no change. I have sacrificed Cypress USB-BLE dongle's MCU, before unsoldering it was working fine. After moving to my board, it does not work.
If I disconnect computer, and burn firmware outputting clock on USB data-lines, I do not see clean square-wave (impedance mismatch to scope probe?), but I can definitively see correct frequency.
Now my question, what is happening there? I need this board to work correctly ASAP, but I am running out of ideas what to check.
Thanks in advance,
I send command code '~^L' through BLE (Bluetooth) and I have programmed using PSoc Creator 4 to output it into UART ---
UART_UartPutChar(126); // ~
UART_UartPutChar('^'); // ^
UART_UartPutChar(76); // L
And I find that this value detected (tested using HyperTerminal).
However, I find that my ARM processor (receiving the data) behaving erratically. Most of the times it functions properly, but frequently the command does not perform. WHEN I SEPERATELY SEND THE COMMAND FROM HYPERTERMINAL IT WORKS WELL...
Could the data get corrupted ???