Loading...
 

SW4STM32 and SW4Linux fully supports the STM32MP1 asymmetric multicore Cortex/A7+M4 MPUs

   With System Workbench for Linux, Embedded Linux on the STM32MP1 family of MPUs from ST was never as simple to build and maintain, even for newcomers in the Linux world. And, if you install System Workbench for Linux in System Workbench for STM32 you can seamlessly develop and debug asymmetric applications running partly on Linux, partly on the Cortex-M4.
You can get more information from the ac6-tools website and download (registration required) various documents highlighting:

System Workbench for STM32


STM32F407 Discovery Board USB CDC FS

Hello,

several days I was trying to implement USB CDC Full speed connection between the discoveryboard and the PC.

I was using Cube MX 4.11.0 in order to generate a project with USB and the existing HAL libraries (Windows 8.1).

My configurations shall be a CDC USB-Device with full speed. I installed the virtual com port driver to display data comeing from the controller in hterm or realterm. In both terminal programs only sometimes it was possible to open the com port. Sometimes I get an internal error, sometimes the terminal program hung up and sometimes I could see receiving data. Really strange behaviour. But I never reaches the full speed. Maximum speed I could measure was about 70 kbytes/s.

Till now I have been reading several forum entries with possible fixes, but nothing really helps. I am really desperate. I don’t know what I can do next.

It seems that the virtual com port driver cannot handle the amount of data I send from the mcu to the pc. In my infinity loop I send a 300 byte array with the following function: CDC_Transmit_FS(buf, 300);. In order to measure the maximum data rate I have no additional delay. I would expect at least a data rate of 500Kbytes/s.

Does anyone have a working example or does anyone know how I can get it working.

Thanks for your help,

Florian

Hello,

no one can help me?

I recently that question how I can fasten the usb data transfer between the stm32F4 discovery board and the PC. The problem was I only had a max data rate of about 60 kByte/s. I figure out that this is the max data rate in usb cdc class interrupt transfer mode. Every 1ms the stm transmits 64 Byte.

But I want to transmit data more often. Therefore I need the bulk transfer mode.

Is anybody out there who has already implemented the USB CDC connection in bulk mode? The example in CubeMX is only in interrupt mode. And i have no real starting point to change the interrupt mode into bulk mode, so that I can reach data rates of 500KBytes/s and more.

Thanks in advance,

Florian


Hi Florian,
I do NOT have a solution to your problem, but you have done very well to get as far as you did, given the lack of recent free working examples on this subject.

I have also got the CubeMx USB CDC working, in interrupt mode, and it seems reliable transferring data from F4Discovery to Windows Host Terminal application.
However it hangs after sending a few bytes from Host to device. I would be be grateful if you could show me how you did that.

I attach a file showing the step by step procedure and code changes I did to get as far as I have. I hope someone will find it useful.

I have delayed this reply in the hope I may fix your problem as well as mine, but no joy yet, so here is as far I have managed.


EDIT
take a look at the CDC_Standalone example that is inside STM32Cube_FW_F4_V1.11.0 package from ST in path
\STM32Cube_FW_F4_V1.11.0\Projects\STM324xG_EVAL\Applications\USB_Device\CDC_Standalone

if anyone can explain simply how to USE the .cproject and .project files from ST that might make using this example easier,
then how to port from the STM324xG_Eval to the F4Discovery.

Bob