diff --git a/circuit/README.md b/circuit/README.md index 029e68219e6491c8bbb9c8bb99cc96256b11b27d..6f3b4b06c3093b842fdb83ca40a614b0c05f09d5 100644 --- a/circuit/README.md +++ b/circuit/README.md @@ -499,7 +499,9 @@ int main (void) } ``` -OK, I finally got all ports to write to their TX lines. This after some confusing bitwise or-ing of registers +OK, I finally got all ports to write to their TX lines. This after some confusing bitwise or-ing of registers. + +I'm going to check that all of the lights are on OK pins, and then call this, do the updates and get the big batch of boards out to fab. ## Incremental @@ -516,6 +518,8 @@ OK, I finally got all ports to write to their TX lines. This after some confusin - *maybe* flip or double MK header for standoff momentary happiness? - LEDS are too bright - tag-connect w/ clips would be nice +- disconnect or solder jumper usb data lines +- definitely go for a reset button order - 1k 0805 diff --git a/circuit/images/all-leds-on.jpg b/circuit/images/all-leds-on.jpg new file mode 100644 index 0000000000000000000000000000000000000000..812a35ffd0e65bd0e7d66f86bcd927e35e9929b0 Binary files /dev/null and b/circuit/images/all-leds-on.jpg differ diff --git a/circuit/images/all-leds-on_tmp14349 b/circuit/images/all-leds-on_tmp14349 new file mode 100644 index 0000000000000000000000000000000000000000..812a35ffd0e65bd0e7d66f86bcd927e35e9929b0 Binary files /dev/null and b/circuit/images/all-leds-on_tmp14349 differ diff --git a/circuit/images/all-uart-lines.jpg b/circuit/images/all-uart-lines.jpg new file mode 100644 index 0000000000000000000000000000000000000000..21402b675f30b25a8b67c9eed6ac00e0396b7a4a Binary files /dev/null and b/circuit/images/all-uart-lines.jpg differ diff --git a/embedded/atsams70-tinyrouter/atsams70-tinyrouter/Debug/atsams70-tinyrouter.bin b/embedded/atsams70-tinyrouter/atsams70-tinyrouter/Debug/atsams70-tinyrouter.bin index 39ca720267b5e9a5163bbe99c800f863dfe88f41..7dde925de3b7221a076e129e6edd22a0e498bb19 100644 Binary files a/embedded/atsams70-tinyrouter/atsams70-tinyrouter/Debug/atsams70-tinyrouter.bin and b/embedded/atsams70-tinyrouter/atsams70-tinyrouter/Debug/atsams70-tinyrouter.bin differ diff --git a/embedded/atsams70-tinyrouter/atsams70-tinyrouter/Debug/src/main.o b/embedded/atsams70-tinyrouter/atsams70-tinyrouter/Debug/src/main.o index 5c8f2cde9356c16c882d35529f7adf4101e98628..343e0f5f64433b052c309a008c2fe09197717c4f 100644 Binary files a/embedded/atsams70-tinyrouter/atsams70-tinyrouter/Debug/src/main.o and b/embedded/atsams70-tinyrouter/atsams70-tinyrouter/Debug/src/main.o differ diff --git a/embedded/atsams70-tinyrouter/atsams70-tinyrouter/src/main.c b/embedded/atsams70-tinyrouter/atsams70-tinyrouter/src/main.c index f81d3a30d5d9b8daa4534be91c24662ad23550a7..92045a5c039b33891f9bbeadc96788ba890bdffd 100644 --- a/embedded/atsams70-tinyrouter/atsams70-tinyrouter/src/main.c +++ b/embedded/atsams70-tinyrouter/atsams70-tinyrouter/src/main.c @@ -36,20 +36,28 @@ pin_t stlb; pin_t stlr; pin_t button; +pin_t p1lr; +pin_t p1lg; +pin_t p1lb; + +pin_t p2lr; +pin_t p2lg; +pin_t p2lb; + pin_t p3lr; +pin_t p3lg; +pin_t p3lb; + +pin_t p4lr; +pin_t p4lg; +pin_t p4lb; tinyport_t tp1; tinyport_t tp2; tinyport_t tp3; tinyport_t tp4; -int main (void) -{ - /* Insert system clock initialization code here (sysclk_init()). */ - - board_init(); - sysclk_init(); - +void peripheralsetup(void){ PMC->PMC_PCER0 = 1 << ID_PIOA; PMC->PMC_PCER0 = 1 << ID_PIOD; PMC->PMC_PCER0 = 1 << ID_UART0; // UART0 @@ -82,20 +90,74 @@ int main (void) //PIOD->PIO_ABCDSR[0] = ~PIO_PER_P19; PIOD->PIO_ABCDSR[1] |= PIO_PER_P18; PIOD->PIO_ABCDSR[1] |= PIO_PER_P19; - - - p3lr = pin_new(PIOD, PIO_PER_P10); - pin_output(&p3lr); +} + +void setupstatus(void){ stlb = pin_new(PIOA, PIO_PER_P1); pin_output(&stlb); - stlr = pin_new(PIOD, PIO_PER_P11); pin_output(&stlr); - button = pin_new(PIOA, PIO_PER_P15); pin_input(&button); + p1lr = pin_new(PIOA, PIO_PER_P22); + pin_output(&p1lr); + p1lg = pin_new(PIOA, PIO_PER_P8); + pin_output(&p1lg); + p1lb = pin_new(PIOA, PIO_PER_P13); + pin_output(&p1lb); + + p2lr = pin_new(PIOA, PIO_PER_P30); + pin_output(&p2lr); + p2lg = pin_new(PIOD, PIO_PER_P9); + pin_output(&p2lg); + p2lb = pin_new(PIOA, PIO_PER_P28); + pin_output(&p2lb); + + p3lr = pin_new(PIOD, PIO_PER_P10); + pin_output(&p3lr); + p3lg = pin_new(PIOA, PIO_PER_P0); + pin_output(&p3lg); + p3lb = pin_new(PIOD, PIO_PER_P15); + pin_output(&p3lb); + + p4lr = pin_new(PIOD, PIO_PER_P13); + pin_output(&p4lr); + p4lg = pin_new(PIOD, PIO_PER_P14); + pin_output(&p4lg); + p4lb = pin_new(PIOA, PIO_PER_P27); + pin_output(&p4lb); +} + +void clearallstatus(void){ + pin_clear(&p1lr); + pin_clear(&p1lg); + pin_clear(&p1lb); + + pin_clear(&p2lr); + pin_clear(&p2lg); + pin_clear(&p2lb); + + pin_clear(&p3lr); + pin_clear(&p3lg); + pin_clear(&p3lb); + + pin_clear(&p4lr); + pin_clear(&p4lg); + pin_clear(&p4lb); +} + +int main (void) +{ + /* Insert system clock initialization code here (sysclk_init()). */ + + board_init(); + sysclk_init(); + + peripheralsetup(); + setupstatus(); + tp1 = tinyport_new(UART2, PIOD, PERIPHERAL_C, PIO_PER_P25, PIO_PER_P26); tp2 = tinyport_new(UART0, PIOA, PERIPHERAL_A, PIO_PER_P9, PIO_PER_P10); tp3 = tinyport_new(UART1, PIOA, PERIPHERAL_C, PIO_PER_P5, PIO_PER_P4); @@ -110,16 +172,14 @@ int main (void) if(pin_get_state(&button)){ // hi, button is not pressed pin_clear(&stlb); pin_set(&stlr); - pin_clear(&p3lr); + clearallstatus(); tp_putchar(&tp1, 85); tp_putchar(&tp2, 85); tp_putchar(&tp3, 85); tp_putchar(&tp4, 85); - pin_set(&p3lr); } else { pin_set(&stlb); pin_clear(&stlr); - pin_set(&p3lr); } } }