1
0
Fork 0

cxp upconn fw: update tx_test to use the debug fifos

This commit is contained in:
morgan 2024-09-02 12:25:49 +08:00
parent b1fb90d456
commit 33fd84cadd
1 changed files with 64 additions and 42 deletions

View File

@ -53,65 +53,87 @@ pub fn tx_test(timer: &mut GlobalTimer) {
const D01_1: u16 = 0x21;
const D31_1: u16 = 0x3F;
const LEN: usize = 200;
let mut arr: [u16; LEN] = [0; LEN];
const LEN: usize = 4 * 100;
let mut pak_arr: [u8; LEN] = [0; LEN];
unsafe {
loop {
csr::cxp::upconn_clk_reset_write(1);
// csr::cxp::upconn_bitrate2x_enable_write(1);
csr::cxp::upconn_clk_reset_write(0);
loop {
// TODO: verify the char & word boundary thingy
for _ in 0..12 {
csr::cxp::upconn_symbol2_write(D31_1);
}
csr::cxp::upconn_tx_enable_write(1);
// timer.delay_us(1);
timer.delay_us(1);
for _ in 0..3 {
csr::cxp::upconn_symbol0_write(D01_1);
}
timer.delay_us(10);
for i in 0..LEN {
arr[i] = get_encoded();
// if csr::cxp::upconn_tx_busy_read() == 0 {
// break;
// };
}
let mut last_encoded: u16 = 0;
for i in 0..LEN {
if last_encoded != arr[i] {
match arr[i] {
0b1010111001 | 0b0101001001 => {
println!("D31.1")
}
0b0111011001 | 0b1000101001 => {
println!("D01.1")
}
0b1101010010 | 0b0010101101 => {
println!("D04.4")
}
0b0011111010 | 0b1100000101 => {
println!("K28.5 start idling...")
}
0b0011111001 | 0b1100000110 => {
println!("K28.1 idling...")
}
0b1010101010 => {
println!("D21.5 END idle")
}
_ => {
println!("encoded = {:#012b}", arr[i])
let mut i: usize = 0;
while csr::cxp::upconn_upconn_phy_debug_buf_dout_valid_read() == 1 {
pak_arr[i] = csr::cxp::upconn_upconn_phy_debug_buf_dout_pak_read();
// println!("received {:#04X}", pak_arr[i]);
csr::cxp::upconn_upconn_phy_debug_buf_inc_write(1);
i += 1;
if i == LEN {
break;
}
}
last_encoded = arr[i]
}
}
println!("-------------------------------------");
csr::cxp::upconn_tx_enable_write(0);
println!("arr = [");
for i in 0..(LEN / 4) {
println!(
" {:#04X} {:#04X} {:#04X} {:#04X},",
pak_arr[i * 4],
pak_arr[i * 4 + 1],
pak_arr[i * 4 + 2],
pak_arr[i * 4 + 3]
)
}
println!("]");
// for i in 0..LEN {
// arr[i] = get_encoded();
// // if csr::cxp::upconn_tx_busy_read() == 0 {
// // break;
// // };
// }
// let mut last_encoded: u16 = 0;
// for i in 0..LEN {
// if last_encoded != arr[i] {
// match arr[i] {
// 0b1010111001 | 0b0101001001 => {
// println!("D31.1")
// }
// 0b0111011001 | 0b1000101001 => {
// println!("D01.1")
// }
// 0b1101010010 | 0b0010101101 => {
// println!("D04.4")
// }
// 0b0011111010 | 0b1100000101 => {
// println!("K28.5 start idling...")
// }
// 0b0011111001 | 0b1100000110 => {
// println!("K28.1 idling...")
// }
// 0b1010101010 => {
// println!("D21.5 END idle")
// }
// _ => {
// println!("encoded = {:#012b}", arr[i])
// }
// }
// last_encoded = arr[i]
// }
// }
// println!("-------------------------------------");
timer.delay_us(2_000_000);
}
}