From 3ce320b1618b5c1a2232a6887c5fef780872171c Mon Sep 17 00:00:00 2001 From: Bernhard Tittelbach Date: Thu, 17 May 2012 06:14:29 +0000 Subject: debugging test attempts git-svn-id: https://svn.spreadspace.org/mur.sat@418 7de4ea59-55d0-425e-a1af-a3118ea81d4c --- software/hhd70dongle/c1101lib.c | 43 ++++++++++++++++++++++++++++++++++------- 1 file changed, 36 insertions(+), 7 deletions(-) (limited to 'software/hhd70dongle/c1101lib.c') diff --git a/software/hhd70dongle/c1101lib.c b/software/hhd70dongle/c1101lib.c index 26d5fb9..8f9f5a7 100644 --- a/software/hhd70dongle/c1101lib.c +++ b/software/hhd70dongle/c1101lib.c @@ -29,25 +29,43 @@ * along with mur.sat. If not, see . * */ -#include "avr/io.h" -#include "util/delay.h" +#include +#include #include "c1101lib.h" #include "spi.h" -//#include "usb_rawhid.h" +#include "usb_rawhid.h" +#include "util.h" /**** Helper Functions ****/ +#define SPIC1101_MAX_WAIT 1024 +unsigned int attempts = 0; char spi_c1101_exchange(char *data, int len) { + char sb; + uint8_t debug_sb[6]; char rbyte; spi_cs_enable(); - while (len--) + attempts = 0; + while (len-- > 0) { - while ( ! (SPIC1101_SB_CHIPRDY(spi_read_byte()))); + //~ while ( ! (SPIC1101_SB_CHIPRDY(spi_read_byte()))); spi_write_byte(*(data++)); + usb_rawhid_send((uint8_t*)"spi byte written",255); + do + { + usb_rawhid_send((uint8_t*)"wait chipready",255); + sb = spi_read_byte(); + debug_sprint_int16hex(debug_sb, sb); + usb_rawhid_send(debug_sb,255); + if (attempts++ > SPIC1101_MAX_WAIT) + return -1; + } while ( ! (SPIC1101_SB_CHIPRDY(sb))); + usb_rawhid_send((uint8_t*)"spi chipready",255); } rbyte = spi_read_byte(); + usb_rawhid_send((uint8_t*)"spi byte read",255); spi_cs_disable(); return rbyte; } @@ -133,8 +151,19 @@ int spi_c1101_write_txfifo(char *buffer, int len) /**** External Functions ****/ +char c1101_getVersion(void) +{ + return spi_c1101_read_register(SPIC1101_ADDR_VERSION); +} + +char c1101_getPartNum(void) +{ + return spi_c1101_read_register(SPIC1101_ADDR_PARTNUM); +} + + //max len: 64 bytes -void writeTXFifo(char *buffer, unsigned int len) +void c1101_writeTXFifo(char *buffer, unsigned int len) { //check TXBYTES.NUM_TXBYTES // never write more bytes than avaiblabe or doom ensues @@ -143,7 +172,7 @@ void writeTXFifo(char *buffer, unsigned int len) } //max returned: 64 bytes -int readRXFifo(char *buffer) +int c1101_readRXFifo(char *buffer) { //check RXBYTES.NUM_RXBYTES // never read more bytes than avaiblabe or we will read garbage -- cgit v1.2.3