Author Topic: Recommendations for Building Tablet Device  (Read 2133 times)

0 Members and 1 Guest are viewing this topic.

Offline UtilaelTopic starter

  • Newbie
  • Posts: 2
  • Country: us
Recommendations for Building Tablet Device
« on: April 17, 2016, 05:37:16 pm »
We're building a tablet specifically for note taking for a senior project. We want to use a 11-13" HD display and a microcontroller to do all our processing. We need to build everything on our own so something like a Raspberry Pi isn't really an option.

I am looking for recommendations on how to go about this. I thought I had everything planned out until I realized that driving an HDMI display with a 200 MHz MCU wasn't going to cut it. I've never had to build something like this before and I can't seem to find a lot of information either. I've gathered that at the very least I'm going to want a specific chip (like http://www.analog.com/en/products/audio-video/analoghdmidvi-interfaces/analog-hdmidvi-display-interfaces/adv7513.html#product-overview) to drive the display and control it with the MCU.

My main question is if using a 1080p HD display will even be possible with a 200-300 MHz MCU? If not, what resolution should I shoot for?

Also, does anyone have recommendations on what (specific) MCU, screen and driver to use? We were looking at using a laptop replacement screen which seems to use LVDS, would this be a good option?

Sorry if my questions are too general, I'm in doubt since there's a lot of options and I can't seem to find any specific information on exact parts and specifications for what to use. I don't want to ask anyone to plan out the project for me but if anyone could provide a general setup example for something like this with or without specific parts listed that would really help! Thanks.
 

Offline stmdude

  • Frequent Contributor
  • **
  • Posts: 479
  • Country: se
Re: Recommendations for Building Tablet Device
« Reply #1 on: April 17, 2016, 06:25:01 pm »
Well, first off, you need to understand that there are two different ways of driving displays.

1. The display is "dumb", and you need to tell it the RGB (or similar) value of each and every pixel, exactly when the display is about to display it.  Analog/VGA/HDMI/LVDS are these types of interfaces.
2. The display is slightly less dumb. These have on-display memory, so you can send data to it at a slower pace than real-time. MIPI would be one interface that can be used like this (if you have the appropriate display with a driver that has memory)

Driving 1080p from an MCU would be near-impossible (actually, only theoretically possible even on the most high-end MCUs), as it would require you pushing out >186MB/sec of very carefully timed data.

Now, knowing the parameters of your assigment/project would be helpful (is it the HW thats important that you designed?  SW?  The end result?), but here's a few different ways forward:

1. A very smart display + MCU
  If you must use an MCU, a "very smart" display would offload all rendering and pixel-pushing from the MCU.  An example product: https://www.itead.cc/display/nextion/nextion-nx8048t070.html
2. An SoM
  If you don't have to use an MCU, I'd recommend getting a SoC to do the job.  Now, designing a board with DDR and BGAs are usually well outside of anything you would do at school, but there are pre-cooked solutions for you.  Personally, I use this: https://www.itead.cc/development-platform/arm/itead-core-aw204x.html
  All critical high-speed stuff is contained on that board, and I design a board that breaks out HDMI, includes a USB hub, USB->WiFi dongle, etc, etc.  All the hard stuff is already done for me.
3. Reducing your resolution requirements, and using a high-end MCU
  If you can make due with less than full HD, you could look at an STM32F469 (or STM32F7xx if you need even more grunt).  Please note though, that you will be very RAM limited. The framebuffer for a display eats up _a lot_ of RAM, so do your RAM budget early.


 
The following users thanked this post: Utilael

Offline exmadscientist

  • Frequent Contributor
  • **
  • Posts: 404
  • Country: us
  • Technically A Professional
Re: Recommendations for Building Tablet Device
« Reply #2 on: April 17, 2016, 08:09:27 pm »
Just don't bite off more than you can chew. I have seen many more undergraduate projects fail due to overestimating the team's capabilities than I have seen succeed... for any reason.

Your professors will be more impressed by a realistic project delivered on time and complete than by some half-finished, half-assed, not-even-barely-functional moonshot. And so will your future employers.
 

Offline Kalvin

  • Super Contributor
  • ***
  • Posts: 2145
  • Country: fi
  • Embedded SW/HW.
Re: Recommendations for Building Tablet Device
« Reply #3 on: April 17, 2016, 08:17:42 pm »
The application seems pretty static ie. it doesn't have to be able play video or render web pages in a blink of an eye, so in principle you do not need a high performance CPU for displaying stuff on the high resolution display. Typically the displays contain RAM which stores the image to be shown so the CPU doesn't have to refresh the display. If your display doesn't have a RAM, you should consider getting one that has RAM, or you need to think something like an FPGA + RAM to perform same functionality.
 

Offline UtilaelTopic starter

  • Newbie
  • Posts: 2
  • Country: us
Re: Recommendations for Building Tablet Device
« Reply #4 on: April 17, 2016, 09:19:04 pm »
Thank you for the quick replies.

Now, knowing the parameters of your assigment/project would be helpful (is it the HW thats important that you designed?  SW?  The end result?)

To specify, the project requirement is kind of general, it requires one piece of unique hardware and on piece of unique software that we designed. So it's important that we design both but cutting corners is fine so long as some bit of it is our own creation (i.e. just programming a Raspberry Pi isn't an option since the entire hardware portion is pretty much done for us). As well as enough work for 3 people over a semester.

2. An SoM
  If you don't have to use an MCU, I'd recommend getting a SoC to do the job.  Now, designing a board with DDR and BGAs are usually well outside of anything you would do at school, but there are pre-cooked solutions for you.  Personally, I use this: https://www.itead.cc/development-platform/arm/itead-core-aw204x.html
  All critical high-speed stuff is contained on that board, and I design a board that breaks out HDMI, includes a USB hub, USB->WiFi dongle, etc, etc.  All the hard stuff is already done for me.

A SoM seems like an interesting option, I'd like to look into it somewhat to see what would need to be done from that point but it would definitely help with a chunk of development. Though I'd have to talk to the professor about whether or not I'll still meet the unique HW requirement.

Otherwise I'm probably looking at lowering the resolution, which is fine.


So I looked up some MIPI displays, something like

http://www.elecok.com/lq101r1sx01-10-1-igzo-tft-lcd-panel-for-sharp.html?feeds_file=mc_US&admatchtype=&addevice=c&adcampaignid=191723854&adgourpid=10521831934&ad_targetid=pla-54098396076&adnetwork=g&addevicemodel=&adkeyword=&adplacement=&adposition=1o5&adtype=pla&adproductid=72728_US_all&adproductcountry=US&ad_product_partition_id=54098396076&gclid=Cj0KEQjw6My4BRD4ssKGvYvB-YsBEiQAJYd77aYluQSdejrbE-zWE4eas0NkZY7qvyuvLNIUNkAjyFUaAoKJ8P8HAQ

or

http://www.elecok.com/n070icn-gb1-7-0-a-si-tft-lcd-panel-for-innolux.html?feeds_file=mc_US&admatchtype=&addevice=c&adcampaignid=191723854&adgourpid=10521831934&ad_targetid=pla-54098396076&adnetwork=g&addevicemodel=&adkeyword=&adplacement=&adposition=1o14&adtype=pla&adproductid=72909_US_all&adproductcountry=US&ad_product_partition_id=54098396076&gclid=Cj0KEQjw6My4BRD4ssKGvYvB-YsBEiQAJYd77Vc0K4X3EStAjiMr-oGDWPVEl1UNQwS5UVtWipRPa9gaAgmv8P8HAQ

I'm unfamiliar with MIPI though, I'll have to look into it more. I'm having a hard time determining what components I will need to get everything working.

Just don't bite off more than you can chew. I have seen many more undergraduate projects fail due to overestimating the team's capabilities than I have seen succeed... for any reason.

Your professors will be more impressed by a realistic project delivered on time and complete than by some half-finished, half-assed, not-even-barely-functional moonshot. And so will your future employers.

Thank you for keeping me down to earth ;). We have until the end of the year to get everything working we really need to just figure out all the specific details. I'm confident that we can at least get a display and touch interface working by then, even if we have to fall back to an FPGA board to drive a low resolution VGA display (something we did last semester). Personally I would like to find pre-built components rather than an FPGA board though... less Verilog.

The application seems pretty static ie. it doesn't have to be able play video or render web pages in a blink of an eye, so in principle you do not need a high performance CPU for displaying stuff on the high resolution display. Typically the displays contain RAM which stores the image to be shown so the CPU doesn't have to refresh the display. If your display doesn't have a RAM, you should consider getting one that has RAM, or you need to think something like an FPGA + RAM to perform same functionality.

I have considered an FPGA a lot and honestly if I could find small board for a good price (< $50) and still fast enough to drive a decent resolution display I'd go with it, but I would like to find something that is already built (since it will be cheaper) to drive the display and just control it with a CPU/MCU. I'm thinking my main issue is that I'm unsure what specs/components I need to drive what display. Perhaps I'm just reluctant to do math  :-//. Though this whole area is quite foreign to me, MCUs, LVDS displays, display interfaces, etc.



To help me understand better and to be more specific: let's say I'm going to use an MCU and the above 1280x800 60 Hz screen with a MIPI (4 data lanes) interface. How should I go about this? Specifically, what are my MHz and memory requirements? And is there anything that I should put between the MCU and display (like a MIPI chip to send data via the MIPI protocol.. maybe I'm still thinking like it's HDMI)? Is the display a good idea or should I use something different?

Hopefully I'm not too overbearing, I'm trying to research as much as I can but there's a lot I'm unfamiliar with and there is little in the way of direction. So thank you very much for all your help!
 

Offline stmdude

  • Frequent Contributor
  • **
  • Posts: 479
  • Country: se
Re: Recommendations for Building Tablet Device
« Reply #5 on: April 18, 2016, 07:45:52 pm »
To help me understand better and to be more specific: let's say I'm going to use an MCU and the above 1280x800 60 Hz screen with a MIPI (4 data lanes) interface. How should I go about this? Specifically, what are my MHz and memory requirements? And is there anything that I should put between the MCU and display (like a MIPI chip to send data via the MIPI protocol.. maybe I'm still thinking like it's HDMI)? Is the display a good idea or should I use something different?

Well, the memory requirements are pretty simple to calculate. If we assume you're not looking for perfect color-reproduction, you can get by with 16bits of data per pixel (5b red,6b green,5b blue, aka, RGB565).
The number of pixels is the screen-resolution, i.e, 1280x800 = 1024000 pixels in total.
16 bits per pixels gives us 2048000 bytes of data.

I'm not aware of any MCUs with 2+ MB of RAM, so you'll need to connect some SRAM to it, just to store the framebuffer.

MIPI is kind of like HDMI, in the sense that it's a few differential high-speed serial links to transfer data over.
MIPI defines a command channel and data channel over the link as well, whilst HDMI pretty much just pushes pixels.

The reason I brought up MIPI is that there are displays that have controllers with built-in RAM to store the framebuffer, and drive the LCD from it.  Now, this doesn't save you from having a copy in the MCUs RAM (unless you do some very old-school graphics tricks), but, it saves you from having to update the screen at a fixed rate (all pixels transfered, 60 times a second).

But, since this is a school project, and completed projects are worth credits, here's what I would do.

Download the datasheet+schematics for the STM32F469 Discovery board, and it has pretty much everything you need.
MIPI display (800x480, but you can use a larger one if you want)
Capacitive touch
16MB of SDRAM
and much, much more.

I'm assuming you have HW and SW guys involved in this. By basing your design on a reference, your SW guys can start coding as soon as they get hold of the manufacturers reference boards, while the HW guys design the actual product. Once you produce your first working prototype, the SW guys should have some code for it ready to go.

Note: I'm saying STM32 here, as it's the only MCU I know of that can drive a large display, with the associated memory requirements. There might very well be others out there.
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf