element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • About Us
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Raspberry Pi
  • Products
  • More
Raspberry Pi
Raspberry Pi Forum Pi vs BeagleBone-Black
  • Blog
  • Forum
  • Documents
  • Quiz
  • Events
  • Polls
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Raspberry Pi to participate - click to join for free!
Featured Articles
Announcing Pi
Technical Specifications
Raspberry Pi FAQs
Win a Pi
Raspberry Pi Wishlist
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • Replies 358 replies
  • Subscribers 674 subscribers
  • Views 39533 views
  • Users 0 members are here
  • raspberry_pi
  • bb_black
Related

Pi vs BeagleBone-Black

Former Member
Former Member over 12 years ago

So, just over a year on from the initial availability of the R-Pi and the new BeagleBone Black is upon us.  They've obviously taken a leaf out of the RPF's playbook and produced a cost reduced version at a price only marginally above the Pi.

 

I find it interesting that the compromises are very different, for example there's a proper PMIC and the ethernet is not troubled by being connected to USB, however the on-board HDMI seems less capable.

 

Other differences are in the documentation, I'm currently viewing the pcb gerbers for the beaglebone..  Have yet to see any sign of those for the R-Pi a year later. There's even an up to date devicetree capable kernel too.

 

Technology has also moved on somewhat, we get a 1GHz Cortex A8 which is better than the Pi, along with various other stuff and lots more GPIO's too.

 

Ok, so it's clear that I like the look of the new beaglebone, and given the price I'm likely to put any further R-Pi plans on hold until I have a chance to play with this. It's also making things like the Olinuxino-maxi I bought recently look very slow/expensive while still being cheaper than the similarly specced Olinuxino-A13

 

Some details of the beaglebone-black here http://circuitco.com/support/index.php?title=BeagleBoneBlack

 

What do the rest of you think ?   I don't expect this to displace the Pi anytime soon, but I expect it to be very attractive to those people who don't simply want to put XBMC on it and duct tape it to the back of the TV..

  • Sign in to reply
  • Cancel
Parents
  • gdstew
    gdstew over 12 years ago

    I'd like to add another pro for the BeagleBoard Black.

     

    With the exceptions of the integer real time processors PRU-ICSS (not sure at this point why that is), and the PowerVR GPU for

    well known reasons, the AM3359 technical documentation from TI is excellent to the point of overwhelming. The Technical Reference

    Manual is over 4000 pages. No I did not accidentally add any zeros !

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • morgaine
    morgaine over 12 years ago in reply to gdstew

    Gary Stewart wrote:

     

    With the exceptions of the integer real time processors PRU-ICSS (not sure at this point why that is), and the PowerVR GPU for well known reasons, the AM3359 technical documentation from TI is excellent to the point of overwhelming.

     

    You're right about the proprietary GPU, that seems to be an endemic problem for open source in the industry.  It's not true for the PRU-ICSS though.

     

    The PRU-ICSS is fully documented in the Technical Reference Manual SPRUH73C, with the entirety of chapter 4 (250 pages) devoted to it.  Also, there is a full package of PRU-related materials on Github, including more documentation and source code of the PRU's PASM assembler, a Linux loader, demos, etc.  I've even checked that the assembler compiles and it does.

     

    The BeagleBone materials on Github are at https://github.com/beagleboard/am335x_pru_package

     

    The PRU has been used successfully in quite a number of projects as a quick web search shows, and this long predates the BeagleBone Black since the original BeagleBone uses a slightly different version of the same AM3359 SoC.

     

    Morgaine.

     

    Addendum: Repeating the link to TI's wiki pages on PRU which I gave in my first post on this thread, in case it was missed when looking for docs.  There is a developers' link at the bottom of that first page.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • gdstew
    gdstew over 12 years ago in reply to shabaz

    shabaz wrote:

     

    100usec while good, is honestly not that great. It would be insufficient for many tasks where you need to take rapid action.

    Even many ancient typical real-time OSs designed with priority based pe-emptive scheduling have a latency of 20-50usec and that's with

    slow processors.

    However, there will always be cases where a separate processor (dedicated to a few specific tasks) or logic (maybe programmable)

    is useful. Personally I'd want to use a C compiler though, not assembler any more.

    This is the classic case of whether just a simple executive is sufficient, or whether a full-blown UNIX type OS is needed.

    Not everything requires (or will perform better) with the latter.

     

    100 uS will work for a wide range of  real time applications (your opinion of greatness not withstanding) but not all of them. 20 - 50uS is not really all that

    much faster and I am not talking about using the latest-greatest multi-core speed demon processor (not even close) for sub 100 uS either. In fact I would

    be very surprised if there were more real time applications that required 20 - 50 uS latencies than not.

     

      It would be insufficient for many tasks where you need to take rapid action

     

    Thanks for stating the obvious but the definition rapid is clearly a part of "very application dependent". Since there are many companies that use real time

    Linux and many that are thinking about switching over to it that would tend to indicate that it is "rapid" enough for them.

     

      However, there will always be cases where a separate processor (dedicated to a few specific tasks) or logic (maybe programmable)is useful.

     

    That is why I am interested in it. For my particular application just one of these processors is probably overkill but it would relieve the ARM core of a rather

    mundane but important task.

     

    While I have no problems with assembly language, I have been using it on multiple processors for over 30 years now, I would also prefer to program in C.

    Real time applications and RISC cores are complex enough to deal with without also having to deal with more tool complexity than needed.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • rdolson
    rdolson over 12 years ago in reply to gdstew

    Do you have a recommendation for a real-time linux that works on the Pi?

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • shabaz
    shabaz over 12 years ago in reply to gdstew

    "100 uS will work for a wide range of real time applications"

     

    In many cases, perhaps you really should be looking at additional

    hardware to offload this and if required, a simple executive or maybe go completely

    bare metal (or FPGA!).

     

    You can achieve 20-50usec latency or less even with (say) 16MHz clock speed ancient

    CPU targetted OS's, so 100usec with Linux =  not so amazing latency figure to use as an example.

     

    Let's say you want to implement and test a new motor control algorithm for a

    DC motor - the 100usec latency you quoted won't help, wherease 20usec becomes actually quite useful.

    This is hardly an exotic example that I have chosen.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • michaelkellett
    michaelkellett over 12 years ago in reply to rdolson

    I'll chip in my 2p worth at this point - I think the PRU is better imagined as a cross between DMA and a co-processor - it's much more tightly linked to the ARM core than an external processor could ever be and it's quite possible to imagine latency (if that's the right word with PRUs) down in the 10s of nS - ie two or three orders faster than a real time Linux or similar OS.

     

    The reason there are two is that you don't really expect them to multi task.

     

    I am a bit worried that TI are having cold feet about supporting user coding of the PRU - but I'm hoping that they'll stick with it because it seems me to offer quite a lot of the benefit of Xilinx's Xynq architecture but with a much easier entry.

     

    MK

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • shabaz
    shabaz over 12 years ago in reply to michaelkellett

    I think it also saves the requirement to have external FPGA + RAM for many non-critical use-cases. For example, it may now be possible to read in (say) a small array CCD using just the single chip (analog circuitry aside), rather than  an FPGA/CPLD as in the past. That's something I'm planning to do with the board. Same with other types of data aquisition where Linux doesn't cut it.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • gdstew
    gdstew over 12 years ago in reply to shabaz

    shabaz wrote:

     

    "100 uS will work for a wide range of real time applications"

     

    In many cases, perhaps you really should be looking at additional

    hardware to offload this and if required, a simple executive or maybe go completely

    bare metal (or FPGA!).

     

    You can achieve 20-50usec latency or less even with (say) 16MHz clock speed ancient

    CPU targetted OS's, so 100usec with Linux =  not so amazing latency figure to use as an example.

     

    Let's say you want to implement and test a new motor control algorithm for a

    DC motor - the 100usec latency you quoted won't help, wherease 20usec becomes actually quite useful.

    This is hardly an exotic example that I have chosen.

    In many cases, perhaps you really should be looking at additional

    hardware to offload this and if required, a simple executive or maybe go completely

    bare metal (or FPGA!).

     

    Again, thanks for pointing out the obvious.

     

    You can achieve 20-50usec latency or less even with (say) 16MHz clock speed ancient

    CPU targetted OS's, so 100usec with Linux =  not so amazing latency figure to use as an example.

     

    I'd have to see a (say) real example of this because as far as I can tell you are (say) just guessing. I doubt that the (say) 16 MHz processor  would

    be capable of running more than a couple of very simple tasks and certainly not enough for the motor control application you speak of and still manage

    the 20 - 50 uS latency requirement. There is more to real time than just latency requirements, you have to be able to get the work done in time especially

    if you are talking about hard real time. The only reason I bring this up is because you keep throwing straw men at me and I don't have time to respond to

    endless "what ifs" from you. You  use the tool that is appropriate for what you want to do but some people on this forum do not know enough about real

    time Linux to know how able it is (or is not) to do what they want to do. I am trying to nudge them into exploring this for themselves, not argue with

    someone about the finer points of what is or is not needed for any particular RTOS application.

     

    Nobody said anything about amazing, quit putting words in my mouth.

     

    Let's say you want to implement and test a new motor control algorithm for a

    DC motor - the 100usec latency you quoted won't help, wherease 20usec becomes actually quite useful.

    This is hardly an exotic example that I have chosen.

     

    Completely depends on the speed of the motor which also falls into "very application dependent". In fact there are real world applications

    where real time Linux is used for motor control so you're right its not very exotic, or very useful as an example.

     

    Again, and for the last time I would be very surprised if the number of real time applications needing 20-50 uS latency is not greatly outnumbered

    by the applications that don't. If you do not need ultra rapid response, and you do need a full fledged POSIX compliant real time API and have the

    resources to support or need more than just a bare bones RTOS then real time Linux is something you should look into.

     

    Got it ?

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • johnbeetem
    johnbeetem over 12 years ago in reply to Former Member

    Luc Cool wrote:

     

    I agree upon the idea of a bare metal microcontroller for real time behavour.

    Programming in assembly however doesn't seem an efficient way of doing things.

    It's like almost 10 years ago I used assembly, and only to create small procedures that were called from C.

    On the other hand, it will limit your design to just the beagle boards.

    Most modern microcontrollors already contain the glue logic for an usb or spi interface.

    Not needing extra hardware will reduce the hardware price of your design, but the development effort and time will be bigger.

    My understanding of PRUSS is that it's very much like the hidden RISC processor in Freescale's (formerly Motorola's) QUICC SoCs.  QUICC implements serial protocols such as HDLC, Async HDLC, and ATM using either ROM microcode or downloadable microcode.  The huge difference is that PRUSS is an open architecture so you can program it for whatever you want (within its memory limitiations) rather than depending on "binary blobs".  While I haven't looked closely at PRUSS, it may be that it's hard to write a C compiler that would use it efficiently.  Or it may simply be that given the number of actual PRUSS programmers it's not worth the effort because the compiler would be too expensive.  This was the case for a long time with TI DSPs.  I once did an image processing application for a TMS320C40 and by extreme cleverness image got a factor of 6 improvement over the C compiler by rewriting the compiler-generated ASM.  I don't know how well they do now, but each time pipelines get longer it gets harder for a compiler to do an optimal job.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • gdstew
    gdstew over 12 years ago in reply to michaelkellett

    Michael Kellett wrote:

     

    I'll chip in my 2p worth at this point - I think the PRU is better imagined as a cross between DMA and a co-processor - it's much more tightly linked to the ARM core than an external processor could ever be and it's quite possible to imagine latency (if that's the right word with PRUs) down in the 10s of nS - ie two or three orders faster than a real time Linux or similar OS.

     

    The reason there are two is that you don't really expect them to multi task.

     

    I am a bit worried that TI are having cold feet about supporting user coding of the PRU - but I'm hoping that they'll stick with it because it seems me to offer quite a lot of the benefit of Xilinx's Xynq architecture but with a much easier entry.

     

    MK

     

    The main purpose of the PRUs is to provide support for industrial real time communications protocols. Luckily they decided not to limit them to that purpose. On the BB Black I count about

    15 I/O pins (really hard to be sure due to the massive multiplexing of some of the chips I/O pins) that are connected to the PRUs and available on BB Black connectors. As always the number

    actually available for use depends on what other things you are using the I/O for. As an example you will lose 8 - 12 of them if you want to use the 16 bit LCD interface. And there is only one

    group of 8 sequential bits available which also happen to be in that 16 bit LCD interface.

     

    On the software side I am also worried about software support from TI. They have said that they would release the assembler for public use at the end of this month, but they have already put

    it off once before. I would also like to know if there are any assembly library functions to implement at least a rudimentary RTOS API available for use by the public. Given the status of the

    assembler itself at this time I assume the answer is no.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • gdstew
    gdstew over 12 years ago in reply to rdolson

    Robert Olson wrote:

     

    Do you have a recommendation for a real-time linux that works on the Pi?

     

    At this time I do not know of any real-time distributions specifically made for the Raspberry Pi which somewhat surprises me. I have just begun to contemplate building one myself but I do not

    know if or where I will find the time. First I need to check out http://www.xenomai.org to see how much effort it will take. I do know that real-time versions of Linux exists for ARM processors.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • johnbeetem
    johnbeetem over 12 years ago in reply to gdstew

    Gary Stewart wrote:

     

    The main purpose of the PRUs is to provide support for industrial real time communications protocols. Luckily they decided not to limit them to that purpose.

     

    ...

     

    I would also like to know if there are any assembly library functions to implement at least a rudimentary RTOS API available for use by the public. Given the status of the

    assembler itself at this time I assume the answer is no.

    I don't know how much RTOS you can fit into a PRU Core, which has only 8KB of program memory (2K instructions).

     

    You're right about the comm protocols.  An obvious application for PRUSS is some of the strange SCADA protocols used by some legacy units -- things like async with 32-bit words.  It's a PITA to implement some of these protocols in the main CPU, so PRUSS is a very attractive way to do it.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
Reply
  • johnbeetem
    johnbeetem over 12 years ago in reply to gdstew

    Gary Stewart wrote:

     

    The main purpose of the PRUs is to provide support for industrial real time communications protocols. Luckily they decided not to limit them to that purpose.

     

    ...

     

    I would also like to know if there are any assembly library functions to implement at least a rudimentary RTOS API available for use by the public. Given the status of the

    assembler itself at this time I assume the answer is no.

    I don't know how much RTOS you can fit into a PRU Core, which has only 8KB of program memory (2K instructions).

     

    You're right about the comm protocols.  An obvious application for PRUSS is some of the strange SCADA protocols used by some legacy units -- things like async with 32-bit words.  It's a PITA to implement some of these protocols in the main CPU, so PRUSS is a very attractive way to do it.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
Children
  • gdstew
    gdstew over 12 years ago in reply to johnbeetem

    John Beetem wrote:

     

    Gary Stewart wrote:

     

    The main purpose of the PRUs is to provide support for industrial real time communications protocols. Luckily they decided not to limit them to that purpose.

     

    ...

     

    I would also like to know if there are any assembly library functions to implement at least a rudimentary RTOS API available for use by the public. Given the status of the

    assembler itself at this time I assume the answer is no.

    I don't know how much RTOS you can fit into a PRU Core, which has only 8KB of program memory (2K instructions).

     

    You're right about the comm protocols.  An obvious application for PRUSS is some of the strange SCADA protocols used by some legacy units -- things like async with 32-bit words.  It's a PITA to implement some of these protocols in the main CPU, so PRUSS is a very attractive way to do it.

     

    I don't know how much RTOS you can fit into a PRU Core, which has only 8KB of program memory (2K instructions).

     

    Yea, I know. I was hoping that would be covered under rudimentary. How about very rudimentary ? image They have to use something for the communications processing to handle the

    real time aspects but you're right it can't be much.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube