LabVIEW Embedded

cancel
Showing results for 
Search instead for 
Did you mean: 

Interfacing LM3S8962 with I2C GPS

Hi all,

I'm trying to interface My laminary Board with U-Blox NEO-5Q using an I2C connection.

I'm not able to recieve Data fromGPS module.

here is my VI, and the board connection:

 i2c.png

 

Sans titre.png

Thanks

0 Kudos
Message 1 of 10
(10,751 Views)

It seems you don't like UART anymore.
You forgot to specify the address. (It's hard to call someone without dialing a number : ).

Also, wire bytes to read input.

 

0 Kudos
Message 2 of 10
(10,732 Views)

 Hi Nic,


It seems you don't like UART anymore.

 

The UART is not for the GPS. I need the 2 UARTs, one for communication with PC (thru Bluetooth), the second to acquire data froman IMU.

 

 

 


You forgot to specify the address. (It's hard to call someone without dialing a number : ).

It's marked "Write Adress". As I'm reading, I did'nt wired it.

 

I will test you recommands and answer afer that.

Further question:  what represents "read data"? as it's not a string or a boolean but an array of integer, I don't really know how to exploit it.

 

 

0 Kudos
Message 3 of 10
(10,710 Views)

LabVIEW is very intuitive but it is recommended to become familiar with protocols before using them.
For example to access the data from your GPS, it must be addressed first (0x42, according to protocol specification), send a byte (so write input is not always empty) to access a register. The output byte array could be anything (e.g. currently available number of bytes in the message stream, for registers 0xFD/0xFE).

It appears you have an ineteresting project.

0 Kudos
Message 4 of 10
(10,705 Views)

 


It appears you have an ineteresting project.
Yes it is. My aim is to implement predictive control on UAV, but before that I will acquire data from IMU, GPS, Pressure sensor and Ultrasonic sensor.

 

 

According to the "protocol specification", I andersand that I will specify 0x42  as wright Adress,Am I correct?

But what to write?

I tried this but it doesn't work:

 

0 Kudos
Message 5 of 10
(10,681 Views)

I am hopping you veryfied yourself the address in the above link.

 

What to write: are you familiar with this image:

 uBlox DDC.PNG

(page 16)

 

That predictive control will be done with Stellaris?

 

Regards

0 Kudos
Message 6 of 10
(10,662 Views)

Hi Nic,

I understand that firt I will specify the adress from what I will read, so i should wright 0xFF to 0x42. after that, I will specify FF as the read adress, and the reading can begin.

Am I correct?

0 Kudos
Message 7 of 10
(10,610 Views)

To read UBX or NMEA messages I would do something like this:
1. Select number of bytes register (write 0xFD)
2. Read the number of bytes available in buffer (read two bytes: high and low registers)
3. Select the buffer register (write 0xFF) - this could be skipped because the register counter is incremented automatically (0xFD+2 = 0xFF);
4. Read the reported number of available bytes

 

Notice that there will be no messages if the port is not configured (see "How to change between protocols" section)

0 Kudos
Message 8 of 10
(10,572 Views)

Hi,

Is the right way to do that?

 I2C.png

0 Kudos
Message 9 of 10
(10,566 Views)

Your snippet reads bytes without knowing if they are available or not.
To read the currently available bytes try this:

 

read uBlox messsages I2C.png

 

Again, this will not solve all your problems because there could be more protocol issues:
1.configure the port to send some messages by writing CFG-PRT and CFG-MSG packets (note that you have to handle acknowledge responses as well)
2.decide when you have to process messages (by polling, or using TIMEPULSE signal to trigger a GPIO interrupt, etc.)
3.all multibyte fields in UBX protocol are little endian (you cannot use simple Type Cast)
4.etc?

Are you planning to use NMEA or UBX?


Message 10 of 10
(10,555 Views)