Do some work with DRC8353 driver
This commit is contained in:
parent
6b8dc6f337
commit
f66c03cf2a
|
@ -2,4 +2,4 @@
|
||||||
*.bin
|
*.bin
|
||||||
*.json
|
*.json
|
||||||
*.rpt
|
*.rpt
|
||||||
*.log
|
*.log*
|
||||||
|
|
|
@ -13,7 +13,7 @@ ${FN}.json: ${FN}.v $(shell find library -type f -name '*.v')
|
||||||
./run_yosys.sh ${FN} | tee bldc.log
|
./run_yosys.sh ${FN} | tee bldc.log
|
||||||
|
|
||||||
${FN}.asc: ${FN}.json ${FN}.pcf
|
${FN}.asc: ${FN}.json ${FN}.pcf
|
||||||
nextpnr-ice40 ${NEXTPNR_OPTS} --pcf "${FN}.pcf" --json "${FN}.json" --asc "${FN}.asc"
|
nextpnr-ice40 ${NEXTPNR_OPTS} --pcf "${FN}.pcf" --json "${FN}.json" --asc "${FN}.asc" --freq 25 | tee bldc.log_pnr
|
||||||
|
|
||||||
${FN}.rpt: ${FN}.pcf ${FN}.asc
|
${FN}.rpt: ${FN}.pcf ${FN}.asc
|
||||||
icetime ${ICETIME_OPTS} -p "${FN}.pcf" -mtr "${FN}.rpt" "${FN}.asc"
|
icetime ${ICETIME_OPTS} -p "${FN}.pcf" -mtr "${FN}.rpt" "${FN}.asc"
|
||||||
|
|
|
@ -6,4 +6,12 @@ set_io adc_ss 27
|
||||||
set_io adc_si 26
|
set_io adc_si 26
|
||||||
set_io adc_so 25
|
set_io adc_so 25
|
||||||
|
|
||||||
|
set_io drv_fault_n 36
|
||||||
|
set_io drv_en 43
|
||||||
|
|
||||||
|
set_io drv_cs_n 44
|
||||||
|
set_io drv_sck 45
|
||||||
|
set_io drv_sdi 46
|
||||||
|
set_io drv_sdo 47
|
||||||
|
|
||||||
set_io clk 20
|
set_io clk 20
|
||||||
|
|
44
rtl/bldc.v
44
rtl/bldc.v
|
@ -6,8 +6,16 @@ module bldc (
|
||||||
output adc_ss,
|
output adc_ss,
|
||||||
output adc_sck,
|
output adc_sck,
|
||||||
input adc_so,
|
input adc_so,
|
||||||
output adc_si
|
output adc_si,
|
||||||
);
|
|
||||||
|
input drv_fault_n,
|
||||||
|
output drv_en,
|
||||||
|
|
||||||
|
output drv_cs_n,
|
||||||
|
output drv_sck,
|
||||||
|
output drv_sdi,
|
||||||
|
input drv_sdo
|
||||||
|
);
|
||||||
|
|
||||||
reg [7:0] dbg_buf = 0;
|
reg [7:0] dbg_buf = 0;
|
||||||
reg dbg_buf_vld = 0;
|
reg dbg_buf_vld = 0;
|
||||||
|
@ -27,6 +35,15 @@ wire [11:0] adc_val;
|
||||||
wire adc_vld;
|
wire adc_vld;
|
||||||
reg adc_ack = 0;
|
reg adc_ack = 0;
|
||||||
|
|
||||||
|
reg stop = 0;
|
||||||
|
reg coast_nbrake = 0;
|
||||||
|
reg clear_fault = 0;
|
||||||
|
|
||||||
|
wire drv_rdy;
|
||||||
|
wire fault_a;
|
||||||
|
wire fault_b;
|
||||||
|
wire fault_c;
|
||||||
|
|
||||||
adc_driver adc0(
|
adc_driver adc0(
|
||||||
.clk(clk),
|
.clk(clk),
|
||||||
.rst(1'b0),
|
.rst(1'b0),
|
||||||
|
@ -41,6 +58,29 @@ adc_driver adc0(
|
||||||
.ack(adc_ack)
|
.ack(adc_ack)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
drv8353r_driver driver0(
|
||||||
|
.clk(clk),
|
||||||
|
.rst(1'b0),
|
||||||
|
.en(1'b1),
|
||||||
|
|
||||||
|
.drv_fault_n(drv_fault_n),
|
||||||
|
.drv_en(drv_en),
|
||||||
|
|
||||||
|
.drv_cs_n(drv_cs_n),
|
||||||
|
.drv_sck(drv_sck),
|
||||||
|
.drv_sdi(drv_sdi),
|
||||||
|
.drv_sdo(drv_sdo),
|
||||||
|
|
||||||
|
.stop(stop),
|
||||||
|
.coast_nbrake(coast_nbrake),
|
||||||
|
.clear_fault(clear_fault),
|
||||||
|
|
||||||
|
.rdy(drv_rdy),
|
||||||
|
.fault_a(fault_a),
|
||||||
|
.fault_b(fault_b),
|
||||||
|
.fault_c(fault_c)
|
||||||
|
);
|
||||||
|
|
||||||
uart_tx_115200 dbg(
|
uart_tx_115200 dbg(
|
||||||
.clk_25mhz(clk),
|
.clk_25mhz(clk),
|
||||||
.rst(1'b0),
|
.rst(1'b0),
|
||||||
|
|
|
@ -138,6 +138,14 @@ assign cur_bit = 15 - count[6:3];
|
||||||
reg [2:0] cur_reg = 0;
|
reg [2:0] cur_reg = 0;
|
||||||
reg [2:0] cur_reg_next;
|
reg [2:0] cur_reg_next;
|
||||||
|
|
||||||
|
reg fault_a_ff = 0;
|
||||||
|
reg fault_b_ff = 0;
|
||||||
|
reg fault_c_ff = 0;
|
||||||
|
|
||||||
|
assign fault_a = fault_a_ff;
|
||||||
|
assign fault_b = fault_b_ff;
|
||||||
|
assign fault_c = fault_c_ff;
|
||||||
|
|
||||||
always @* begin
|
always @* begin
|
||||||
state_next = state;
|
state_next = state;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue