Permalink
Browse files

Controllerboard verallgemeinert

  • Loading branch information...
ingo ingo
ingo authored and ingo committed Jan 5, 2018
1 parent 4883348 commit 596a5a57469b7242d906cc243516b6813f13a084
Showing with 168 additions and 139 deletions.
  1. +1 −1 Makefile
  2. +1 −1 canix/hcan_rts.h
  3. +1 −1 doc/device-erweitern-howto
  4. +6 −6 doc/hcan-netz-inbetriebnahme-howto
  5. +0 −1 firmwares/controllerboard-1612-v01/README.md
  6. +13 −11 firmwares/{controllerboard-1612-v01 → controllerboard}/Makefile
  7. +1 −0 firmwares/controllerboard/README.md
  8. 0 firmwares/{controllerboard-1612-v01 → controllerboard}/buildver
  9. +3 −2 firmwares/{controllerboard-1612-v01 → controllerboard}/darlingtonoutput.c
  10. +2 −0 firmwares/{controllerboard-1612-v01 → controllerboard}/darlingtonoutput.h
  11. +5 −4 firmwares/{controllerboard-1612-v01 → controllerboard}/dcf77_receiver.c
  12. 0 firmwares/{controllerboard-1612-v01 → controllerboard}/dcf77_receiver.h
  13. +2 −2 firmwares/{controllerboard-1612-v01 → controllerboard}/devices/Makefile
  14. +3 −3 firmwares/{controllerboard-1612-v01 → controllerboard}/devices/README.md
  15. +3 −2 firmwares/{controllerboard-1612-v01 → controllerboard}/devices/analogComparator.c
  16. 0 firmwares/{controllerboard-1612-v01 → controllerboard}/devices/analogComparator.h
  17. 0 firmwares/{controllerboard-1612-v01 → controllerboard}/devices/devicePool/Hinweis.txt
  18. +3 −2 firmwares/{controllerboard-1612-v01 → controllerboard}/devices/devicePool/dunstabzugport.c
  19. 0 firmwares/{controllerboard-1612-v01 → controllerboard}/devices/devicePool/dunstabzugport.h
  20. +4 −3 firmwares/{controllerboard-1612-v01 → controllerboard}/devices/devicePool/tastdimmer.c
  21. 0 firmwares/{controllerboard-1612-v01 → controllerboard}/devices/devicePool/tastdimmer.h
  22. +4 −3 firmwares/{controllerboard-1612-v01 → controllerboard}/devices/heizung.c
  23. 0 firmwares/{controllerboard-1612-v01 → controllerboard}/devices/heizung.h
  24. +3 −2 firmwares/{controllerboard-1612-v01 → controllerboard}/devices/helligkeitssensor.c
  25. +1 −1 firmwares/{controllerboard-1612-v01 → controllerboard}/devices/helligkeitssensor.h
  26. +2 −2 firmwares/{controllerboard-1612-v01 → controllerboard}/devices/lichtzone.c
  27. 0 firmwares/{controllerboard-1612-v01 → controllerboard}/devices/lichtzone.h
  28. +1 −1 firmwares/{controllerboard-1612-v01 → controllerboard}/devices/mk_devices_c.xsl
  29. +1 −1 firmwares/{controllerboard-1612-v01 → controllerboard}/devices/mk_devices_h.xsl
  30. +1 −1 firmwares/{controllerboard-1612-v01 → controllerboard}/devices/mk_timer_c.xsl
  31. +4 −2 firmwares/{controllerboard-1612-v01 → controllerboard}/devices/multitaster.c
  32. 0 firmwares/{controllerboard-1612-v01 → controllerboard}/devices/multitaster.h
  33. +3 −2 firmwares/{controllerboard-1612-v01 → controllerboard}/devices/ports.c
  34. 0 firmwares/{controllerboard-1612-v01 → controllerboard}/devices/ports.h
  35. +3 −2 firmwares/{controllerboard-1612-v01 → controllerboard}/devices/poti.c
  36. 0 firmwares/{controllerboard-1612-v01 → controllerboard}/devices/poti.h
  37. +3 −2 firmwares/{controllerboard-1612-v01 → controllerboard}/devices/powerport.c
  38. 0 firmwares/{controllerboard-1612-v01 → controllerboard}/devices/powerport.h
  39. +4 −4 firmwares/{controllerboard-1612-v01 → controllerboard}/devices/powerportAutomat.c
  40. 0 firmwares/{controllerboard-1612-v01 → controllerboard}/devices/powerportAutomat.h
  41. +4 −3 firmwares/{controllerboard-1612-v01 → controllerboard}/devices/reedkontakt.c
  42. 0 firmwares/{controllerboard-1612-v01 → controllerboard}/devices/reedkontakt.h
  43. +3 −2 firmwares/{controllerboard-1612-v01 → controllerboard}/devices/rolladen.c
  44. 0 firmwares/{controllerboard-1612-v01 → controllerboard}/devices/rolladen.h
  45. +6 −5 firmwares/{controllerboard-1612-v01 → controllerboard}/devices/rolladenAutomat.c
  46. 0 firmwares/{controllerboard-1612-v01 → controllerboard}/devices/rolladenAutomat.h
  47. +3 −2 firmwares/{controllerboard-1612-v01 → controllerboard}/devices/rolladenSchlitzpos.c
  48. 0 firmwares/{controllerboard-1612-v01 → controllerboard}/devices/rolladenSchlitzpos.h
  49. +5 −4 firmwares/{controllerboard-1612-v01 → controllerboard}/devices/schalter.c
  50. 0 firmwares/{controllerboard-1612-v01 → controllerboard}/devices/schalter.h
  51. +4 −3 firmwares/{controllerboard-1612-v01 → controllerboard}/devices/taster.c
  52. 0 firmwares/{controllerboard-1612-v01 → controllerboard}/devices/taster.h
  53. +5 −4 firmwares/{controllerboard-1612-v01 → controllerboard}/devices/tempsensor.c
  54. +2 −1 firmwares/{controllerboard-1612-v01 → controllerboard}/devices/tempsensor.h
  55. +6 −5 firmwares/{controllerboard-1612-v01 → controllerboard}/devices/zeitschaltuhr.c
  56. 0 firmwares/{controllerboard-1612-v01 → controllerboard}/devices/zeitschaltuhr.h
  57. +4 −3 firmwares/{controllerboard-1612-v01 → controllerboard}/devices/zeitzone.c
  58. 0 firmwares/{controllerboard-1612-v01 → controllerboard}/devices/zeitzone.h
  59. +2 −1 firmwares/{controllerboard-1612-v01 → controllerboard}/devices/zentralheizungspumpe.c
  60. 0 firmwares/{controllerboard-1612-v01 → controllerboard}/devices/zentralheizungspumpe.h
  61. +1 −1 firmwares/{controllerboard-1612-v01 → controllerboard}/floatingAverage.c
  62. 0 firmwares/{controllerboard-1612-v01 → controllerboard}/floatingAverage.h
  63. 0 firmwares/{controllerboard-1612-v01 → controllerboard}/i2cmaster.h
  64. +2 −2 firmwares/{controllerboard-1612-v01 → controllerboard}/input.c
  65. 0 firmwares/{controllerboard-1612-v01 → controllerboard}/input.h
  66. +5 −5 firmwares/{controllerboard-1612-v01 → controllerboard}/main.c
  67. +2 −1 firmwares/{controllerboard-1612-v01 → controllerboard}/onewire.c
  68. 0 firmwares/{controllerboard-1612-v01 → controllerboard}/onewire.h
  69. 0 firmwares/{controllerboard-1612-v01 → controllerboard}/timer.h
  70. +4 −3 firmwares/{controllerboard-1612-v01 → controllerboard}/timeservice.c
  71. 0 firmwares/{controllerboard-1612-v01 → controllerboard}/timeservice.h
  72. +1 −1 firmwares/{controllerboard-1612-v01 → controllerboard}/twimaster.c
  73. +1 −1 firmwares/userpanel-v01/gesamt_heiz_page.c
  74. +1 −1 firmwares/userpanel-v01/heiz_page.c
  75. +1 −1 firmwares/userpanel-v01/weck_page.h
  76. +1 −1 hcan4mqttpc/main.c
  77. +9 −9 libhcan++/{controller1612_driver.cc → controllerboard_driver.cc}
  78. +7 −7 libhcan++/{controller1612_driver.h → controllerboard_driver.h}
  79. +10 −10 libhcan++/driver_factory.cc
  80. +1 −1 xml/hcan-protocol.xml
View
@@ -84,7 +84,7 @@ cppDienste:
firmware:
cd hcanbl; $(xx) $(parm2)
cd firmwares/controllerboard-1612-v01; $(xx) $(parm2)
cd firmwares/controllerboard; $(xx) $(parm2)
cd firmwares/userpanel-v01; $(xx) $(parm2)
firmwareOhneEds:
View
@@ -52,7 +52,7 @@
*
* Es wird aber \a nicht die Time-Master Funktion uebernommen, wenn eine
* Weile keine Time-Meldungen mehr kommen. Dieses Feature ist z.Z. nur
* in der Controller-1612 Firmware implementiert.
* in der Controllerboard Firmware implementiert.
*
* Auch werden Zeit-Anfrage beantwortet:
* - HCAN_RTS_TIME_REQUEST
@@ -37,7 +37,7 @@ Felder.
cp eds_desc.cc ../libhcan++/
mah@grobi:~/src/hcan/xml>
- nun kann die Controller-1612 (oder eine andere EDS verwendende Firmware)
- nun kann die Controllerboard (oder eine andere EDS verwendende Firmware)
angepasst werden
- die Datei ../../include/eds-structs.h ist in unserem Falle veraendert worden;
die Struct eds_heizung_block_t z.B. hat die neuen Felder erhalten
@@ -16,7 +16,7 @@ Benoetigte Elektronik und Software
beschreiche ich die Einrichtung unter Debian Etch)
- das HCAN-Hostinterface-v02 (im Folgenden HI genannt), fertig aufgebaut
- ein USB-Kabel
- einen Controller-1612 (im Folgenden Controller genannt), fertig aufgebaut
- einen Controllerboard (im Folgenden Controller genannt), fertig aufgebaut
- ein Labor- oder sonstiges Netzteil, das 24V von sich gibt
- Einige Kabel, 2 Stueck 120Ohm Abschlusswiderstaende fuer den CAN-Bus
- Multimeter und ggfls weiteres Messequipment
@@ -54,8 +54,8 @@ ein passendes Programmierkabel[1] benoetigt.
Hierbei sollte kein Fehler auftreten; es liegt nun eine main.hex Datei im
Verzeichnis.
- Controller-1612 Firmware compilieren:
$ cd firmware/controller-1612
- Controllerboard Firmware compilieren:
$ cd firmware/controllerboard
$ make
Hierbei sollte kein Fehler auftreten; es liegt nun eine main.hex Datei im
Verzeichnis.
@@ -90,7 +90,7 @@ um welche Geschwindigkeit es sich handelt - weitere Infos bekommt er nur vom
FT245 - somit erklaert sich das Verhalten.
Die 24V-Spannungsversorgung an den Controller und das HI anschliessen; Ergebnis
pruefen: Beim Controller-1612 muss nun die kleine LED leuchten, ebenso die
pruefen: Beim Controllerboard muss nun die kleine LED leuchten, ebenso die
Power-LED beim HI.
Danach dann den CAN Bus aufbauen: CAN-Hi und CAN-Lo jeweils verbinden, CAN-Hi
@@ -233,7 +233,7 @@ sending ping packets from 512 to 300...
[5] 17 msec
$
Jetzt wird die Controller-1612 Firmware ueber den CAN Bus geflashed. Dazu wird
Jetzt wird die Controllerboard Firmware ueber den CAN Bus geflashed. Dazu wird
die main.hex-Datei, die zuvor compiliert wurde, benoetigt.
$ telican -c 300 -e "flash main.hex"
@@ -262,7 +262,7 @@ $
Herzlichen Glueckwunsch!
Wer jetzt noch weiter machen will ;-), der kann im Kapitel 3 "Controller-1612"
Wer jetzt noch weiter machen will ;-), der kann im Kapitel 3 "Controllerboard"
ueber die Konfiguration weiterlesen.

This file was deleted.

Oops, something went wrong.
@@ -1,4 +1,4 @@
# Makfile fuer C1612
# Makfile fuer Controllerboard
#
.PHONY: release
include ../../ARCH.inc
@@ -15,8 +15,10 @@ CXX = avr-gcc
ifeq ($(MCU),atmega328p)
F_CPU = 16000000
MCU_DIR = C1416_$(MCU)
else # MCU_atmega32 || MCU_atmega644p
F_CPU = 3686400
MCU_DIR = C1612_$(MCU)
endif
F_CAN = 8000000
@@ -34,22 +36,22 @@ all:
make allX
allX: $(TARGET).hex
sudo test -d ./C1612_$(MCU) || mkdir C1612_$(MCU)
sudo mv $(TARGET).hex ./C1612_$(MCU)
mkdir -p $(MCU_DIR)
sudo mv $(TARGET).hex ./$(MCU_DIR)
$(TARGET).hex: $(TARGET).out
$(OBJCOPY) -R .eeprom -O ihex $(TARGET).out $(TARGET).hex
$(TARGET).hex: $(TARGET).elf
$(OBJCOPY) -R .eeprom -O ihex $(TARGET).elf $(TARGET).hex
avr-size $(TARGET).hex
$(TARGET).out:
$(CXX) $(CFLAGS) -o $(TARGET).out $(SRC) -Wl,-Map,$(TARGET).map
$(TARGET).elf:
$(CXX) $(CFLAGS) -o $(TARGET).elf $(SRC) -Wl,-Map,$(TARGET).map
clean_part:
sudo rm -f *.map *.out
sudo rm -f *.map *.elf
clean:
make clean_part
sudo rm -fR ./C1612_$(MCU)
sudo rm -fR ./$(MCU_DIR)
sudo rm -f devices.c devices.h timer.c
cd devices; rm -f devices.xml
@@ -58,5 +60,5 @@ load:
@echo -------------------------
@echo Bsp.: make load adr=161
@echo -------------------------
telican -a $(IP_HI) -C -c $(adr) --arch $(MCU) -e "flash C1612_$(MCU)/$(TARGET).hex"
#telican --polite-time 2 -a $(IP_HI) -c $(adr) --arch $(MCU) -e "flash C1612_$(MCU)/$(TARGET).hex"
telican -C -c $(adr) --arch $(MCU) -e "flash $(MCU_DIR)/$(TARGET).hex"
#telican --polite-time 2 -a $(IP_HI) -c $(adr) --arch $(MCU) -e "flash $(MCU_DIR)/$(TARGET).hex"
@@ -0,0 +1 @@
[Controllerboard: Zentrale Komponente von HCAN](https://github.com/hcanIngo/openHCAN/wiki/controller_1612)
@@ -1,7 +1,8 @@
#include "../controllerboard/darlingtonoutput.h"
#include <avr/io.h>
#include <canix/syslog.h>
#include <darlingtonoutput.h>
#include "devices/ports.h"
#include "../controllerboard/devices/ports.h"
void darlingtonoutput_init(void)
{
@@ -1,6 +1,8 @@
#ifndef DARLINGTONOUTPUT_H
#define DARLINGTONOUTPUT_H
#include <stdint.h>
void darlingtonoutput_init(void);
uint8_t darlingtonoutput_getpin(uint8_t n);
void darlingtonoutput_setpin(uint8_t n, uint8_t state);
@@ -15,6 +15,8 @@
/************************************************************************/
#include "../controllerboard/dcf77_receiver.h"
#include <canix/canix.h>
#include <canix/led.h>
#include <canix/tools.h>
@@ -23,14 +25,13 @@
#include <avr/io.h>
#include <avr/interrupt.h>
#include <devices.h>
#include <avr/eeprom.h>
#include <avr/wdt.h>
#include <hcan_multicast.h>
#include "dcf77_receiver.h"
#include "darlingtonoutput.h"
#include <input.h>
#include <avr/pgmspace.h>
#include "../controllerboard/darlingtonoutput.h"
#include "../controllerboard/devices.h"
#include "../controllerboard/input.h"
#define code PROGMEM
#define LPM(i) (__LPM_classic__(i))
@@ -23,9 +23,9 @@ devices_xml:
@#rm -f devices.xml
@#> devices.xml
@echo "<!-- AUTOMATICLY GENERATED FROM /device/Makefile -->" > devices.xml
@echo "<C1612-devicelist>" >> devices.xml
@echo "<Controllerboard-devicelist>" >> devices.xml
@echo $(DEVICES) >> devices.xml
@echo "</C1612-devicelist>" >> devices.xml
@echo "</Controllerboard-devicelist>" >> devices.xml
devices_h: mk_devices_h.xsl devices.xml
xalan -in devices.xml -xsl mk_devices_h.xsl -indent 0 | \
@@ -10,11 +10,11 @@ Schritte zu einem neuen Device:
2. Ggf. in openHCAN/xml/hcan-protocol.xml neue Messages definieren.
3. In openHCAN/firmwares/controllerboard-1612-v01/devices folgende Dateien anlegen:
3. In openHCAN/firmwares/controllerboard/devices folgende Dateien anlegen:
- NameDesDevice.h
- NameDesDevice.c
4. In openHCAN/firmwares/controllerboard-1612-v01/
4. In openHCAN/firmwares/controllerboard/
make clean; make all
ausfuehren, um die unter openHCAN/firmwares/controllerboard-1612-v01/devices
ausfuehren, um die unter openHCAN/firmwares/controllerboard/devices
liegenden Devices einzubinden und alles zu uebersetzen und linken
@@ -17,7 +17,8 @@
*
* (c) 2015 by Ingo Lages, i (dot) lages (at) gmx (dot) de
*/
#include "analogComparator.h"
#include "../../controllerboard/devices/analogComparator.h"
#include <canix/canix.h>
#include <canix/tools.h>
#include <canix/rtc.h>
@@ -37,7 +38,7 @@
/**
* Es ist ein analogComparator pro C1612-Board verfuegbar.
* Es ist ein analogComparator pro Controllerboard verfuegbar.
* Der positive Comparator-Eingang ist AIN0.
* Der negative Comparator-Eingang ist AIN1. */
@@ -1,7 +1,8 @@
#include "../../../controllerboard/devices/devicePool/dunstabzugport.h"
#include <canix/syslog.h>
#include "dunstabzugport.h"
#include "darlingtonoutput.h"
#include <hcan.h>
#include "../../../controllerboard/darlingtonoutput.h"
void dunstabzugport_init(device_data_dunstabzugport *p, eds_block_p it)
{
@@ -1,6 +1,6 @@
#include "tastdimmer.h"
#include "../../../controllerboard/devices/devicePool/tastdimmer.h"
#include <canix/syslog.h>
#include <darlingtonoutput.h>
#include <hcan.h>
#include <canix/canix.h>
@@ -15,7 +15,8 @@
#include <avr/eeprom.h>
#include <avr/wdt.h>
#include <darlingtonoutput.h>
#include "../../../controllerboard/darlingtonoutput.h"
#include "../../../controllerboard/darlingtonoutput.h"
void tastdimmer_init(device_data_tastdimmer *p, eds_block_p it) {}
@@ -1,3 +1,5 @@
#include "../../controllerboard/devices/heizung.h"
#include <canix/canix.h>
#include <canix/led.h>
#include <canix/tools.h>
@@ -8,9 +10,8 @@
#include <avr/wdt.h>
#include <avr/eeprom.h>
#include "heizung.h"
#include "darlingtonoutput.h"
#include "zeitzone.h"
#include "../../controllerboard/darlingtonoutput.h"
#include "../../controllerboard/devices/zeitzone.h"
void heizung_init(device_data_heizung *p, eds_block_p it)
{
@@ -17,6 +17,8 @@
*
* (c) 2010 by Martin Kramer and Ingo Lages, i (dot) lages (at) gmx (dot) de
*/
#include "../../controllerboard/devices/helligkeitssensor.h"
#include <canix/canix.h>
#include <canix/tools.h>
#include <canix/rtc.h>
@@ -25,12 +27,11 @@
#include <avr/io.h>
#include <avr/interrupt.h>
#include "helligkeitssensor.h"
/** Von helligkeitssensor.c werden helligkeitssensortelegramme gesendet. Inhalt ist der aktuelle ADC-Wert
* und die Gruppe des jeweilige konfigurierten helligkeitssensors.
*
* Es sind max. acht helligkeitssensors pro C1612-Board verfuegbar.
* Es sind max. acht helligkeitssensors pro Controllerboard verfuegbar.
* (Acht ADC-Pins sind an den Ports PA0-PA7 = IN15-IN8 verfuegbar)
*/
@@ -23,7 +23,7 @@
#include <canix/eds.h>
#include <inttypes.h>
#include <eds-structs.h>
#include "../floatingAverage.h"
#include "../../controllerboard/floatingAverage.h"
typedef struct
{
@@ -1,4 +1,4 @@
#include "lichtzone.h"
#include "../../controllerboard/devices/lichtzone.h"
#include <canix/canix.h>
#include <canix/led.h>
@@ -12,8 +12,8 @@
#include <avr/eeprom.h>
#include <avr/wdt.h>
#include "darlingtonoutput.h"
#include <hcan_multicast.h>
#include "../../controllerboard/darlingtonoutput.h"
void lichtzone_init(device_data_lichtzone *p, eds_block_p it) {}
@@ -4,7 +4,7 @@
<xsl:output method="text" />
<xsl:template match="/C1612-devicelist">
<xsl:template match="/Controllerboard-devicelist">
// ------- AUTOMATICLY GENERATED FROM mk_devices_c.xsl -----------------
@@ -4,7 +4,7 @@
<xsl:output method="text" />
<xsl:template match="/C1612-devicelist">
<xsl:template match="/Controllerboard-devicelist">
// ------- AUTOMATICLY GENERATED FROM mk_devices_h.xsl -----------------
@@ -4,7 +4,7 @@
<xsl:output method="text" />
<xsl:template match="/C1612-devicelist">
<xsl:template match="/Controllerboard-devicelist">
// ------- AUTOMATICLY GENERATED FROM mk_timer_c.xsl -----------------
@@ -17,6 +17,8 @@
*
* (c) 2010 by Martin Kramer and Ingo Lages, i (dot) lages (at) gmx (dot) de
*/
#include "../../controllerboard/devices/multitaster.h"
#include <canix/canix.h>
#include <canix/tools.h>
#include <canix/rtc.h>
@@ -25,8 +27,8 @@
#include <avr/io.h>
#include <avr/interrupt.h>
#include "multitaster.h"
#include "../input.h"
#include "../../controllerboard/input.h"
/* multitaster.c empfaengt Tasterbotschaften und wertet Potitelegramme aus.
* Beim Aussenden des Taster-down/up-Ereignisses wird der letzte
@@ -17,6 +17,8 @@
*
* (c) 2014 by Christoph Delfs and Ingo Lages
*/
#include "../../controllerboard/devices/ports.h"
#include <avr/io.h>
#include <stdint.h>
@@ -26,8 +28,7 @@
#include <hcan.h>
#include <hcan_multicast.h>
#include "ports.h"
#include "i2cmaster.h"
#include "../../controllerboard/i2cmaster.h"
#define MCP23x17_ADDR 0x40 // Adressierung: A2 bis A0 auf GND + WRITE
// control registers
Oops, something went wrong.

0 comments on commit 596a5a5

Please sign in to comment.