SPI Accelerometer

Forum for problems or queries regarding Flowcode Comms Components. Eg LIN, I2C, SPI, RS232, CAN, IrDA etc

Moderators: Benj, Mods

Post Reply
Alex@Honda
Posts: 4
Joined: Thu Oct 23, 2008 9:59 am
Contact:

SPI Accelerometer

Post by Alex@Honda »

I am looking at interfacing a digital three axis accelerometer to a PIC, is there any chance of generating a custom component for this application?

The device i am looking at using is:

3 axis LIS3LV02DQ accelerometer from ST Micro

Any help people can give is greatly appreciated.

Alex

User avatar
Steve
Matrix Staff
Posts: 3424
Joined: Tue Jan 03, 2006 3:59 pm
Has thanked: 114 times
Been thanked: 422 times
Contact:

Re: SPI Accelerometer

Post by Steve »

You can use the "Custom" component to generate the necessary C functions to interface with the device.

Alex@Honda
Posts: 4
Joined: Thu Oct 23, 2008 9:59 am
Contact:

Re: SPI Accelerometer

Post by Alex@Honda »

Yeah i'm aware of the ability to do it that way but as a mechanical designer i'm not confident that i'd be able to do it and make it work, or not within some reasonable time frame anyway.

I know it is cheeky but I was hoping someone had done something similar or would be prepared to offer me help with setting it up as a new component.

User avatar
Steve
Matrix Staff
Posts: 3424
Joined: Tue Jan 03, 2006 3:59 pm
Has thanked: 114 times
Been thanked: 422 times
Contact:

Re: SPI Accelerometer

Post by Steve »

That device is an SPI device, so you could use the SPI component in Flowcode to make your job easier.

User avatar
Benj
Matrix Staff
Posts: 15312
Joined: Mon Oct 16, 2006 10:48 am
Location: Matrix TS Ltd
Has thanked: 4803 times
Been thanked: 4314 times
Contact:

Re: SPI Accelerometer

Post by Benj »

Hello Alex

I am looking at using one of these modules (or a very similar module) in one of my current projects. I will keep you informed as to my progress as I will probably make a custom code file to drive the device. Currently I am having problems simply getting the devices onto a circuit board so I can talk to them. As soon as I get this sorted I will begin on the drivers. I've just spotted a converter board that farnell sells with the sensor so maybe this could be an option to get the device soldered into place.

Alex@Honda
Posts: 4
Joined: Thu Oct 23, 2008 9:59 am
Contact:

Re: SPI Accelerometer

Post by Alex@Honda »

There are loads of people selling these accelerometers pre assembled onto a breakout boards, let me know if you need further details and i'll sort you out a few links and datasheets.

User avatar
Benj
Matrix Staff
Posts: 15312
Joined: Mon Oct 16, 2006 10:48 am
Location: Matrix TS Ltd
Has thanked: 4803 times
Been thanked: 4314 times
Contact:

Re: SPI Accelerometer

Post by Benj »

Hi Alex

Ok I spent a bit of time on the accelerometer component over the weekend and its now almost ready to go. Im going to test it out tonight and if it works ok then Ill release it tomorrow. It should allow you to use either the 4-wire SPI bus via the hardware SPI bus or the I2C bus via the hardware or bitbanged I2C bus depending on the way its configured. The component will also allow for interrupt driven acquisition as well as normal polling methods. Ive managed to get hold of a LIS3LV02DQ and also managed to solder it into a circuit correctly (fingers crossed) so testing should go ok as long as my code is correct. :P

User avatar
Benj
Matrix Staff
Posts: 15312
Joined: Mon Oct 16, 2006 10:48 am
Location: Matrix TS Ltd
Has thanked: 4803 times
Been thanked: 4314 times
Contact:

Re: SPI Accelerometer

Post by Benj »

Hello Alex

Ok Im having problems with getting my hardware up and running but I think that this is just down to my CNC circuit boards not quite being accurate enough for the SMT devices. I will pass you the driver that has been done so far. It is untested for the most part but it compiles and the code looks correct. Please will you give it a go and see how it behaives. I have now ordered some custom adapter boards so I should be able to confirm the code works as it should shortly.

Near the top of the code file you will see the following section of code.

Code: Select all

//ACCELEROMETER COMPONENT DEFINES
#define MX_ACCEL_BUS	0//%a			//0=SPI, 1=I2C
#define MX_DATA_RATE	3//%b			//0=40hz, 1=160hz, 2=640hz, 3=2560hz
#define MX_SCALE		1//%c			//0=+/-2G, 1=+/-6G
#define MX_ADDRESS		0x3A//%d		//Default address 0x3A

#define MX_INT_PIN		0//%e
#define MX_INT_TRIS		trisc//
#define MX_INT_PORT		portc//%f

#ifdef AMX_ACCEL_BUS == 0				//SPI COMPONENT DEFINES

	#define MX_EN_PIN 		1//%g
	#define MX_EN_TRIS		trisc//
	#define MX_EN_PORT		portc//%h

#else									//I2C COMPONENT DEFINES

	#define MX_HARDWARE  	1//%i		//0=Sw, 1=Hw
	#define MX_MI2C_BAUD 	60//%j		//400khz

	#ifdef MX_HARDWARE == 0

		#define MX_PORT		portd//%k
		#define MX_TRIS 	trisd//%l
		#define MX_SCL  	3//%m
		#define MX_SDA  	4//%n

	#endif

#endif
Change the definitions to suit your connection bus. If you have any queries about any of the options then let me know and I will let you know what that particular define does in the code.

To install the component simply copy the code file into your Flowcode V3/Component directory and use the custom component from within Flowcode.
Attachments
Custom_Code.c
(17.18 KiB) Downloaded 303 times

Post Reply