From e26a9c56978e0f0840db8f73262dba46841e4ba2 Mon Sep 17 00:00:00 2001 From: Jake <jake.read@cba.mit.edu> Date: Sun, 10 Dec 2017 01:14:34 -0500 Subject: [PATCH] midpack test complete --- circuit/atsams70n-switch/atsams70n-switch.brd | 8 ++++--- circuit/atsams70n-switch/eagle.epf | 6 +++--- embedded/README.md | 19 +++++++++++++++++ .../.vs/atsams70-tinyrouter/v14/.atsuo | Bin 123392 -> 124928 bytes .../atsams70-tinyrouter.cproj | 3 +++ .../atsams70-tinyrouter/src/main.c | 19 +++++++++++++++-- .../atsams70-tinyrouter/src/node.h | 2 +- .../atsams70-tinyrouter/src/ports.h | 1 - .../atsams70-tinyrouter/src/testpins.h | 20 ++++++++++++++++++ .../atsams70-tinyrouter/src/tinyport.c | 9 ++++++-- .../atsams70-tinyrouter/src/tinyport.h | 3 ++- 11 files changed, 77 insertions(+), 13 deletions(-) create mode 100644 embedded/atsams70-tinyrouter/atsams70-tinyrouter/src/testpins.h diff --git a/circuit/atsams70n-switch/atsams70n-switch.brd b/circuit/atsams70n-switch/atsams70n-switch.brd index e23bdb8..1898b5e 100644 --- a/circuit/atsams70n-switch/atsams70n-switch.brd +++ b/circuit/atsams70n-switch/atsams70n-switch.brd @@ -6,7 +6,7 @@ <setting alwaysvectorfont="no"/> <setting verticaltext="up"/> </settings> -<grid distance="20" unitdist="mil" unit="mil" style="lines" multiple="1" display="yes" altdistance="5" altunitdist="mil" altunit="mil"/> +<grid distance="10" unitdist="mil" unit="mil" style="lines" multiple="1" display="yes" altdistance="5" altunitdist="mil" altunit="mil"/> <layers> <layer number="1" name="Top" color="4" fill="1" visible="yes" active="yes"/> <layer number="16" name="Bottom" color="1" fill="1" visible="yes" active="yes"/> @@ -205,8 +205,10 @@ cat</text> <text x="21.128990625" y="23.38705" size="0.8128" layer="21" font="vector" rot="R180">7</text> <text x="21.128990625" y="20.806409375" size="0.8128" layer="21" font="vector" rot="R180">5</text> <text x="21.128990625" y="18.22576875" size="0.8128" layer="21" font="vector" rot="R180">3</text> -<dimension x1="11.684" y1="63.5" x2="11.684" y2="14.224" x3="0" y3="38.862" textsize="1.778" layer="48"/> -<dimension x1="11.684" y1="63.5" x2="42.672" y2="63.5" x3="27.178" y3="70.104" textsize="1.778" layer="48"/> +<dimension x1="11.684" y1="63.754" x2="11.684" y2="14.732" x3="1.27" y3="39.243" textsize="1.778" layer="48"/> +<dimension x1="11.684" y1="63.754" x2="42.672" y2="63.754" x3="27.178" y3="69.342" textsize="1.778" layer="48"/> +<dimension x1="11.684" y1="63.754" x2="11.684" y2="66.802" x3="-1.778" y3="65.278" textsize="1.778" layer="48"/> +<dimension x1="11.684" y1="63.754" x2="8.636" y2="63.754" x3="10.16" y3="75.184" textsize="1.778" layer="48"/> </plain> <libraries> <library name="crystal" urn="urn:adsk.eagle:library:204"> diff --git a/circuit/atsams70n-switch/eagle.epf b/circuit/atsams70n-switch/eagle.epf index 06b42d0..22ab89b 100644 --- a/circuit/atsams70n-switch/eagle.epf +++ b/circuit/atsams70n-switch/eagle.epf @@ -36,7 +36,7 @@ Loc="0 0 1919 1039" State=1 Number=2 File="atsams70n-switch.sch" -View="-11.1752 -18.2176 175.417 87.9839" +View="62.9279 -21.864 249.52 84.3376" WireWidths=" 0.0762 0.1016 0.127 0.15 0.2 0.2032 0.254 0.3048 0.4064 0.508 0.6096 0.8128 1.016 1.27 2.54 0.1524" PadDiameters=" 0.254 0.3048 0.4064 0.6096 0.8128 1.016 1.27 1.4224 1.6764 1.778 1.9304 2.1844 2.54 3.81 6.4516 0" PadDrills=" 0.2 0.25 0.3 0.35 0.4 0.45 0.5 0.55 0.65 0.7 0.75 0.8 0.85 0.9 1 0.6" @@ -75,7 +75,7 @@ ArcDirection=0 AddLevel=2 PadsSameType=0 Layer=91 -Views=" 1: -11.1752 -18.2176 175.417 87.9839" +Views=" 1: 62.9279 -21.864 249.52 84.3376" Sheet="1" [Win_2] @@ -84,7 +84,7 @@ Loc="0 0 1919 1039" State=1 Number=1 File="atsams70n-switch.brd" -View="30.9666 26.5371 36.7107 32.3263" +View="16.7928 5.66944 52.3586 41.5147" WireWidths=" 0.0762 0.1016 0.127 0.15 0.2 0.254 0.4064 0.508 0.6096 0.8128 1.016 1.27 2.54 0.2032 0.1524 0.3048" PadDiameters=" 0.254 0.3048 0.4064 0.6096 0.8128 1.016 1.27 1.4224 1.6764 1.778 1.9304 2.1844 2.54 3.81 6.4516 0" PadDrills=" 0.2 0.25 0.3 0.35 0.4 0.45 0.5 0.55 0.65 0.7 0.75 0.8 0.85 0.9 1 0.6" diff --git a/embedded/README.md b/embedded/README.md index 643e82e..9f85828 100644 --- a/embedded/README.md +++ b/embedded/README.md @@ -4,6 +4,25 @@ // test at higher bitrates? // how to do big packet pushing? // better app layer - and make sure to clear space? + - towards timing measurement + +// status updates & lambda function + +// testing ... + - p1 -> hi when rx buffer non-empty + - p2 -> hi when packet handler has packet + - p3 -> hi when tx buffer non-empty + +# Results + +// do writeup + +In this screenshot, a falling edge on Channel 4 indicates an end of the main while() loop - so intervals between are packet processing and decision making. + +see captures saved ... 43us processing time, the rest is bitrate + +-> can we push bitrate by improving rx / tx interrupts? eliminate everything, try cranking past brgr 6 + [0:start][1:destination-msb:9][2:hopcount][3:source][4:#bytestotal][byte_5][byte_7]...[byte_n] 0-255 bytes diff --git a/embedded/atsams70-tinyrouter/.vs/atsams70-tinyrouter/v14/.atsuo b/embedded/atsams70-tinyrouter/.vs/atsams70-tinyrouter/v14/.atsuo index 2f3bfe9144f9f7d07078ae8e07fd188986711ea3..082ba7adaec048943c11ddd3c6d49720b54ec6ce 100644 GIT binary patch delta 3627 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 delta 3969 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 DmrPiO diff --git a/embedded/atsams70-tinyrouter/atsams70-tinyrouter/atsams70-tinyrouter.cproj b/embedded/atsams70-tinyrouter/atsams70-tinyrouter/atsams70-tinyrouter.cproj index 94e88c3..37e4667 100644 --- a/embedded/atsams70-tinyrouter/atsams70-tinyrouter/atsams70-tinyrouter.cproj +++ b/embedded/atsams70-tinyrouter/atsams70-tinyrouter/atsams70-tinyrouter.cproj @@ -508,6 +508,9 @@ <Compile Include="src\ringbuffer.h"> <SubType>compile</SubType> </Compile> + <Compile Include="src\testpins.h"> + <SubType>compile</SubType> + </Compile> <Compile Include="src\tinyport.c"> <SubType>compile</SubType> </Compile> diff --git a/embedded/atsams70-tinyrouter/atsams70-tinyrouter/src/main.c b/embedded/atsams70-tinyrouter/atsams70-tinyrouter/src/main.c index cb1c915..231e973 100644 --- a/embedded/atsams70-tinyrouter/atsams70-tinyrouter/src/main.c +++ b/embedded/atsams70-tinyrouter/atsams70-tinyrouter/src/main.c @@ -30,6 +30,7 @@ */ #include <asf.h> #include "pin.h" +#include "testpins.h" #include "tinyport.h" #include "packet_handling.h" #include "ports.h" @@ -187,6 +188,7 @@ int main (void){ tp4 = tinyport_new(UART4, PIOD, PERIPHERAL_C, PIO_PER_P18, PIO_PER_P19, &p4rbrx, &p4rbtx, &p4lr, &p4lg, &p4lb); tp_init(&tp1); + UART2->UART_BRGR = 81; // manual set to FTDI speed tp_init(&tp2); tp_init(&tp3); tp_init(&tp4); @@ -207,6 +209,19 @@ int main (void){ ports[2] = &tp3; ports[3] = &tp4; + // test indicators + tstrx = pin_new(PIOD, PIO_PER_P8); + pin_output(&tstrx); + pin_clear(&tstrx); + tstpckt = pin_new(PIOD, PIO_PER_P6); + pin_output(&tstpckt); + pin_clear(&tstpckt); + tstclk = pin_new(PIOD, PIO_PER_P2); + pin_output(&tstclk); + pin_clear(&tsttx); + tsttx = pin_new(PIOD, PIO_PER_P4); + pin_output(&tsttx); + pin_clear(&tsttx); myAddress = MYADDRESS; @@ -219,13 +234,12 @@ int main (void){ packet_t packetlooper; while(1){ - + pin_set(&tstclk); // loop over ports to run packet deciphering... allows quick handling of RXINT w/ simpler rxhandler // each returns one packet at a time for(int i = 0; i < 4; i++){ tp_packetparser(ports[i]); } - for(int i = 0; i < 4; i++){ // loop over ports and check for packets, add packets to packet buffer if(ports[i]->haspacket){ @@ -239,6 +253,7 @@ int main (void){ packet_clean(&packetlooper); } } + pin_clear(&tstclk); delay_cycles(1); // one clock tick to relax interrupt scheduler } // end while } // end main diff --git a/embedded/atsams70-tinyrouter/atsams70-tinyrouter/src/node.h b/embedded/atsams70-tinyrouter/atsams70-tinyrouter/src/node.h index dbe27ea..be97332 100644 --- a/embedded/atsams70-tinyrouter/atsams70-tinyrouter/src/node.h +++ b/embedded/atsams70-tinyrouter/atsams70-tinyrouter/src/node.h @@ -2,7 +2,7 @@ #define NODE_H_ #define MAX_HOPCOUNT 6 -#define MYADDRESS 1 +#define MYADDRESS 3 uint8_t LUT[1024][4]; uint8_t myAddress; diff --git a/embedded/atsams70-tinyrouter/atsams70-tinyrouter/src/ports.h b/embedded/atsams70-tinyrouter/atsams70-tinyrouter/src/ports.h index 1c976b7..43e30b7 100644 --- a/embedded/atsams70-tinyrouter/atsams70-tinyrouter/src/ports.h +++ b/embedded/atsams70-tinyrouter/atsams70-tinyrouter/src/ports.h @@ -48,5 +48,4 @@ pin_t p4lb; tinyport_t* ports[4]; - #endif /* PORTS_H_ */ \ No newline at end of file diff --git a/embedded/atsams70-tinyrouter/atsams70-tinyrouter/src/testpins.h b/embedded/atsams70-tinyrouter/atsams70-tinyrouter/src/testpins.h new file mode 100644 index 0000000..8266da0 --- /dev/null +++ b/embedded/atsams70-tinyrouter/atsams70-tinyrouter/src/testpins.h @@ -0,0 +1,20 @@ +/* + * testpins.h + * + * Created: 12/9/2017 11:34:09 PM + * Author: Jake + */ + + +#ifndef TESTPINS_H_ +#define TESTPINS_H_ + +#include "pin.h" + +// for testing +pin_t tstrx; // MKHeader P24, PD8 +pin_t tsttx; // MKHeader P20, PD4 +pin_t tstpckt; // MKHeader P22, PD6 +pin_t tstclk; // MKHeader P18, PD2 + +#endif /* TESTPINS_H_ */ \ No newline at end of file diff --git a/embedded/atsams70-tinyrouter/atsams70-tinyrouter/src/tinyport.c b/embedded/atsams70-tinyrouter/atsams70-tinyrouter/src/tinyport.c index 2e7086c..19e8e85 100644 --- a/embedded/atsams70-tinyrouter/atsams70-tinyrouter/src/tinyport.c +++ b/embedded/atsams70-tinyrouter/atsams70-tinyrouter/src/tinyport.c @@ -35,8 +35,9 @@ void tp_init(tinyport_t *tp){ // do abcdsr - a, b, c, d | 00, 01, 10, 11 // this is handled in global setup - tp->uart->UART_MR = UART_MR_BRSRCCK_PERIPH_CLK | UART_MR_CHMODE_NORMAL| UART_MR_PAR_NO | UART_MR_FILTER_DISABLED; - tp->uart->UART_BRGR = UART_BAUD_DIVIDER; + tp->uart->UART_MR = UART_MR_BRSRCCK_PERIPH_CLK | UART_MR_CHMODE_NORMAL | UART_MR_PAR_NO | UART_MR_FILTER_DISABLED; + tp->uart->UART_BRGR = UART_BAUD_DIVIDER; + tp->uart->UART_CR = UART_CR_TXEN | UART_CR_RXEN; tp->uart->UART_IER = UART_IER_RXRDY; @@ -66,6 +67,7 @@ void tp_rxhandler(tinyport_t *tp){ uint8_t data = tp->uart->UART_RHR; rb_putchar(tp->rbrx, data); pin_clear(tp->stlb); + pin_set(&tstrx); } void tp_packetparser(tinyport_t *tp){ @@ -107,6 +109,7 @@ void tp_packetparser(tinyport_t *tp){ tp->haspacket = TP_HAS_PACKET; // this data is final byte, we have packet, this will be last tick in loop tp->packetstate = TP_PACKETSTATE_OUTSIDE; // and we're outside again pin_set(tp->stlb); + pin_clear(&tstrx); } break; @@ -121,9 +124,11 @@ void tp_txhandler(tinyport_t *tp){ if(!rb_empty(tp->rbtx)){ tp->uart->UART_THR = rb_get(tp->rbtx); pin_clear(tp->stlg); + pin_set(&tsttx); } else { tp->uart->UART_IDR = UART_IER_TXRDY; // if nothing left to tx, turn isr off pin_set(tp->stlg); + pin_clear(&tsttx); // tricky, adding these increases transfer time... } //while(!(tp->uart->UART_SR & UART_SR_TXRDY)); // blocking } diff --git a/embedded/atsams70-tinyrouter/atsams70-tinyrouter/src/tinyport.h b/embedded/atsams70-tinyrouter/atsams70-tinyrouter/src/tinyport.h index 98809d3..9f51993 100644 --- a/embedded/atsams70-tinyrouter/atsams70-tinyrouter/src/tinyport.h +++ b/embedded/atsams70-tinyrouter/atsams70-tinyrouter/src/tinyport.h @@ -48,11 +48,12 @@ // packet delimiters #define TP_DELIMITER_START 255 -#define UART_BAUD_DIVIDER 81 // 977: 9600 baud, 81: 115200, 10: 921600 +#define UART_BAUD_DIVIDER 6 // 977: 9600 baud, 81: 115200, 10: 921600: newclock: 63: 115200 #define RINGBUFFER_SIZE 1024 // in bytes, or 4 full length packets, have 384KBytes total in system #include "asf.h" #include "pin.h" +#include "testpins.h" #include "ringbuffer.h" #include "packet.h" -- GitLab