AC:DE:48:94:5A:20: Unterschied zwischen den Versionen

Aus Ethersex_Wiki
Wechseln zu: Navigation, Suche
(Die Seite wurde neu angelegt: == Basis == '''Pollin NET-IO'''<br /> Modifikationen<br /> 20Mhz<br /> Atmega 644<br /> Spannungsregler 7805 durch Netzteil ersetzt.<br /> '''NET-IO ADDON'''<br /> M...)
 
(Der Seiteninhalt wurde durch einen anderen Text ersetzt: 'Benutzer:Kenoldb')
 
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
 

Aktuelle Version vom 16. Februar 2010, 18:37 Uhr