[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Commit-gnuradio] r5528 - gnuradio/branches/developers/eb/u2f/firmware
From: |
eb |
Subject: |
[Commit-gnuradio] r5528 - gnuradio/branches/developers/eb/u2f/firmware |
Date: |
Wed, 23 May 2007 00:52:05 -0600 (MDT) |
Author: eb
Date: 2007-05-23 00:52:05 -0600 (Wed, 23 May 2007)
New Revision: 5528
Modified:
gnuradio/branches/developers/eb/u2f/firmware/memory_map.h
gnuradio/branches/developers/eb/u2f/firmware/u2_init.c
Log:
work-in-progress on u2 firmware
Modified: gnuradio/branches/developers/eb/u2f/firmware/memory_map.h
===================================================================
--- gnuradio/branches/developers/eb/u2f/firmware/memory_map.h 2007-05-23
06:21:00 UTC (rev 5527)
+++ gnuradio/branches/developers/eb/u2f/firmware/memory_map.h 2007-05-23
06:52:05 UTC (rev 5528)
@@ -49,9 +49,45 @@
////////////////////////////////////////////////
// I2C, Slave 3
+// See Wishbone I2C-Master Core Specification.
+
#define I2C_BASE 0x9000
+typedef struct {
+ volatile unsigned char prescaler_lo; // r/w
+ volatile unsigned char prescaler_hi; // r/w
+ volatile unsigned char ctrl; // r/w
+ volatile unsigned char data; // wr = transmit reg; rd =
receive reg
+ volatile unsigned char cmd_status; // wr = command reg; rd = status reg
+} i2c_regs_t;
+#define i2c_regs ((i2c_regs_regs_t *) I2C_BASE)
+
+#define I2C_CTRL_EN (1 << 7) // core enable
+#define I2C_CTRL_IE (1 << 6) // interrupt enable
+
+//
+// STA, STO, RD, WR, and IACK bits are cleared automatically
+//
+#define I2C_CMD_STA (1 << 7) // generate (repeated) start
condition
+#define I2C_CMD_STO (1 << 6) // generate stop condition
+#define I2C_CMD_RD (1 << 5) // read from slave
+#define I2C_CMD_WR (1 << 4) // write to slave
+#define I2C_CMD_ACK (1 << 3) // when a rcvr, send ACK
(ACK=0) or NACK (ACK=1)
+#define I2C_CMD_RSVD_2 (1 << 2) // reserved
+#define I2C_CMD_RSVD_1 (1 << 1) // reserved
+#define I2C_CMD_IACK (1 << 0) // set to clear pending interrupt
+
+#define I2C_ST_RXACK (1 << 7) // Received acknowledgement from slave
(1 = NAK, 0 = ACK)
+#define I2C_ST_BUSY (1 << 6) // 1 after START signal
detected; 0 after STOP signal detected
+#define I2C_ST_AL (1 << 5) // Arbitration lost. 1 when
core lost arbitration
+#define I2C_ST_RSVD_4 (1 << 4) // reserved
+#define I2C_ST_RSVD_3 (1 << 3) // reserved
+#define I2C_ST_RSVD_2 (1 << 2) // reserved
+#define I2C_ST_TIP (1 << 1) // Transfer-in-progress
+#define I2C_ST_IP (1 << 0) // Interrupt pending
+
+
////////////////////////////////////////////////
// GPIO, Slave 4
#define GPIO_BASE 0xA000
Modified: gnuradio/branches/developers/eb/u2f/firmware/u2_init.c
===================================================================
--- gnuradio/branches/developers/eb/u2f/firmware/u2_init.c 2007-05-23
06:21:00 UTC (rev 5527)
+++ gnuradio/branches/developers/eb/u2f/firmware/u2_init.c 2007-05-23
06:52:05 UTC (rev 5528)
@@ -5,8 +5,8 @@
#include "sim_io.h"
/*
- * We ought to arrange that this is called before main, but for now,
- * require that the user's main call u2_init as the first thing...
+ * We ought to arrange for this to be called before main, but for now,
+ * we require that the user's main call u2_init as the first thing...
*/
int
u2_init(void)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Commit-gnuradio] r5528 - gnuradio/branches/developers/eb/u2f/firmware,
eb <=