Jump to content

Ecu to pdm via can


Vasilis

Recommended Posts

9 hours ago, Vasili said:

Can I use the can bus to sent the auxiliary output signals to my power distribution module from my ecu instead of running individual cables for each channel?

Yes you can do this a couple of different ways.

One option is; In the ECU you still assign the function you want to an auxiliary output - lets say as an example we set up engine cooling fan on Aux output 1.  You dont physically connect any wires to aux 1.  You then use the "A1 (status)" parameter to send to your PDM over CAN.  The Aux status parameters are sent as follows:  0 = OFF,  1 = OFF,  2 = ON,  3 = FAULT.  You can use the Multiplier/divider/offset to scale that into numbers that your PDM wants.  For instance if your PDM wants 0=off, 1=on, then you use an offset of -1 to get that.

Heres an example:

zxPwtZh.png

 

An alternative option is very similar to option 1 but use a Virtual auxiliary rather than a real auxiliary - this allows you to keep the real auxiliary output free for doing other stuff (you only have a max of 8 virtual auxiliaries however).  Set up the virtual auxiliary just like you would set up the normal auxiliary, then send parameter "VA1 (Status)" to the PDM.  

Here is an example for a Virtual aux set to fuel pump. (note the ECU will still handle the normal fuel pump prime logic etc):

7GglPVq.png

Link to comment
Share on other sites

  • 2 months later...

I am also in the heat of installing my PMD / PMU and configuring Vipec i88 and Ecumaster PMU accordingly. I want to control second fuel pump based on TPS % position, i.e. 2nd fuel pump should turn on when TPS is above 25 %. How to configure multiplier / dividers / offsets that PMU would see TPS % as it should (from 0 % to 100 %). 

And some basic questions regarding the CAN: 

1) Should "Frame" include only one parameter, like fuel pump in picture above? 

2) Should every "Stream" to be configured under single ID or is ECU transmitting all the data under on ID?  

 

 

Link to comment
Share on other sites

1 hour ago, Sutkale said:

I am also in the heat of installing my PMD / PMU and configuring Vipec i88 and Ecumaster PMU accordingly. I want to control second fuel pump based on TPS % position, i.e. 2nd fuel pump should turn on when TPS is above 25 %. How to configure multiplier / dividers / offsets that PMU would see TPS % as it should (from 0 % to 100 %). 

You can use the test calculator to see how a parameter will be sent out and what affects the mult/div/offset has on it.  I will show an example for TP below.  You can see TP is stored in the ECU with a resolution of 0.1%, but since you cant actually send a decimal point over CAN bus it is normal to multiply or scale it to get it into whole numbers - in this case we multiply it by ten.  So 10.5%TP would be sent over can as a number of "105" and a TP of 100% would be sent as "1000" over CAN.  

You can see at the bottom of this test calculator screen that if I have a PCLink value of 100 (%TP), the CAN bus data will be 1000 (using the default mult=1, Div=1, Offset=0):

wE3FFaj.png

Since you probably dont need 0.1% resolution for what you are doing, then we could divide that parameter by 10 so you just send a basic 0-100 number out over CAN.  Again we can use the test calculator to make sure it works as expected, in this pic below I have now set the divider to 10, and you will now see my PCLink value of 100%TP is sent as 100 in the CAN data:

MHwD1EZ.png 

 

1 hour ago, Sutkale said:

1) Should "Frame" include only one parameter, like fuel pump in picture above? 

A frame is the 64 "bits" that you see laid out along the bottom of the CAN setup screen.  How many bits you need for each parameter varies.  For instance something like the Fuel pump status in the example above it can only be on or off (1 or 0), would only need one bit (this is the width).  Something like ECT that needs to go from say -30°C to +150°C would need 8bits (8 Bits can do a number up to 255).  In the motorsport world it is most common to just use 8 or 16 bits for most parameters.  In the example of 16bit parameters then you can send 4 per frame.

 

1 hour ago, Sutkale said:

Should every "Stream" to be configured under single ID or is ECU transmitting all the data under on ID? 

This one depends on how configurable the other devices on the bus are.  Using conventional compound messages our ECU's only allow you to send 1 frame per stream/ID.  Most basic CAN devices are limited to this type of message.  More configurable devices such as motorsport dash loggers (and I would expect your PDM) can use sequential messages which means you can send many frames using just 1 stream/ID.  This video may explain some of this better than me:  https://www.youtube.com/watch?v=2m34nQ4i6KQ

Im happy to help you set up the CAN if you give me a bit of a rundown on what you want to send/receive etc.

Link to comment
Share on other sites

12 minutes ago, Adamw said:

You can use the test calculator to see how a parameter will be sent out and what affects the mult/div/offset has on it.  I will show an example for TP below.  You can see TP is stored in the ECU with a resolution of 0.1%, but since you cant actually send a decimal point over CAN bus it is normal to multiply or scale it to get it into whole numbers - in this case we multiply it by ten.  So 10.5%TP would be sent over can as a number of "105" and a TP of 100% would be sent as "1000" over CAN.  

You can see at the bottom of this test calculator screen that if I have a PCLink value of 100 (%TP), the CAN bus data will be 1000 (using the default mult=1, Div=1, Offset=0):

wE3FFaj.png

Since you probably dont need 0.1% resolution for what you are doing, then we could divide that parameter by 10 so you just send a basic 0-100 number out over CAN.  Again we can use the test calculator to make sure it works as expected, in this pic below I have now set the divider to 10, and you will now see my PCLink value of 100%TP is sent as 100 in the CAN data:

MHwD1EZ.png 

 

A frame is the 64 "bits" that you see laid out along the bottom of the CAN setup screen.  How many bits you need for each parameter varies.  For instance something like the Fuel pump status in the example above it can only be on or off (1 or 0), would only need one bit (this is the width).  Something like ECT that needs to go from say -30°C to +150°C would need 8bits (8 Bits can do a number up to 255).  In the motorsport world it is most common to just use 8 or 16 bits for most parameters.  In the example of 16bit parameters then you can send 4 per frame.

 

This one depends on how configurable the other devices on the bus are.  Using conventional compound messages our ECU's only allow you to send 1 frame per stream/ID.  Most basic CAN devices are limited to this type of message.  More configurable devices such as motorsport dash loggers (and I would expect your PDM) can use sequential messages which means you can send many frames using just 1 stream/ID.  This video may explain some of this better than me:  https://www.youtube.com/watch?v=2m34nQ4i6KQ

Im happy to help you set up the CAN if you give me a bit of a rundown on what you want to send/receive etc.

Thank you Adam, appreciate! I´ll make the set up as adviced and be in contact if results are not as they should be. 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...