I am looking for a book explained how to make a computer by using Arm core processors?
What sort of thing did you have mind? Do you mean something like how to make a desktop style device out of Beagle board?
My question is about build a computer without SoC ICs and FPGAs. Is it possible? how?
Have you had a look at
Getting started with Arm Microcontroller Resources
If you really want to make your own thing then the mbed.org website might be a place to look at, for instance you'll find this nice little DIP there plus lots of other straightforward starter boards and software for microcontroller board development
LPC1114FN28 | mbed
I know it used to be possible with Arm Classic cores; ie up to Arm11. Some of the CPUs were "simplistic"; as in they contained only the Arm core and very little memory, anything required for a bootloader, but more memory required external DDR. With newer technology, Arm SoCs became widespread, and to be honest, I don't know of many chips that don't include most of the controllers. Granted, some chips will require external DDR and NAND, but not much else. If you are thinking of the Good Old Days (c) where you needed a CPU, memory, memory controller, interrupt controller, serial controller and indeed *.* controller, I don't know of anything. Besides, most chips will use SMT, making it hard for enthusiasts. With the exception of Cortex-M chips, I've never heard of a DIP chip. You might want to try with an Arm926EJ-S or Arm1176, but in a way, it is a shame not to make the most of recent developments; the Cortex range really is worth it.
Thanks a lot James.
I could understand you say new Arm processors have some peripherals built-in and they are SoC? If it's true what is the differences between a Arm products and other companies such NXP that use Arm processors to provide a microcontroller based on Arm? Can we buy an Arm processor and build own microcontrollet instead of buying from NXP or others? Is it very hard,expensive and impossible or it's easy and inexpensive?
I want to build a mini-PC like Raspbbery PI by using Arm processors, according to my needs. How can I do it?
Arm don't sell any actual physical processors (well except for some high end development boards). They sell intellectual property, they enable others to build a system on a chip easily with what they are interested in. In the past one could get a processor and some memory and and some other chips and stick them on a circuit board probably with one's own FPGA to do what one wanted. Today most of that can be stuck onto a single chip, instead of a physical chips to stick on a board one licences IP and fits it into a SoC, the board it is put on is there mostly to provide human sized sockets.
Aah, the joys of Arm. You've seen the post, you even have the Avatar, 50 billion Arm chips. How many did Arm make? Well, none, really. Maybe a few hundred here and there, but that's the huge difference; Arm doesn't make the chips, they design the technology, they do the R&D for new technologies, and exterior companies (partners, really) use their technology as a central point to their designs. The result is a huge ecosystem, with partners designing more and more peripherals, making awesome designs... Basically, what they do best. Arm continues to generate revenue from partners, and continues designs, creating new architectures and processor designs (Arm just recently designed a new Cortex-A).
That's your problem right there. You can't get any "true" Arm processors. Well, you can, you could acquire their technology, but this is designed for large companies, if you are looking to make a single chip, this is prohibitively expensive. Solution B, some companies sell FPGAs with an Arm core embedded inside, with enough external logic to create your own peripherals. In your case, don't. Keep the core as-is (is that even possible?). Then add your own external logic chips.
If you really want to build your "own" Rasperry-Pi type system, you can. You will have to look at all the vendors; NXP is just one of them. Samsung, TI, Silicon Labs, Nvidia, Freescale... This could go on for a very long time, there are a lot of partners. Have a look at what you need on your chip, and what the vendors propose. This is what the Raspberry Pi foundation actually did. Their design uses an Arm1176 core, designed by Arm of course, but made by Broadcom (with Broadcom peripherals). Some implementations will have lots of RAM, some won't. Some will have peripheral drivers, some won't. Decide first which Arm core you need; Cortex-A, Cortex-M, Arm Classic? (try and go for a Cortex). Make a list of what you want to have, what you don't want to have, and have a look at what is on the market. This could take some time, it is often the part that takes the longest. There's a lot of choice, depending on your needs. That is good.
Thanks a lot deith
Great! It was really great!!
I don't know how to thank. many things became clear to me. Thank you !
Is there a book(s) to learn how can I build boards like Rasperry-Pi ?
> Is there a book(s) to learn how can I build boards like Rasperry-Pi ?
Not that I know of - it would be many books worth of knowledge!
A word of warning before heading down this route. For most devices you can't easily build the PCB as a hobbyist - most Cortex-A cores are packaged in a BGA package with hundred of pins, requiring multi-layer PCBs which require specialist equipment to manufacture. To be honest even soldering surface mount components onto a PCB you've had made is difficult enough to do reliably. Most projects I know of design the board themselves and outsource the fabrication of the PCB and soldering to a dedicated manufacturing company.
Most "home projects" I've seen building tablets or home servers using Arm take an existing board, such as a Rasberry Pi, Arndale Board, or Beagle Bone Black, and then "add things" to it via USB, ethernet, MIPI, or even serial and GPIO to build up the complete system. And then make a cool case for it of course =) This is much less likely to go wrong (you are using a pile of existing technology which is well tested and well supported), and to be honest - much less expensive. You can get some pretty good development boards which are almost complete home computer systems for under $100; making your own custom PCB can cost more than that by itself as you are not making enough of them to get a low per-unit price.
Hope that helps, Pete
I'd have to second peterharris, this is almost a job in itself, and enough material for several books. Today, there is a huge difference between the software and hardware sides of development. In my youth (ouch, I feel old), I whacked up a 6809 processor with some external components, including memory, interrupt controllers, EPROM, etc. on a breadboard. Today, not a chance. As Pete said, boards using this kind of processor (and in general, anything 32-bit or even worse, 64-bits) tend to be horrendously complicated. Even the memory controller; I've spent weeks integrating a DDR-II controller, because the hardware team spend days figuring out the length of a particular lane; every 10th of a millimetre was a change, and a few lines of code for us, because we needed to adjust DDR-II timings. I don't want to try and frighten you; the subject is fascinating, but very difficult. I'm not too sure how long it took to create the Raspberry Pi, but it was probably months of work. If you do want to try and create your own devices, try small. You won't create anything as powerful as a Raspberry Pi with a Cortex-M, but they are nice and small, and simple. Some can even be put on a breadboard, and are an excellent way to learn. Even if they are "small" and "simple", they are still very capable devices, and you can do a lot with them.
Don't let me put you off, but please understand that if you want to go through with this, it will take a lot; lots of time, lots of money, lots of equipment, and probably lots of help, but you will learn from a project like this.
Thank you Pete. But I want to learn designing knowledge, it's too important for me. I do not want to build any project soon. I have a Discovery board of STMicroelectronics and did some projects with it, But now I wanna learn how can I build my own board. To obtain this knowledge is very important than cost for me!
Thank you James, but how can I learn from a built board? I can learn about designing the software but how can I learn about designing the hardware? My purpose is hardware side, and I wish to learn how can I build my own devices?If begining from a small and simple computer is to hard, I'll start with something simpler than like building header boards for using of a microcontroller abilities. If I exampled Raspberry PI, It was my goal noting for start(although if a book was founded about how can we build a board like it, it would be great!).
However, I am seeking a way to reaching my goal, I wanna be a hardware designer at least in a family of Arm processors! Nowadays I see many boards that built with Arm processors by many companies that if you do a search on them, you will find them in a garage in china or many other countries.
Are they many intelligent with most of knowledge and experiment or building these boards are easy? This is a serious question that I want to know! Is it possible for me to make a board like them or not? If it is, with what knowledge? How can achieve that knowledge?
How can you learn from a build board? With great difficulty, I'll grant you that. In that case, start with something small, like an Arduino. No, don't worry, the Arduino Due is based on a Cortex-M. The Arduino Tre should come out soon, and that is based on a Cortex-A8. The advantage to Arduinos is their Open Source side; you can get the full schematics easily. That will give you an idea on how they did it, how to connect the components, etc.
Designing an Arm-based computer is relatively easy. Get the processor, slap on some DDR-II, some peripherals, and there you go. Things are much easier today than they were a few years ago. While designing a system might be easy, optimizing it, and making it a viable solution is much harder. You cite the Raspberry Pi for this, but have a look at the board; it isn't actually all that "complicated". Don't get me wrong, they did a great job, and routing that board must have been a nightmare, but the components on the board are fairly basic; apart from the CPU and GPU, there are very few ICs, a few resistors and a few capacitors. The goal for Raspberry Pi was to make a low-cost board, balancing purchases, reliability and general awesomeness.
So, back to business. If you want to create your own systems, go for it! Don't let anyone tell you it can't be done; that is exactly how I started electronics. The only difference for me is that 6809s and 68000s were DIPs, and the boards were easy to route. I'm not too sue how you would start; SMCs are hard to solder, and honestly I have no idea how a BGA component is soldered. To start "easily", I think the only DIP packages are Cortex-M devices. However, I'm pretty sure I saw a breadboardable Arm7TDMI. It isn't latest gen, but it might be an excellent way to start off, playing with peripherals, before using Cortex-A devices, and creating your own multiple-layer cards.
You've given me a new idea for a book, but this is a huge field; there is probably enough for several books.
My advice is to start off "small"; play with Cortex-M devices on breadboards to start, maybe even an Arm Classic (the Arm7TDMI was an awesome chip, and in ways, it still is). Don't let anyone tell you what you can't do. My career is full of people who told me what I couldn't do, and I did it anyway. I really hope to see your project soon :-)
I hope I can build my board and you write your book(s). Your comprehensive guide was very helpful. I thank you again and I'll ask more question later, when I'll designing my board.Good lock my teacher, James!
> and honestly I have no idea how a BGA component is soldered.
You need some form a reflow oven (basically heat the whole board until the solder balls which are part of the BGA package melt). There are some quite fun tutorials using an old household kitchen oven or even a toaster for doing this on the web - but I wouldn't recommend cooking food in the thing afterwards =)
My DIY attempts in the past tended to struggle with boards which are double-sided - things on the bottom of the board have a nasty habit of dropping off. Pesky gravity
> My advice is to start off "small"; play with Cortex-M devices on breadboards to start,
Yep - this is the best advice I've seen. Start small, learn the basics, and then make something a bit more complex for your next project, etc. ... but definitely have a go!
If you have a particular Arm SoC in mind it is always worth checking with the manufacturer of that device - they may be able to share some schematics for a reference board based on their parts.
View all questions in Embedded forum