Programming NI-8451USB- I2C interface

Hello,
I have just installed the software for thew NI-8451 and am able to see it in MAX.  When I attempt to use Labview 7.1.1 to program it the VISA reference is blank, nor reference is available with the following error message:
Error -301706 occurred at NI-845x I2C Write Read.vi
Possible reason(s):
NI-845x:  The device reference is invalid. Verify that the supplied device reference contains a valid device name.
Is something else I need to do?
Thanx,
Karl

Hi shifti
The error message you got tells us that the First Byte sent to your I2C Bus, which is usually the Address Byte, got no Acknowledge by your Slave device. This can be related to the address you have specified or to an electrical problem with your connections.
To the address: The 24LC512, which is the device we are using in the example uses 7-bit addressing and the addressing scheme is 1010nnn, where nnn is the configuration of address lines A0, A1, and A2. This example assumed that these lines are connected to ground, so the default address is 0x50. Depending on how the A pins are connected(refer to the spec for your Slave) there is a addres range from 50 to 57 for EEPROMSs.
To the electrical: The example assumes that the Microchip 24LC512 EEPROM is connected as follows:
     NI 8451           Microchip 24LC512
Pin 31 (+5V)              Pin 8 (VCC)
Pin 32 (GND)              Pin 7 (WP)
Pin 30 (SCL)               Pin 6 (SCL)
Pin 29 (SDA)              Pin 5 (SDA)
Pin 32 (GND)              Pin 4 (VSS)
Pin 32 (GND)              Pin 3 (A2)
Pin 32 (GND)              Pin 2 (A1)
Pin 32 (GND)              Pin 1 (A0)
In addition, since the I2C SDA and SCL lines are open-drain, they must be externally pulled up to +5 V by connecting a 2.2k or 4.7k resistor between SCL and +5V (pins 30/31) and SDA and +5V (pins 29/31).
hope that helps
DirkW

Similar Messages

  • I2C interface (Sensor Data Acquisition) LabVIEW

    Hi all!
    Hope you are doing great!
    Well I have a question which is more about asking all you for an idea!
    The Situation:
    I have a circuit board which has an On-Off Valve, Digital pressure sensors (manufacturer AMD) and Humidity/Temperature Sensors (make- IST Hygrosens). On the board all the sensors communicate as I2C slave devices and all the data from the sensors is read into an I2C --> USB adapter chip which further connects to the PC via normal USB cable.
    Additional to this board, There is a Relay circuit with a simple 1-pole relay which controls an on-off valve on the above Circuit board. This valve is controlled totally separate via a coaxial cable from the relay directly to the Valve. But the relay board has a I2C interface and it also acts as a slave device. The relay board has the same I2C --> USB adapter chip.
    Both the Relay board and Sensor board connect via USB to the PC which I suppose is the Master device.
    The software code written for this arrangement and Sensor data acquisition is too old and there are a lot of problems coming. I have almost given up troubleshooting..
    I now want to translate this automation system onto LabVIEW. I searched the NI website where there is a DAC card called - USB8451 which supports I2C interface... I am a beginner in LabVIEW and cant really make sense out of how should I go about implementing this system on LabVIEW..
    If you guys can please help me out to atleast start (like what all hardware I would need etc..), to have a clear picture, it would be great help!!
    Looking forward to your inputs and Thank you so much in advance!
    Cheers!
    Pramit

    NI provides a LabVIEW API for the USB8451.  If you use the USB8451, you would use the provided API to write a program that controls the USB8451 and you would do all of the I2C communication in your program.  This would mean using functions / SubVI's to connect to the USB8451 and then perform I2C operations through it.
    If you use USB already on your device, then you would probably use NI-VISA as the driver and have to get / write your own API to talk to the specific device.  The manufacturer may have a LabVIEW (or other) API available for talking to the device that you could get.  If not, then you would have to understand the details of how to communicate with the device and then write an API using NI-VISA serial functions.  This would mean making NI-VISA be the assigned driver for the device and then using VISA Serial functions / SubVI's to send the messages and receive the responses.

  • Timing test of I2C interface chip

    I am new to Labview and meet some problems.I hope I can get your help,and any help is appreciated.I want to generate 2 controllable digital waveforms using PXI-6552 with HSDIO.In this way,I try to stimulates SDA and SCL regarding I2C serial protocol .And my problem :I dont know how to make SDA digital line generated by PXI-6552 delayed or forward in order to check the I2C interface chip's setup time is right or not according to I2C user mannual.
    Thank you very much.

    NI provides a LabVIEW API for the USB8451.  If you use the USB8451, you would use the provided API to write a program that controls the USB8451 and you would do all of the I2C communication in your program.  This would mean using functions / SubVI's to connect to the USB8451 and then perform I2C operations through it.
    If you use USB already on your device, then you would probably use NI-VISA as the driver and have to get / write your own API to talk to the specific device.  The manufacturer may have a LabVIEW (or other) API available for talking to the device that you could get.  If not, then you would have to understand the details of how to communicate with the device and then write an API using NI-VISA serial functions.  This would mean making NI-VISA be the assigned driver for the device and then using VISA Serial functions / SubVI's to send the messages and receive the responses.

  • Need sample programs for inbound & outbound interfaces in abap hr?

    hi friends
    i need sample programs for inbound & outbound interface programs in hr abap . any one send me pls
    thanks & regards
    deepurd

    &u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014
    *& Report ZPROG65_11 *
    &u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014
    REPORT zprog65_11 .
    TABLES : lfa1.
    TYPES : BEGIN OF ven ,
    lifnr LIKE rf02k-lifnr,
    bukrs LIKE rf02k-bukrs ,
    ekorg LIKE rf02k-ekorg,
    ktokk LIKE rf02k-ktokk,
    name1 LIKE lfa1-name1,
    sortl LIKE lfa1-sortl,
    land1 LIKE lfa1-land1,
    spars LIKE lfa1-spras,
    akont LIKE lfb1-akont,
    fdgrv LIKE lfb1-fdgrv,
    waers LIKE lfm1-waers,
    anred LIKE lfa1-anred ,
    END OF ven .
    DATA : t_ven TYPE TABLE OF ven WITH HEADER LINE ,
    t_bdc LIKE TABLE OF bdcdata WITH HEADER LINE .
    DATA : v_file TYPE string ,
    v_temp TYPE i ,
    v_lifnr(10) TYPE n,
    v_hdate LIKE sy-datum.
    DATA : c_tcode LIKE sy-tcode .u201Dvalue u2018XK01u2032.
    PARAMETERS : p_file(30) DEFAULT u2018c:\vendor1_11.txtu2019,
    p_group LIKE apqi-groupid.
    START-OF-SELECTION .
    MOVE p_file TO v_file .
    PERFORM file_upload TABLES t_ven USING v_file .
    v_hdate = sy-datum - 1.
    CALL FUNCTION u2018BDC_OPEN_GROUPu2019
    EXPORTING
    client = sy-mandt
    DEST = FILLER8
    group = p_group
    holddate = v_hdate
    keep = u2018Xu2019
    user = sy-uname
    IMPORTING
    QID =
    EXCEPTIONS
    client_invalid = 1
    destination_invalid = 2
    group_invalid = 3
    OTHERS = 11
    IF sy-subrc 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    LOOP AT t_ven .
    clear lfa1.
    v_temp = 0.
    MOVE t_ven-lifnr TO v_lifnr.
    SELECT SINGLE * FROM lfa1 INTO lfa1 WHERE lifnr =
    v_lifnr.
    IF sy-subrc = 0.
    WRITE :/ u2018foundu2019.
    v_temp = 1.
    else.
    write: / u2018not foundu2019.
    ENDIF.
    IF v_temp = 0.
    c_tcode = u2018xk01u2032.
    PERFORM fill_ddc_table .
    ELSEIF v_temp = 1.
    c_tcode = u2018xk02u2032.
    PERFORM fill_bdc_table .
    ENDIF.
    CALL FUNCTION u2018BDC_INSERTu2019
    EXPORTING
    tcode = c_tcode
    TABLES
    dynprotab = t_bdc
    EXCEPTIONS
    internal_error = 1
    OTHERS = 7.
    REFRESH t_bdc .
    ENDLOOP .
    CALL FUNCTION u2018BDC_CLOSE_GROUPu2019
    EXCEPTIONS
    not_open = 1
    queue_error = 2
    OTHERS = 3.
    &u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014
    *& Form file_upload
    &u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014
    text
    u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014-
    u2013>P_T_VEN text
    u2013>P_V_FILE text
    u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014-
    FORM file_upload TABLES p_tven STRUCTURE t_ven
    USING p_vfile.
    CALL FUNCTION u2018GUI_UPLOADu2019
    EXPORTING
    filename = p_vfile
    filetype = u2018ASCu2019
    has_field_separator = u2018Xu2019
    IMPORTING
    FILELENGTH =
    HEADER =
    TABLES
    data_tab = p_tven
    EXCEPTIONS
    file_open_error = 1
    file_read_error = 2
    OTHERS = 17
    IF sy-subrc 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    ENDFORM. u201D file_upload
    &u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014
    *& Form FILL_DDC_TABLE
    &u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014
    text
    u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014-
    u2013> p1 text
    <u2013 p2 text
    u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014-
    FORM fill_ddc_table .
    SCREN 100
    t_bdc-program = u2018SAPMF02Ku2019.
    t_bdc-dynpro = u20180100u2032.
    t_bdc-dynbegin = u2018Xu2019.
    APPEND t_bdc. CLEAR t_bdc.
    t_bdc-fnam = u2018RF02K-LIFNRu2019.
    t_bdc-fval = t_ven-lifnr .
    APPEND t_bdc. CLEAR t_bdc.
    t_bdc-fnam = u2018RF02K-BUKRSu2019.
    t_bdc-fval = t_ven-bukrs.
    APPEND t_bdc. CLEAR t_bdc.
    t_bdc-fnam = u2018RF02K-EKORGu2019.
    t_bdc-fval = t_ven-ekorg.
    APPEND t_bdc. CLEAR t_bdc.
    t_bdc-fnam = u2018RF02K-KTOKKu2019.
    t_bdc-fval = t_ven-ktokk.
    APPEND t_bdc. CLEAR t_bdc.
    t_bdc-fnam = u2018BDC_OKCODEu2019.
    t_bdc-fval = u2018/00u2032.
    APPEND t_bdc. CLEAR t_bdc.
    110
    t_bdc-program = u2018SAPMF02Ku2019.
    t_bdc-dynpro = u20180110u2032.
    t_bdc-dynbegin = u2018Xu2019.
    APPEND t_bdc. CLEAR t_bdc.
    t_bdc-fnam = u2018LFA1-NAME1u2032.
    t_bdc-fval = t_ven-name1 .
    APPEND t_bdc. CLEAR t_bdc.
    t_bdc-fnam = u2018LFA1-SORTLu2019.
    t_bdc-fval = t_ven-sortl.
    APPEND t_bdc. CLEAR t_bdc.
    t_bdc-fnam = u2018LFA1-LAND1u2032.
    t_bdc-fval = t_ven-land1.
    APPEND t_bdc. CLEAR t_bdc.
    t_bdc-fnam = u2018LFA1-SPRASu2019.
    t_bdc-fval = t_ven-spars.
    APPEND t_bdc. CLEAR t_bdc.
    t_bdc-fnam = u2018BDC_OKCODEu2019.
    t_bdc-fval = u2018/00u2032.
    APPEND t_bdc. CLEAR t_bdc.
    120
    t_bdc-program = u2018SAPMF02Ku2019.
    t_bdc-dynpro = u20180120u2032.
    t_bdc-dynbegin = u2018Xu2019.
    APPEND t_bdc. CLEAR t_bdc.
    t_bdc-fnam = u2018BDC_OKCODEu2019.
    t_bdc-fval = u2018/00u2032.
    APPEND t_bdc. CLEAR t_bdc.
    130
    t_bdc-program = u2018SAPMF02Ku2019.
    t_bdc-dynpro = u20180130u2032.
    t_bdc-dynbegin = u2018Xu2019.
    APPEND t_bdc. CLEAR t_bdc.
    t_bdc-fnam = u2018BDC_OKCODEu2019.
    t_bdc-fval = u2018=ENTRu2019.
    APPEND t_bdc. CLEAR t_bdc.
    210
    t_bdc-program = u2018SAPMF02Ku2019.
    t_bdc-dynpro = u20180210u2032.
    t_bdc-dynbegin = u2018Xu2019.
    APPEND t_bdc. CLEAR t_bdc.
    t_bdc-fnam = u2018LFB1-AKONTu2019.
    t_bdc-fval = t_ven-akont .
    APPEND t_bdc. CLEAR t_bdc.
    t_bdc-fnam = u2018LFB1-FDGRVu2019.
    t_bdc-fval = t_ven-fdgrv.
    APPEND t_bdc. CLEAR t_bdc.
    t_bdc-fnam = u2018BDC_OKCODEu2019.
    t_bdc-fval = u2018/00u2032.
    APPEND t_bdc. CLEAR t_bdc.
    215
    t_bdc-program = u2018SAPMF02Ku2019.
    t_bdc-dynpro = u20180215u2032.
    t_bdc-dynbegin = u2018Xu2019.
    APPEND t_bdc. CLEAR t_bdc.
    t_bdc-fnam = u2018BDC_OKCODEu2019.
    t_bdc-fval = u2018/00u2032.
    APPEND t_bdc. CLEAR t_bdc.
    220
    t_bdc-program = u2018SAPMF02Ku2019.
    t_bdc-dynpro = u20180220u2032.
    t_bdc-dynbegin = u2018Xu2019.
    APPEND t_bdc. CLEAR t_bdc.
    t_bdc-fnam = u2018BDC_OKCODEu2019.
    t_bdc-fval = u2018/00u2032.
    APPEND t_bdc. CLEAR t_bdc.
    310
    t_bdc-program = u2018SAPMF02Ku2019.
    t_bdc-dynpro = u20180310u2032.
    t_bdc-dynbegin = u2018Xu2019.
    APPEND t_bdc. CLEAR t_bdc.
    t_bdc-fnam = u2018LFM1-WAERSu2019.
    t_bdc-fval = t_ven-waers .
    APPEND t_bdc. CLEAR t_bdc.
    t_bdc-fnam = u2018BDC_OKCODEu2019.
    t_bdc-fval = u2018/00u2032.
    APPEND t_bdc. CLEAR t_bdc.
    320
    t_bdc-program = u2018SAPMF02Ku2019.
    t_bdc-dynpro = u20180320u2032.
    t_bdc-dynbegin = u2018Xu2019.
    APPEND t_bdc. CLEAR t_bdc.
    t_bdc-fnam = u2018BDC_OKCODEu2019.
    t_bdc-fval = u2018=UPDAu2019.
    APPEND t_bdc. CLEAR t_bdc.
    ENDFORM. u201CFILL_DDC_TABLE
    u201D FILL_DDC_TABLE
    &u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014
    *& Form FILL_BDC_TABLE
    &u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014
    text
    u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014-
    u2013> p1 text
    <u2013 p2 text
    u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014-
    FORM fill_bdc_table .
    SCREN 101
    t_bdc-program = u2018SAPMF02Ku2019.
    t_bdc-dynpro = u20180101u2032.
    t_bdc-dynbegin = u2018Xu2019.
    APPEND t_bdc. CLEAR t_bdc.
    t_bdc-fnam = u2018RF02K-LIFNRu2019.
    t_bdc-fval = t_ven-lifnr .
    APPEND t_bdc. CLEAR t_bdc.
    t_bdc-fnam = u2018RF02K-BUKRSu2019.
    t_bdc-fval = t_ven-bukrs.
    APPEND t_bdc. CLEAR t_bdc.
    t_bdc-fnam = u2018RF02K-EKORGu2019.
    t_bdc-fval = t_ven-ekorg.
    APPEND t_bdc. CLEAR t_bdc.
    t_bdc-fnam = u2018BDC_OKCODEu2019.
    t_bdc-fval = u2018/00u2032.
    APPEND t_bdc. CLEAR t_bdc.
    110
    t_bdc-program = u2018SAPMF02Ku2019.
    t_bdc-dynpro = u20180110u2032.
    t_bdc-dynbegin = u2018Xu2019.
    APPEND t_bdc. CLEAR t_bdc.
    t_bdc-fnam = u2018lfa1-anredu2019.
    t_bdc-fval = t_ven-anred .
    APPEND t_bdc. CLEAR t_bdc.
    t_bdc-fnam = u2018LFA1-NAME1u2032.
    t_bdc-fval = t_ven-name1 .
    APPEND t_bdc. CLEAR t_bdc.
    t_bdc-fnam = u2018LFA1-SORTLu2019.
    t_bdc-fval = t_ven-sortl.
    APPEND t_bdc. CLEAR t_bdc.
    t_bdc-fnam = u2018LFA1-LAND1u2032.
    t_bdc-fval = t_ven-land1.
    APPEND t_bdc. CLEAR t_bdc.
    t_bdc-fnam = u2018LFA1-SPRASu2019.
    t_bdc-fval = t_ven-spars.
    APPEND t_bdc. CLEAR t_bdc.
    t_bdc-fnam = u2018BDC_OKCODEu2019.
    t_bdc-fval = u2018/00u2032.
    APPEND t_bdc. CLEAR t_bdc.
    300
    t_bdc-program = u2018SAPMF02Ku2019.
    t_bdc-dynpro = u20180300u2032.
    t_bdc-dynbegin = u2018Xu2019.
    APPEND t_bdc. CLEAR t_bdc.
    t_bdc-fnam = u2018BDC_OKCODEu2019.
    t_bdc-fval = u2018=YESu2019.
    APPEND t_bdc. CLEAR t_bdc.
    ENDFORM. u201D FILL_BDC_TABLE
    Best Regards

  • I2C interface with 400kHz clock rate

    The max clock rate of NI's USB-8451 I2C interface is 250kHz.
    Please support my request for an interface with at least 400kHz.
    Has anybody used interfaces (with LV driver) from third-party suppliers with a clock rate of 400kHz or higher ?

    Hi Christian,
    Thank you for your suggestion.
    Because I don't use the LV FPGA Module, this is a too expensive solution !
    Best regards

  • Time-out limit of the 8451-I2C interface for hold-master condition

    I am working with Windows XP, Labview 8 and the USB-8451 I2C to USB interface-box.
    We intend to incorporate the USB-8451 into our product evaluation kits for a new sensor product.
    This evaluation kits should be used by our customers when they start working with our sensor products.
    The I2C-device is a digital sensor which generates a hold-master condition with difference length, depending on the sensor configuration.
    The hold-master is produced by the sensor after full transmassion of  start-bit, address, read-bit and ACK.
    After the hold master is suspended three bytes can be read by the master.
    If the hold-master is kept by the sensor for 25 ms or less I have no problems. When keeping it significantly longer the interface seems not to work properly anymore. I don't get a LabView Error-Message but the PC (Windows?) creates a 'ding-dong' sound very similar to disconnecting and connection a USB device. (the 8451???). My LabView-Program does not show sensor data after this.
    I can imagine that the hold-master is somehow too long for one element in the system.
    Is there any time-out period for hold-master defined for the USB-8451?
    How can I change it to higher values?
    Thank you very much for your support!
    Message Edited by UnexpectedLifeForm on 02-19-2007 09:48 AM

    Dear Member,
    That's right. If somebody encounter this problem again.
    You should contact your local NI branch that will install the new firmware
    version (that works with the last driver version)
    Best regards,
    Nick_CH

  • I2C interface with FPGA

    I'd like to use a 7842R FPGA card to configure and fetch the temperature from a LM75 temperature measurement IC.  Would there be code available for this online, or an example of a generic IC2 interface?  If I must code from scratch, how many hours should I budget?

    Have you seen this?
    http://sine.ni.com/nips/cds/view/p/lang/en/nid/209​123
    Adnan Zafar
    Certified LabVIEW Architect
    Coleman Technologies

  • Can I use one GBIP-Interface with two programs at the same time?

    Hi, I have one PCI-GBIP-controller with multiple instruments installed. Now I want to use these instruments with two differents programs at the same time.
    E.g.: program 1 uses GPIB0::1 and GPIB0::3
    and program 2 uses GPIB0::4 and GPIB0::7
    Is this possible??
    When I have tried to do this, I always got timeout errors..
    Thanx in advance.
    Philipp

    Hi,
    You shouldn't have any problems accessing different devices from different programs using the same interface. I even used the two VIs to communicate with the same device. Although not the best approach, VISA didn't return any errors.
    DiegoF.

  • Client ABAP Proxy : how to know which program is calling that service interface proxy

    Hi All,
    I have prepared some client proxy in ECC to communicate with PI.
    But, if I am not wrong, unlike server proxy which is written directly in the class Provider class in SPROXT transaction, in client proxy we write abap code to trigger proxy in SE38 .
    My question is : If I am in SPROXY and looking at any outbound SI, of which proxy is already generated, then how can in SE38  can I find which program is triggering that interface or proxy?

    Hi,
    check below thread for calling client proxy
    ECC outbound abap proxy (client) - Get ECC messageID from Protocol
    Regards,

  • I2C NXT block modifications / new block supporting RS485 interface port 4

    Hello
    1. Has anyone tried to modify the published I2C  read and write NXT blocks so that they can support the full 16 byte buffers available in the NXT firmware.  Many I2C interface applications require more than reading or writing one byte at a time.
    Even the Ultrasonic sensor has some multi byte parameters that could be accessed.
    It would appear that one only has to provide access to the buffer element contained within the lower level VI's in the current solution, but being a newbie   i have not been able to successfully make these buffers available on the main front panel.
    2. Has anyone created a NXT block that allows access to the RS485  port 4 hardware.  I see that no one had responded to an earlier post concerning this solution. I have seen  example  NXC code,  but i was looking for an NXT block implementation.
    3. Is there a tutorial that explains technique's for developing and debugging a NXT block for use on the NXT ?
    I have read thru the pdf  tech docs and have followed the examples, but i still find it difficult to understand how one goes about createing, testing, debugging the application before creating a block for the NXT.
    I am obviously missing some important points about Labview development for NXT.  I have a lot of experience developing embedded applications with C, but this is the first time i have tried to do anything with Labview especially with the Lego NXT as the Target device.
    I want to create NXT blocks for some homebrew sensors that i have created. I need full access to the I2C and RS485 support in the NXT.
    Can anyone suggest ways one should go about createing, debugging, this type of sensor interface block for the NXT.
    Thanks
    KC

    Yes: there are so many questions in your post that it is difficult to build an answer...
    I surely can not help you with the problem of multiple bytes.
    This is an answer to your question about rs485 in NXT-G:
    http://forums.nxtasy.org/index.php?s=&showtopic=1676&view=findpost&p=13530
    I don't know if you have already studied the i2c-related pages in:
    http://www.tau.ac.il/~stoledo/lego/
    this too is an example which can be study both for i2c interfacing and NXT-G block preparation:
    http://www.extremenxt.com/tda8444.html
    finally the block from mindsensors' PCF8574-NX kit could be useful (I mean: look at the vi's):
    http://www.mindsensors.com/index.php?module=documents&JAS_DocumentManager_op=viewDocument&JAS_Document_id=37
    and maybe among the blocks they've prepared for their sensors:
    http://www.mindsensors.com/index.php?module=pagemaster&PAGE_user_op=view_page&PAGE_id=45&MMN_position=12:12
    you could learn something.
    I agree with you that the tutorial about building NXT-G blocks with Labview is too short;
    some lessons can be learnt from the NXT-G blocks done by others (spying the vi's they wrote): you find many of them in nxtasy.org repository.
    Some advanced techniques are reported in
    http://nxtasy.org/2007/04/12/advanced-nxt-g-block-techniques-part-iv/
    and other pages of nxtasy.org.

  • How to isolate USB-8451, I2C/SPI Interface

    How can I protect the SCL & SDA lines on a USB-8451 from overvoltage?  The User Guide says:
    Caution Take special care with respect to the I2C SDA and SCL lines. To allow for external
    pull-ups, the circuit protection has been removed. Do not exceed the specified voltages for
    these signals. 
    I've had several instances where my UUT applied 28 volts to one/both of these lines and destroyed my I2C interface.  What can I do to protect these lines?
    Jim 
    Jim
    You're entirely bonkers. But I'll tell you a secret. All the best people are. ~ Alice

    There are several ways to this. I often use this simple circuit is based on zener diodes and the basic idea is quite similar to some commercial circuits also. The zener diode react quite fast to the surges. Zener diodes also have Low capacitance, so they are suited for high speed data lines. Unfortunately the surge capacity of those zener diodes is not very high, so that they can't handle the large spikes by themselves. That's why I have added 10 ohm resistors in series with data line before the zener diodes. This resistor limits the surge current to safer value for zener diode. The resistor must be always be between the data line and zener diode, so you must plug this circuit in the way where the computer goes to the connector on the right and the data line to the connector on the left. It is possible to make this circuit "bidirectional" just by adding also resistors to the computer side of the zener diodes, but this increased the series resistance in the data line.
    As mentioned there are more advanced circuits. Like active circuits. As an example the ADG467BR. Another option is Zener Transient voltage suppressors like the P6KE11CA. The P6KE11CA is bipolar so you only need 1 diode. But for a low voltage system like yours the zener solution may work fine. Remember to select a zener which can handle the current. If you 28 volt and use a 10 ohm resistor the current will not be higher than  28/10 ampere as a thumb rule. Probably lower.
    Message Edited by t06afre on 01-23-2009 03:41 PM
    Besides which, my opinion is that Express VIs Carthage must be destroyed deleted
    (Sorry no Labview "brag list" so far)
    Attachments:
    sample.PNG ‏2 KB

  • USB 8451 I2C acknowledge bit problem

    Hello,
    I'm in the middle of developing a I2C interface for a Xilinx Vertex-5 evaluation board.  This is a standard Philips I2C interface and I'm able to view the SCL and SDA lines and everything looks like it should be working but I'm not getting the acknowledge returned on the SDA line. 
    We have flags output on other pins and the acknowledge is working but it seem the SDA line isn't releasing the line to allow the acknowledge to go low. 
    I have tired the write program examples that came with 8.6 but they are for a serial PROM and I don't believe serial PROM return an acknowledge during programming.  I have also tried the example from the "Using I2C with LabVIEW and the USB-8451" and even though all the clocks and data looks good at the proper pins the acknowledge bit stay high. 
    The Discussion Forum has a similar question about acknowledge on a "smbus_Read_Block" (11-9-06) where "newbieLBW" ask about this for a block read.  I have tried that example and created it for a write but I'm still not getting a acknowledge bit to go low.
    I have attached my I2C development vi that is just to prove functionality. And the write routine is in case loop 2.
    Solved!
    Go to Solution.
    Attachments:
    I2C PortCofig_3.vi ‏70 KB

    Matt,
    Yes we have verified that the Xilinx is getting the information it needs and it returning a acknowledge pulse on the 9th SCL clock pulse.  I see this because we brought out the signal to a extra pin on the connector along with start and stop flags to make sure things inside the Xilinx were seeing the input properly.  When I run this program in a debug mode and highlight the data path the only errors I received is from the 'run script' function when the 8451 tried to write the address.
    Quick question for you.  I had mention a discussion forum question about the acknowledge bit on a smbus which is quite like the I2C interface.  In that
    example the read multi-byte function starts with a create script, script clock rate,script issue start, address+write, script write, then another script issue
    start, then it go on to another address+write.  My question is, it seem to me that nothing happens on the I2C SDA line until your data enters the 'run script'
    and I'm not seeing why they have two starts without a run.  I have tried to duplicate the multi read front section to see what it does but mine doesn't seem
    to run in as much as the SDA line never starts unless I have the run script in the read path.  My understanding is that the 'script start and address+write are
    just setup for the run script and without the run script nothing executes.  Yes or No?
    I want to thank you for taking the time to view this question I have.  The purpose for this interface is a future chip we are designing and we are using the I2C for reading and writing control registers within the chip.  I need to get the development platform working before I move onto the full interface and all the registers are 32 bits wide so I'm going to have to do all multi-byte reads and writes.
    I hope I have answer some of your question and will be looking forward to any information you can pass along.  I'm going to be out of the office until the 28th but I'll keep and eye on this forum from home where I'll be working on the full interface design but without the read and writes for now.
    Merry Christmas and the Happiest of New Years to you and your family!
    Gary Tyrna
    Tahoe RF Semiconductor, Inc.

  • Interfacing TETRIX/NXT HiTechnic Motor controller to myRIO

    I am an Adjunct instructor at a Junior College.
    We are implementing the Intelitek "Advanced Engineering with myRIO" curriculum.
    This is a brand new program and we have received the software, course materials
    and the myRIO controller but it will be close to mid term before we get the
    rest of the hardware based on the TETRIX Prime robotic platform and interface
    board.
    I have borrowed an older TETRIX kit from a local High School that was used with
    the LEGO NXT and it hast the HiTechnic Motor controller with the NXT connector
    interface.
    What I am wanting to do to get the student started (we just had the 2nd week
    meeting of a 14 week course) is take the motor controller with the NXT cable
    and interface it to the I2C interface on the myRIO.
    I had found online a German site that has a board that will directly connect
    the NXT sensors to a myRIO.
    I was wondering if you have any VIs that might help met get this working
    quickly, even the code details from the NXT version of Labview for the Tetrix
    controllers would probably help.
    Thanks in advance
    Scott Willis

    Hi Swillis,
    Unfortunately we do not have an specific library to communicate with the Tetrix controllers. The following link, contains information related to the NI LabVIEW Module for LEGO® MINDSTORMS®, but it is not supported and will not necessarily work fine for the myRIO programming.
    Regards
    Regards,
    S.Jimenez

  • Payables (Invoices ) Open interface

    Hi
    I am working on the interface very first time.
    what i understand is as follows:
    Data file--> Control file --> staging table --> pre-interface table-->interface table then run import program.
    Interface tables:
    AP_INVOICES_INTERFACE
    AP_INVOICE_LINES_INTERFACE
    Base Tables
    AP_INVOICES_ALL
    AP_PAYMENT_SCHEDULES_ALL
    AP_INVOICE_DISTRIBUTIONS_ALL
    API / Import program: Payables (Invoices ) Open interface
    I would like to create the invoices for vendors from different cities. So from data file how many control file I should create? and how many staging tables I should create? Can anybody please explain me how to proceed right from Data file--> Control file --> staging table --> pre-interface table-->interface table ???

    You can try your luck in the e-business suite forum

  • Receiving Open Interface related doubt

    Hi All,
    We are currently on Oracle Release 12.0.4 and need some help/information regards Receiving Open Interface tables : rcv_headers_interface & rcv_transactions_interface tables.
    We import the ASN which is being sent across from the Supplier via EDI directly into the Receiving Open Interface tables and then RTP program ( Receiving Transaction Processor ) program processes these into the base tables
    to complete the receipt process..
    Now for some reason or the other lets say because of EDI data issues or some other system issue with the RTP program , the Interface records end up in error status & the users have to manually complete the Receipt in Oracle Forms directly..
    Now this Interface data over a period in time keeps accumulating while the corresponding PO Document would already have been Received manually in Oracle.
    Because of this errored interface records the Interface tables keep growing in size in terms of data volume..
    Now is there a way script or a program which validates these interface records and purges these automatically based on some validations on its own..
    For Example : for a po if the records are stuck in the interface table but the po shipment has already been received in manually and in Closed Status, then it would automatically purge these records from interface tables.
    Could someone please help us with this as soon as possible with any suggestions or workarounds..
    Thanks

    Currently there is no purge program available to purge the records in RTI. Further the oracle support wont be able to provide a delete script to delete the records in RTI (The reason being, the records are populated by the customer and customers are the best persons to validate the records and delete them on their own).
    However, for ASN's
    You may write a query based on the RTI.po_distribution_id and then check, whether the corresponding po shipment\distribution is already received \ closed for receiving and then you may delete.

Maybe you are looking for

  • CLOB datatype to varchar

    Hi folks I have two columns which I am querying and they are both of datatype CLOB and which I bring my sql in my development environment these two columns are being displayed as nulls eventhough my sql works fine in Toad env. So, I'm pretty sure its

  • IPod Nano (first generation) battery is not holding charge

    When I use my Ipod after the battery is fully charged, it loses power very quickly. It doesn't seem to be holding the charge as well as it used to. Sometimes the battery meter will suddenly turn red the after turning ipod off and on again it goes bac

  • How do I know if my G4 is Airport or Airport Extreme-ready?

    Hi all, I have a few G4 (Grey and White). I don't remember their code names. I am trying to figure out if they accept Airport Extreme cards so I can network them. I don't see any info in the "System Profiler" (since there is no card installed). Can y

  • I logged in to my account and none of my songs showed up.  Help?

    I logged into my account but none of the songs I'd bought showed up. However, when I bought a new song that one did show up. I checked for purchases, but that didn't do anything. Any ideas?

  • Restoring messages not visible in Mail (but still visible using Finder)?

    While renaming and shuffling a couple of folders (mailboxes), one of the folder's contents entirely disappeared. At first, all the messages appeared to be there (with the subject and addresses in the top pane) while a note to the effect of "this mess