This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Newbie`s Basic Questions

Hello,

having used ARM7 devices so far, the intention is to move to a Sitara processor (mainly for performance reasons and the McASP feature).

Before buying an EVM and an appropriate tool for programming and debugging I would be grateful if I could get some feedback to some basic questions from experienced users.

1. What is needed   

Besides GPIO ports, UART, I2C, I2S, RTC, McASP etc. the following features would be important:

- USB   

-  ethernet features (TCP/IP, UDP, FTP-Server)   

- access to an SD card (writing and reading)

Sitara processors support several OS. I did not yet find information on how to access ethernet features or the SD card in a Linux or Android OS. Neither could I find an overview which functions can be accessed. Certainly I have not been looking at the right place. Would it be possible to get some pointers here?    (application notes, tutorials, introduction docs etc.)

 The idea is to have an application task that runs without being interrupted by the OS. More exactly: It shall be possible to suppress interaction with the OS at certain periods (during sampling periods mainly). Is that possible with any of the recommended OSs?

2. Which OS to choose   

Any recommendations? There were rather controversial discussions on some sites.    Some comments suggested to avoid using Angstrom because of network problems (BeagleBoneBlack).

3. Windows vs. Linux   

Due to little experience ('none' to be exact) with Linux I would prefer to do the development on a Windows7 PC. I got the impression that Code Composer Studio Vs. 5 is the only IDE that can be used with Windows. Is that correct? Or are there other ones that should be preferred.?

4. Evaluation board   

Is there a board that can be recommended? Or one that definitely should not be used?

5. OEM boards   

Finding an appropriate OEM board for production later on would be of great importance too. Does a list of OEM board manufacturers exist?

Any hints are very much appreciated.

Thank you!

Martin H.

  • Hi Martin,
     
    1. The AM335X processor seems right for your requirements. This is the product page: http://www.ti.com/lsds/ti/arm/sitara_arm_cortex_a_processor/sitara_arm_cortex_a8/am335x_arm_cortex_a8/products.page
    There are several devices in the family, in different packages, speed grades and internal configurations, depending on your needs. There is a wiki portal for the Sitara family too: http://processors.wiki.ti.com/index.php/Sitara.
     
    2. The EZSDK is the TI supported Linux distribution. All others are not supported by TI. There is also Android and WinCE (WinCE is third-party, not directly supported by TI but has a dedicated forum on the TI e2e).
     
    3. There are surely other IDEs under Windows, but CCS is getting full support by TI (there is a dedicated CCS forum too).
     
    4. EVMs are listed in the wiki, and also on the AM335X product pages. Choice depends on your use case.
     
    5. No, there is no such list.
  • Martin,

    1 - here are some good places to start:

    http://processors.wiki.ti.com/index.php/Sitara_AM335x_Portal

    http://focus.ti.com/general/docs/trainingsearchresults.tsp?sectionId=616&topic=7&subTopic=1875&eventTypeId=OP1&Input3=Search

    2 - From TI you will have support if you use Linux or Android. If you use beaglebone black, you have support from beagleboard.org

    3 - it will be good for you to start learning Linux because the linux community has a lot of support and there are tons of material available in the web for beginners.

    4 - for starters, BeagleBone Black is very affordable with extensive number of capes

    5 - there are several SOM manufacturers and you can find them at http://www.ti.com/devnet/docs/catalog/searchcatalog.tsp

  • Biser, sorry for crossing...

  • Not at all, I think all this info will keep Martin busy for some time :)
  • Hi Martin,

    I see that Biser and Rogerio both posted while I was typing up my novel, but hopefully this gives some additional data points for you to digest.

    Martin Haupt said:
    The idea is to have an application task that runs without being interrupted by the OS. More exactly: It shall be possible to suppress interaction with the OS at certain periods (during sampling periods mainly). Is that possible with any of the recommended OSs?
    As a general rule this runs counter to the reasons for picking a High-Level OS such as Linux. Linux by design does not allow any one thread to hog the CPU time. There are tricks to nudge priority to certain threads over others, but probably not in the way you wish.

    How long are these sampling periods? What kind of application are you looking at?

    If you absolutely must have more deterministic timing you may want to drop your sights on an RTOS instead. There are a number that have been used on Sitara devices, but many are offered from third parties and tend to be focused on a specific sector(s). We provide SYS/BIOS which is a great scheduler, and StarterWare for more bare-metal code.

    In any case I recommend the AM335x devices as well as they meet your peripheral list of requirements.

    Martin Haupt said:

    2. Which OS to choose   

    Any recommendations? There were rather controversial discussions on some sites.    Some comments suggested to avoid using Angstrom because of network problems (BeagleBoneBlack).

    This kind of ties into my response to the last question. I can't really provide much more feedback without knowing your goals. Linux works great for many people and applications, but if you are not familiar with Linux development there is a steep learning curve you should be aware of and it may not even meet your needs.

    Martin Haupt said:

    3. Windows vs. Linux   

    Due to little experience ('none' to be exact) with Linux I would prefer to do the development on a Windows7 PC. I got the impression that Code Composer Studio Vs. 5 is the only IDE that can be used with Windows. Is that correct? Or are there other ones that should be preferred.?

    This boils down to a mixture of personal preference and what tools you intend to use. If working with embedded Linux or Android then a Linux host is essentially required. Some people get by running Linux in a virtual machine on a Windows host, but this has some limitations. If you aren't working with either of those you may be able to get by without needing any Linux tools.

    CCS is usable in Windows (as well as Linux), but there are other non-TI supported IDEs that could work with the ARM core; however, they may be lacking some support that CCS does include. Unfortunately I don't have any experience with other IDEs on our devices so I cannot provide any feedback on them.

    Martin Haupt said:

    4. Evaluation board   

    Is there a board that can be recommended? Or one that definitely should not be used?

    This also depends on what you intend to do. The GP-EVM is a good starting point as it has the most features mapped out to hardware, but as the name implies it is for General Purpose use. The ICE and IDK boards are for industrial communications, the Starter Kit is meant for cheap evaluation (less pinned out that the GP-EVM) and the BeagleBone and BBBlack are meant for community use.

    It all boils down to what you want to evaluate.

  • Hello,

    I am really overwhelmed by that great response. Thank you, Biser, Rogerio and Tim. I did not expect such immediate and comprehensive comments. Excellent!

    Tim:

    "As a general rule this runs counter to the reasons for picking a High-Level OS such as Linux. Linux by design does not allow any one thread to hog the CPU time. There are tricks to nudge priority to certain threads over others, but probably not in the way you wish."

    That conincides with observations I had made earlier with another embedded linux OS and an ARM7 board. As a result that embedded linux had not been used and programming had been done without any OS. But by the time the project became more complex and features like ethernet, SD card support and USB were required. I would not mind creating a Sitara project without an OS, but I would hate to write drivers for the features just mentioned because that would mean reinventing the wheel. So StarterWare looks promising as it includes some example code. Though most likely it will not be a straight-forward process to integrate that code, I suspect.

    Tim:

    "How long are these sampling periods? What kind of application are you looking at?"

    The application is a more or less industrial one. Sampled data is preprocessed to a limited extend and then sent via ethernet to a host or needs to be stored on a SD card. I2C is required to set some filters as well as GPIO ports. USB is intended for firmware updates. A LCD display is not required.

    4 channels shall be sampled simultaneously at a rate of about 192kSPS (no audio data). That would take roughly 0.52ms. Sampling is initiated by a timer interrupt and during that period interrupts might be disabled. But what about Linux? Can it be interrupted at any time? Or do certain procedures run with disabled interrupts and hence can delay timer interrupts?

    Best regards,

    Martin

  • Martin Haupt said:
    But what about Linux? Can it be interrupted at any time? Or do certain procedures run with disabled interrupts and hence can delay timer interrupts?

    I don't know the Linux scheduler granularly enough to get into details here. The scheduler will capture the interrupts, but it may not run the interrupt code right away. This can be put off depending on what is going on within the system.

    My suggestion would be to look at the Industrial Development Kit. This is designed around SYS/BIOS which is a TI-developed scheduler. It's meant to function with minimal overhead and latency around an interrupt-priority scheme. It's great for applications that have structured operating parameters.

    If that board is too big for your evaluation needs you may instead prefer to look at the ICE kit.

  • Hi Tim,

    I will follow your advice and have a closer look at both kits.

    Your comments have been very helpful.

    Thank you very much indeed.

    Regards,

    Martin