I have an STM32F0 microcontroller wich is controlling an RS-485 bus interface. The sensors on this bus are providing 220 bytes of data every millisecond.

I want to get the data from the microcontroller to an Beaglebone black so I can store the data in files and FTP them to an server.

The problem here is I have only an gap of 200-300 usec for sending data and I can buffer max 2200 bytes on the STM32.

I tried to send the data over SPI interface, but the Beaglebone can only work master mode so I cant use DMA or a buffer on the Beaglebone. I also tried it with interrupts but they have an respond time form 1-3 milliseconds. The SPI from the STM is max working on 24MHz which is fast enough to handle the data in the 200 usec.

Does anyone know a way in the form of an hardware buffer or something like that between these two devices. I prefer someone which communicates with SPI.

I tried an SD card already but I think it is to slow.

Thanks in advance,


One method is to use the programmable real-time units in the Beaglebone. These let you run code independent from the main OS, thus avoiding things like the long interrupt latency. The SPI block only functioning in master mode appears to be an OS driver limitation, the hardware should be capable of it.

| improve this answer | |
  • \$\begingroup\$ Thanks, I am aware of the PRU's and they are indeed an good option but I have know clue about programming them and I did not find any information about using the SPI interface on the PRU's \$\endgroup\$ – Teus Nov 27 '15 at 14:06
  • \$\begingroup\$ @Teus ah so a decent suggestion is poo poohed because you don't know how to do it. Man up and learn LOL. \$\endgroup\$ – Andy aka Nov 27 '15 at 15:11

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.