1
\$\begingroup\$

At my day job I'm an application level developer, but I have an idea that I would like to prototype that's a bit more on the microcontroller side.

Basically I want to be able to display some static images on 4 (although the ability to expand would be nice) 2-4 inch color screens such as TFT or OLED. On press of a button, I want to be able to load a different image in no more than 250ms, and play a short sound clip. As far as I can tell, displays that have onboard controllers that implement the SPI are ideal. Not sure what else is out there and really don't want to write my own drivers if I can avoid it.

My big problem is the controller. The ones I've looked into seem to have one or two sets of dedicated SPI pins. I know SPI is a 1 controller, multiple devices scheme, but that still seems limited by the number of selector pins. I've never designed a project like this from scratch, and I'd love some help getting started. I can barely find examples of people using two displays with Raspberry Pis. I'm not sold on Pi or Arduino, I'm just familiar with them. Any other user-friendly-ish MCU would work great.

If there's a better way to connect, or a better microcontroller to use I'd love to know.

\$\endgroup\$
5
  • \$\begingroup\$ You'll need a fair amount of memory to keep track of what you are putting on all of those; there may be flash based MCUs large enough to do it but this sounds more like a pi sort of application. You might also consider one system per display fed via USB. Anyway, questions seeking recommendations of what to buy are not on topic. Realistically there may be some USB auxiliary display products like this out there already, otherwise get a single display and start experimenting. \$\endgroup\$ Commented Sep 16, 2020 at 3:07
  • \$\begingroup\$ If the images are static, why do you need 5 or more frames per second? Also, where's the button? Is it located with each screen? Or is it located elsewhere? (I'm wondering about the sounds... a static image would make sense if it represents a picture of some album cover, etc and then a button press makes sense because a clip from the album might result if there is a button with the image... but if you are displaying 5 or more images per second?? I start to get curious about how all of this makes sense.) \$\endgroup\$
    – jonk
    Commented Sep 16, 2020 at 3:32
  • \$\begingroup\$ I was unclear, I should have said I need a 250ms response time at least so I can change images quickish when a button is pressed. I've never selected a controller outside a Pi/arduino before. Was curious if there was something new that I should be considering. Or a be able to offload that memory onto a controller board. \$\endgroup\$
    – mr odus
    Commented Sep 16, 2020 at 14:12
  • \$\begingroup\$ SPI can connect to as many peripherals as you allocate Chip Select pins to. It just can't talk to all of them at once. \$\endgroup\$
    – user16324
    Commented Sep 16, 2020 at 14:22
  • \$\begingroup\$ You may be interested in screens with built-in controllers. Look at screens designed for use with Arduino. Typical video interfaces send the pixels 60 times per second, and you have to send them or the screen goes blank, so you have special high-speed hardware to support that. But if you get one with the controller built in, you just send new pixels to the controller at your own pace, and when you're not doing that it continues displaying the last data it got. Because it's a simple low-speed interface on your side, you can have many of them. \$\endgroup\$ Commented Apr 17, 2023 at 5:10

1 Answer 1

1
\$\begingroup\$

I do not see a problem, you just have not found a suitable MCU yet. Even if a MCU has a single SPI interface, you can use all the other GPIO pins for chip selects, connecting dozens of SPI chips. Many MCUs exist that have 4 separate SPI peripherals. It seems the one I am now working with has actually up to 6, but most likely these smaller packages I am using do not have access to all of them, so larger pin package is required.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.