|
|
| 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
| |