Hello Stuart, I've been using BBB to communicate with another Analog
Devices device (ADE7753) , and I can confirm you that it works.
Have you tried to do a loopback test before connecting the ADXL275?
Just use a wire in the BBB to join DI and DO in P9, and run this
program:


from Adafruit_BBIO.SPI import SPI

spi = SPI(0,0)
spi.mode=2

spi.msh=2000000
spi.open(0,0)

print spi.xfer2([32, 11, 110, 22, 220])
spi.close()

You should see 32,11,110,22,220 in your terminal as it's returned by
the spi instruction.

You don't need
spi.cshigh = low
because that's its default value.

If the loopback test works, then you can try with the device. I can
confirm you that using ADE7753 and adafruit python library I have need
some time to get it working, until I found out the trick.

Regards.
José L.



2014-03-30 18:10 GMT+02:00 Stuart Reynard <[email protected]>:
> I am working on a design project involving a BeagleBone Black and an ADXL375
> Accelerometer.
>
> Per the data sheet (attached), in order to enable the maximum sampling rate
> of the ADXL375, I need my BBB to communicate with the ADXL375 over SPI (I2C
> is not fast enough for this).
>
> I have used the Adafruit library for I2C just to test the functionality of
> the ADXL375, and I can confirm that the accel. does in fact work. However, I
> am unsure of how to even perform a simple read of the ADXL375 DEVID register
> using SPI. I have included my steps for how I think a read should be
> performed, but I suspect that this process is incorrect as I get no output.
>
> I am using the Adafruit BBIO library which I understand is just a python
> wrapper for the file spimodule.c. All of this is available here:
>
> https://github.com/adafruit/adafruit-beaglebone-io-python/
>
> Based on that code, I am not sure if I will need to hold CS low using one of
> the methods/variables of an SPI object or if the writebytes()/readbytes()
> methods take care of this for me. In other words, I don't know if I should
> be doing something like
>
> spi.cshigh = low
> spi.writebytes([list])
> spi.readbytes(numBytes)
>
> OR if I can just do
>
> spi.writebytes([list])
> spi.readbytes(numBytes)
>
> Process for reading from SPI (from python terminal):
>
> from Adafruit_BBIO.SPI import SPI
>
> #using SPI bus 0 on P9 of BBB, assuming i'm using dev0, not really sure how
> to determine this, but I have no other peripherals connected
> spi = SPI(0,0)
>
> #set desired frequency, 2MHz
> spi.msh = 2000000
>
> #per the ADXL375 datasheet, when performing a read, need to send a byte
> where bits 0-5 are address bits (DEVID register is 0x0), bit 6 is a multiple
> bytes bit (for reading/writing multiple bytes), and bit 7 is a read/write
> bit where read is '1' and write is '0'
>
> #so I use 0b10000000 or 0x80 and call writebytes
> spi.writebytes([0x80])
>
> From here I receive no output, even if I do spi.readbytes(1), I get [0]
> back.
>
> I have a pretty good understanding of Linux, Python, C, and the concept of
> SPI seems simple enough, but this is my first experience with a BBB. I feel
> like I am missing something simple like setting CS low, which I don't think
> is very clearly documented in the attributes for the SPI library.
>
> Here is some info about my BBB:
> lsb_release -a
> Distributor ID: Angstrom
> Description: Angstrom GNU/Linux v2012.12 (Core edition)
> Release: v2012.12
> Codename: Core edition
>
> uname -a
> Linux beaglebone 3.8.13 #1 SMP Wed Sep 4 09:09:32 CEST 2013 armv7l GNU/Linux
>
> I have also attached the breakout board user guide for the ADXL375. I would
> be happy to come back with any additional info.
>
> Thanks,
> Stuart
>
> --
> For more options, visit http://beagleboard.org/discuss
> ---
> You received this message because you are subscribed to the Google Groups
> "BeagleBoard" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/d/optout.

-- 
For more options, visit http://beagleboard.org/discuss
--- 
You received this message because you are subscribed to the Google Groups 
"BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to