|
|
Zeile 1: |
Zeile 1: |
− | | + | [[Benutzer:Kenoldb]] |
− | == Basis ==
| |
− | | |
− | '''Pollin NET-IO'''<br />
| |
− | Modifikationen<br />
| |
− | 20Mhz<br />
| |
− | Atmega 644<br />
| |
− | Spannungsregler 7805 durch Netzteil ersetzt.<br />
| |
− | | |
− | '''NET-IO ADDON'''<br />
| |
− | Modifikationen
| |
− | | |
− | '''TSOP'''<br />
| |
− | nicht montiert<br />
| |
− | R9 durch 1k5(oder 4k7) Widerstand ersetzt<br />
| |
− | C6 100nF entfernt<br />
| |
− | | |
− | Schraubblock aufgelötet und PIN1 und 2 gebrückt ( Datenpin und VCC ).<br />
| |
− | | |
− | Somit ist dieser Port 1Wire fähig.<br />
| |
− | | |
− | fürs pinning:<br />
| |
− | | |
− | pin(ONEWIRE, PB0)<br />
| |
− | | |
− | | |
− | | |
− | '''Spannungsversorgung'''<br />
| |
− | paralell zum ( R2 1,5K ) 4,7K gelötet und habe jetzt 3,25V<br />
| |
− | | |
− | '''2. ISP Port damit auch dort das flashen funktioniert'''<br />
| |
− | Brücke von ISP auf ISP1 PIN 5 ( Reset )<br />
| |
− | | |
− | | |
− | '''SD-Karte'''<br />
| |
− | R11 nicht einbauen.<br />
| |
− | R19 raus <br />
| |
− | R20 raus <br />
| |
− | anstelle von R19 Drahtbrücke rein.<br />
| |
− | <br />
| |
− | fürs pinning:<br />
| |
− | pin(SPI_CS_SD_READER, PB3, OUTPUT)<br />
| |
− | | |
− | Der Gedanke ist per control6 Messdaten auf die SD-Karte zu schreiben.<br />
| |
− | | |
− | Wie?!? noch keine Ahnung ( muss mal die Doku lesen.. )....<br />
| |
− | | |
− | Stelle es mir ähnlich dem "echo time >> sd /daten/time.log" vor....<br />
| |
− | ;-)<br />
| |
− | | |
− | '''I2C Bus'''<br />
| |
− | Direkt vom NET-IO Hochgeführt (2 adriges Kabel) ist ja doch ein bißchen übertrieben wegen dem I2C den ganzen<br />
| |
− | PortC vom Atmel zu verlieren inkl. 4 AD Wandler.<br />
| |
− | Was auch bedeutet, das man die SUB-D 25 Buchse/Stecker weglassen kann auf dem ADDON.<br />
| |
− | | |
− | '''RFM12'''<br />
| |
− | fürs pinning:<br />
| |
− | pin(SPI_CS_RFM12, PD5, OUTPUT)<br />
| |
− | RFM12_USE_INT(1)<br />
| |
− | RFM12_ASK_SENSE_USE_INT(1)<br />
| |
− | pin(RFM12_TX_PIN, PA3, OUTPUT)<br />
| |
− | Wobei TX_Pin ohne Funktion<br />
| |
− | | |
− | | |
− | '''Lochraster Bereich'''<br />
| |
− | '''SHT11'''<br />
| |
− | An LED2 und 3 habe ich einen SHT11 gelötet, die Vorwiderstände auf 10k (R5 und R6).<br />
| |
− | Frei von unten verdrahtet.<br />
| |
− | fürs pinning:<br />
| |
− | pin(SHT_SCK, PD4, OUTPUT)<br />
| |
− | pin(SHT_DATA, PD6, OUTPUT)<br />
| |
− | SHT_VOLTAGE_COMPENSATION(5V)<br />
| |
− | | |
− | '''Lochraster Bereich'''<br />
| |
− | '''Taster S1'''<br />
| |
− | An ADC4 und GND vom NETIO.<br />
| |
− | | |
− | '''LCD über I2C (PCF8574x''')<br />
| |
− | scheint die Tage wohl auch zu gehen, dank den Ethersex Entwicklern.<br />
| |
− | Für Ausgabe akukelle KW Verbrauch, eventl. Wetterdaten oder ähnliches.<br />
| |
− | | |
− | '''Relais Karte Pollin K8IO über I2C ( PCF8574x).'''<br />
| |
− | Konfiguriert über named PIN ( wenn ich herausgefunden haben wie das mit I2C/PCF8574x geht ).<br />
| |
− | Wofür? Noch keine Idee ;-).<br />
| |
− | | |
− | | |
− | | |
− | == Auftrag: ==
| |
− | | |
− | '''Pollin/Kangtai Powerswitch (IC 2270)<br />'''
| |
− | Funksteckdosen ansteuern.<br />
| |
− | Hiermit werden diverse Zeitschaltuhren abgelöst.<br />
| |
− | Das ganze wird von einem externen Host angesteuert.<br />
| |
− | (Linux Cronjob)<br />
| |
− | <br />
| |
− | '''S0 Zähler für Strom Wattmeter ( SWISSNOX 2000 imps/KWh 90ms).<br />'''
| |
− | Zählt schon mal grob über control6.<br />
| |
− | (Hier bei Gelegenheit weitere Infos, wenn ich alles zusammengesucht habe, Dokumentation sei <br />
| |
− | dank ;-) ).<br />
| |
− | <br />
| |
− | '''control6 Code''' ( wer kann möge bitte anpassen :-) )<br />
| |
− | Vorrausetzung das das untere Skript funktioniert ist die aktivierung von named pin.<br />
| |
− | Einträge:<br />
| |
− | <br />
| |
− | #PA7 ist ADC4 am netio<br />
| |
− | PA7 INPUT HIGH S1<br />
| |
− | #PA6 ist ADC3 am NETIO<br />
| |
− | PA6 INPUT HIGH S2<br />
| |
− | #LED Grün auf NET-IO ADDON Board<br />
| |
− | PD2 OUTPUT HIGH LEDGR<br />
| |
− | | |
− | Vorraussetzung das Control6 Code kompiliert wird.<br />
| |
− | In der Firmware muss control6 aktiviert werden und in<br />
| |
− | <br />
| |
− | ../config.mk<br />
| |
− | <br />
| |
− | die Zeile:<br />
| |
− | C6_SOURCE = $(TOPDIR)/control6/s0zaehler.src<br />
| |
− | eingefügt sein.<br />
| |
− | Wenn die config.mk nicht existiert diese bitte erstellen.<br />
| |
− | | |
− | Inhalt der Datei ../control6/s0zahler.src<br />
| |
− | | |
− | C6_HEADER(`/* This will be in control6.h */')
| |
− | CONTROL_START
| |
− | dnl Variabeln setzen
| |
− | dnl 1. Impulse Zähler Eingang
| |
− | ECMD_GLOBAL(z1, 0, uint16_t)
| |
− | ECMD_GLOBAL(KW1, 0, uint16_t)
| |
− | ECMD_GLOBAL(LEDGR1, 0, uint16_t)
| |
− | dnl imps/KW/h
| |
− | ECMD_GLOBAL(imps1, 5, uint16_t)
| |
− | ECMD_GLOBAL(z1h, 0, uint16_t) //hilfsvariable
| |
− | dnl Uhrzeit der letzten vollen KW/h
| |
− | ECMD_GLOBAL(time1, 0, uint16_t)
| |
− | dnl 2. Impulse Zähler Eingang
| |
− | ECMD_GLOBAL(z2, 0, uint16_t)
| |
− | ECMD_GLOBAL(KW2, 0, uint16_t)
| |
− | dnl imps/KW/h
| |
− | ECMD_GLOBAL(imps2, 5, uint16_t)
| |
− | THREAD(LEDBLINK)
| |
− | ON z1h == 1 DO
| |
− | PIN_SET(LEDGR);
| |
− | WAIT(3);
| |
− | PIN_CLEAR(LEDGR);
| |
− | dnl WAIT(3);
| |
− | z1h = 0;
| |
− | END
| |
− | THREAD_END(LEDBLINK)
| |
− | THREAD(IMPULSE)
| |
− | dnl schleifen
| |
− | dnl impulse zählen
| |
− | ON PIN_FALLING(S1) DO
| |
− | z1++;
| |
− | END
| |
− | ON z1 == imps1 DO
| |
− | KW1++;
| |
− | time1 = CLOCK_DOW;
| |
− | z1 = 0;
| |
− | z1h = 1;
| |
− | END
| |
− | dnl impulse zählen
| |
− | ON PIN_FALLING(S1) DO
| |
− | z2++;
| |
− | END
| |
− | ON z2 == imps2 DO
| |
− | PIN_SET(LEDGR);
| |
− | KW2++;
| |
− | z2 = 0;
| |
− | PIN_CLEAR(LEDGR);
| |
− | END
| |
− | dnl ende der schleifen
| |
− | THREAD_END(IMPULSE)
| |
− | ON STARTUP DO
| |
− | THREAD_START(LEDBLINK);
| |
− | THREAD_START(IMPULSE);
| |
− | END
| |
− | CONTROL_END
| |