Jump to content

70cake

Members
  • Posts

    1
  • Joined

  • Last visited

Everything posted by 70cake

  1. 70cake

    AXI DMA TREADY help

    Let me briefly introduce my block design. The input to the entire system consists of 8 I2S-formatted MEMS microphones. Through a custom IP, the serial data is converted into parallel data (32 bits). Subsequently, the signals are sequentially routed into a FIFO via a multiplexer (MUX). Afterward, the data from the 8 channels is concatenated using a data width converter (256 bits). Using DMA, the data is then transferred to the processing system (PS). Finally, on the PS side, the signals are packaged and transmitted back to the PC through the TCP protocol for further processing. However, after receiving signals normally for a while, the TREADY signal of S_AXIS_S2MM goes low. This results in the data not being transmitted according to the sampling rate (16 kHz) but instead being delayed by many clock cycles before transmitting a signal. The waveform chart below shows the initial normal signal transmission. The three AXIS from top to bottom represent MUX to FIFO, FIFO to data width converter, and data width converter to DMA, respectively. The frequency of the ws_4 signal at the top is the sampling rate (16 kHz). During normal transmission, the TREADY signals of the three AXIS remain high. The moment TREADY of S_AXIS_S2MM goes low: After a while, the TREADY from the FIFO also goes low, and then it takes many cycles before transmitting a signal again. The signal received on the PC side (from one of the microphones) is shown in the following figure. The input signal is a 432 Hz sine wave. The waveform is initially normal, but it deteriorates later on. I also found that TREADY of S_AXIS_S2MM goes low at the moment that customize IP & MUX are enabled. It can works normally for 4 clock cycles. At this moment, S_AXI_Lite and M_AXI_S2MM haven't started to do anything yet. Thanks, Darren
×
×
  • Create New...