aboutsummaryrefslogtreecommitdiff
path: root/contrib
diff options
context:
space:
mode:
authorAhmed BOUDJELIDA <aboudjelida@nanoxplore.com>2023-10-16 11:05:59 +0200
committerAntonio Borneo <borneo.antonio@gmail.com>2023-11-18 11:24:40 +0000
commitbb2767721945fa3496f777aa95eaab0137795137 (patch)
tree184a437e0b897dfec9f608bfdf7c7cae87649dc6 /contrib
parenta69a4e23f4630fb21daea6f8264881c0546e340b (diff)
downloadriscv-openocd-bb2767721945fa3496f777aa95eaab0137795137.zip
riscv-openocd-bb2767721945fa3496f777aa95eaab0137795137.tar.gz
riscv-openocd-bb2767721945fa3496f777aa95eaab0137795137.tar.bz2
contrib/firmware: add 'send not acknowledged' function to the i2c bit-banging implementation
Change-Id: I60597ebc126da4acb00654513b96f52261253e12 Signed-off-by: Ahmed BOUDJELIDA <aboudjelida@nanoxplore.com> Reviewed-on: https://review.openocd.org/c/openocd/+/7811 Tested-by: jenkins Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
Diffstat (limited to 'contrib')
-rw-r--r--contrib/firmware/angie/c/include/i2c.h1
-rw-r--r--contrib/firmware/angie/c/src/i2c.c10
-rw-r--r--contrib/firmware/angie/c/src/usb.c3
3 files changed, 14 insertions, 0 deletions
diff --git a/contrib/firmware/angie/c/include/i2c.h b/contrib/firmware/angie/c/include/i2c.h
index 06185ef..d040492 100644
--- a/contrib/firmware/angie/c/include/i2c.h
+++ b/contrib/firmware/angie/c/include/i2c.h
@@ -19,6 +19,7 @@ void repeated_start(void);
void stop_cd(void);
void clock_cd(void);
void send_ack(void);
+void send_nack(void);
bool get_ack(void);
uint8_t get_address(uint8_t adr, uint8_t rdwr);
diff --git a/contrib/firmware/angie/c/src/i2c.c b/contrib/firmware/angie/c/src/i2c.c
index a7004bf..5384010 100644
--- a/contrib/firmware/angie/c/src/i2c.c
+++ b/contrib/firmware/angie/c/src/i2c.c
@@ -60,6 +60,16 @@ void send_ack(void)
delay_us(1);
}
+void send_nack(void)
+{
+ PIN_SDA = 1;
+ delay_us(1);
+ PIN_SCL = 1;
+ delay_us(1);
+ PIN_SCL = 0;
+ delay_us(1);
+}
+
bool get_ack(void)
{
PIN_SDA_DIR = 1;
diff --git a/contrib/firmware/angie/c/src/usb.c b/contrib/firmware/angie/c/src/usb.c
index 0a43ff9..1b7aa47 100644
--- a/contrib/firmware/angie/c/src/usb.c
+++ b/contrib/firmware/angie/c/src/usb.c
@@ -798,6 +798,9 @@ void i2c_recieve(void)
EP8FIFOBUF[count - 1] = receive_byte();
+ /* send Nack: */
+ send_nack();
+
/* stop */
stop_cd();