DinusExperience: Unterschied zwischen den Versionen

Aus Ethersex_Wiki
Wechseln zu: Navigation, Suche
(Entwicklungs Platine)
(Entwicklungs Platine)
Zeile 254: Zeile 254:
 
[[bild:l1_back.jpg|250px]]  [[bild:l1_front.jpg|250px]]  [[bild:l1_kaarten.jpg|250px]]
 
[[bild:l1_back.jpg|250px]]  [[bild:l1_front.jpg|250px]]  [[bild:l1_kaarten.jpg|250px]]
  
Pinbelegung DIN41612
+
Stecker DIN41612
 +
 
 +
Reihe a und c belegt
 
   a                      c
 
   a                      c
 
  ----------------------------------------------
 
  ----------------------------------------------
Zeile 261: Zeile 263:
 
   3 .....+5V............. 3
 
   3 .....+5V............. 3
 
   4 .....+3.3 V.......... 4
 
   4 .....+3.3 V.......... 4
   5 .....A Zbus.......... 5            
+
   5 .....A Zbus.......... 5
 
   6 .....B Zbus.......... 6
 
   6 .....B Zbus.......... 6
 
   7 ..Rx (Yport)          7 ..Tx (Yport)
 
   7 ..Rx (Yport)          7 ..Tx (Yport)
   8 ..Reset (slave isp)   8  
+
   8 ..SCL (slave)         8 ..Rx (slave)
   9 ..MOSI (slave isp)   9  
+
   9 ..SDA (slave)         9 ..Tx (slave)
  10 ..MISO (slave isp)  10  
+
  10 ..                   10 ..
  11 ..SCK (slave isp)    11 ..Reset (mainboard)
+
  11 ..                   11 ..
  12 ..SS (slave isp)    12 ..PD0
+
  12 ..                   12 ..
  13 ..Rx (slave)        13 ..PD1
+
  13 ..PD7                13 ..PD6
  14 ..Tx (slave)        14 ..PD2
+
  14 ..PC0                14 ..PD5
  15 ..SCL (slave)        15 ..PD3
+
  15 ..PC1                15 ..PD4
  16 ..SDA (slave)        16 ..PD4
+
  16 ..PC2                16 ..PD3
  17                     17 ..PD5
+
  17 ..PC3                17 ..PD2
  18                     18 ..PD6
+
  18 ..PC4                18 ..PD1
  19                     19 ..PD7
+
  19 ..PC5                19 ..PD0
  20 ..PC0               20 ..PB0
+
  20 ..PC6               20 ..XTAL1
  21 ..PC1               21 ..PB1
+
  21 ..PC7               21 ..XTAL2
  22 ..PC2                22 ..PB2
+
  22 ..AVCC              22 ..GND
  23 ..PC3               23 ..PB3
+
  23 ..GND               23 ..VCC
  24 ..PC4                24 ..PB4
+
  24 ..AREF              24 ..RESET
  25 ..PC5               25 ..PB5
+
  25 ..PA7               25 ..PB7
  26 ..PC6               26 ..PB6
+
  26 ..PA6               26 ..PB6
  27 ..PC7               27 ..PB7
+
  27 ..PA5               27 ..PB5
  28                     28 ..Vref
+
  28 ..PA4                28 ..PB4
  29 ..PA7               29 ..PA0
+
  29 ..PA3               29 ..PB3
  30 ..PA6               30 ..PA1
+
  30 ..PA2               30 ..PB2
  31 ..PA5               31 ..PA2
+
  31 ..PA1               31 ..PB1
  32 ..PA4               32 ..PA3
+
  32 ..PA0               32 ..PB0
 +
 
  
 
[[bild:l1_schaltnetzteil.jpg|250px]]  [[bild:l1_progger_rs232.jpg|250px]]
 
[[bild:l1_schaltnetzteil.jpg|250px]]  [[bild:l1_progger_rs232.jpg|250px]]

Version vom 17. Februar 2010, 19:50 Uhr

Ziel dieses Projekts

  • mal mit avr's anfangen und verstehen und die "closed software" von pollin durch "open source software" ersetzen

AVR hardware umgebung

  • Programmer: Atmel Evaluations-Board Version 2.0.1 ist fuer avrdude ein pony seriell also: -c ponyser
  • Hier ist ein ponyser programmer zu finden aehnlich wie oben: [ponyser programmer]
  • avr-net-io
  • atmega644
  • geliefert von [http://www.pollin.de]

Software umgebung

Hilfe

  • Die Community ist hier zu finden,
  • dort ist folgendes mitgeteilt/besprochen worden:

Seite bearbeiten/schreiben ins wiki

http://de.wikibooks.org/wiki/Hilfe:Seiten_bearbeiten

Problem mit ponyprog auf dem Atmel Evaluations-Board in Verbindung mit einem usb-rs232 konverter

  • baudrate /dev/ttyUSB0 auf 9600 8N1
avrdude -p m644 -c ponyser -P /dev/ttyUSB0 -t  (avrdude in terminal mode)
  • verbindung mit dem atmega644, kann fuse bits lesen usw. (zb. r lf gibt das low fuse aus sehe manual avrdude)
  • aber avrdude bleibt beim Versuch mit /dev/ttyUSB0 als interface zu flaschen haengen
  • ersatz durch ein kabel an /dev/ttyS0
  • baudrate /dev/ttyS0 auf 9600 8N1
avrdude -p m644 -c ponyser -P /dev/ttyS0 -U flash:w:ethersex.hex -v
  • laeuft dann problemlos durch
  • Das usb-rs232 interface funktioniert jedoch mit der usart vom board tadellos.

RS232 programmiergeraet

http://www.klaus-leidinger.de/mp/Mikrocontroller/AVR-Prog/AVR-Programmer.html#ATTiny2313

Fuse bits

avrdude -p m644 -c ponyser -P /dev/ttyS0 -U lfuse:w:0xE7:m -U hfuse:w:0xDC:m -U efuse:w:0xFF:m
  • folgende fuse bits sind es bei mir geworden fuer atmega32:
  • lfuse BF
  • hfuse CA
avrdude -p m32 -c ponyser -P /dev/ttyS0 -U lfuse:w:0xBF:m -U hfuse:w:0xCA:m
fuse bits fuer atmega32 mit interne 8Mhz RC osc.
lfuse A4
hfuse CF

ecmd interface via rs232/ USART

protocols -> Ecmd (Eteherrape Control Interface) support --> UART (RS232) (aktivieren)

dann: Ecmd usart select (waehlen)

dann: UART Baudrate (gewuenschte baudrate einstellen)

ecmd interface via i2c

  • In hauptmenu --> protocols --> i2c aktivieren da erscheinen dann i2c address und i2c buffer len

Man schreibt sein kommando 0 terminiert rein und lieszt dann das ergebnis wieder aus

Ein einfaches interface fuer den PC das unterstutz wird durch linux ab vers. 2.6.21

besteht aus 2 wiederstanden und ein diode.

 http://www.hifi-remote.com/jp1/simple/index.shtml

module in linux laden met:

 modprobe i2c-parport type=7


Port I/O und Ecmd

  • der atmega644 hat 4 ports PA PB PC PD
  • PORTNUM ist dann PA=0 PB=1 PC=2 PD=3
  • das Beispiel gibt dann die werten von port PA aus:
io get port 0

um das ddr register von port 3 zu lesen:

die werten werden in hex als zb 0x00 ausgegeben

io get ddr 3 

um das ddr register zu setzen:

hier soll kein 0x prefix mitgegeben worden (so ff und kein 0xff)

io set ddr 3 ff

Named Pins und Ecmd

sehe http://www.ethersex.de/index.php/Named_PIN

  • macht das steuern uebers http einfach und schoen (wenn http server im menuconfig aktiviert ist).
  • in /core/portio/config gibts du pins symbolische namen. Zum Beispiel:
PD7 OUTPUT HIGH Verstaerker

dann kannst du mit ecmnd

 pin set Verstaerker on

an das Ethersex senden, um den pin PD7 zu aktivieren

pin set Verstaerker off

schaltet den Verstaerker, bzw. pin PD7, wieder aus

EcmdScript

Ist stark in entwicklung.

Mit EcmdScript kann mann den ethersex als ein SPS (PLC) einsetzen.

Eine Speicherprogrammierbare Steuerung (SPS, engl. Programmable Logic Controller, PLC) ist eine Baugruppe, die zur Steuerung oder Regelung einer Maschine oder Anlage eingesetzt wird

english : http://en.wikipedia.org/wiki/Programmable_Logic_Controller

deutsch : http://de.wikipedia.org/wiki/Programmable_Logic_Controller

Beschreibung http://www.ethersex.de/index.php/ECMDScript

Achte auf spaces EcmdScript ist da kritisch.

Wenn ein ecmd space(s) hat bei if dan es ein alias geben z.b. $get_heizung = pin get Heizung

if ( $get_heizung eq off ) then echo es ist warm genug

Textvergleiche sind: eq und ne

  • VARIABLEN

Standard sind da 4 VARIABLEN nahme: 1 2 3 4

Nur zahlen. Nahmen geht nicht.

Das Anzahl ist zu aendern in

 Applications  --->
  [*] ECMD (Etherrape Control Interface) support  ---> 
    [*] ECMD Scripting  --->
        (4)   Maximum number of variables 

Alias eingeben

 Applications  --->
  [*] ECMD (Etherrape Control Interface) support  ---> 
    [*] ECMD Scripting  --->
      [*] Alias Command Names  --->

Fuer Named Pins

zb.ein alias eingeben (wenn nicht mit make menuconfig dann mit ein editor in protocols/ecmd/alias_defs.m4)

alias_ifdef(NAMED_PIN_SUPPORT)
  alias("Heizung", "pin get Heizung")
alias_endif()

einfuegen

Netzwerk-Einstellung aendern

zB. mit:

ip 10.0.0.180

wird die ip geaendert

netmask 255.255.0.0

aendert die netmask

gw 10.0.0.222

das gateway

und dann ein

reset

eingeben, um die aenderungen zu uebernehmen.

Yport ( ethernet rs232 converter )

verlagert nach http://ethersex.de/index.php/YPort

Zbus ( ein rs485 netzwerk mit ip )

verlagert nach ZBus_am_PC_(RS232_zu_RS485_Konverter)

Die hardware fuer Zbus ist auch (ohne Zbus-software) als universal rs232 extender ein zu setzen.

Wenn man die beide kanalen nutz sogar mit hardware handshake. (halb duplex)

ETHERSEX ALS RS232 SWITCH

Hier werden die netzwerkfaehigkeiten von ethersex software voll ausgenutzt.

Ein billiges netz mit weniger kabel.

- Mit Yport kann jedes rs232 geraet eingebunden werden. sehe YPort

- Mit Zbus kann man ne menge atmega's (max 32) an ein 2-draht bus haengen. sehe ZBus_am_PC_(RS232_zu_RS485_Konverter)

- Mit rfm12 kann man ein billiges wireless verbindung machen. sehe RFM12

- Wenn man das alles zusammen fuegt mit nur ein wenig vernunftige hardware entsteht also ein netzwerk wo man geraete mit ein rs232 interface einfach zufuegen kann.

In "wanted rs232 network" kann man fuer den PC auch ein atmega644P (hat 2xseriell) nehmen und da ethernet + Zbus + Yport zu einsatz nehmen.

Das alles wird kommende zeit weiter gebaut und getestet. (teil schaltungen funktionieren schon alle)


Torren.png

wie die RS232 geschaltet wird


Rs232network.png

Alle RS232 vebindungen sind getrennt ansprechbar.

USB (ip Netz Interface an avr-net-io)

USB.jpg

sehe USB fuer Bauanleitung und Software

Tcl/Tk interface fuer ethersex

Target:

Ein programma das viele micro-komputer (mixed rs232 und ethernetz) steuern kann.

Den hardware is wie in ZBus am PC (RS232 zu RS485 Konverter) beschrieben. (+ ethernetz)

Ein einziges esex an rs232 geht auch.  :-)

Auf diese weise kann man ein esex messen lassen und etwa schalten mit ein andere esex.

Soll spaeter ein netz server bekommen und databank anbindung zum loggen.

Tcl1.png Tcl2.png

Die software ist (vorlaufig) nur lauffaehig fuer node schaltung und ein command interface.

Wenn das ip gegeben ist wird ein netz socket gebildet. Alle andere falle wird ein rs232 socket gebaut.

Die idiot abfang routine mussen alle noch geschrieben werden.

Erst node select button (einstellen verbindung). Sichbar links unten wenn da CONNECTED (nicht CONNEC) steht.

Dann Programm Select - command line.

Normal ist I/O ein blocking system. Weil das es nicht passieren darf wenn einer esex ausfaellt das das ganze tcl

prog haengen bleibt ist es hier geloesst mit "non blocking" mode und ein timer.


Download: media:tcl_tk_interface2.txt


Ist noch baustelle !!!!. HILFE IST WILLKOMMEN

Kriege es nicht Idiot sicher. Stecker mal ziehen und zurueck gibt haenger.

Entwicklungs Platine

L1 back.jpg L1 front.jpg L1 kaarten.jpg

Stecker DIN41612

Reihe a und c belegt

 a                       c
----------------------------------------------
 1 .....9-40V dc........ 1
 2 .....ground.......... 2
 3 .....+5V............. 3
 4 .....+3.3 V.......... 4
 5 .....A Zbus.......... 5
 6 .....B Zbus.......... 6
 7 ..Rx (Yport)          7 ..Tx (Yport)
 8 ..SCL (slave)         8 ..Rx (slave)
 9 ..SDA (slave)         9 ..Tx (slave)
10 ..                   10 ..
11 ..                   11 ..
12 ..                   12 ..
13 ..PD7                13 ..PD6
14 ..PC0                14 ..PD5
15 ..PC1                15 ..PD4
16 ..PC2                16 ..PD3
17 ..PC3                17 ..PD2
18 ..PC4                18 ..PD1
19 ..PC5                19 ..PD0
20 ..PC6                20 ..XTAL1
21 ..PC7                21 ..XTAL2
22 ..AVCC               22 ..GND
23 ..GND                23 ..VCC
24 ..AREF               24 ..RESET
25 ..PA7                25 ..PB7
26 ..PA6                26 ..PB6
27 ..PA5                27 ..PB5
28 ..PA4                28 ..PB4 
29 ..PA3                29 ..PB3
30 ..PA2                30 ..PB2
31 ..PA1                31 ..PB1
32 ..PA0                32 ..PB0


L1 schaltnetzteil.jpg L1 progger rs232.jpg

modular Platine Schaltnetzteil................modular Platine programmer + 2x RS232 + USB

in : 12 - 40V dc oder 9 - 28V ac

out: +5V +3.3V

LCD ausgabe

sehe http://www.ethersex.de/index.php/LCD

wissenswert bei make menuconfig

  • irc-client

zu erreichen mit >Applications>irc-client(Experimental)

geb dort ein existierende irc ip nummer ab zb fuer ethersex mit das host command in ein terminal

host irc.freenode.net

dan werden die ip nummer ausgegeben.

waehle ein und gebe das ip ein bei: server ip

channel ( zb ethersex ist ok)

Nickname is total frei :)

Bei Applications ECMD (Etherrape Control Interface) support aktivieren.
Bei Applications>ECMD (Etherrape Control Interface) support>IRC (EXPERIMENTAL) aktivieren.


  • netstat (soll mann aktivieren ist gefahrlos nur als danke schoen an die coders von ethersex)

einstellen mit >Applications>Systemclock support und dann da

date+time aktivieren
cron deamon (static jobs) aktivieren

zuruck nach

Applications>netstat client aktivieren

alles ist da schon richtig eingegeben (nichts aendern)

alle werden dan in http://www.ethersex.de/~habo/stat/ gelistet nur mit zeit und mac

ETHERSEX HOWTO

Ist noch baustelle!

Hier werden alle links eingefuegt die meiner meinung nach information behalten die auch in ein HOWTO sein sollte.

Sind alle links zu : http://www.ethersex.de/index.php/Spezial:Alle_Seiten

Wo auch noch ein menge andere documentation zu finden ist.


DIE UNGEAHNTE MOEGLICHKEITEN VON ETHERSEX

 http://www.ethersex.de/index.php/Feature_Liste

HARDWARE

Direkt durch den software unterstuetzte hardware:

 http://www.ethersex.de/index.php/Unterstützte_Hardware

SOFTWARE

Ein komplette Entwicklungs umgebung (sogar ohne installierung) mit :

 http://www.ethersex.de/index.php/Live_CD

Voraussetzung an software:

 http://www.ethersex.de/index.php/Voraussetzungen

Download:

 http://www.ethersex.de/index.php/Download

git howto :

 http://www.ethersex.de/index.php/Git_HowTo

step by step zum software :

 http://www.ethersex.de/index.php/Kategorie:StepByStep

SOFTWARE PROTOCOLS IN ETHERSEX

ecmd  : if enabled in menuconfig

 http://www.ethersex.de/index.php/ECMD
 http://www.ethersex.de/index.php/Ecmd_Reference
 http://www.ethersex.de/index.php/ECMD_Protocols
 http://www.ethersex.de/index.php/Ethersex_Ecmd_Erstellen
 http://www.ethersex.de/index.php/AliasCmd

COMMUNITY

Hier ist hilfe zu finden :

 http://www.ethersex.de/index.php/Community

HARDWARE ANBINDUNG

  • in menuconfig unterstuetzte hardware.

lcd :

 http://www.ethersex.de/index.php/LCD

rfm12 : senden und empfangen von ip ueber 433 Mhz (wireless netz) :

 http://www.ethersex.de/index.php/BitfehlerASK
 http://www.ethersex.de/index.php/RFM12
 http://www.ethersex.de/index.php/RFM12_ASK
   TevionFunksteckdosen, welche über eine 'Anlern-Taste' auf den gesendeten Haus- und Gerätecode
   programmiert  werden können :
 http://www.ethersex.de/index.php/HowToRFM12_ASK
 http://www.ethersex.de/index.php/RS485_Converter
 http://www.ethersex.de/index.php/Hardware-Rayofhope

I2C  :Der I2C-Bus (Inter Integrated Circuit) ist ein einfacher Zweidraht-Bus.

 http://www.ethersex.de/index.php/I2C
 http://www.ethersex.de/index.php/I2C_Bootloader

camera Dc3840 : webcam

 http://www.ethersex.de/index.php/DC3840_Camera
 http://www.ethersex.de/index.php/HTTPD

one wire : 1-wire Temperatursensoren mit ECMD auflisten und abfragen

 http://www.ethersex.de/index.php/Dallas_1-wire_Bus

stella light :

 http://www.ethersex.de/index.php/Stella_Light
 http://www.ethersex.de/index.php/Ecmd_speed_protocol

kty : Temperaturen mit dem ATmega messen

 http://www.ethersex.de/index.php/Temperaturmessung_mit_KTY
  • software aktivieren fuer neue hardware (nicht in menuconfig) :
 http://www.ethersex.de/index.php/Ethersex_Hardware_hinzufügen

PORT STEUERUNG

  • Pins :
 http://www.ethersex.de/index.php/Pins_in_Ethersex_definieren
  • Yport : ethernetz zu rs232 konverter
 http://www.ethersex.de/index.php/YPort

NETZWERK AUFBAU

 lesen bevor man Zbus oder rfm12 einsetzt
 http://www.ethersex.de/index.php/Network_Bridges
  • Zbus :

ip netzwerk ueber rs485

 http://www.ethersex.de/index.php/ZBus
 http://www.ethersex.de/index.php/ZBus_Bootloader
 http://www.ethersex.de/index.php/ZBus_Protokoll
 http://www.ethersex.de/index.php/ZBus_Serial_Host
  • rfm12 :

senden und empfangen von ip ueber 433 Mhz (wireless netz) :

 http://www.ethersex.de/index.php/RFM12
 http://www.ethersex.de/index.php/RFM12_ASK
   TevionFunksteckdosen, welche über eine 'Anlern-Taste' auf den gesendeten Haus- und Gerätecode
   programmiert  werden können :
 http://www.ethersex.de/index.php/HowToRFM12_ASK
 http://www.ethersex.de/index.php/Funk2Duo

Live-CD mit rw partition

Verlagert zu Live-CD_mit_rw_partition