Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

ncSetAttr.vi returns error for setting Transciver mode with USB8472 hardware

37 views
Skip to first unread message

JimNoel

unread,
Jul 24, 2008, 4:10:24 PM7/24/08
to
I am using a NI-USB 8472 (low speed CAN @ 33333kbps) device and am trying to set it up for the wakeup mode which states in the devices spec that it has this capability.  However, attached is the quick test code that returns and error when using the ncSetAttr.vi to change the transciver mode from normal to wakeup
 
The error returned from the ncSetAttr.vi is 0xBFF62104: The property ID, attribute ID, or operation code that you provided is invalid.  Solution: Read the function description and verify that you provide ad valid ID.
 
As far as I can see I have everything configured and set appropriately for it to work.  Anyone that could help out with why the hardware is not properly being configured for this mode would be appreciated.
 


ncSetAttr-example3.vi:
http://forums.ni.com/attachments/ni/30/3633/1/ncSetAttr-example3.vi

DirkW

unread,
Jul 25, 2008, 10:10:12 AM7/25/08
to
Your example VI uses the "Transmit Mode" property that is not supported for USB hardware. You should use the "Transceiver Mode" property to initiate a local wakeup. ;-)
DirkW

JimNoel

unread,
Jul 25, 2008, 11:40:10 AM7/25/08
to
Thanks for the overlook.  However, if I change it to Transciever Mode with a value of 2 for wakeup (or any value) I now get the following error when the ncSetAttr.vi runs:
Error -1074388987 occurred at NI-CAN Configure Network Interface Object (ncConfigCANNet.vi)
Possible reason(s):
NI-CAN:  (Hex 0xBFF62005) The value of one or more properties (attributes) is invalid. This error occurs for Set (one value bad) or Initialize/Config (one or more values bad).  Solution: Consult the Programmer Reference to verify the values of each property.
 
I looked at the help and the values allowed are 0-3 so not sure why it is generating an error?

Simran_K

unread,
Jul 25, 2008, 5:10:06 PM7/25/08
to
Hi Jim,
The CAN BaudRate control on the front panel is determining the baud rate for your application. I have modified your code and it is working now. Thank you,


ncSetAttr-example3Modified1.vi:
http://forums.ni.com/attachments/ni/30/3638/1/ncSetAttr-example3Modified1.vi

JimNoel

unread,
Jul 25, 2008, 5:40:11 PM7/25/08
to
That may have been generating that error and yes it does work as long as the value is set to 0.  However, if I try to set it to a value of 2 or 3 in your example I get the following error:
 
Possible reason(s):
NI-CAN:  (Hex 0xBFF6211E) You set a transceiver mode that is not supported by your CAN hardware. For example, Single-Wire modes are not supported for High-Speed or Low-Speed / Fault-Tolerant transceivers. Solutions: Consult the manual to determine the valid transceiver modes for your hardware.
 
 
I notice in MAX that my hardware is listed as Low-Speed/Fault Tolerant so that is why it is generating that error.  However, all documentation for the USB-8472 states that sleep mode/wakeup mode is supported for this device so why does it not allow it.  Can the type be changed from Low-Speed / Fault tolerant to  Single-Wire or is this a hardware component (i.e. transciever) inside the hardware. 
 
Also if this is not supported for this device then why does it state so in documentation (copied below)?  If not supported for this device, the documentation is very misleading!
 


CAN Interfaces

USB-847x CAN interfaces feature the industry-standard Philips SJA1000

CAN controller, which implements ISO 11898 CAN functionality. The

SJA1000 offers additional features to aid in system development,

including listen-only mode, sleep/wakeup mode, error counter access,

and self-reception (echo) mode. USB-847x CAN interfaces recognize

standard (11-bit) and extended (29-bit) arbitration IDs and are compatible

with J1939 networks.

 

DirkW

unread,
Jul 28, 2008, 3:10:07 PM7/28/08
to
Hi,
To set your  Low Speed/fault tolerant module to sleep just use the set attribute function with transceiver mode "sleep" (1). From there you have two ways to wakeup the transceiver again. The Local wakeup would be the set attribute function call with transceiver mode "normal" (0). The remote wakeup would be a transmitted frame from any other connected CAN node.
See the function help for the transceiver mode property for more information.
DirkW
0 new messages