cancel
Showing results for 
Search instead for 
Did you mean: 

configuring STM32H743I-EVAL board for high speed parallel data input

Avi Aharoni
Associate II
Posted on February 09, 2018 at 00:14

Hello,

I consider to start a new project using the STM32H743. In my project I would like to connect an external camera with external syncs (8 bit) and also use some external RAM for data storage + SPI + UART + 3 pins Mechanical encoder (2 signals + click) + TFT LCD + USB2HS. The project has the same ''nature'' of a digital oscilloscope = a real time display of data + high processing power (FFT's, filters etc.) + transferring data thru USB2HS to a PC.

I tried to use the STM32CUBEMX software and downloaded the default setup of the ''STM32H743I-EVAL'' setup:

0690X00000609bMQAQ.png

I need to read fast bursts of data from a Xilinx FPGA at about 40-80 M bytes per second and since there is no dedicated interface, I thought about using DCMI since it does not require too many wires as SDRAM or other interfaces.

I can do simulation of a video camera on my Xilinx device and I thought about connecting it to the DCMI interface.

(It is not coming from a camera. Those are actually data bytes coming from 2 ADC's of 15 bits each, connected to the Xilinx. The 1Gbyte/second is stored in DDR3 buffer inside the Xilinx device and after they are stored, I would like to transfer them ''Slowly'' @ 40-80 Mbytes/sec to the 

STM32H743I-EVAL).

I tried to add DCMI to this project but unfortunately all of the pins are occupied and it is impossible to use that interface.

If I load STM32H743XI instead, which is an ''empty'' project with no previous connections, I can enable the DCMI interface and I get pin numbers: A2, A3, A4, A9, B3, B4, B13, D14, D15, R3, T13.

When I get back to 

''STM32H743I-EVAL'' setup, I see that all of those pins are already occupied by the SDRAM pins, SDMMC_B3, USB_OTG_FS_BUS, LCD_BL_CTRL etc.

I'm already spending few hours trying to remove devices which I don't need like Ethernet, FS USB, SDMMC1 etc. while leaving ''Keep current Signals placement'' selected (because I would like to use this evaluation board) but I can't get the DCMI interface enabled in Green. It is always RED with ''X'' on it.

I would like to know if I'm doing something wrong or maybe there is another way to get the DCMI pins out? (For example, by disconnecting some hardware device by removing their series resistors or cutting their traces?

Is it possible to leave the connection of the peripherals that I need without moving their connections and release only those which I do not need? (and then doing some wiring on the evaluation board).

If there is any other solution for reading data fast from the Xilinx device, using the current configuration of the STM32H743I-EVAL board - please propose. We can simulate many interfaces in the Xilinx device.

If the STM32H743I-EVAL board is not suitable for my application, please advise which board with LCD would work.

Thanks,

#stm32h743i-eval
9 REPLIES 9
T J
Lead
Posted on February 10, 2018 at 01:54

The H743 Eval is based on the 176 pin device.

There is not enough pins to do everything you need.

The onboard LCD will hog the DMAs and you want to pull 80MBytes /S ,

it is an uphill battle without an external LCD drive.

You should consider using the 208 pin or 240 pin device. and drop the onboard LCD.

the 208 pin device is not available yet.

https://www.digikey.com/products/en/integrated-circuits-ics/embedded-microcontrollers/685?k=stm32H

 
Posted on February 10, 2018 at 02:52

 ,

 ,

Hello,

I do not do data acquisition and refresh of the display at the same time.

My process it:

1. Read data from Xilinx

2. Process data (calculations, filters, FFT)

3. Display data on LCD or send via USB2HS.

The CPU has few DMA channels.

The DMA can be used for reading the data and then switched for updating of the LCD.

Regards,

Avi

מ×?ת: T J

נשלח: Saturday, February 10, 2018 2:55 AM

×?ל: Avi Aharoniâ€? <,aharoni@lab-systems.com>,

נוש×?: Re: - Re: configuring STM32H743I-EVAL board for high speed parallel data input

<,https://community.st.com/?et=watches.email.thread>, STMicroelectronics Community

Re: configuring STM32H743I-EVAL board for high speed parallel data input

reply from T J <,https://community.st.com/message/184815-re-configuring-stm32h743i-eval-board-for-high-speed-parallel-data-input?commentID=184815&,et=watches.email.thread ♯ comment-184815>,

Posted on February 10, 2018 at 03:32

if you use the onboard LCD, then you will be running the DMAs.

Then you will have only some processor time left for your calculations,

(depending on the screen size and pixel color depth.)

You can't shut off the LCD refresh, it will damage the LCD panel.

If you want to use all the CPU cycles;

optionally; USB   fast

Use the USB Host to run an external LCD & Controller

Otherwise;  SPI  slow

If the LCD screen is not updated continuously, you could consider a SPI LCD like :

BuyDisplay 10'  1024 x 600

https://www.buydisplay.com/default/serial-spi-i2c-10-1-inch-tft-lcd-module-dislay-w-ra8876-optl-touch-panel

 

This particular unit requires 2x SPI ports, one for the Touch.

Last option;  FMC  fastest

Is a  FMC type, LCD Controller interface, The onboard LCD is disabled.

Posted on February 10, 2018 at 13:32

Hello,

You probably did not see the demo of the STM32H7 board:

https://www.youtube.com/watch?v=hIag4iFVZ3I

Scroll to about 5:50 minutes and you would see that:

4 Videos running in parallel, only 1-2% CPU usage. Therefore, I have enough time for reading data and processing it using a 400 MHz. CPU.

In addition to that, this chip has DMA1, DMA2 and MDMA where data can be transferred from DMA1 or 2 to MDMA. Read this document:

http://www.st.com/content/ccc/resource/technical/document/application_note/group0/56/d6/da/be/34/2c/4f/94/DM00360392/files/DM00360pdf/jcr:content/translations/en.DM00360pdf

Therefore, one DMA can update the screen while the other one is acquiring data + there is a 3’rd one which I still don’t know how to use…

Yesterday, we found a way for using this board + communicating to the Xilinx using QSPI (up to 133 MHz. clock X 1 nibble per clock = 5 Mbyes/second).

If I remove the Ethernet, one USB FS, ADC1, CAN, Audio in/out, Tamper – I can use all of those.

I found that I can also configure another SDRAM with the available legs + 13 bits of address (it is adding only 2 more legs for CLK and CS).

So I can use that as well – Data can also be written at 100 MHz, 4 byte wide.

As for display:

We cannot use SPI displays for real time display. We already used such a display with TMS320C6748 DSP thru high speed SPI. The result is not professional. We see the breaking of the signal when updating, the grid is blinking etc. Because of that we moved into STM32 – with parallel or MIPI display. The update rate is very fast and it also use layers. By doing that, you don’t have to update the entire screen every time.

Here is the difference:

STM32 oscilloscope: https://www.youtube.com/watch?v=b6bZfzHTtvA

Do you see how many pins on the display board? It is parallel RGB8 The display is stable and you don’t see any breaks in the signal like in SPI displays.

This is another oscilloscope with SPI display: https://www.youtube.com/watch?v=QdFQcl-VTLg

Do you see what I mean? Using faster processor it is better but still you see it.

Here is another example with STM32 but older versions without graphic accelerator or layers: https://www.youtube.com/watch?v=JQhHKdDDgM0

Much better performance than the 2’nd one but you can still see the grid blinking.

What I need is LCD which looks like the first one.

Another consideration is the cost of the display. RGB888 display or MIPI-DSI display do not have drivers or memory inside. Because of that they are cheaper.

Because of that you can also get more pixels on a smaller area at a lower cost.

10�? display is nice ($50-$70) but my entire panel space for LCD is about 130 X 80 mm. In that space I can put only displays which are 800X480 like in your phone and they cost less than $25 each with capacitive touch.

Or even $10-$14 at medium quantities:

https://www.ebay.com/itm/112799292393?ul_noapp=true

(available with resistive or capacitive touch)

https://he.aliexpress.com/item/IPS-4-3-inch-TFT-LCD-16-7-M-LG4572B/32839993html?spm=a2gsearch329011b5qqM7bR <https://he.aliexpress.com/item/IPS-4-3-inch-TFT-LCD-16-7-M-LG4572B/32839993html?spm=a2gsearch329011b5qqM7bR&priceBeautifyAB=0> &priceBeautifyAB=0

https://www.alibaba.com/product-detail/3-97-IPS-TFT-LCD-480x800_602543067html?spm=a2700.772482017575f5e29qGwoyF <https://www.alibaba.com/product-detail/3-97-IPS-TFT-LCD-480x800_602543067html?spm=a2700.772482017575f5e29qGwoyF&s=p> &s=p

By the way, all of the displays used by ST in their evaluation board were made in China.

Regards,

Avi

מ�?ת: T J

נשלח: Saturday, February 10, 2018 4:33 AM

�?ל: Avi Aharoni�? <aharoni@lab-systems.com>

נוש�?: Re: - Re: configuring STM32H743I-EVAL board for high speed parallel data input

<https://community.st.com/?et=watches.email.thread> STMicroelectronics Community

Re: configuring STM32H743I-EVAL board for high speed parallel data input

reply from T J <https://community.st.com/people/Marsh.Nick?et=watches.email.thread> in STM32 MCUs Forum - View the full discussion <https://community.st.com/message/184819-re-configuring-stm32h743i-eval-board-for-high-speed-parallel-data-input?commentID=184819&et=watches.email.thread#comment-184819>

________________

Attachments :

image003.jpg : https://st--c.eu10.content.force.com/sfc/dist/version/download/?oid=00Db0000000YtG6&ids=0680X000006Hy1O&d=%2Fa%2F0X0000000b3H%2FmIBH4aZICtlR8Ol6xOrqO9G6FvCIwRcFrIf6u9ZXdck&asPdf=false
Posted on February 11, 2018 at 00:43

Great work. I didn't see the video before,I will check it now.

but its hard to think for a moment that the CPU is only using 1% to decode and display 4x 25fps videos.

I wonder how much DMA bandwidth is left?

Good Demo,

would you like to see my ICO file ?

I would suggest that you use the FMC-16 bit port for your data input.

Posted on February 11, 2018 at 11:09

Hi TJ,

It is really impressive. They show in that movie that when the accelerator is removed, CPU usage is jumping to around 70-80%.

They also write in one of the datasheets that the display works even when the CPU is sleeping!

As for DMA – There are 4 DMA controllers:

DMA2D is dedicated for the display. It is reading and converting pixel formats etc. Other 3 DMA controllers can access QSPI, Memory, USB_HS etc.

As you may see, only 2 are in each block so they can work in parallel.

In our application, most of the display (background, grids, menu) is constant and we draw only the signals and the buttons which are pressed/menu options which open on the other 2 layers.

The CPU is just drawing those pixels to those layers and the DMA2D is automatically blending them and sending to the display.

Regards,

Avi

מ�?ת: T J

נשלח: Sunday, February 11, 2018 1:45 AM

�?ל: Avi Aharoni�? <aharoni@lab-systems.com>

נוש�?: Re: - Re: configuring STM32H743I-EVAL board for high speed parallel data input

<https://community.st.com/?et=watches.email.thread> STMicroelectronics Community

Re: configuring STM32H743I-EVAL board for high speed parallel data input

reply from T J <https://community.st.com/people/Marsh.Nick?et=watches.email.thread> in STM32 MCUs Forum - View the full discussion <https://community.st.com/message/184865-re-configuring-stm32h743i-eval-board-for-high-speed-parallel-data-input?commentID=184865&et=watches.email.thread#comment-184865>

________________

Attachments :

image001.jpg : https://st--c.eu10.content.force.com/sfc/dist/version/download/?oid=00Db0000000YtG6&ids=0680X000006Hy1E&d=%2Fa%2F0X0000000b3E%2FpWNXSmSSCSMLe1uHKvA8HeUTBe.JkWTWwHBtTaKJPN0&asPdf=false

image002.jpg : https://st--c.eu10.content.force.com/sfc/dist/version/download/?oid=00Db0000000YtG6&ids=0680X000006Hxr2&d=%2Fa%2F0X0000000b3D%2FenAlgnrtKUOaPmhqyP7fXbotcAoOevuadKh6qSvYI4g&asPdf=false
Posted on February 11, 2018 at 11:12

I forgot to attach my ICO file. It is not complete – I did not configure some I/O’s yet and not the DMAs. Please send yours as well.

Thanks,

Avi

מ�?ת: T J

נשלח: Sunday, February 11, 2018 1:45 AM

�?ל: Avi Aharoni�? <aharoni@lab-systems.com>

נוש�?: Re: - Re: configuring STM32H743I-EVAL board for high speed parallel data input

<https://community.st.com/?et=watches.email.thread> STMicroelectronics Community

Re: configuring STM32H743I-EVAL board for high speed parallel data input

reply from T J <https://community.st.com/0D70X000006T0wlSAC

________________

Attachments :

STM32_Lab_Systems2.pdf : https://st--c.eu10.content.force.com/sfc/dist/version/download/?oid=00Db0000000YtG6&ids=0680X000006Hy0z&d=%2Fa%2F0X0000000b3B%2F0.KlekOC.U39jd5Yfae2fW97AbCpFPnimgOoJsh7NOo&asPdf=false

STM32_Lab_Systems2.txt.zip : https://st--c.eu10.content.force.com/sfc/dist/version/download/?oid=00Db0000000YtG6&ids=0680X000006Hxzd&d=%2Fa%2F0X0000000b3C%2FQytXhON71q0iwA3h_OUE1BkYcERd3cJ8C0pemh0k0tg&asPdf=false

STM32_Lab_Systems2.ioc.zip : https://st--c.eu10.content.force.com/sfc/dist/version/download/?oid=00Db0000000YtG6&ids=0680X000006Hy0p&d=%2Fa%2F0X0000000b3A%2FCoBJUKFKuYcyNoM1H4RqPshTZSLn7u57CcwGGVJVSSs&asPdf=false
Posted on February 11, 2018 at 17:38

As for the number of pins:

You got a mistake. It is BG265 pins. Look at the BOM:

Regards,

Avi

________________

Attachments :

image002.jpg : https://st--c.eu10.content.force.com/sfc/dist/version/download/?oid=00Db0000000YtG6&ids=0680X000006Hy0f&d=%2Fa%2F0X0000000b39%2FZoTfvS4Vm1.CLlbIBthLJXcGj8zBBaReHq4hGIOxEdg&asPdf=false
Posted on February 12, 2018 at 00:35

I am using the 208pin..to make sure I can stick with a 2 layer board.