Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

Image processing with 16bit PIC Microcontrollers (PIC24)

Status
Not open for further replies.

ComputerAngel

Junior Member level 2
Joined
May 28, 2017
Messages
22
Helped
0
Reputation
0
Reaction score
0
Trophy points
1
Activity points
202
Hello, I am trying to build a giant LED display screen that could render colored images in .JPEG, GIF format, videos and slides. My problem is that am not quite sure if the PIC24H(16bit) microcontrollers can handle the task. I need recommendation please. PIC24H, PIC32 or the dsPIC?
 

Hello, I am trying to build a giant LED display screen that could render colored images in .JPEG, GIF format, videos and slides.

In the case of several videos and image formats (I believe not only these ones) which will certainly be sent via some high level communication service (FTP, SSH, etc...) I would honestly consider using some microcontroller that supports Linux (typically implemented on 32-bit architectures) or any other operational system with native device drivers to handle such files as well as being able to transparently store them in a standard filesystem. What you are trying to do is something not so trivial that is worth the effort of make in a bare metal approach.
 
Hi,

JPEG and GIF are picture files, no video files.
This means there is no need for real time processing.

A microcontroller theoretically can do this.
But without specification it´s just guessing.

Do this first:
* decide the specifications for your display (resolution X and Y, channels of color, resolution for each color)
* decide how to control the display (external display controller .... multiplexing by the microcontroller)
* decide the interface between microcontroler and display
* decide how often you want to update the display (for moving GIFs)
* how do you "send" the JPG/GIF to the microcontroller?

Klaus
 
I think they want to include video as well as still images Klaus.

ComputerAngel, carefully consider the amount of data you are proposing to handle, it is not a trivial amount. Assuming you wish to use color, the need is for at least three LEDs per pixel (red, green and blue) to produce anything like natural colors. The number of pixels is the horizontal resolution multiplied by the vertical resolution and for video you have to multiply that by the number of frames per second. For each LED you also have to store and reproduce multiple brightness levels, you can get a reasonable picture from 8-bits (255 levels + black).

Example: 720x576 resolution means 424,720 pixels or 1,244,160 LEDs. For reasonable motion in video you need at least 25 frames per second so your MCU would have to retrieve the image, decode about 31 megabytes of data, and send it to the display every second.

A PIC16 is a powerful processor but unless you want very small, low resolution images it isn't really suitable on it own and Andre's advice about using a small Linux PC is very good. With the aid of storage controllers, mass storage and hardware accelerators it is feasible.

Brian.
 
PIC16 series is an 8-bit. Can PIC24H series which is 16bit handle the task if am to use SD card to hold the images or video file? Or it has to be PIC32.

Could you also suggest PC linux to start with?

- - - Updated - - -

Thanks for your replies. Very helpful
 

I think @betwixt's reference to a PIC16 was a typo - there is no way that any member of that family could handle the your task.
The key points to consider when selecting a device are listed above (and I think that the memory required for a single image will be against you using most, if not all, PIC24/dsPIC32 devices - the largest one that I'm aware of in terms of RAM has 96KB which is way too small. I'm also not sure if any have the ability to access external RAM.
Even the PIC32 family tops out at 640KB, although some do have DRAM interfaces.
I know the STM32 devices (and many other ARM-based MCUs) have some of the capabilities you are looking for.
You also need to consider how you are going to drive your display. If you are talking about a 'giant' LED display, then you might consider a hierarchy of devices where one takes the image and splits it into smaller sections which are then sent to a dedicated MCU that drives a small section of the display.
If I were do try this, I would start with being able to display the images (from whatever format you want) on a PC or perhaps a Raspberry Pi etc. to start with. You won't have the size of display you want but you can see what is involved with all of the processing and then determine the way to drive whatever display you have in mind.
Susan
 
Hello, as was suggested earlier, I setup OpenCV on my PC. I want to dive into the STM32 series. I want to make my own development board, attach SD card, and some other buffers. I have been searching for the connection of the microcontroller(STM32) to external oscillator and powering it but nothing. My question is, is the STM32 just like every other micro? In terms of the connection to 3.3v and external oscillator, just like PIC series for instance.
 

Seriously speaking, you should read a little more of what was written above or do a Web search for fundamental information before considering asking some questions:

I have been searching for the connection of the microcontroller(STM32) to external oscillator and powering it but nothing

Are you serious ?
Please don't say you did not find this kind of information on datasheet.

My question is, is the STM32 just like every other micro? In terms of the connection to 3.3v and external oscillator, just like PIC series for instance.

For a broad question as such, the short answer is NO.
You are talking about microcontrollers with different internal archictetures.
 

I wasn't talking about the internal architecture but rather the connections. How the are powered, connected to the external oscillator. I came across OSC1 and OSC2 in the data sheet so I got confused.
 

I wasn't talking about the internal architecture but rather the connections. How the are powered, connected to the external oscillator. I came across OSC1 and OSC2 in the data sheet so I got confused.

The pins OSC1 and OSC2 (which has different nomeclature for STM32) are input and output of internal oscillator. If you want to connect to an external oscillator, just one of these pins is needed, the input of course. Refer to page 34 of the following datasheet, for example: https://image.dfrobot.com/image/data/DFR0269/STM32F103C8T6.pdf
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top