mirror of
https://github.com/lowobservable/coax.git
synced 2026-02-27 01:19:52 +00:00
testing rx_coax_bit_timer on TinyFPGA
This commit is contained in:
1
interface2/firmware/.gitignore
vendored
Normal file
1
interface2/firmware/.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
.pio
|
||||
6
interface2/firmware/platformio.ini
Normal file
6
interface2/firmware/platformio.ini
Normal file
@@ -0,0 +1,6 @@
|
||||
[env]
|
||||
framework = arduino
|
||||
|
||||
[env:teensy40]
|
||||
platform = teensy
|
||||
board = teensy40
|
||||
59
interface2/firmware/src/main.cpp
Normal file
59
interface2/firmware/src/main.cpp
Normal file
@@ -0,0 +1,59 @@
|
||||
#include <Arduino.h>
|
||||
|
||||
#define RESET_PIN 2 // FPGA #9
|
||||
|
||||
char buffer[20 + 1];
|
||||
int bufferIndex = 0;
|
||||
|
||||
void doReset()
|
||||
{
|
||||
Serial.println("RESET");
|
||||
|
||||
digitalWrite(RESET_PIN, HIGH);
|
||||
digitalWrite(RESET_PIN, LOW);
|
||||
|
||||
Serial.println("OK");
|
||||
}
|
||||
|
||||
void setup()
|
||||
{
|
||||
pinMode(RESET_PIN, OUTPUT);
|
||||
|
||||
digitalWrite(RESET_PIN, LOW);
|
||||
|
||||
Serial.begin(115200);
|
||||
|
||||
while (Serial.available() > 0) {
|
||||
Serial.read();
|
||||
}
|
||||
|
||||
Serial.println("OK");
|
||||
}
|
||||
|
||||
void loop()
|
||||
{
|
||||
if (Serial.available() > 0) {
|
||||
uint8_t byte = Serial.read();
|
||||
|
||||
if (byte == '\r') {
|
||||
buffer[bufferIndex] = 0;
|
||||
|
||||
Serial.println();
|
||||
|
||||
if (strncmp(buffer, "reset", 20) == 0) {
|
||||
doReset();
|
||||
} else {
|
||||
Serial.println("UNRECOGNIZED COMMAND");
|
||||
}
|
||||
|
||||
Serial.flush();
|
||||
|
||||
bufferIndex = 0;
|
||||
} else {
|
||||
buffer[bufferIndex++] = byte;
|
||||
}
|
||||
|
||||
Serial.write(byte);
|
||||
Serial.flush();
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
`default_nettype none
|
||||
|
||||
module coax_rx_bit_timer(
|
||||
module coax_rx_bit_timer (
|
||||
input clk,
|
||||
input rx,
|
||||
input reset,
|
||||
|
||||
@@ -2,32 +2,36 @@
|
||||
set_io --warn-no-port clk_16mhz B2
|
||||
|
||||
# Transmitter
|
||||
set_io --warn-no-port tx_active A2 # 1
|
||||
set_io --warn-no-port tx_inverted A1 # 2
|
||||
set_io --warn-no-port tx_delay B1 # 3
|
||||
#set_io --warn-no-port tx_active A2 # 1
|
||||
#set_io --warn-no-port tx_inverted A1 # 2
|
||||
#set_io --warn-no-port tx_delay B1 # 3
|
||||
|
||||
set_io --warn-no-port tx_load D2 # 6
|
||||
set_io --warn-no-port tx_full D1 # 7
|
||||
#set_io --warn-no-port tx_load D2 # 6
|
||||
#set_io --warn-no-port tx_full D1 # 7
|
||||
|
||||
# Receiver
|
||||
set_io --warn-no-port rx C2 # 4
|
||||
|
||||
set_io --warn-no-port rx_enable E1 # 9
|
||||
set_io --warn-no-port rx_active G2 # 10
|
||||
set_io --warn-no-port rx_data_available H1 # 11
|
||||
set_io --warn-no-port rx_data_read J1 # 12
|
||||
set_io --warn-no-port reset E1 # 9
|
||||
set_io --warn-no-port sample G2 # 10
|
||||
set_io --warn-no-port synchronized H1 # 11
|
||||
|
||||
#set_io --warn-no-port rx_enable E1 # 9
|
||||
#set_io --warn-no-port rx_active G2 # 10
|
||||
#set_io --warn-no-port rx_data_available H1 # 11
|
||||
#set_io --warn-no-port rx_data_read J1 # 12
|
||||
|
||||
# Shared data bus
|
||||
set_io --warn-no-port data[9] B6 # 23
|
||||
set_io --warn-no-port data[8] A7
|
||||
set_io --warn-no-port data[7] B7
|
||||
set_io --warn-no-port data[6] A8
|
||||
set_io --warn-no-port data[5] B8
|
||||
set_io --warn-no-port data[4] A9
|
||||
set_io --warn-no-port data[3] C9
|
||||
set_io --warn-no-port data[2] D8
|
||||
set_io --warn-no-port data[1] D9
|
||||
set_io --warn-no-port data[0] H9 # 14
|
||||
#set_io --warn-no-port data[9] B6 # 23
|
||||
#set_io --warn-no-port data[8] A7
|
||||
#set_io --warn-no-port data[7] B7
|
||||
#set_io --warn-no-port data[6] A8
|
||||
#set_io --warn-no-port data[5] B8
|
||||
#set_io --warn-no-port data[4] A9
|
||||
#set_io --warn-no-port data[3] C9
|
||||
#set_io --warn-no-port data[2] D8
|
||||
#set_io --warn-no-port data[1] D9
|
||||
#set_io --warn-no-port data[0] H9 # 14
|
||||
|
||||
set_io --warn-no-port debug H2 # 13
|
||||
|
||||
|
||||
@@ -9,6 +9,7 @@ module top (
|
||||
input reset,
|
||||
output sample,
|
||||
output synchronized,
|
||||
output debug,
|
||||
|
||||
output usb_pu
|
||||
);
|
||||
@@ -49,5 +50,7 @@ module top (
|
||||
.synchronized(synchronized)
|
||||
);
|
||||
|
||||
assign debug = rx_1;
|
||||
|
||||
assign usb_pu = 0;
|
||||
endmodule
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
`default_nettype none
|
||||
|
||||
module coax_rx_bit_timer_tb();
|
||||
module coax_rx_bit_timer_tb ();
|
||||
reg clk = 0;
|
||||
|
||||
initial begin
|
||||
@@ -61,11 +61,7 @@ module coax_rx_bit_timer_tb();
|
||||
input bit
|
||||
);
|
||||
begin
|
||||
rx = !bit;
|
||||
#8;
|
||||
rx = bit;
|
||||
#8;
|
||||
rx = 0;
|
||||
rx_bit_custom(bit, 8, 8);
|
||||
end
|
||||
endtask
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
$date
|
||||
Mon Jun 15 21:59:45 2020
|
||||
Sun Jun 21 18:50:14 2020
|
||||
$end
|
||||
$version
|
||||
Icarus Verilog
|
||||
@@ -121,6 +121,9 @@ $end
|
||||
1#
|
||||
#32
|
||||
0#
|
||||
b1000 0
|
||||
b1000 /
|
||||
1.
|
||||
1-
|
||||
#33
|
||||
1#
|
||||
@@ -183,6 +186,7 @@ b11 ,
|
||||
b1000 '
|
||||
b100 )
|
||||
1!
|
||||
0.
|
||||
0-
|
||||
1%
|
||||
#49
|
||||
@@ -264,6 +268,7 @@ b11 ,
|
||||
1#
|
||||
#64
|
||||
0#
|
||||
1.
|
||||
1-
|
||||
#65
|
||||
b0 '
|
||||
@@ -347,7 +352,6 @@ b11 ,
|
||||
b1000 '
|
||||
b100 )
|
||||
1!
|
||||
b1000 0
|
||||
b1001 /
|
||||
0.
|
||||
1%
|
||||
@@ -429,11 +433,11 @@ b11 ,
|
||||
0#
|
||||
#97
|
||||
1*
|
||||
b100 &
|
||||
b0 ,
|
||||
b1000 &
|
||||
b100 ,
|
||||
1#
|
||||
b101 '
|
||||
b1 )
|
||||
b0 '
|
||||
b101 )
|
||||
1!
|
||||
1%
|
||||
b111 0
|
||||
@@ -441,15 +445,44 @@ b110 /
|
||||
#98
|
||||
0#
|
||||
#99
|
||||
b1 '
|
||||
b110 )
|
||||
1!
|
||||
b0 &
|
||||
b101 ,
|
||||
1#
|
||||
#100
|
||||
0#
|
||||
#101
|
||||
b10 '
|
||||
b111 )
|
||||
1!
|
||||
b1 &
|
||||
b110 ,
|
||||
1#
|
||||
#102
|
||||
0#
|
||||
#103
|
||||
0*
|
||||
b100 &
|
||||
b0 ,
|
||||
1#
|
||||
b101 '
|
||||
b1 )
|
||||
1!
|
||||
0%
|
||||
#104
|
||||
0#
|
||||
#105
|
||||
b110 '
|
||||
b10 )
|
||||
1!
|
||||
b101 &
|
||||
b1 ,
|
||||
1#
|
||||
#100
|
||||
#106
|
||||
0#
|
||||
#101
|
||||
#107
|
||||
1"
|
||||
b111 '
|
||||
b11 )
|
||||
@@ -457,44 +490,15 @@ b11 )
|
||||
b110 &
|
||||
b10 ,
|
||||
1#
|
||||
#102
|
||||
#108
|
||||
0#
|
||||
#103
|
||||
0*
|
||||
b111 &
|
||||
b11 ,
|
||||
1#
|
||||
#109
|
||||
b1000 '
|
||||
b100 )
|
||||
1!
|
||||
0"
|
||||
0%
|
||||
#104
|
||||
0#
|
||||
#105
|
||||
b0 '
|
||||
b101 )
|
||||
1!
|
||||
b1000 &
|
||||
b100 ,
|
||||
1#
|
||||
#106
|
||||
0#
|
||||
#107
|
||||
b1 '
|
||||
b110 )
|
||||
1!
|
||||
b0 &
|
||||
b101 ,
|
||||
1#
|
||||
#108
|
||||
0#
|
||||
#109
|
||||
b10 '
|
||||
b111 )
|
||||
1!
|
||||
b1 &
|
||||
b110 ,
|
||||
b111 &
|
||||
b11 ,
|
||||
1#
|
||||
#110
|
||||
0#
|
||||
@@ -502,133 +506,141 @@ b1000 0
|
||||
b11000 /
|
||||
1.
|
||||
#111
|
||||
b0 '
|
||||
b101 )
|
||||
1!
|
||||
b1000 &
|
||||
b100 ,
|
||||
1#
|
||||
#112
|
||||
0#
|
||||
#113
|
||||
b1 '
|
||||
b110 )
|
||||
1!
|
||||
b0 &
|
||||
b101 ,
|
||||
1#
|
||||
#114
|
||||
0#
|
||||
#115
|
||||
b10 '
|
||||
b111 )
|
||||
1!
|
||||
b1 &
|
||||
b110 ,
|
||||
1#
|
||||
#116
|
||||
0#
|
||||
#117
|
||||
b11 '
|
||||
b1000 )
|
||||
1!
|
||||
b10 &
|
||||
b111 ,
|
||||
1#
|
||||
#112
|
||||
#118
|
||||
0#
|
||||
#113
|
||||
#119
|
||||
b100 '
|
||||
b1001 )
|
||||
1!
|
||||
b11 &
|
||||
b1000 ,
|
||||
1#
|
||||
#114
|
||||
#120
|
||||
0#
|
||||
#115
|
||||
#121
|
||||
b101 '
|
||||
b1010 )
|
||||
1!
|
||||
b100 &
|
||||
b1001 ,
|
||||
1#
|
||||
#116
|
||||
#122
|
||||
0#
|
||||
#117
|
||||
#123
|
||||
b110 '
|
||||
b10 (
|
||||
1!
|
||||
b101 &
|
||||
b1010 ,
|
||||
1#
|
||||
#118
|
||||
#124
|
||||
0#
|
||||
#119
|
||||
#125
|
||||
1"
|
||||
b111 '
|
||||
0!
|
||||
b110 &
|
||||
b10 +
|
||||
1#
|
||||
#120
|
||||
0#
|
||||
#121
|
||||
b1000 '
|
||||
0"
|
||||
b111 &
|
||||
1#
|
||||
#122
|
||||
0#
|
||||
#123
|
||||
b0 '
|
||||
b1000 &
|
||||
1#
|
||||
#124
|
||||
0#
|
||||
#125
|
||||
b1 '
|
||||
b0 &
|
||||
1#
|
||||
#126
|
||||
0#
|
||||
#127
|
||||
b10 '
|
||||
b1 &
|
||||
b1000 '
|
||||
0"
|
||||
b111 &
|
||||
1#
|
||||
#128
|
||||
0#
|
||||
#129
|
||||
b11 '
|
||||
b10 &
|
||||
b0 '
|
||||
b1000 &
|
||||
1#
|
||||
#130
|
||||
0#
|
||||
#131
|
||||
b100 '
|
||||
b11 &
|
||||
b1 '
|
||||
b0 &
|
||||
1#
|
||||
#132
|
||||
0#
|
||||
#133
|
||||
b101 '
|
||||
b100 &
|
||||
b10 '
|
||||
b1 &
|
||||
1#
|
||||
#134
|
||||
0#
|
||||
b101 '
|
||||
b10 '
|
||||
1%
|
||||
#135
|
||||
b110 '
|
||||
b11 '
|
||||
1*
|
||||
b101 &
|
||||
b10 &
|
||||
1#
|
||||
#136
|
||||
0#
|
||||
#137
|
||||
1"
|
||||
b111 '
|
||||
b110 &
|
||||
b100 '
|
||||
b11 &
|
||||
1#
|
||||
#138
|
||||
0#
|
||||
#139
|
||||
b1000 '
|
||||
0"
|
||||
b111 &
|
||||
b101 '
|
||||
b100 &
|
||||
1#
|
||||
#140
|
||||
0#
|
||||
#141
|
||||
b0 '
|
||||
b1000 &
|
||||
b110 '
|
||||
b101 &
|
||||
1#
|
||||
#142
|
||||
0#
|
||||
b0 '
|
||||
b110 '
|
||||
1$
|
||||
0%
|
||||
#143
|
||||
b0 (
|
||||
0*
|
||||
b0 +
|
||||
b0 &
|
||||
b110 &
|
||||
1#
|
||||
#144
|
||||
0#
|
||||
b1000 /
|
||||
0$
|
||||
#145
|
||||
1#
|
||||
@@ -690,143 +702,129 @@ b11 ,
|
||||
1#
|
||||
#160
|
||||
0#
|
||||
b100 '
|
||||
b0 )
|
||||
b1000 '
|
||||
b100 )
|
||||
1!
|
||||
0%
|
||||
#161
|
||||
b101 '
|
||||
b1 )
|
||||
b0 '
|
||||
b101 )
|
||||
1!
|
||||
0*
|
||||
b100 &
|
||||
b0 ,
|
||||
b1000 &
|
||||
b100 ,
|
||||
1#
|
||||
#162
|
||||
0#
|
||||
#163
|
||||
b110 '
|
||||
b10 )
|
||||
1!
|
||||
b101 &
|
||||
b1 ,
|
||||
1#
|
||||
#164
|
||||
0#
|
||||
#165
|
||||
1"
|
||||
b111 '
|
||||
b11 )
|
||||
1!
|
||||
b110 &
|
||||
b10 ,
|
||||
1#
|
||||
#166
|
||||
0#
|
||||
#167
|
||||
b1000 '
|
||||
b100 )
|
||||
1!
|
||||
0"
|
||||
b111 &
|
||||
b11 ,
|
||||
1#
|
||||
#168
|
||||
0#
|
||||
#169
|
||||
b0 '
|
||||
b101 )
|
||||
1!
|
||||
b1000 &
|
||||
b100 ,
|
||||
1#
|
||||
#170
|
||||
0#
|
||||
#171
|
||||
b1 '
|
||||
b110 )
|
||||
1!
|
||||
b0 &
|
||||
b101 ,
|
||||
1#
|
||||
#172
|
||||
#164
|
||||
0#
|
||||
#173
|
||||
#165
|
||||
b10 '
|
||||
b111 )
|
||||
1!
|
||||
b1 &
|
||||
b110 ,
|
||||
1#
|
||||
#174
|
||||
#166
|
||||
0#
|
||||
#175
|
||||
#167
|
||||
b11 '
|
||||
b1000 )
|
||||
1!
|
||||
b10 &
|
||||
b111 ,
|
||||
1#
|
||||
#176
|
||||
#168
|
||||
0#
|
||||
#177
|
||||
#169
|
||||
b100 '
|
||||
b1001 )
|
||||
1!
|
||||
b11 &
|
||||
b1000 ,
|
||||
1#
|
||||
#178
|
||||
#170
|
||||
0#
|
||||
#179
|
||||
#171
|
||||
b101 '
|
||||
b1010 )
|
||||
1!
|
||||
b100 &
|
||||
b1001 ,
|
||||
1#
|
||||
#180
|
||||
#172
|
||||
0#
|
||||
#181
|
||||
#173
|
||||
b110 '
|
||||
b10 (
|
||||
1!
|
||||
b101 &
|
||||
b1010 ,
|
||||
1#
|
||||
#182
|
||||
#174
|
||||
0#
|
||||
#183
|
||||
#175
|
||||
1"
|
||||
b111 '
|
||||
0!
|
||||
b110 &
|
||||
b10 +
|
||||
1#
|
||||
#184
|
||||
#176
|
||||
0#
|
||||
#185
|
||||
#177
|
||||
b1000 '
|
||||
0"
|
||||
b111 &
|
||||
1#
|
||||
#178
|
||||
0#
|
||||
#179
|
||||
b0 '
|
||||
b1000 &
|
||||
1#
|
||||
#180
|
||||
0#
|
||||
#181
|
||||
b1 '
|
||||
b0 &
|
||||
1#
|
||||
#182
|
||||
0#
|
||||
#183
|
||||
b10 '
|
||||
b1 &
|
||||
1#
|
||||
#184
|
||||
0#
|
||||
#185
|
||||
b11 '
|
||||
b10 &
|
||||
1#
|
||||
#186
|
||||
0#
|
||||
#187
|
||||
b0 '
|
||||
b1000 &
|
||||
b100 '
|
||||
b11 &
|
||||
1#
|
||||
#188
|
||||
0#
|
||||
#189
|
||||
b1 '
|
||||
b0 &
|
||||
b101 '
|
||||
b100 &
|
||||
1#
|
||||
#190
|
||||
0#
|
||||
#191
|
||||
b10 '
|
||||
b1 &
|
||||
b110 '
|
||||
b101 &
|
||||
1#
|
||||
#192
|
||||
0#
|
||||
|
||||
Reference in New Issue
Block a user