DinusExperience
Inhaltsverzeichnis
- 1 Ziel dieses Projekts
- 2 AVR hardware umgebung
- 3 Software umgebung
- 4 Hilfe
- 5 Seite bearbeiten/schreiben ins wiki
- 6 Problem mit ponyprog auf dem Atmel Evaluations-Board in Verbindung mit einem usb-rs232 konverter
- 7 RS232 programmiergeraet
- 8 Fuse bits
- 9 Bootloader
- 10 ecmd interface via rs232/ USART
- 11 ecmd interface via i2c
- 12 Port I/O und Ecmd
- 13 Named Pins und Ecmd
- 14 EcmdScript
- 15 Netzwerk-Einstellung aendern
- 16 Yport ( ethernet rs232 converter )
- 17 Zbus ( ein rs485 netzwerk mit ip )
- 18 ETHERSEX ALS RS232 SWITCH
- 19 USB (ip Netz Interface an avr-net-io)
- 20 Tcl/Tk interface fuer ethersex
- 21 Entwicklungs Platine
- 22 LCD ausgabe
- 23 wissenswert bei make menuconfig
- 24 ETHERSEX HOWTO
- 25 Live-CD mit rw partition
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
- http://www.ethersex.de/index.php?title=Live_CD
- apt-get install libncurses5-dev
- update und installier software fuer ethersex wie beschrieben http://www.ethersex.de/index.php/Download
- wenn help in menuconfig nicht geht: apt-get install dialog
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
- folgende site gibt richtige info
- http://www.wiki.elektronik-projekt.de/mikrocontroller/avr/fusebit_tutorial
- hier findet mann ein fusebit calculator: http://www.engbedded.com/fusecalc/
- lese avr manual fuer atmega644 seite 284
- folgende fuse bits sind es bei mir geworden fuer atmega644:
- lfuse E7
- hfuse DC
- efuse FF
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
Bootloader
Findet man hier: http://www.lochraster.org/foodloader/
Mach und geh zu ein lehre dir zb. bootloader.
Download geht auch mit:
git clone git://github.com/fd0/foodloader
Sehr gute Seite !
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)
wie die RS232 geschaltet wird
Alle RS232 vebindungen sind getrennt ansprechbar.
USB (ip Netz Interface an avr-net-io)
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.
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
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
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
- 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