[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Commit-gnuradio] r7467 - usrp2/trunk/firmware/lib
From: |
eb |
Subject: |
[Commit-gnuradio] r7467 - usrp2/trunk/firmware/lib |
Date: |
Fri, 18 Jan 2008 15:21:32 -0700 (MST) |
Author: eb
Date: 2008-01-18 15:21:31 -0700 (Fri, 18 Jan 2008)
New Revision: 7467
Modified:
usrp2/trunk/firmware/lib/ad9510.c
usrp2/trunk/firmware/lib/ad9510.h
usrp2/trunk/firmware/lib/ad9777.c
usrp2/trunk/firmware/lib/u2_init.c
Log:
Implemented and tested register readback from AD9510 and AD9777.
Modified: usrp2/trunk/firmware/lib/ad9510.c
===================================================================
--- usrp2/trunk/firmware/lib/ad9510.c 2008-01-18 21:40:10 UTC (rev 7466)
+++ usrp2/trunk/firmware/lib/ad9510.c 2008-01-18 22:21:31 UTC (rev 7467)
@@ -20,19 +20,23 @@
#include "spi.h"
#include <memory_map.h>
+#define RD (1 << 15)
+#define WR (0 << 15)
+
void
ad9510_write_reg(int regno, uint8_t value)
{
- uint32_t v = ((regno & 0xff) << 8) | (value & 0xff);
+ uint32_t inst = WR | (regno & 0xff);
+ uint32_t v = (inst << 8) | (value & 0xff);
spi_transact(SPI_TXONLY, SPI_SS_AD9510, v, 24, SPIF_PUSH_FALL);
}
-
-#if 0
int
ad9510_read_reg(int regno)
{
- // FIXME
- return 0;
+ uint32_t inst = RD | (regno & 0xff);
+ uint32_t v = (inst << 8) | 0;
+ uint32_t r = spi_transact(SPI_TXRX, SPI_SS_AD9510, v, 24,
+ SPIF_PUSH_FALL | SPIF_LATCH_FALL);
+ return r & 0xff;
}
-#endif
Modified: usrp2/trunk/firmware/lib/ad9510.h
===================================================================
--- usrp2/trunk/firmware/lib/ad9510.h 2008-01-18 21:40:10 UTC (rev 7466)
+++ usrp2/trunk/firmware/lib/ad9510.h 2008-01-18 22:21:31 UTC (rev 7467)
@@ -25,6 +25,6 @@
*/
void ad9510_write_reg(int regno, uint8_t value);
-// int ad9510_read_reg(int regno);
+int ad9510_read_reg(int regno);
#endif /* INCLUDED_AD9510_H */
Modified: usrp2/trunk/firmware/lib/ad9777.c
===================================================================
--- usrp2/trunk/firmware/lib/ad9777.c 2008-01-18 21:40:10 UTC (rev 7466)
+++ usrp2/trunk/firmware/lib/ad9777.c 2008-01-18 22:21:31 UTC (rev 7467)
@@ -40,6 +40,8 @@
ad9777_read_reg(int regno)
{
uint8_t instr = IB_RD | IB_XFER_1 | (regno & IB_ADDR_MASK);
- return spi_transact(SPI_TXRX, SPI_SS_AD9777,
- (instr << 8) | 0, 16, SPIF_PUSH_FALL);
+ uint32_t r = spi_transact(SPI_TXRX, SPI_SS_AD9777,
+ (instr << 8) | 0, 16,
+ SPIF_PUSH_FALL | SPIF_LATCH_RISE);
+ return r & 0xff;
}
Modified: usrp2/trunk/firmware/lib/u2_init.c
===================================================================
--- usrp2/trunk/firmware/lib/u2_init.c 2008-01-18 21:40:10 UTC (rev 7466)
+++ usrp2/trunk/firmware/lib/u2_init.c 2008-01-18 22:21:31 UTC (rev 7467)
@@ -28,6 +28,7 @@
#include "mdelay.h"
#include "ad9777.h"
#include "ad9510.h"
+//#include "nonstdio.h"
/*
* We ought to arrange for this to be called before main, but for now,
@@ -169,10 +170,18 @@
hal_set_leds(0x0, 0x3);
mdelay(100);
- //int r0 = ad9777_read_reg(r0);
- //if (r0 & R0_PLL_LOCKED)
- // hal_set_leds(0x2, 0x2);
+#if 0
+ // test register readback
+ int rr, vv;
+ vv = ad9777_read_reg(0);
+ printf("ad9777 reg[0] = 0x%x\n", vv);
+ for (rr = 0x04; rr <= 0x0d; rr++){
+ vv = ad9510_read_reg(rr);
+ printf("ad9510 reg[0x%x] = 0x%x\n", rr, vv);
+ }
+#endif
+
return true;
}
@@ -189,3 +198,4 @@
asm volatile ("or r0, r0, r0"); // FIXME CPU bug workaround
asm volatile ("or r0, r0, r0");
}
+
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Commit-gnuradio] r7467 - usrp2/trunk/firmware/lib,
eb <=