Protocol Programming Lab Preparations

1)

Connecting the CC1200 Evaluation Module Kit to the Beagle Bone Black

The wireless Transceiver CC1200 manufactured by Texas Instruments will be normally used in conjunction with a development kit for test purposes, described later. The CC1200 Evaluation Module Kit is shown in figure 1.

cc1200_evaluation_module_kit.jpgFig. 1: CC1200 Evaluation Module Kit

In our setup we are connecting the same evaluation module directly to the Beagle Bone Black.

Now, link the connector as shown in figure 2.

2019-04-11_08.32.02.jpgFig. 2: Connector from Beagle Bone Black to CC1200 Evaluation Module Kit

To avoid damage of devices, the colors shown must match. Also take care of the pins. They should be firmly fixed.

SPI Library

The PRU controls the SPI bus and offers a software user space interface for reading and writing to and from the SPI bus.

Install PRU devtools

In order to build and use the SPI library we need access to the development tools for the PRU. Since these aren't available anymore in the repositories, we have to compile and install them on our own.

To do so we first have to download the sources:

cd ~
git clone https://github.com/beagleboard/am335x_pru_package.git

Then we change directory and build the dev tools:

cd am335x_pru_package
make

After the compilation is done, it's time to install them:

sudo make install

Now we should have access to the PRU assembler pasm as well as the prussdrv library.

Build and install the SPI library

To generate the SPI library go to the spi directory of the Beaglebone archive.

cd ~/Beaglebone/spi

Now execute

cmake .
make
sudo make install

cmake will generate a makefile. Then make will produce the library and make install will install the library under /usr/local/lib. A header file will be stored under /usr/local/include.

In the last step run

sudo ldconfig

to make the dynamic linker aware of the newly created SPI library.

Test Setup

To test, if everything is working fine, go to the directory

cd ~/Beaglebone/SPI_test/built/

and enter

cmake ..

cmake will output a Makefile. Execute it by entering:

make

This will create a binary called SPIv1_test. The output of SPIv1_test will look like the following

./SPIv1_test
 
INFO:read Adr:0x1 Val:0x7
INFO: Status:IDLE
INFO:read adr:0xd val:0x14
INFO: REG DUMP 0x00-0x2E
INFO: read adr:0x0 val:0x6
INFO: read adr:0x1 val:0x7
INFO: read adr:0x2 val:0x30
INFO: read adr:0x3 val:0x3c
INFO: read adr:0x4 val:0x93
INFO: read adr:0x5 val:0xb
INFO: read adr:0x6 val:0x51
INFO: read adr:0x7 val:0xde
INFO: read adr:0x8 val:0xaa
INFO: read adr:0x9 val:0x3
INFO: read adr:0xa val:0x6
INFO: read adr:0xb val:0x3
INFO: read adr:0xc val:0x4c
INFO: read adr:0xd val:0x14
INFO: read adr:0xe val:0xda
INFO: read adr:0xf val:0xc4
INFO: read adr:0x10 val:0x94
INFO: read adr:0x11 val:0x46
INFO: read adr:0x12 val:0xd
INFO: read adr:0x13 val:0x43
INFO: read adr:0x14 val:0xa9
INFO: read adr:0x15 val:0x2a
INFO: read adr:0x16 val:0x36
INFO: read adr:0x17 val:0x0
INFO: read adr:0x18 val:0x0
INFO: read adr:0x19 val:0xb1
INFO: read adr:0x1a val:0x20
INFO: read adr:0x1b val:0x52
INFO: read adr:0x1c val:0xc3
INFO: read adr:0x1d val:0x80
INFO: read adr:0x1e val:0x0
INFO: read adr:0x1f val:0xb
INFO: read adr:0x20 val:0x2
INFO: read adr:0x21 val:0x8
INFO: read adr:0x22 val:0x21
INFO: read adr:0x23 val:0x0
INFO: read adr:0x24 val:0x0
INFO: read adr:0x25 val:0x0
INFO: read adr:0x26 val:0x4
INFO: read adr:0x27 val:0x3
INFO: read adr:0x28 val:0x0
INFO: read adr:0x29 val:0xf
INFO: read adr:0x2a val:0x0
INFO: read adr:0x2b val:0x7f
INFO: read adr:0x2c val:0x56
INFO: read adr:0x2d val:0xf
INFO: read adr:0x2e val:0x3
INFO:write adr:0x4 val:0xff
INFO:read adr:0x4 val:0xff
INFO: Status:IDLE
INFO: extended Register reads
INFO:read adr:0x0 val:0x0
INFO:read adr:0x1 val:0x20
INFO:read adr:0x2 val:0xb
INFO:read adr:0x3 val:0x0
INFO:read adr:0x4 val:0x0
INFO:read adr:0x5 val:0x8
INFO:read adr:0x6 val:0x1
INFO:read adr:0x7 val:0x0
INFO:read adr:0x8 val:0x0
INFO:read adr:0x9 val:0x0
INFO:read adr:0xa val:0x0
INFO:read adr:0xb val:0x0
INFO:read adr:0xc val:0x0
INFO:read adr:0xd val:0x0
INFO:read adr:0xe val:0x0
INFO:read adr:0xf val:0x2
INFO:read adr:0x10 val:0x5a
INFO:read adr:0x11 val:0x1a
INFO:read adr:0x12 val:0x8
INFO:read adr:0x13 val:0x5a
INFO:read adr:0x14 val:0x0
INFO:read adr:0x15 val:0x20
INFO:read adr:0x16 val:0x0
INFO:read adr:0x17 val:0x0
INFO:read adr:0x18 val:0x28
INFO:read adr:0x19 val:0x1
INFO:read adr:0x1a val:0x0
INFO:read adr:0x1b val:0x3
INFO:read adr:0x1c val:0xff
INFO:read adr:0x1d val:0x1f
INFO:read adr:0x1e val:0x0
INFO:read adr:0x1f val:0x51
INFO:read adr:0x20 val:0x2c
INFO:read adr:0x21 val:0x11
INFO:read adr:0x22 val:0x0
INFO:read adr:0x23 val:0x14
INFO:read adr:0x24 val:0x0
INFO:read adr:0x25 val:0x0
INFO:read adr:0x26 val:0x0
INFO:read adr:0x27 val:0x81
INFO:read adr:0x28 val:0x0
INFO:read adr:0x29 val:0x2
INFO:read adr:0x2a val:0x0
INFO:read adr:0x2b val:0x0
INFO:read adr:0x2c val:0x10
INFO:read adr:0x2d val:0x0
INFO:read adr:0x2e val:0x0
INFO:read adr:0x2f val:0x1
INFO:read adr:0x2f0a val:0x0
INFO:read after write 0xf0 in 0x0a adr:0x2f0a val:0xf0

If all of the register values are equal to zero, the SPI connection is not working, or wiring between the Beaglebone and the SPI pins is not correct or the CC1200 itself is damaged. In this case repair the broken part.

network_protocol_programming_lab/4_prepareppl.txt · Last modified: 2022/04/18 17:40 by fangenoorth
CC Attribution-Noncommercial-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0