After quite lot of research through various online document and article and working with many different things, i have finally managed to get my first Linux capable ARM Cortex-A8 board up and running. making the board i hae faced many different kind of difficulties with different section. the board is Based to a ARM Cortex-A8 CPU running at 1Ghz which is really quite lot for homemade hand assembled stuff. i will take you with me on a journey how you can approach to come up with your custom linux board.
it is going to be some what descriptive tutorial with almost every aspect covered. so i have divided the whole things into parts. next part follows the previous.
Requirement Definition, first of all you need to determine what are your requirement and is this possible to fulfil them with some high speed microcontroller with on chip RAM etc. or we need some high speed processor ? As going for very high speed processor may often lead to have a large amount of extra hardware like you may need many power rails , external RAM,external Flash/ROM etc. which ultimately goes with expensive development and expensive final product.
for this particular demo we will consider to develop a Digital Photoframe with cloud connectivity over wifi, so will need minimum a LCD screen and WiFi module , USB host , some user interface. everthing else on board is just to support these requirements.
to get LCD we need a processor/microcontroller with LCD driving capability, as it is digital photoframe application , we need a large lcd may be 7 -10 ich , LCD which falls in this size does not have much intelligence built in to them they need constant refresh by the controller , they don’t even have any memory. so you need a processor with LCD controller built in , trust me you don’t want to drive such large lcd on software, ofcourse you have dedicated controller IC which can do all the refresh and framebuffer memory stuff. but those chips them self has a some cost attached to them and there are few more disadvantages associated with our application we will cover them all in few minutes.
now the except LCD our processor should have some interface to handle WiFi, Wifi moudles are gernally connected to processor with one of these interfaces, SPI, SDIO(4bit SPI) , parallel , USB or UART. UART modules are most cheap and easy to handle but they have very very low bandwidth due to limitation of UART.
we can use SPI , SDIO or USB wifi module.
processor with USB host, we need to have USB host, sot that user can connect there USB drive or USB hard drive fill with image and videos to our product.
we want to provide touch screen interface to the system for ease of use. it can be achived with touch screen controller IC may resistive or capacitive , although it is little complicated to use capacitive touch screen controller , they may come with there own proprietary firmware and many other settings. but usually if you want to go capacitive touch you go with some third party controller solution. few processor may have resistive touch controller built in but not many.
we have got some picture of our required hardware but in choosing a processor , the most deciding factor is , what data you are going to process and at what rate? the speed of processor will be decided by the software we need to run , as we are dealing with multimedia , we need some power .