PRU FAQ 2013-05-15

10,422 views
Skip to first unread message

Jason Kridner

unread,
May 15, 2013, 5:12:39 PM5/15/13
to beagl...@googlegroups.com
Frequently asked questions regarding "PRU":

Mark Lazarewicz

unread,
May 15, 2013, 5:35:19 PM5/15/13
to beagl...@googlegroups.com
Good stuff Thanks!
and I am guessing the ICCS_SDK just provides examples/ and sw support of how to implement the various various protocols like DeviceNet and CAN?

I got two Bones today and the CAN capes should be shipped soon so this caught my attention thanks. 

Now if I just knew where I could get the JTAG adapter installed I would be elated.
The link posted earlier by Gerald suggests an RMA but I was NOT sure if this referred to after being damaged adding the JTAG by a novice or I could just either pay for it or request it by RMA.


--- On Wed, 5/15/13, Jason Kridner <jkri...@gmail.com> wrote:

Max

unread,
May 16, 2013, 3:15:02 AM5/16/13
to beagl...@googlegroups.com
Hi Mark!

I think the classic Bone has JTAG integrated in it. BBB does not
Anyway it would be great if you could share some info how you worked with CAN

Отправлено с iPad

16.05.2013, в 1:35, Mark Lazarewicz <laza...@yahoo.com> написал(а):

--
For more options, visit http://beagleboard.org/discuss
---
You received this message because you are subscribed to the Google Groups "BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email to beagleboard...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
 
 

Mark Lazarewicz

unread,
May 16, 2013, 11:07:07 AM5/16/13
to beagl...@googlegroups.com
Hi Max

Present(paid)
Well I am doing a CAN device drivers for TI C2000 for RTOS(SYSBIOS) at work so the peripherals(CAN controller) are what I am focused on and interested in

Relavent to this group
Future(hobby/career enhancement)
for Sitara the can controller is  called DCAN this code that talks to this is provided in starterware(bare bones no OS). From what have read the kernel for Bone supports the network driver for CAN developed by Volkswagen so I start with getting two bones talking
study/tweek linux device drivers


Non relavent to opensource
Sysbios or barebones OS running the starterware./sdk  CAN code on A8 of Bone using JTAG and codecomposer. spend $78 for xds100 CCS is free.
JTAG shortens debug of complez hard real time bugs

Email me anytime if you think I can be of help for general firmware questions. its not that I dont want to share here  I have little experience presently doing Linux device drivers but 28 years doing other RTOS drivers 
hope to change this and help out the cause as a driver is driver for most OS . Linux drivers are SLIGHTLY different than LynxOS and QNX cpmmercial RTOS

One last comment I saw the first consulting opening for a Sitara job this means people are using the chip beyond handsets and opensource tinkering. the chip has all the peripherals and low power so I think this chip is here to stay. also linux is making inroads into more embedded systems where hard realtime RTOS have been used(now I better go as I dont want to step on any toes). They both have a place and it looks like Gerad and Jason have ensured that TI is the best choice for support in open arena and the E2E forum is OK for TI SYSBIOS help

--- On Thu, 5/16/13, Max <lisa...@gmail.com> wrote:

WenZhan Song

unread,
Aug 8, 2013, 10:03:53 AM8/8/13
to beagl...@googlegroups.com
Can the PRU runs while the main CPU and most peripherals sleeps?

What we intend to do is: let PRU read sensor data from an ADC board through SPI interface, and GPS data through UART and GPIO interface, then timestamp sensor data with GPS timestamp and write to flash or SD card. During this process, we hope to put the main CPU in sleep to save power. 

Charles Steinkuehler

unread,
Aug 8, 2013, 10:09:44 AM8/8/13
to beagl...@googlegroups.com, WenZhan Song
Yes. If you read through the TI documentation, there are some comments
about power domains and using the PRU to manage power-on events and
decide if the ARM core needs to be brought out of power-down mode.

On 8/8/2013 9:03 AM, WenZhan Song wrote:
> Can the PRU runs while the main CPU and most peripherals sleeps?
>
> What we intend to do is: let PRU read sensor data from an ADC board through
> SPI interface, and GPS data through UART and GPIO interface, then timestamp
> sensor data with GPS timestamp and write to flash or SD card. During this
> process, we hope to put the main CPU in sleep to save power.
>
>
> On Wednesday, May 15, 2013 5:12:39 PM UTC-4, Jason Kridner wrote:
>>
>> Frequently asked questions regarding "PRU":
>>
>> - What is a "PRU"?
>> - PRU stands for Programmable Real-time Unit. The overall subsystem
>> is typically called the ICSS, PRU-ICSS or PRUSS. ICSS stands for
>> Industrial Communications Subsystem and PRUSS stands for Programmable
>> Real-time Unit Subsystem.
>> - What does a PRU do?
>> - A PRU is a 200MHz microcontroller that is really useful at
>> "bitbanging" and has some peripherals attached to it that make it well
>> suited for building real-time interfaces to all types of digital
>> electronics.
>> - What are the processing elements within the AM33xx PRUSS used on
>> BeagleBone and BeagleBone Black?
>> - 2 32-bit 200MHz PRU cores
>> - Each with 8KB of program memory
>> - Direct access to general purpose I/O
>> - Single cycle operations without cache or pipelines (instructions
>> *always* 5ns)
>> - Shared 12KB data memory
>> - Scratch pad registers
>> - Parallel and serial capture modes
>> - 32-bit port to memory and other peripherals outside of the PRUSS,
>> including external memory
>> - What are some example things built out of PRUs?
>> - DMX512 lighting protocol:
>> http://beagleboard.org/CapeContest/entries/BeagleBone+DMX+Cape/
>> - 6502 memory interface:
>> http://elinux.org/images/a/ac/What's_Old_Is_New-_A_6502-based_Remote_Processor.pdf
>> - Emulated memory interface on an Atari 600XL with BeagleBone
>> decoding video directly into Atari 600XL display memory:
>> http://www.youtube.com/watch?v=1irR4TQ5aMA
>> - Nixie tube interface: https://github.com/mranostay/beagle-nixie
>> - Software UART:
>> http://processors.wiki.ti.com/index.php/Soft-UART_Implementation_on_AM335X_PRU_-_Software_Users_Guide
>> - Sine wave generator using PWMs:
>> http://elinux.org/ECE497_BeagleBone_PRU
>> - 3D printer stepper motor driver:
>> http://hipstercircuits.com/pypruss-a-simple-pru-python-binding-for-beaglebone/
>> - Camera interface:
>> http://www.hitchhikeree.org/beaglebone_capes/interacto/
>> - Where do I get some more details?
>> - https://github.com/beagleboard/am335x_pru_package is the official
>> location for documentation and tools for the PRUSS on BeagleBone and
>> BeagleBone Black.
>> - http://elinux.org/Ti_AM33XX_PRUSSv2 is the community wiki page.
>>
>>
>>
>


--
Charles Steinkuehler
cha...@steinkuehler.net

signature.asc

Charles Steinkuehler

unread,
Aug 8, 2013, 10:26:40 AM8/8/13
to beagl...@googlegroups.com, WenZhan Song
More specifically, it looks like the PRU is powered by the PD_PER
domain, which means you can put the chip into Deepsleep1 and the PRU is
still active but the ARM core is shut down, the main oscillator is
disabled, and all DPLLs are in bypass. The PRU is probably running at a
pretty low frequency, but it should be running. There are still a
couple deeper sleep modes you can use for further power savings.

If you need the PRU running at speed, the Standby mode leaves the clocks
operating normally but powers down the ARM and graphics cores.

This is all covered in Section 8 (Power, Reset, and Clock Management) of
the AM335x Technical Reference Manual from TI.
signature.asc

WenZhan Song

unread,
Aug 8, 2013, 10:53:54 AM8/8/13
to Charles Steinkuehler, Dan Huang, Guoliang Xing, M Mahdi Moazzami, Lei Shi, beagl...@googlegroups.com
Thanks for prompt reply, Charles!

This is a great news for us! We are newbies of BBB. Do you know any source code for us to start with, including drivers of SPI and UART and power management between PRU and main CPU?

Thanks!

WenZhan

Charles Steinkuehler

unread,
Aug 8, 2013, 11:09:31 AM8/8/13
to WenZhan Song, Dan Huang, Guoliang Xing, M Mahdi Moazzami, Lei Shi, beagl...@googlegroups.com
On 8/8/2013 9:53 AM, WenZhan Song wrote:
> Thanks for prompt reply, Charles!
>
> This is a great news for us! We are newbies of BBB. Do you know any source
> code for us to start with, including drivers of SPI and UART and power
> management between PRU and main CPU?

I don't off-hand know of any power management code examples other than
the Linux kernel itself.

There are probably some examples available from TI if you dig around, I
have mostly worked only with the PRU (to do real-time step/dir
generation for LinuxCNC), but being a hardware designer I skimmed
through most of the TRM reviewing the various available features and
some implementation details. I leave the power management code to the
Linux kernel gurus! :)

Note that unless you are running on bare metal, you'll probably need to
coordinate your power management with the Linux kernel somehow. If you
need help with this I would refer you to TI for part-specific support,
and the usual Linux channels for help with the kernel code. I'm way
beyond my depth in trying to write suspend/resume code for Linux...I can
just tell you what power states the PRU runs in.

As for the SPI and UART, there are Linux drivers available for these, or
you can talk to the hardware directly via the PRU if you're trying to do
something while the ARM core is asleep. Hardware details are in the
TRM, and while you probably won't find PRU code examples, the Linux
drivers for these peripherals should provide examples for proper setup
and operation.

Good luck on your project!

--
Charles Steinkuehler
cha...@steinkuehler.net

signature.asc

Mark A. Yoder

unread,
Sep 25, 2013, 5:48:28 PM9/25/13
to beagl...@googlegroups.com, WenZhan Song, Dan Huang, Guoliang Xing, M Mahdi Moazzami, Lei Shi
What's the current status of the PRUs?  Has anyone produced some tutorials on how to do simple things on it?  I've looked at the examples in Jason's post, but more examples on how to do simple things would be helpful.

For example, how does on set up a double buffer between the ARM and the PRU with the PRU interrupting the ARM when it's finished with one buffer and is working on the next so the ARM can refill the buffer.

Or, examples of the PRU talking to things on the i2c or SPI buses.

Has anyone gotten the PRU to control a quadcopter?

--Mark

Charles Steinkuehler

unread,
Sep 25, 2013, 6:05:00 PM9/25/13
to beagl...@googlegroups.com, Mark A. Yoder
On 9/25/2013 4:48 PM, Mark A. Yoder wrote:
> What's the current status of the PRUs? Has anyone produced some tutorials
> on how to do simple things on it? I've looked at the examples in Jason's
> post, but more examples on how to do simple things would be helpful.

I have some basic example code I tried to comment very well for use as
an example of the PRU debugger available with LinuxCNC. It mostly just
sets up the timer portion of the industrial Ethernet controller (the
only part that's documented) and blinks some LEDs. I tried to provide
examples of various assembler features (like using records/structs) as
well as use a variety of coding techniques (including a jump table for
case logic). Perhaps you might find something useful reading through
the code:

https://github.com/cdsteinkuehler/linuxcnc/blob/MachineKit-ubc/configs/ARM/PRU-Debugger/pruexample.p

...or if you've got a copy of my MachineKit image you can try running it
with the debugger and single-stepping through the code.

> For example, how does on set up a double buffer between the ARM and the PRU
> with the PRU interrupting the ARM when it's finished with one buffer and is
> working on the next so the ARM can refill the buffer.

That is totally *NOT* simple and has a *LOT* of places where things can
go wrong (race conditions, deadlocks, cache management, etc). I'll
probably have code that deals with all of this at some point, but I
wouldn't expect it to be a newbie oriented HOWTO code example.

> Or, examples of the PRU talking to things on the i2c or SPI buses.
>
> Has anyone gotten the PRU to control a quadcopter?

No to both of the above, AFAIK.

--
Charles Steinkuehler
cha...@steinkuehler.net

signature.asc

dthph...@gmail.com

unread,
Sep 30, 2013, 9:40:57 AM9/30/13
to beagl...@googlegroups.com
Is it possible to use these two PRU (pru0 and pru1) simultaneously to control fast GPIO in direct PRU - output mode? If yes, how can we do that with only r30?

Phong

Vào 04:12:39 UTC+7 Thứ năm, ngày 16 tháng năm năm 2013, Jason Kridner đã viết:

Gerald Coley

unread,
Sep 30, 2013, 9:47:21 AM9/30/13
to beagl...@googlegroups.com
PRU0_R30 and PRU1_R30. They are different.

Gerald


Brandon I

unread,
Sep 30, 2013, 12:53:54 PM9/30/13
to beagl...@googlegroups.com, dthph...@gmail.com
Yes it is. The PRUs are independent and have 1 tick access to their gpio pins, and something like 3 to 8 ticks (I can't remember exactly) access for regular gpio pins (they are in system memory, accessible by the pru).

You can find documentation, compiler, and examples here: https://github.com/beagleboard/am335x_pru_package

Vaibhav Bedia

unread,
Sep 30, 2013, 11:01:11 PM9/30/13
to beagl...@googlegroups.com, WenZhan Song, Dan Huang, Guoliang Xing, M Mahdi Moazzami, Lei Shi
On Thu, Aug 8, 2013 at 11:09 AM, Charles Steinkuehler
<cha...@steinkuehler.net> wrote:
> On 8/8/2013 9:53 AM, WenZhan Song wrote:
>> Thanks for prompt reply, Charles!
>>
>> This is a great news for us! We are newbies of BBB. Do you know any source
>> code for us to start with, including drivers of SPI and UART and power
>> management between PRU and main CPU?
>
> I don't off-hand know of any power management code examples other than
> the Linux kernel itself.
>

What Charles mentioned about the different states is correct (i wonder
why people
complain the TRM is impossible to parse ;)

Search for Starterware if you want really non-Linux stuff. You'll need
to probably
implement the wake from PRU functionality but i think that should be
not too hard
provided you know how to program the PRU. If you do decide to implement this
and get stuck somewhere feel free to ask me the low level PM details.

Regards,
Vaibhav

Charles Steinkuehler

unread,
Oct 2, 2013, 4:03:29 PM10/2/13
to beagl...@googlegroups.com, dthph...@gmail.com
On 9/30/2013 8:40 AM, dthph...@gmail.com wrote:
> Is it possible to use these two PRU (pru0 and pru1) simultaneously to
> control fast GPIO in direct PRU - output mode? If yes, how can we do that
> with only r30?

Each PRU has it's own r30, which drives the direct outputs (assuming you
have the pinmux setup properly). You can only drive a limited number of
the BeagleBone header pins using PRU direct I/O, and a lot of the pins
are shared with the LCD/HDMI interface.

--
Charles Steinkuehler
cha...@steinkuehler.net

signature.asc

Brandon I

unread,
Oct 2, 2013, 7:16:53 PM10/2/13
to beagleboard
> and a lot of the pins are shared with the LCD/HDMI interface.

Which can be made available by disabling the hdmi framer by adding the following to uEnv.txt on the fat32 partition:
capemgr.disable_partno=BB-BONELT-HDMI,BB-BONELT-HDMIN


Nicola Farina

unread,
Oct 10, 2013, 12:27:10 PM10/10/13
to beagl...@googlegroups.com
Thanks Jason for the links and all the others for their further questions and suggestions.

I'm a BBB new user and I think that PRUs really set the BBB apart from most of other boards.

I'm looking forward doing things with them as well.


Cheers,
    N.F.

u.pel...@srett.com

unread,
Oct 22, 2013, 11:23:11 AM10/22/13
to beagl...@googlegroups.com, Mark A. Yoder
Hi,

Thanks for these informations.

But I would like to use the PRU to get data from a fast ADC connected by SPI. I get that there is no example of SPI connection but is it possible ? 
It seems that the PRU can only access to UART, CFG, eCAP interfaces. Am I right ?

Thanks.

Ugo

Christopher Hopwood

unread,
Jan 21, 2014, 8:34:31 PM1/21/14
to beagl...@googlegroups.com, dthph...@gmail.com
Where can I find the correct pinmux settings for the PRU as well as which pru gpio port maps to which header bin?  I don't see it on Derek Molloy's header table.

Charles Steinkuehler

unread,
Jan 21, 2014, 8:40:27 PM1/21/14
to beagl...@googlegroups.com, Christopher Hopwood, dthph...@gmail.com
On 01/21/14 19:34, Christopher Hopwood wrote:
> Where can I find the correct pinmux settings for the PRU as well as which
> pru gpio port maps to which header bin? I don't see it on Derek Molloy's
> header table.

The details are all in the TI manuals, or you can reference an excellent
compilation from various official sources on github:

https://github.com/selsinork/beaglebone-black-pinmux

--
Charles Steinkuehler
cha...@steinkuehler.net

Christopher Hopwood

unread,
Jan 21, 2014, 9:08:47 PM1/21/14
to beagl...@googlegroups.com, Christopher Hopwood, dthph...@gmail.com
I need to make sure I'm understanding correctly.  If I want to use PRU1's pin 8 as an input, should I use the address 0x8e0 or 0x0e0?  Should I set the mode to 0x26 to use input and enable the receiver?  Thanks for the help!

Brandon I

unread,
Jan 22, 2014, 1:54:57 AM1/22/14
to beagleboard, Christopher Hopwood, dthph...@gmail.com
In the pru, R31 is for input, so in that table you're looking for pin "pr1_pru1_pru_r31_8". That's on P8.27, which is used by the HDMI framer. If you *need* to use this pin, instructions on disabling the hdmi framer can be found by searching this group.

Of course you'll have to enable the receiver, otherwise the state of the pin couldn't be measured!

Also, here's a easier to digest table for the pru header pins: https://docs.google.com/spreadsheet/ccc?key=0As0aJokrBccAdGkxeHkyYW1qRHNQdm5yZDhPQlRNR2c#gid=0




--
For more options, visit http://beagleboard.org/discuss
---
You received this message because you are subscribed to a topic in the Google Groups "BeagleBoard" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/beagleboard/u28ytaoNenU/unsubscribe.
To unsubscribe from this group and all its topics, send an email to beagleboard...@googlegroups.com.

alexis.ma...@gmail.com

unread,
May 6, 2014, 10:29:47 AM5/6/14
to beagl...@googlegroups.com, Mark A. Yoder, u.pel...@srett.com

Hello,

I am also very interesting about this.

I need to complete a fast ADC / DAC with some numeric matrix calculation. I thought about using a BBB, and the PRUs seemed to be a very interesting point. The numeric part could be done using Xenomai.

Apparently the use of SPI with the PRUs is possible. So can I use SPI ADC / DAC with the PRU?

Could anyone be more precise on how to do it? Write SPI drivers for the PRU? 

If I was not clear enough, tell me :)

Thank you very much

brian larochelle

unread,
May 7, 2014, 9:37:52 AM5/7/14
to beagl...@googlegroups.com
We've seen talk of a closed beta C compiler for the PRU's.  I've seen that it could come out of closed beta any day now, and looking for it has become a daily routine.

I've found the below, which links to information/download of a c compiler for pru from TI.  Would anyone know if this is the same as the closed beta Jason has hinted at here and there?



On Wednesday, May 15, 2013 5:12:39 PM UTC-4, Jason Kridner wrote:

Christopher Hopwood

unread,
May 7, 2014, 9:47:43 AM5/7/14
to beagl...@googlegroups.com
It sounds legit to me. My team had access to the closed beta, but as my team's lead pru programmer, I decided not to use it because the calling convention I made up (in the absence of any standard for PRU) wasn't compatible with the compiler's.

Christopher Hopwood

unread,
May 7, 2014, 9:47:54 AM5/7/14
to beagl...@googlegroups.com

Christopher Hopwood

unread,
May 7, 2014, 9:47:56 AM5/7/14
to beagl...@googlegroups.com

Jason Kridner

unread,
May 7, 2014, 10:44:19 AM5/7/14
to beagl...@googlegroups.com
On Wed, May 7, 2014 at 9:37 AM, brian larochelle
<larochel...@gmail.com> wrote:
> We've seen talk of a closed beta C compiler for the PRU's. I've seen that
> it could come out of closed beta any day now, and looking for it has become
> a daily routine.
>
> I've found the below, which links to information/download of a c compiler
> for pru from TI. Would anyone know if this is the same as the closed beta
> Jason has hinted at here and there?
>
> http://www.element14.com/community/community/knode/single-board_computers/next-gen_beaglebone/blog/2014/04/30/bbb--pru-c-compiler

It is a slightly updated version from the one I've been providing in
beta. I've been waiting for a response to my request for a direct
download, rather than needing to download all of CCS, before I posted
something. Seems the cat is out of the bag!
> --
> For more options, visit http://beagleboard.org/discuss
> ---
> You received this message because you are subscribed to the Google Groups
> "BeagleBoard" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to beagleboard...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.

brian larochelle

unread,
May 7, 2014, 11:37:18 AM5/7/14
to beagl...@googlegroups.com

On Wednesday, May 7, 2014 10:44:19 AM UTC-4, Jason Kridner wrote:
>It is a slightly updated version from the one I've been providing in
>beta. I've been waiting for a response to my request for a direct
>download, rather than needing to download all of CCS, before I posted
>something. Seems the cat is out of the bag!

Very cool, thanks Jason.  Hopefully you get a response to the direct download request, that would be preferable over all of CCS.

William Hermans

unread,
May 7, 2014, 12:51:18 PM5/7/14
to beagl...@googlegroups.com
For me personally, it is not just preferable, it is a  requirement.  As I refuse to use CCS.


--

Mark Grosen

unread,
May 7, 2014, 2:09:58 PM5/7/14
to beagl...@googlegroups.com
After installing CCS with the PRU compiler, you can simply just use the compiler as a command-line compiler (like all the other TI compilers) and ignore the CCS IDE. The installer is only about 20MB download to start with and then it downloads the rest as needed. It's a quick install on Linux (YMMV on Windows).

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

Mark



Mark

William Hermans

unread,
May 7, 2014, 4:04:34 PM5/7/14
to beagl...@googlegroups.com
Mark, it is not CCS specifically that I have a problem with. I have a very strong aversion to having JRE on any of my Windows machines. So, if the tool is not made available as a separate native windows ( or perhaps *NIX ) binary, I probably wont even give it a second look.

Mark Grosen

unread,
May 7, 2014, 5:46:01 PM5/7/14
to beagl...@googlegroups.com
Well, install it, copy the PRU directory somewhere else and rm -rf the CCS directory - no more JRE. There is no dependency on the CCS IDE from the compilers.

Mark



Mark

Jason Kridner

unread,
May 21, 2014, 7:59:45 AM5/21/14
to beagl...@googlegroups.com
Direct download link: http://software-dl.ti.com/codegen/non-esd/downloads/beta.htm


Mark


To unsubscribe from this group and stop receiving emails from it, send an email to beagleboard+un

karlka...@gmail.com

unread,
May 27, 2014, 9:18:30 AM5/27/14
to beagl...@googlegroups.com, dthph...@gmail.com

Am Mittwoch, 2. Oktober 2013 22:03:29 UTC+2 schrieb Charles Steinkuehler:

Each PRU has it's own r30, which drives the direct outputs (assuming you
have the pinmux setup properly).  You can only drive a limited number of
the BeagleBone header pins using PRU direct I/O, and a lot of the pins
are shared with the LCD/HDMI interface.


I afraid this is the part I didn't understand with PRU. Assumed Pin-Mux is correct for usage of plain GPIOs - is PRU able to access all of them? If not: which ones are accessible?

And I already stumbled upon this r30 thingy...how can I set/read GPIOs with it?

Thanks for helping me with these stupid questions!

Brandon I

unread,
May 27, 2014, 4:38:31 PM5/27/14
to beagleboard, Do Thanh Phong
You can access all regular gpio, but those will be slower than the one tick pru gpio access.

Check out the PRU documentation at https://github.com/beagleboard/am335x_pru_package , it explains how to use R30 and R31, section 5.2.2.


To control the regular gpio blocks, you would access them through their registers. You can find the gpio registers and their addresses in the processor manual at http://www.ti.com/lit/pdf/SPRUH73 , section 2.1 for addresses of gpio blocks, and section 25 for offsets of the different gpio registers for each block.



--
For more options, visit http://beagleboard.org/discuss
---
You received this message because you are subscribed to a topic in the Google Groups "BeagleBoard" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/beagleboard/u28ytaoNenU/unsubscribe.
To unsubscribe from this group and all its topics, send an email to beagleboard...@googlegroups.com.

euerka

unread,
Jun 2, 2014, 12:21:07 AM6/2/14
to beagl...@googlegroups.com
Dear all,

As i understand it is impossible to implement PRU, ethercat slave on Beagleboard, since i refer to ( https://groups.google.com/forum/#!searchin/beagleboard/ethercat|sort:relevance/beagleboard/EiiZ4rwo9q0/ZvqUXIKAS28J ) and ( https://groups.google.com/forum/#!searchin/beagleboard/ethercat|sort:relevance/beagleboard/1_yqmvkguZY/y-mrwkY7IJsJ).

I am still wondering that is it possible to use PRU as ethercat or powerlink master on Beagleboard? Because in my opinion, i can purchase commercial motor driver such as yaskawa or panasonic as slave?

Any ideas?

Gerald Coley

unread,
Jun 2, 2014, 8:15:28 AM6/2/14
to beagl...@googlegroups.com
No. It is not possible.Signals are missing on the expansion headers to implement ether-cat.
It cannot be done.

Gerald



--
For more options, visit http://beagleboard.org/discuss
---
You received this message because you are subscribed to the Google Groups "BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email to beagleboard...@googlegroups.com.

euerka

unread,
Jun 3, 2014, 8:05:40 AM6/3/14
to beagl...@googlegroups.com
Dear Gerald,

Thanks for your reply. Sorry that i am not very clear about Signals are missing on the expansion headers? you means the signals suppose to link to Ethernet PHY, now link to expansion headers(P8,P9)? if so it means it possible rewire the signals? Because i saw this https://www.youtube.com/watch?v=M1LxQBjttWg , please take a look; it seems Sascha rewire it.

Even though it is impossible to implement this, may i know what signals i need if i want to implement etherCat Master by PRU on BBB, which signals are missing now? Any clues, documentations, links will be appreciated.

Thank very very much!

Gerald Coley

unread,
Jun 3, 2014, 9:05:51 AM6/3/14
to beagl...@googlegroups.com
That is all covered in the datasheet for the processor.


Gerald

Brandon I

unread,
Jun 3, 2014, 3:44:28 PM6/3/14
to beagleboard
And a quick google search "pru ethercat am335x" provides a nice overview: http://www.ti.com/lit/wp/spry187c/spry187c.pdf


You received this message because you are subscribed to a topic in the Google Groups "BeagleBoard" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/beagleboard/u28ytaoNenU/unsubscribe.
To unsubscribe from this group and all its topics, send an email to beagleboard...@googlegroups.com.
Message has been deleted

Brandon I

unread,
Aug 13, 2014, 9:58:04 PM8/13/14
to beagleboard
You have to enable the ocp master port (section 10.1.2)  to access main memory. Here's an explanation

And, the resulting code is (if you want to do it in the pru): 

// clear STANDBY_INIT bit in syscfg register so memory between pru <-> system can be accessed (enable ocp master)
LBCO r0, C4, 4, 4
CLR r0, r0, 4
SBCO r0, C4, 4, 4

See section 3.1.2 in the pru reference for limitations (accessing memory below main memory 0x00080000 requires enabling an offset, section 10.1.10).



On Wed, Aug 13, 2014 at 2:02 PM, rakesh.safir <rakesh...@gmail.com> wrote:

Hi,

I want to use the DCAN interface on PRU-ICSS to send/receive data present on DDR RAM at a fixed physical address. 

  • Address of DDR is 0x8000_0000 to 0x9000_0000(256MiB)
  • My buffer is present at 0x8FF0_0000 to 0x9000_0000 (1MiB)

 As soon as I access the hardware address 0x8FF0_0000 the PRU-ICSS goes into some faulty state and becomes unresponsive.

Is there some other way to access DDR from PRU-ICSS ?

Rakesh 

rakesh.safir

unread,
Aug 20, 2014, 4:51:11 AM8/20/14
to beagl...@googlegroups.com
Hi Brandon,

Appreciate your help. I was able to resolve the issue.

-Rakesh

woody stanford

unread,
Jan 30, 2017, 2:28:52 PM1/30/17
to BeagleBoard
This is gold, Jason. Thank you so much for sharing this with us. I personal was wondering what a lot of this stuff was.

Have to admit that I was somewhat unclear as to quite a few of these concepts, but I was especially encouraged when I read the term "industrial". It is good to know we have that level of strength in our little SBC's. The assurance is comforting.

woody stanford

unread,
Jan 30, 2017, 2:42:27 PM1/30/17
to BeagleBoard
Still I am a fan of my little K150 PIC programmer. I wish I could say that I soldered it myself however I pussed out this time and got a nice little jobby from Hong Kong or somewhere. Cased it myself. I can even carry it with me if I wanted to and its USB cable is just the right length.

My issue with PRU is this: Why would I learn yet another microcontroller language when I can just electrically load from hex file with my beloved K150 to a $1 PIC?

Rick Mann

unread,
Jan 30, 2017, 7:56:13 PM1/30/17
to beagl...@googlegroups.com
Jason, the Nixie Cape and Camera Interface project links are 404.
> --
> For more options, visit http://beagleboard.org/discuss
> ---
> You received this message because you are subscribed to the Google Groups "BeagleBoard" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to beagleboard...@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/msgid/beagleboard/37abb769-2526-4420-bf06-d2a4af1beee9%40googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.


--
Rick Mann
rm...@latencyzero.com


Reply all
Reply to author
Forward
0 new messages