From 8af9121f6fdefd769751638476ed16e9cc51cd1a Mon Sep 17 00:00:00 2001 From: Matthias B Date: Mon, 15 Aug 2022 11:27:57 +0200 Subject: [PATCH] H8I8O Example (#210) Firmware for the H8I8O that allows configuring pins as input, output or PWM output in a similar way to the original. --- examples/knx-h8i8o/knx-h8i8o.ino | 210 +++ examples/knx-h8i8o/knx-h8i8o.knxprod | Bin 0 -> 89117 bytes examples/knx-h8i8o/knx-h8i8o.xml | 2198 ++++++++++++++++++++++++++ examples/knx-h8i8o/platformio.ini | 39 + 4 files changed, 2447 insertions(+) create mode 100644 examples/knx-h8i8o/knx-h8i8o.ino create mode 100644 examples/knx-h8i8o/knx-h8i8o.knxprod create mode 100644 examples/knx-h8i8o/knx-h8i8o.xml create mode 100644 examples/knx-h8i8o/platformio.ini diff --git a/examples/knx-h8i8o/knx-h8i8o.ino b/examples/knx-h8i8o/knx-h8i8o.ino new file mode 100644 index 0000000..1c3023c --- /dev/null +++ b/examples/knx-h8i8o/knx-h8i8o.ino @@ -0,0 +1,210 @@ +#include +#include + +#define NUMIOS 18 + +#define goInputOnOff(i) knx.getGroupObject(i + 1) +#define goOutputOnOff(i) knx.getGroupObject(i + 1 + NUMIOS) +#define goOutputScaling(i) knx.getGroupObject(i + 1 + NUMIOS * 2) +#define goOutputOnOffStatus(i) knx.getGroupObject(i + 1 + NUMIOS * 3) +#define goOutputScalingStatus(i) knx.getGroupObject(i + 1 + NUMIOS * 4) + +typedef enum { + CONFIG_NONE = 0, + CONFIG_IN = 1, + CONFIG_IN_TOGGLE = 2, + CONFIG_IN_TOGGLE_ON = 3, + CONFIG_OUT = 4, + CONFIG_OUT_ON = 5, + CONFIG_OUT_PWM = 6, + CONFIG_OUT_PWM_ON = 7, +} config_t; + +inline void isrIn(uint8_t pin, uint8_t toggle); + +// workaround for the weird Arduino interrupt handling +#define ISR_IN(NUM, TOGGLE) void isrIn##NUM##_##TOGGLE(){isrIn(NUM, TOGGLE);} +ISR_IN(0,0); +ISR_IN(1,0); +ISR_IN(2,0); +ISR_IN(3,0); +ISR_IN(4,0); +ISR_IN(5,0); +ISR_IN(6,0); +ISR_IN(7,0); +ISR_IN(8,0); +ISR_IN(9,0); +ISR_IN(10,0); +ISR_IN(11,0); +ISR_IN(12,0); +ISR_IN(13,0); +ISR_IN(14,0); +ISR_IN(15,0); +ISR_IN(16,0); +ISR_IN(17,0); +ISR_IN(0,1); +ISR_IN(1,1); +ISR_IN(2,1); +ISR_IN(3,1); +ISR_IN(4,1); +ISR_IN(5,1); +ISR_IN(6,1); +ISR_IN(7,1); +ISR_IN(8,1); +ISR_IN(9,1); +ISR_IN(10,1); +ISR_IN(11,1); +ISR_IN(12,1); +ISR_IN(13,1); +ISR_IN(14,1); +ISR_IN(15,1); +ISR_IN(16,1); +ISR_IN(17,1); + +const uint32_t pinTbl[NUMIOS] = {PA15, PB3, PB4, PB5, PB6, PB7, PB8, PB9, PC13, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7, PB0}; +void (*inCbTbl[NUMIOS * 2])(void) = {isrIn0_0, isrIn1_0, isrIn2_0, isrIn3_0, isrIn4_0, isrIn5_0, isrIn6_0, isrIn7_0, isrIn8_0, isrIn9_0, isrIn10_0, isrIn11_0, isrIn12_0, isrIn13_0, isrIn14_0, isrIn15_0, isrIn16_0, isrIn17_0, isrIn0_1, isrIn1_1, isrIn2_1, isrIn3_1, isrIn4_1, isrIn5_1, isrIn6_1, isrIn7_1, isrIn8_1, isrIn9_1, isrIn10_1, isrIn11_1, isrIn12_1, isrIn13_1, isrIn14_1, isrIn15_1, isrIn16_1, isrIn17_1}; +volatile uint16_t val[NUMIOS]; +uint32_t lastEvent[NUMIOS]; + +// callback for OnOff events from KNX +void outOnOff(GroupObject& go) +{ + uint8_t pin = go.asap() - 1 - NUMIOS; + val[pin] = go.value(); + val[pin] &= 1; + digitalWrite(pinTbl[pin], val[pin]); + goOutputOnOffStatus(pin).value(val[pin]); +} + +// callback for OnOff events from KNX on PWM pins +void outOnOffPWM(GroupObject& go) +{ + uint8_t pin = go.asap() - 1 - NUMIOS; + uint8_t tmp; + if(go.value()){ + val[pin] |= 0x100; + analogWrite(pinTbl[pin], val[pin] & 0xff); + }else{ + val[pin] &= 0xff; + analogWrite(pinTbl[pin], 0); + } + tmp = val[pin] >> 8; + goOutputOnOffStatus(pin).value(tmp); +} + +// callback for 0-100% events from KNX +void outScaling(GroupObject& go) +{ + uint8_t pin = go.asap() - NUMIOS * 2 - 1; + uint8_t tmp; + if(val[pin] > 0xFF){ + tmp = *go.valueRef(); + val[pin] = tmp | 1 << 8; + analogWrite(pinTbl[pin], val[pin] & 0xff); + }else{ + tmp = *go.valueRef(); + val[pin] = tmp; + } + *goOutputScalingStatus(pin).valueRef() = tmp; + goOutputScalingStatus(pin).objectWritten(); +} + +// callback for input interrupts +inline void isrIn(uint8_t pin, uint8_t toggle) +{ + uint32_t diff = millis() - lastEvent[pin]; + if (diff >= 50 && diff <= 500){ + if(toggle){ + val[pin]++; + }else{ + val[pin] = digitalRead(pinTbl[pin]); + } + val[pin] &= 1; + goInputOnOff(pin).value(val[pin]); + } + + lastEvent[pin] = millis(); +} + +void setup() +{ + // read adress table, association table, groupobject table and parameters from eeprom + knx.readMemory(); + + // print values of parameters if device is already configured + if (knx.configured()) + { + uint8_t progIn = knx.paramByte(0); // programming input + uint8_t progLed = knx.paramByte(1); // programming LED + + for(uint8_t i = 0; i < NUMIOS; i++){ + config_t config = (config_t) knx.paramByte(i + 2); + // loop through all the pins and configure them correctly + switch(config){ + case CONFIG_IN: + pinMode(pinTbl[i], INPUT_PULLUP); + if(progIn = i + 1){ + knx.buttonPin(pinTbl[i]); + }else{ + goInputOnOff(i).dataPointType(DPT_Switch); + #if (ARDUINO_API_VERSION >= 10200) + attachInterrupt(digitalPinToInterrupt(pinTbl[i]), inCbTbl[i], (PinStatus)CHANGE); + #else + attachInterrupt(digitalPinToInterrupt(pinTbl[i]), inCbTbl[i], CHANGE); + #endif + } + break; + case CONFIG_IN_TOGGLE: + case CONFIG_IN_TOGGLE_ON: + goInputOnOff(i).dataPointType(DPT_Switch); + val[i] = config == CONFIG_IN_TOGGLE_ON; + pinMode(pinTbl[i], INPUT_PULLUP); + #if (ARDUINO_API_VERSION >= 10200) + attachInterrupt(digitalPinToInterrupt(pinTbl[i]), inCbTbl[i + NUMIOS], (PinStatus)CHANGE); + #else + attachInterrupt(digitalPinToInterrupt(pinTbl[i]), inCbTbl[i + NUMIOS], CHANGE); + #endif + break; + case CONFIG_OUT: + case CONFIG_OUT_ON: + pinMode(pinTbl[i], OUTPUT); + val[i] = config == CONFIG_OUT_ON; + digitalWrite(pinTbl[i], val[i]); + if(progLed = i + 1){ + knx.ledPin(pinTbl[i]); + }else{ + goOutputOnOff(i).dataPointType(DPT_Switch); + goOutputOnOff(i).callback(outOnOff); + goOutputOnOffStatus(i).dataPointType(DPT_Switch); + } + break; + case CONFIG_OUT_PWM: + case CONFIG_OUT_PWM_ON: + pinMode(pinTbl[i], OUTPUT); + val[i] = config == CONFIG_OUT_PWM_ON ? 0 : 0x1ff; + analogWrite(pinTbl[i], val[i] & 0xff); + goOutputOnOff(i).dataPointType(DPT_Switch); + goOutputOnOff(i).callback(outOnOffPWM); + goOutputOnOffStatus(i).dataPointType(DPT_Switch); + goOutputScaling(i).dataPointType(DPT_Scaling); + goOutputScaling(i).callback(outScaling); + goOutputScalingStatus(i).dataPointType(DPT_Scaling); + break; + } + } + + } + + // start the framework. + knx.start(); +} + +void loop() +{ + // don't delay here too much. Otherwise you might lose packages or mess up the timing with ETS + knx.loop(); + + // only run the application code if the device was configured with ETS + if (!knx.configured()) + return; +} diff --git a/examples/knx-h8i8o/knx-h8i8o.knxprod b/examples/knx-h8i8o/knx-h8i8o.knxprod new file mode 100644 index 0000000000000000000000000000000000000000..cf848d3474c0e7e6f482244aca03ec166136589d GIT binary patch literal 89117 zcmZ^KV{m4{)^%*#wrwYqAq4ek^i)12q&+V3@ul=o+fyO_T0R@z0Xcg1D18s(pe%#;*D&XSrk2` z@L~@RGzg@2b`@@o6)B{z(AZX2tWw`)?{txp>J#G>|*M~;9+ZX*}dg-(2>aCA&C5d zz=z(@X)UXs^2F%rRl`lZp`_VqBdy(7wR|244M{)8(MhJHEvS0r>q=mJ3{J7X>6+b> z9UXZJc^b~e$W+Ia0R#<#CImu6-ud1}>c*Hz#UY@`+Rb%ZQ9^@BWvQ%%M$0bxp?W^S(hWl zx9F~23++uSXK$Xr72e18&iA~9Om8*s4xv58*Ud`N)aVC`17lT+VCV0ipOd%0AAgSy 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 z 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 W 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

+g2qnox?rA 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 H_yhSrxJ9g; literal 0 HcmV?d00001 diff --git a/examples/knx-h8i8o/knx-h8i8o.xml b/examples/knx-h8i8o/knx-h8i8o.xml new file mode 100644 index 0000000..07b969a --- /dev/null +++ b/examples/knx-h8i8o/knx-h8i8o.xml @@ -0,0 +1,2198 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/examples/knx-h8i8o/platformio.ini b/examples/knx-h8i8o/platformio.ini new file mode 100644 index 0000000..f1340e1 --- /dev/null +++ b/examples/knx-h8i8o/platformio.ini @@ -0,0 +1,39 @@ +;PlatformIO Project Configuration File +; +; Build options: build flags, source filter +; Upload options: custom upload port, speed and extra flags +; Library options: dependencies, extra library storages +; Advanced options: extra scripting +; +; Please visit documentation for the other options and examples +; https://docs.platformio.org/page/projectconf.html +[platformio] +; We have to keep libdeps dir out the project directory otherwise, +; library scanner seems to have issues so compilation fails +libdeps_dir = /tmp/libdeps +src_dir = . + +;--- STM32/GD32 --- +[env:h8i8o] +platform = ststm32 +board = genericSTM32F103CB +framework = arduino +; We consider that the this projects is opened within its project directory +; while working with VS Code. +lib_extra_dirs = ../../../ + +lib_deps = + knx + +build_flags = + -DENABLE_HWSERIAL1 + -DPIN_SERIAL1_TX=PA9 + -DPIN_SERIAL1_RX=PA10 + -DKNX_SERIAL=Serial1 + -DKNX_BUTTON=PA11 + -DKNX_LED=PA12 + -DMASK_VERSION=0x07B0 + -DKNX_NO_PRINT + -Wno-unknown-pragmas + +extra_scripts = ../scripts/stm32rdu.py