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 39479 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
  • johnbeetem
    johnbeetem over 12 years ago in reply to gdstew

    Gary Stewart wrote:

     

    A search of the TI website for SPRUH73C turns up with zero results. SPRUH73H gives me the same technical reference manual I already have. That manual has a very brief

    two page description of the PRU-ICSS but little else, not even a block diagram. According to that technical reference manual this is an upgraded version of the original so it

    may be that the documentation hasn't been released yet. I have also searched the TI website for PRU-ICSS which turns up 5 hits, all of them from entries in forums. A couple

    of the entries clearly show that more hardware information is available but no hint as to which one or where.

    It seems that SPRUH73 has shrunk from H to C.  I tried to find some Am335x documents and it looks like the TI site is currently screwed up.  Maybe the people who know how to fix it are all at Design West (formerly ESC).

     

    The PRUSS documentation is definitely in version C.  Maybe TI decided to put it into a separate document, but have screwed up access to that document or else it hasn't been approved for release.  You might try searching for SPRUH73C on the Internet to see if you can download it from somewhere else.

     

    It's also possible that TI decided to omit PRUSS from the Am335x TRM and make people use the wiki.  If that's true, it's too bad because the TRM is a lot better formatted and prints better.  Some PRUSS documentation has never been in the TRM, such as opcode encoding (which is in the wiki).

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

    SPRUH73C is considered the "canonical" AM335x TRM by the BeagleBone community and a lot of people have mirrored it  --- the very first hit in Google will get you it, for example.  Documents are always in transition and the TRM is no exception, which appears to be the reason why the latest SPRUH73H has only a 2-page placeholder for that chapter.  We're only guessing and I haven't seen it confirmed yet, but I suspect the technical author just has a lot of work.  It's not like the PRU were a secret or anything, it's already been documented officially in SPRUH73C and used extensively in the community.

     

    I'm still trying to get some info on whether a forthcoming SPRUH73  'I' release will contain updated PRU info or whether we should continue using SPRUH73C from here on, but it doesn't make a huge amount of difference --- just grab SPRUH73C for now.  The BeagleBone Black's slightly upgraded AM3359 is still a AM3359 after all, and its PRU hasn't changed since the original BeagleBone was released or there would be a new datasheet for it.

     

    We have the required info available to the community already, but if the large hole in the latest SPRUH73H concerns you massively then perhaps you could ask someone who can answer authoritatively about it?  I'd be interested in the answer too.  I'd certainly prefer the latest doc to be complete, but I can't obsess about it when the BeagleBone community already has the PRU info in SPRUH73C and considers it canonical for BeagleBone ... and hence for BeagleBone Black too.

     

    Morgaine.

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

    Found it, thanks. Weird that TI does not seem to have a copy of this document on their site. In an earlier search I googled PRU-ICSS but did not see any PDFs.

    Obviously I didn't look through enough pages.

     

    I'm not massively interested but I was thinking about using one or both of them to help with a project I have in mind so I wanted to an idea of what they were

    capable of, how many of their non-communications I/O pins were available to use on the BB Black, and how they shared data with the ARM.

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

    The PRU is certainly a very interesting facility, and I'm looking forward to playing with it myself.  It'll be quite nostalgic to return to assembly code programming and examine a new set of instruction encodings.

     

    This is actually very topical in this Pi group, because in many threads I've been promoting the idea that the best way of using Pi for hardware interfacing is with the help of a bare metal microcontroller.  The Unix model of operating systems just isn't designed for realtime programming, and no matter what realtime patches you apply or which realtime scheduler you enable (I've played with both), you're never going to get anything like the low response latency and absence of jitter that you can get from the cheapest of microcontrollers.  A far better approach is therefore to combine a bare-metal micro with a *nix system, and let the latter control the former with high-level commands which the micro then executes with very tight timing constraints.

     

    The two PRU cores will of course be the "bare metal microcontrollers" in our AM3359-based scenario, and we won't need a single bit of extra glue logic to achieve it.  This is certainly going to make for some very interesting projects.

     

    Morgaine.

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

    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.

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

    That's true, yes.

     

    Well it wouldn't be too huge a task to port smallc to issue PASM code for the PRU, as long as totally dumb code generation is OK.  A lot of the 200MHz would be used up in overheads though, and the tradeoff may not be worth it.  I guess this would have to examined on a case by case basis.

     

    In a more "Pi-oriented" context, programming small pieces of tight code in assembler would have immense educational benefit for budding future engineers, so programmer efficiency and code maintainability would not be so high up on the list of requirements as they are in industry.  Programming the PRUs in assembler would be an effective way of exposing inquisitive minds to low level details.

     

    I could have put this kind of integrated architecture to very good use back when I was churning out EE degree students.  It provides very significant educational gains for very little staff and student pain, and EE students absolutely must understand what's going on at an instruction set level and below otherwise they'll have no hope of one day designing such hardware.  The PRU SS gets a big thumbs up from that angle.  Experience will tell how this works out in practice.

     

    Morgaine.

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

    Morgaine Dinova wrote:

     

    The PRU is certainly a very interesting facility, and I'm looking forward to playing with it myself.  It'll be quite nostalgic to return to assembly code programming and examine a new set of instruction encodings.

     

    This is actually very topical in this Pi group, because in many threads I've been promoting the idea that the best way of using Pi for hardware interfacing is with the help of a bare metal microcontroller.  The Unix model of operating systems just isn't designed for realtime programming, and no matter what realtime patches you apply or which realtime scheduler you enable (I've played with both), you're never going to get anything like the low response latency and absence of jitter that you can get from the cheapest of microcontrollers.  A far better approach is therefore to combine a bare-metal micro with a *nix system, and let the latter control the former with high-level commands which the micro then executes with very tight timing constraints.

     

    The two PRU cores will of course be the "bare metal microcontrollers" in our AM3359-based scenario, and we won't need a single bit of extra glue logic to achieve it.  This is certainly going to make for some very interesting projects.

     

    Morgaine.

     

    You really need to get better acquainted with real time Linux. There are many companies that use it for products and several that specialize in producing real time tools and solutions using Linux.

     

    First and foremost the "amount" of real time needed is very application dependent. Real time versions of Linux are able to handle latency requirements below 100 uS. This puts a wide range of hard

      and soft real time applications within its reach and it is quite capable of handling them.

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

    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.

    • 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
Reply
  • 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
Children
  • 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 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
  • 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