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.
