Peripherals/I2C_driver: Uncommented code to check for device acknowledgment

This commit is contained in:
(Tim) Efthimis Kritikos 2023-12-09 00:53:52 +00:00
parent 94bc6eba39
commit 65dfd21ef0
3 changed files with 10 additions and 13 deletions

View File

@ -62,7 +62,7 @@ upload: boot_code/bios.stxt
fpga_sim: boot_code/bios.stxt
${Q}make ${MAKEOPTS} PRINT_PATH_PREFIX=system/ -C system fpga_sim
.PHONY: fpga
.PHONY: help
help:
@echo 'Simulation targets:'
@echo ' - No target will start a simulation with the default'

View File

@ -32,6 +32,7 @@ int main(int argc, char** argv) {
contextp->commandArgs(argc, argv);
system_state = new Vfpga_top{contextp};
system_state->user_button=1;
system_state->i2c_sda_in=0;
//system_state->reset=1;
tick();

View File

@ -19,9 +19,7 @@
module I2C_driver (
input wire clock,
/* verilator lint_off UNUSEDSIGNAL */
input wire SDA_input,
/* verilator lint_on UNUSEDSIGNAL */
output wire SDA_output,
output reg SDA_direction, //1:output 0:input
output reg SCL,
@ -119,13 +117,12 @@ always @(posedge clock) begin
end
6'b001110:begin
SCL<=1;
// if (SDA==1)begin
// led<=1;
// i2c_state<=6'b011111;
// end else begin
if (SDA_input==1)begin
i2c_state<=6'b111111; //TODO: Don't freeze the entire driver if a single error occurs!! (here and on the second ack as well)
end else begin
i2c_state<=6'b001111;
data_bit_counter<=0;
// end
end
end
/****** separator ********/
6'b001111:begin
@ -192,13 +189,12 @@ always @(posedge clock) begin
end
6'b011011:begin
SCL<=1;
// if (SDA==1)begin
// led<=1;
// i2c_state<=6'b011111;
// end else begin
if (SDA_input==1)begin
i2c_state<=6'b111111;
end else begin
i2c_state<=6'b011100;
SDA_direction<=1;
// end
end
end
/****** separator ********/
6'b011100:begin