STM32F103C8T6 microcontroller driving 240x240 LCD. Demo contains: colors checkboard mandelbrot image Code: github.com/mir... Pins: A7, A5 connected to LCD SPI. Reset pin is connected to A9
Пікірлер
@MrSasha30505 жыл бұрын
Sooo fast 🔥👍
@wegi9621 Жыл бұрын
Cheessboard was nice =)
@harrisoncreates4 жыл бұрын
Would you be willing to do a tutorial on how you set this up? Super interesting!
@MiroslavBendik4 жыл бұрын
I don't have enough free time for tutorials at the moment
@harrisoncreates4 жыл бұрын
@@MiroslavBendik Okay no problem! Would you happen to have the code or pinouts you used instead? If not it's totally okay, just trying to make something similar
@MiroslavBendik4 жыл бұрын
@@harrisoncreates pins A7 and A5 are wired to LCD SPI. Reset pin is connected to A9. All other pins are unconnected or connected to something else (not used in demo).
@harrisoncreates4 жыл бұрын
@@MiroslavBendik thank you so much!! I really appreciate it!!
@BobrDrob5 жыл бұрын
Wow, that's awesome! The examples I've seen before were running like 4FPS or so. Actually rumors were saying that it is the display itself very slow. (the redraw of the inner buffer was slow) P.S. Is there any way to use something like double buffering for the cases when you need to transfer the difficult picture to the screen and you want this picture to appear momentarily? (Can you load the picture slow, but refresh screen only after that?)
@MiroslavBendik5 жыл бұрын
This display is not slow. Maximum framerate is 119fps. Double buffering is not possible, controller has no extra memory for second buffer (ST7789V datasheet, part Example 2: MPU write is slower than panel read).
@matthewspotten35334 жыл бұрын
You have made a pretty amazing library for this. I have one question though, I would like to get the current scan line of the display device and have played around with the read command functions in your library with no success. Is it even possible to read from this device because it has no MISO line, or is the SDA bidirectional? I would like to do this to avoid the tearing effect.
@MiroslavBendik4 жыл бұрын
It's board with CS(X) pin? When yes then reading should work. After read commands its not possible to continue writing without reseting link state with CS pin. My display board/module does not have CS pin. I spent many hours trying to remove tearing, without effect, but without CS it's not possible.
@matthewspotten35334 жыл бұрын
@@MiroslavBendik I also spend a ton of hours trying to do it without CS. I could not figure it out either. Thanks for the info.
@gunterotte4 жыл бұрын
@@matthewspotten3533 Maybe this could help for this :-) www.instructables.com/Adding-CS-Pin-to-13-LCD/
@kolyahome224 жыл бұрын
Добрый день. А можете прикрепить фото с подключением выводов?
@MiroslavBendik4 жыл бұрын
Pins: A7, A5 connected to LCD SPI. Reset pin is connected to A9, other pins are connected to another project.
@PP-bb8vp3 жыл бұрын
When we were passing command and data to a register should we release CS line after each spi transaction, or only need to toggle D/C line with CS low?
@MiroslavBendik3 жыл бұрын
Toggle is mandatory only for reverse transfer (reading framebuffer or display ID, display status). My display module has no CS pin.
@artsiomkazlouski51279 ай бұрын
can it be used, for example, with f407?
@MiroslavBendik9 ай бұрын
This uses direct register access, aggresive overclocking ... so no. You can rewrite hardware specific quirks, or rewrite it with HAL.
@artsiomkazlouski51279 ай бұрын
@@MiroslavBendik I don't have enough knowledge. low beginner level. thanks for the answer.
@locker874 жыл бұрын
Do you know of any small displays such as this one that has a high refresh rate that can display video? I’ve Been looking through adafruit but I haven’t really found anything.
@MiroslavBendik4 жыл бұрын
Most LCDs up to 240x240px are fast enough to display video. A LCD with a parallel interface instead of SPI must be used for higher resolution.
@j.lietka94064 жыл бұрын
I should know, but what arduino board is that? Thank you & cool program! The screen seems to respond well! 🤓🖖
@MiroslavBendik4 жыл бұрын
Its STM32F103C8T6 minimum system development board (sometimes called the blue pill). Price cca $1.5 USD.
@j.lietka94064 жыл бұрын
@@MiroslavBendik thank you 🤓
@filigenzilab96134 жыл бұрын
Is there a way to make it display video input? Thanks
@MiroslavBendik4 жыл бұрын
Video input? STM32F103C8T6 does not have any video inputs
@filigenzilab96134 жыл бұрын
Miroslav Bendik ok, thanks
@projektmaster59802 жыл бұрын
DMA aktiviert?
@MiroslavBendik2 жыл бұрын
yes
@RomanGen15 жыл бұрын
great job (despite small amount of views). 2Questions: 1. if i not mistaken, pinout of display looks like i2c, where is MISO/MOSI/SCK ? 2. did you try to connect two displays (STM32 provides 2 spi ?) , i`m going to try make simple "living eyes" toy
@MiroslavBendik5 жыл бұрын
1. This is SPI. Wires connected to I2C are part of BME280 sensor (not used in this demo) 2. Two displays should not be problem (with separate SPI or on same SPI using CS signal), but not with my library.
@resetcoder5 жыл бұрын
Why was the image rendering so slow? Was it realtime jpeg decoding/scaling, or?
@MiroslavBendik5 жыл бұрын
No, image is uploaded as raw bitmap via gdb -> st-link. MCU does not have enough memory for the whole image, so it is uploaded in parts.
@resetcoder5 жыл бұрын
@@MiroslavBendik Nice though, I've used your code to create a good spi+dma library, actually this was the most useful code I've found in days. Thx for sharing!
@resetcoder5 жыл бұрын
@@MiroslavBendik Really, Your example code helped so much to create a good SPI library, the arduino framework for stm32 is useless, doesn't even support the DMA, this maple or wth library didn't work at all, the original STm32F4 library by STMicro is awful, the HAL drivers using so much program space, ram, and it is slow as fuck. I'm using STM only since about 2 weeks and it was a much better idea to create a nice clean and optimized library for myself, and the simplicity of Your initialization of the peripherals just got me immediately. I've ported it to F407 and it was kind of difficult for me with zero knowledge about STM's, but now it is working fine. Every example I've found online was useless or overcomplicated. Yay. kzbin.info/www/bejne/iIexg6x5qsild8k this might be familiar