From fa22e3f3204043504669f960ab3c33340f23b0d3 Mon Sep 17 00:00:00 2001 From: Nicolas Schodet Date: Fri, 5 Apr 2013 23:42:16 +0200 Subject: digital/io-hub/src/apbirthday: add zigbit update mode from UART --- digital/io-hub/src/apbirthday/hardware.stm32.cc | 26 ++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) (limited to 'digital/io-hub/src/apbirthday/hardware.stm32.cc') diff --git a/digital/io-hub/src/apbirthday/hardware.stm32.cc b/digital/io-hub/src/apbirthday/hardware.stm32.cc index abbfa477..48b69c2b 100644 --- a/digital/io-hub/src/apbirthday/hardware.stm32.cc +++ b/digital/io-hub/src/apbirthday/hardware.stm32.cc @@ -123,16 +123,20 @@ Hardware::zb_handle () { // Switch to AVRISP? if (zb_usb_avrisp.poll ()) - { - // Uart pins are reused. - zb_uart.disable (); - gpio_mode_setup (GPIOD, GPIO_MODE_INPUT, GPIO_PUPD_NONE, GPIO8 | GPIO9); - // Go to special AVRISP mode. - zb_avrisp (zb_usb_avrisp); - // Restore. - gpio_mode_setup (GPIOD, GPIO_MODE_AF, GPIO_PUPD_NONE, GPIO8 | GPIO9); - gpio_set_af (GPIOD, GPIO_AF7, GPIO8 | GPIO9); - zb_uart.enable (38400, ucoo::Uart::EVEN, 1); - } + zb_handle (zb_usb_avrisp); +} + +void +Hardware::zb_handle (ucoo::Stream &s) +{ + // Uart pins are reused. + zb_uart.disable (); + gpio_mode_setup (GPIOD, GPIO_MODE_INPUT, GPIO_PUPD_NONE, GPIO8 | GPIO9); + // Go to special AVRISP mode. + zb_avrisp (s); + // Restore. + gpio_mode_setup (GPIOD, GPIO_MODE_AF, GPIO_PUPD_NONE, GPIO8 | GPIO9); + gpio_set_af (GPIOD, GPIO_AF7, GPIO8 | GPIO9); + zb_uart.enable (38400, ucoo::Uart::EVEN, 1); } -- cgit v1.2.3