View previous topic :: View next topic |
Author |
Message |
Grégoo
Joined: 02 May 2011 Posts: 2 Location: Paris France
|
Mma7455l can't read SDO |
Posted: Mon May 02, 2011 11:35 am |
|
|
Hello everybody, i need your help for a problem that I can't resolve by myself.
I have a sensor accelerometer(slave) mma7455L linked in SPI to a pic16f877(master).
http://www.freescale.com/files/sensors/doc/data_sheet/MMA7455L.pdf
I have configured my pic in SPI as well. I see on the scope that i have the right signals:
I didn't represent on the scope the SDO signal because I ve got nothing, the sensor doesn't respond to the pic and here is the problem: why don't I have something on the SDO?
As the diagram of the SPI is pretty correct, I deduce that the problem comes from the configuration of the sensor.
Tell me if my steps are correct:
I send the address 0x16 in write mode
Then I send and chose my option of the "Mode Control Register" which i put in "write" too.
I send the address that i will need to read from the sensor. For example $06 which is the address register of value X, in mode write
I then send something to the sensor just to activate the clock and the transfer, in mode read.
The Pic is powered to 5v and delivers 5V on his I/O pins.
The sensor mma7455l can support 3.6V max. I made a mistake at the start of my project and I powered it on 5V, do you think it had burned the sensor or destroy something?
Now, i powered the sensor on 3.3 V but it still has data ( SDI ), clock (SPC ) and CS on 5V, does it fit?
Please, i really need help. _________________ Life is a dream which death finish |
|
|
PCM programmer
Joined: 06 Sep 2003 Posts: 21708
|
|
Posted: Mon May 02, 2011 1:39 pm |
|
|
Quote: |
The sensor mma7455l can support 3.6V max. I made a mistake at the
start of my project and I powered it on 5V, do you think it had burned the
sensor or destroy something?
|
It's possible that you destroyed the chip.
It would be much easier if you would get the "LF" version of the PIC.
Then you could run the PIC at +3.3v and also run the MMA7455L at +3.3v.
Then you wouldn't have any problems with level translation. Though,
for a 16F877, the maximum frequency at +3.3v is only 10 MHz. |
|
|
Ttelmah
Joined: 11 Mar 2010 Posts: 19513
|
|
Posted: Mon May 02, 2011 4:01 pm |
|
|
You are swapping SDI, and SDO on the devices?.
SDO on the PIC, needs to go to SPI on your other device, and vice versa.
Also, you need resistive dividers on the PIC SDO, ahd clock to feed the chip or you will risk damaging it (the signals you are showing are too large to feed to a 3.3v device, unless it specifically says it is '5v tolerant'. Then the return from the device _will_ need to be amplified to feed the PIC. The PIC SDI input, requires 4v, when the chip is running off a 5v supply, which a 3.3v device is not going to generate....
As PCM programmer says, much easier to use a PIC at 3.3v.
Best Wishes |
|
|
Grégoo
Joined: 02 May 2011 Posts: 2 Location: Paris France
|
|
Posted: Wed May 04, 2011 5:59 am |
|
|
Hi,
first, thank you for you responses.
I've put the SDO of the PIC to the SDI of the sensor mm7455l and vice versa, then i think there is no problem with the wiring.
I've test with resistances in series between the pic and the sensor but none of the value of resistance fits. The resistances modify the signals from square to triangle and it doesn't decrease enough the value of the signal with goes from 5V to 4V.
Do you have a simple method to go 3V from 5V please?
Thank you _________________ Life is a dream which death finish |
|
|
Geps
Joined: 05 Jul 2010 Posts: 129
|
|
Posted: Wed May 04, 2011 7:44 am |
|
|
Voltage divider made up of 1k8 and 3k3. |
|
|
|