AnsweredAssumed Answered

tdm driver receiving  idle frames in loopback mode

Question asked by Amanaganti VinodKumar on Sep 11, 2015

Hi All,


I am using p1025rdb board, tried loopback mode it is working fine, but receiving idle frames "0xff", in a continuous stream of loopback mode.


We are using asynchronous read and write methods, we enabled TXB, RXB interrupts, on every write completion interrupt we raise a signal to application to send next buffer data.

On every read completion interrup raise a signal to application, now application reads the TDM data.



Application should send data continuously on every write completion IRQ, and read the data on every receive buffer available IRQ. Application is using two threads to accomplish this requirement. we used real time signals to inform irq notifications to application.


TDM configuration

mode: internal loopback

frame format: E1 (enabled all 32 time slots)

number of buffers used: 4

max buffer size: 32 bytes

synchronization: TSA with inherent synchronization.

changed transmit BDs polling time to 50 us, and in write function spin_event_timeout polling period is changed to 50us with a total timeout of 1000us.


Test method used:

write thread will wait for buff available event, when it gets an event it will write to TDM device.

read thread will wait for receive buffer available event, when it gets an event it will read from the device and compares the received data with the data sent by write thread.


we are getting idle frames in middle of continuous stream of data looping back. After reading data sheet we found that device will send idles after sending buffer of TX_BD, which has T_L bit set.

We removed T_L bit now it is working fine for sometime after that giving TXE error interrupt and stopping transmission, when we dumped the TX buffer descriptors' status in the isr routine there is no UN, or CT bit was set.


We are not able to figure the issue out.

We need your suggestion in fixing the issue. How can we make a continuous stream in loopback mode without idles in the middle of transfer.

Do we have set any buffers size or thresholds or any other settings.


if we don't use T_L bit, sometimes we getting transmit complete interrupts without any external clock and sync, when we write data into transmit buffers.


Thanks for your suggestion.