I'm working with the ADSP-BF706. I've configured the two halves of the SPORT1 as I2S and connected them to test as a loopback. I send from SPT1-A0 and receive on SPT1-B0.
I'm watching the output at SPT1-A1, but there's nothing on that pin. Are there some lib functions to use that pin?
Can I use SPT1-A0 as output and SPT1-A1 as input at the same time?
thanks a lot!
Hello,Can I use SPT1-A0 as output and SPT1-A1 as input at the same time?>>Depending on whether the HSPORT is a transmitter or a receiver, the pair of data signals respectfully transmit or receive data bits synchronously. When a SPORT is configured in transmit mode, the receive paths are deactivated and do not respond to serial clock or frame sync signals. So you cannot use SPT1-A0 as output (Transmitter) and SPT1-A1 as input (Receiver) in the same time. Are there some lib functions to use that pin? >>You can use the API adi_sport_EnableSecondary() to enable the secondary channel (channel B) of the SPORT. Please find the attached example code. Also please note that if you are using secondary channel in core mode you will not receive data from secondary channel. Because the sport driver interrupt handler fills the data into the primary channel buffer only.We have updated the driver file for reading/writing data into secondary registers also. For using secondary channel in core mode, please follow the below steps and let us know how you gets on.1. Please replace the attached updated driver file "adi_sport_bf6xx.c" file with the existing file in "..\Analog Devices\CrossCore Embedded Studio <version>\Blackfin\lib\src\drivers\Source\sport" directory and take the backup copy of the previous one.2. Goto Project -> system.svc3. You will see the installed Add-ins list in the Overview tab.4. Please check whether the 'SPORT Driver for Blackfin' has installed or not.5. If not, please click Add and add the 'SPORT Driver for Blackfin'.6. Clean (or delete the 'Debug' folder) and then build the project.Regards,Santha kumari.K
Finally, I could make work the secondary pin, sending and receiving different things in the primary and secondary pin but only in interrupt mode.
How can I do to work with both pins with the DMA? for example, I want to deactivate the primary pin, and activate only the secondary pin, and send some data through that pin using DMA. How could I do that?
Please note that in SSLDD 2.0 we did not have any specific option/API to enable secondary channel only. i.e., you cannot enable only the secondary data line without enabling the primary data line.
You can enable DMA mode using the API adi_sport_EnableDMAMode().
For more information about SPORT Device Driver, please refer the below CCES help path:CrossCore Embedded Studio > System Run-Time Documentation > System Services and Device Drivers > ADSP-BF60x API Reference > Modules > SPORT Device Driver