[SOLVED] Interfacing monitor with MCU

Ya’akov

Joined Jan 27, 2019
9,070
Icon, folders should appear on the monitor screen as they appear on a personal computer screen.
I suspect you are asking a bit much of that MCU. How do you expect the user to interact with it and what do you want it to do with those icons and folders?
 

Thread Starter

Pushkar1

Joined Apr 5, 2021
416
Why would you expect to see this from a STM32F407VGT6?
Theoretically I know that monitor can be connected with microcontroller. To understand the theory behind this, I selected the real microcontroller and monitor. I was curious to know whether there can be communication between the two or will any other circuitry be needed to do the communication between the two

If we want to connect a monitor, do we have to select a MCU that supports the HDMI?

The main objective of the question is to get knowledge.
 

Thread Starter

Pushkar1

Joined Apr 5, 2021
416
A Raspberry Pi Zero might be a good option. I was trying to work that out.
I know raspberry pi is a board There is ARM microcontroller on the boards. This makes it clear that we can interface the monitor mouse and keyboard with the microcontroller.

it is not necessary that we should use the controller which is used in the Pi, we can
use any other microcontroller as well?
 

MrChips

Joined Oct 2, 2009
30,712
Theoretically I know that monitor can be connected with microcontroller. To understand the theory behind this, I selected the real microcontroller and monitor. I was curious to know whether there can be communication between the two or will any other circuitry be needed to do the communication between the two

If we want to connect a monitor, do we have to select a MCU that supports the HDMI?

The main objective of the question is to get knowledge.
No.
A monitor is a monitor.
An MCU is an MCU.
They do not talk to each other.

In order to get a picture on a monitor you need software to generate the picture.
Then you need hardware to format the picture into electrical signals that the monitor can accept.
None of this exists on a bare bones MCU.
 

Ya’akov

Joined Jan 27, 2019
9,070
HDMI is a peripheral, there could be an MCU with an HDMI peripheral on board, but HDMI is much more complex than an MCU would have a use for, so it doesn't really make sense.

Your suggestion of icons and folders suggests and operating system, not an embedded program.

The MCU you specified does have an LCD interface, which makes sense.
 

Thread Starter

Pushkar1

Joined Apr 5, 2021
416
In order to get a picture on a monitor you need software to generate the picture.
Then you need hardware to format the picture into electrical signals that the monitor can accept.
agree with you but hardware comes first in design before the operating systems. I want to learn how we have to select the device while designing the system. Now we have a very powerful embedded processor.

In general, I want to design a system in which the monitor, keyboard Mike, speaker, Bluetooth, wifi is connected to the ARM processor.

I'm not really going to make it right now, but it's a good example for me to learn
 

MrChips

Joined Oct 2, 2009
30,712
You should not separate software from hardware.
You should not use software or hardware as your starting point.
You need to think firstly of system design. Software and hardware are how you implement the solutions. They are the building blocks and tools to achieve the end goal.

When you want to build a house you do not think of wood, bricks, cement, hammer and nails.
You start with a concept and function of the house.

An MCU cannot suddenly put an icon on the screen.
You need to think. What does the icon look like, what is its color, size, shape, position? Will the user be able to move the icon on the screen? How does the icon move?

As a simple exercise, draw the letter A on the screen, 26 pixels high in bold font 1/3 screen height from the top, 1/2 screen width from the left. How would you do that? What hardware and software would you need to do this? It is not as easy as you think. You cannot simply connect an MCU to a HDMI monitor and expect it to magically happen.

The solution is you have to think top-down.
What are the capabilities and functions of the system?
 

MrChips

Joined Oct 2, 2009
30,712
I will give you three examples to think about:

1) Pong demo on a video monitor


Here is a seemingly simple video demonstration. There is one ball and two paddles. The ball bounces off the sides of the walls, floor and ceiling. The ball also is returned when it hits the face of a paddle.

What kind of hardware or software would be required to accomplish this?


2) Graphics display using STM32F407VGT6.

1634870158940.png

This is photograph of a VGA monitor of a spectrum analyzer. All three windows shown are movable and re-sizable. They can overlap. All information in all three windows are updated in real time. The "Signal" window is a real time oscilloscope image of the incoming waveform.

What hardware and software is required to accomplish this?
There is no additional hardware or RTOS used to generate this display.


3) Have a look at this demo.
This was done on an STM32 MCU.


What hardware and software is required to accomplish this?
Software is just as important as hardware. They must be considered together, not one ahead of the other.
 

ronsimpson

Joined Oct 7, 2019
2,989
Pong demo on a video monitor
Back in the Pong days, There was a computer that ran on a Z-80 CPU but the video used 90% of its power to draw a simple display. I have seen and done simple blocks on a TV.

At work we have ARM and high end computes with DMA drawing on LCD displays. The DMA channel moves 640x8 of data at 28mhz, then the CPU has to turn sync on then off and reload the DMA pointers for the next line. The interface is "TTL" and has clock, Hsync, Vsync and 8 data lines.

HDMI is not TTL and requires hardware to convert to HDMI levers. Color requires three streams of data. As you push the resolution up the dot clock goes up.

I have not looked up your CPU but, can you move 640 x 480 x 3 bytes 60 time a second? (simple color VGA) or 1024 x 768 x 3 x 60hz Well actually you need to move data 20% faster than that because in video there is dead time when no video is moving. How much free RAM do you have? One option is to have a page to two of video sitting in RAM. OR You can build the video for each line and only use a couple of lies of RAM, but you need a very fast CPU.

So I am sending the question back to you? How fast can you move data out the IO pins on your CPU? One line of video at a time.
 

MrChips

Joined Oct 2, 2009
30,712
See example #2 in post #16.
This is STM32F407 running at 168MHz which is slow by today’s MCUs.
I don’t have my notes here with me but I believe it is cranking out video at 42MHz via DMA and takes 0% of CPU time.
I believe there is 192KB of RAM.
 

Thread Starter

Pushkar1

Joined Apr 5, 2021
416
You need to think firstly of system design. Software and hardware are how you implement the solutions.
Thank you @MrChips for showing correct way.

I will give you three examples to think about: What hardware and software is required to accomplish this?
It seems to me that STM32F407 is suitable for all three examples. But I can't say anything about any particular monitor because I have no idea about it.

It is quite difficult for me right now to understand the software program of three different projects.
 

ronsimpson

Joined Oct 7, 2019
2,989
I believe there is 192KB of RAM.
1024x768=786,432 pixels (gray scale no color)
What resolution do you want. I think you need to pick something that fits in your RAM.
Post #16-3 talks about a graphics engine inside and that helps! They are built for smart phone displays and small displays that fit in memory. These displays are not HDMI but have TTL level signals. Most have dot clocks down at 10mhz.

Please read the data sheet on your CPU. I can find timing diagrams on many LCD panels if that helps. ST has application notes.
 
Top