This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Can I build my own ARM board like the raspberry pi

Is it possible and if so how can i build my own raspberry pi alike?

Can I use this AM4378 | AM437x | ARM Cortex-A9 | Description & parametrics ???

  • If you are asking then the answer is almost certainly no, not at the moment anyway. There are lots of enthusiasts who would have no problem with that but there is a learning curve and you have to be willing to see some ruined boards. The signals between the chip and memory have quite exacting requirements, an ARM Cortex-M chip is much easier to deal with.at home.

    In the future this may become much easier, there are machines coming out that will produce a board using 3D printing techniques so one could produce complex multilayer boards at home. This is about the level for home users at the moment though.

    3D Printing: 3D Print A Solderless Circuit Board

  • Thank you to you to share with us the evolution of your project

  • Jerome Decamps wrote:

    Is this story is in your blog jens ?

    Hmm.. I don't think so, but it probably ought to be.

    Aside from that, I believe that it's very important for any board designer, who design with microcontrollers, to read the part about the load capacitance.

    Way too many newbies just assume that using 18pF or 22pF capacitors will do just fine. This works very well for their first projects, but one day, when they start designing serious applications and have ordered 100000 boards, they realize that they should have known how to calculate the capacitor values.

    -I too was one of those, who started by using 'general purpose' capacitor values; but doing so leads to one (or more) of the following:

    1. Inaccurate frequencies.
    2. Maybe even erratic frequencies and thus periodic errors in the behaviour of the board.
    3. Crashes and lock-ups of the system.

    -So it really pays to care about getting the values right.

  • Like daith said ... If you want to do this, you'll need some experience first.

    I am still working with Cortex-M, although I'm planning to work with Cortex-A at some point too.

    Short story long:

    Designing your own Cortex-M board is not difficult. Let's take an example:

    We want a board, which features a small device, which is easy to solder.

    We don't want an external clock crystal, because we do not know how to calculate the capacitors for the crystal.

    Our board just needs to turn on a switch for 3 seconds and then turn it off; this will need to be done once every 24th hour.

    Such a board could feature the LPC810 microcontroller, which is a Cortex-M from NXP.

    You wouldn't even have to get a PCB manufactured, because the LPC810 comes in a DIP package; ready for you to plug into either a breadboard or a perfboard (eg. a VERO board).

    You'll need to connect a 100 nF capacitor from the LPC800's VCC; the other end of the 100nF capacitor needs to be connected to GND.

    VCC is 3.3V in this case.

    Apart from that, you should also connect SWDIO and SWCLK to your preferred programming adapter.

    Optionally you can connect the RESET pin as well.

    Make sure the device's BOOT pin is pulled to the desired level (preferrably via a 10K resistor).

    ... That's all - you don't even need a PCB layout program.

    -But imagine that you need a custom PCB for a chip of your own choice - for inctance STM32F103C8 from STMicroelectronics.

    You will in this case need a program for designing your own PCB.

    There are a few free programs that will serve this purpose; one of them is Eagle, which is available for many platforms.

    This time we want to add an external crystal.

    This requires us to know what we're doing! First you find a suitable crystal.

    Normally you would use a 12 MHz crystal (but it's entirely up to you; some people use an 8 MHz external crystal).

    When you've found the crystal you desire, you will need to get the datasheet for the crystal and find the load capacitance.

    Let's say you've found a 12 MHz crystal from Fox; in particular the FOXSLF/120-20. You search the net and download the datasheet for the crystal.

    The datasheet tells us (on "page 43") that the load capacitance for this crystal is 20pF.

    This does not mean that you can replace the crystal by any other 12 MHz crystal and get the exact same results.

    If you want to replace the crystal with a crystal from another vendor, then you'll have to check that the load capacitance is the same!

    Alright, we know the load capacitance is 20pF, but how do we find out the capacitors we need for the crystal ?

    STMicroelectronics wrote a very good application note, which explains the details on this.

    The most important rules are: Place the crystal as clost to the microcontroller as you can.

    The crystal should be the first component you place after you've placed the microcontroller.

    Since you probably don't have equipment for measuring the Stray Capacitance (Cs), we will assume it's 5pF like the document says.

    So we will subtract the Stray Capacitance from the Load Capacitance; that's 20pF - 5pF = 15pF.

    As there are two capacitors for the crystal, we'll need to multiply the value by 2; thus we get 15pF * 2 = 30pF.

    So the crystal capacitors can be added, connecting each of them to a crystal terminal and the other end of the capacitor to GND.

    Remember to respect what the Application Note mentioned about board layout and VIAs.

    I recommend having a GND layer on the bottom side of the PCB; this will prevent a lot of noise problems you could have if you're unlucky.

    From this point on, everything is straight-forward and not really critical.

    When you've checked your PCB for errors, you will definitely want to check your PCB for errors.

    After that, you will want to check your PCB for errors.

    This action will need to be repeated 7 times.

    Note: The object of this game is to find errors on your PCB. For each error you find, you can reward yourself with $10.

    When you've completed the error-checking, you might want a cup of coffee or tea, watch a video and then you will want to check your PCB for errors.

    Print out your PCB on a sheet of paper, check each of your footprints that they're actually the correct size.

    Check that the holes are big enough for your PTH components.

    Check that there's actually enough space between components, so that they do not block each other from being mounted.

    After this, check all the connections on your layout.

    Did I remember to say that you want to check the PCB for errors ? -If not, you will want to do so now.

    When you've finally fixed and corrected all the possible errors you could find, you can proceed by generating a set of Gerber files and submit to a PCB manufacturer.

    Jaco is a good one, which I use and also recommend; they can also purchase and solder the components for you.

    Note: Even though you order 10 PCBs, you can ask them to assemble just a single PCB; this can save you some money in case you need to revise your boards.

    I recommend that you order only 5 or 10 PCBs until you've verified that your PCBs are completely error-free.

    After a few weeks, your PCB will arrive and you might find out that you forgot to connect a few pins from the microcontroller to VCC.

    This happens, even though you've gone through days of checking the PCB.

    You should always anticipate that your first PCB revision contains more than one error and be ready for ordering another batch.

    After working with the PCB for a number of weeks, you decide to learn how to connect SRAM. For this, you will need ar slightly larger microcontroller.

    A LQFP100 package of the STM32F103 will do fine here. The challenge is to keep the RAM chips close to the microcontroller and keep the trace length the same.

    This takes more time than you expect. Practice on making the traces the exact same length (even though a 72MHz microcontroller will allow quite some flexibility)

    ... When you've succeeded in working with SRAM, move to a faster microcontroller, which supports SDRAM.

    SDRAM have much stricter requirements, when comparing to SRAM.

    Keep clock lines surrounded by guard traces (GND traces), if any resistors are required, place those as close to the output pin as possible; eg. for a clock line, the output pin would be on the microcontroller, so the resistor should be as close as possible to the microcontroller's clock out pin.

    After you've succeeded in the above, you will have enough knowledge and experience to start working with a Cortex-A design. You should know that Olimex sells a LQFP version of the Cortex-A8 based Allwinner-A13 directly from their site, so if you have a good soldering station, you should be able to solder it yourself.

    When designing with Cortex-A, you should be prepared for that the silicon vendor might want you to sign a NDA; this process can sometimes take a lot of time.

    I have a NDA with Amlogic; they were quite quick to process the NDAs and send me the files I needed; I have good experience with these people.

    If you don't want to wait for NDA processing, it might be a good idea to purchase from Farnell/Newark/element14, Mouser Electronics or Digi-Key; find a Cortex-A, check that the datasheet and other documents are available for download and purchase a chip. You can also sign a NDA with Avnet once and for all, then get access to the documents through Avnet; doing this is a real timesaver.