board707 / DMD_STM32

STM32Duino library for RGB, Monochrome and Two-color led matrix panels
GNU General Public License v3.0
72 stars 22 forks source link

Add multiple HUB75 PORT . #72

Closed ravigyanvihar closed 9 months ago

ravigyanvihar commented 10 months ago

Sir , I want to make a PCB where I can add multiple hub75 port. Is it possible to make multiple the OE signal so at one time I can run one row of panel and so on...

board707 commented 10 months ago

Hi Thanks for your interest. I doubt that STM32 boards will support more than one hub75 interface. I tested two hub75 channels on Raspberry Pico RP2040, but on stm32, I think, there are not enough resources.

DoomHammer commented 10 months ago

Is there an example of how to use 2 channels?

board707 commented 10 months ago

Do you mean a two channels on Raspberry Pico RP2040 ? I haven't published these tests. I'll try to find my code and add it to the examples, but it will take some time.

ravigyanvihar commented 10 months ago

Ok sir . I am waiting

DoomHammer commented 10 months ago

Yes, 2 channels on Pico.

Also: how is that supposed to work. Do we get two different framebuffers or what?

board707 commented 10 months ago

how is that supposed to work

Sorry, I did this almost 2 years ago, in the summer of 2022, I don't remember the details. I need to find that code.

board707 commented 10 months ago

Hi, friends ! I found my old code, but this is only a test, it is far from real use. The general principle of operation is simple. If you look at the current version of the library, working with the hub75 channel for the RP2040 processor consists of three parts. The first part is a PIO machine that controls the multiplexer channels A B C D E. The second PIO machine outputs main RGB color channel data with CLK and LAT signals. The data for RGB pins delivered via DMA. And the third part is brightness control via PWM on the OE pin, controlled by an independent timer.

In the case of using two hub75 channels, control of the ABCDE and OE pins remains common to the two HUB channels, and two PIO machines are configured to output the color data of the first and second hub75 channels. The data of both channels is managed independently and therefore, required a two independent framebuffers. Thus, for the operation of two parallel hub75 channels, 22 pins are required - 6 common (ABCDE + OE) and 8 for each channel - 6x RGB + LAT + CLK . Tests have shown that the scheme is quite workable, although it requires the use of the same type of panel on two channels. As you can see, in this mode, almost all pins of the rp2040 are occupied, which limits the use of this circuit. Therefore, I did not add this mode into the library.

board707 commented 10 months ago

I think it will be better to convert this topic to the discussion, do you agree?

ravigyanvihar commented 9 months ago

Yes absolutely