This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

LWIP and McASP examples are not working together

Other Parts Discussed in Thread: CC1200

Hi,

I am working with Starterware 02.00.01.01, CCS5 Version: 5.4.0.00091, BeagleBone White rev A6 and ADS1278EVM.

I have modified the McASP playback example to run in beaglebone and perform data acquisition using the ADS1278EVM.

The first version of the application uses the serial interface to transmit the data to a Matlab script where I plot the data. That works fine!

In the second version of the application, I have modified the echoserver example of LWIP to send the data through ethernet interface. After lowering the priority of the interrupts in the LWIP side (0 to 1, see below in blue), I could set the connection, send commands and receive the data buffer.

/* Set the priority */
IntPrioritySet(SYS_INT_3PGSWTXINT0, 1, AINTC_HOSTINT_ROUTE_IRQ);//Priority level was 0 in the original
IntPrioritySet(SYS_INT_3PGSWRXINT0, 1, AINTC_HOSTINT_ROUTE_IRQ);//Priority level was 0 in the original

The problem is the data is corrupted. The first points are ok, but, after these, all the data is corrupted, missing bits, displaced etc. It seems that something in LWIP is interfering with the McASP activity. I have even disabled the interrupts at the LWIP side before calling the data acquisition function (see below in blue), but it didn't solve the problem.

IntSystemDisable(SYS_INT_3PGSWTXINT0);
IntSystemDisable(SYS_INT_3PGSWRXINT0);
AcquireADS1278();
IntSystemEnable(SYS_INT_3PGSWTXINT0);
IntSystemEnable(SYS_INT_3PGSWRXINT0);

A plot example showing good data versus bad data is below. 

Any help, suggestion or insight is highly appreciated!!

Thanks in advance!

  • Hello,

    do you solve your problem?

    I think I got a similar problem. I use Beaglebone Black with StarterWare. In my application I send UDP datagrams from PC and BBB sends the payload of datagram with McSPI1 to a RF Modul (CC1200).

    Even when I initialize Ethernet like enetecho example of StarterWare there are problems with SPI. In my case it helps a bit that i disable Cache witch "CacheDisable(CACHE_ALL);" bevor I use SPI and call "CacheEnable(CACHE_ALL);" when SPI has done its work. But it works just for payloads of 5 or 6 bytes. When I got many bytes the send sequence of SPI is killed and CC1200 just receive the first bytes.

    The initialization of ethernet change a lot of things in CP15 registers of MPU, so i think priority of data transfer in MPU change. I suspect that Interrupts or a RAM/DDR access of CPSW disturbs other Moduls. At the moment I try to disable Ethernet temporarily (I disable clock of CPSW in control modul) but without success. Therefore I think it has to do with MMU but presently I have no solution.

    I hope you have already found something?!

  • Hi, Robert R,

    I have not solved the problem yet! But I realized that the problem occurs after the first acquisition. So, now, after the first acquisition, the application resets the hardware, preparing it for the next one. Of course, I can not live with this workaround for a long time!

    After that workaround, I realized that the connection is lost after an acquisition longer than 18 seconds. I am dealing with this now.

    I am sorry I can not help you! Maybe someone at TI could help us!

    Regards,