DinusExperience: Unterschied zwischen den Versionen
Dinus (Diskussion | Beiträge) |
Dinus (Diskussion | Beiträge) (→Fuse bits) |
||
(210 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
+ | Fuer den die es noch nicht aufgefallen ist: Deutsch ist nicht mein Muttersprache :-) | ||
+ | |||
== Ziel dieses Projekts == | == Ziel dieses Projekts == | ||
* mal mit avr's anfangen und verstehen und die "closed software" von pollin durch "open source software" ersetzen | * mal mit avr's anfangen und verstehen und die "closed software" von pollin durch "open source software" ersetzen | ||
== AVR hardware umgebung == | == AVR hardware umgebung == | ||
− | * Programmer: Atmel Evaluations-Board Version 2.0.1 | + | * Programmer: Atmel Evaluations-Board Version 2.0.1. Bei avrdude läuft dieser unter "pony seriell" also: -c ponyser |
− | * Hier ist ein ponyser | + | * Hier ist ein ponyser Programmer zu finden der dem obigen ähnelt: [[https://www.olimex.com/Products/AVR/Programmers/AVR-PG1B/resources/AVR-PG1B.pdf ponyser programmer]] |
* avr-net-io | * avr-net-io | ||
* atmega644 | * atmega644 | ||
− | * geliefert von http://www.pollin.de | + | * geliefert von [[http://www.pollin.de http://www.pollin.de]] |
== Software umgebung == | == Software umgebung == | ||
− | * | + | [[Live_CD]] |
− | * update und | + | * apt-get install libncurses5-dev |
+ | * update und installierte Software fuer ethersex wie hier beschrieben [[Download]] | ||
+ | * wenn help in menuconfig nicht geht: apt-get install dialog | ||
== Hilfe == | == Hilfe == | ||
* Die Community ist [http://www.ethersex.de/index.php/Community hier] zu finden, | * Die Community ist [http://www.ethersex.de/index.php/Community hier] zu finden, | ||
− | * dort | + | * dort habe ich folgendes erfahren: |
+ | |||
+ | == 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 == | == Problem mit ponyprog auf dem Atmel Evaluations-Board in Verbindung mit einem usb-rs232 konverter == | ||
* baudrate /dev/ttyUSB0 auf 9600 8N1 | * baudrate /dev/ttyUSB0 auf 9600 8N1 | ||
avrdude -p m644 -c ponyser -P /dev/ttyUSB0 -t (avrdude in terminal mode) | 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 | + | * verbindung mit dem atmega644, kann fuse bits lesen usw. (zb. r lf gibt das low fuse aus siehe manual avrdude) |
− | * aber avrdude bleibt beim Versuch mit /dev/ttyUSB0 als | + | * aber avrdude bleibt beim Versuch mit /dev/ttyUSB0 als Interface zu flashen hängen |
* ersatz durch ein kabel an /dev/ttyS0 | * ersatz durch ein kabel an /dev/ttyS0 | ||
* baudrate /dev/ttyS0 auf 9600 8N1 | * baudrate /dev/ttyS0 auf 9600 8N1 | ||
Zeile 27: | Zeile 34: | ||
* laeuft dann problemlos durch | * laeuft dann problemlos durch | ||
* Das usb-rs232 interface funktioniert jedoch mit der usart vom board tadellos. | * Das usb-rs232 interface funktioniert jedoch mit der usart vom board tadellos. | ||
+ | |||
+ | == RS232 programmiergerät == | ||
+ | http://www.klaus-leidinger.de/mp/Mikrocontroller/AVR-Prog/AVR-Programmer.html#ATTiny2313 | ||
== Fuse bits == | == Fuse bits == | ||
− | * | + | * Folgende Site gibt die richtigen Infos |
* http://www.wiki.elektronik-projekt.de/mikrocontroller/avr/fusebit_tutorial | * http://www.wiki.elektronik-projekt.de/mikrocontroller/avr/fusebit_tutorial | ||
− | * hier findet mann ein | + | * hier findet mann ein Fusebit-calculator: http://www.engbedded.com/fusecalc/ |
+ | * hier gibts noch ein Fusebit-calculator mit mehr chips: http://eleccelerator.com/fusecalc/fusecalc.php? | ||
+ | Wenn nichts selektiert ist gibts: lf=FFund hf=FF | ||
+ | wenn mann ein bit selektiert wird es 0 | ||
+ | Also wenn man nur spi enable anklickst gibts: lf=FF und hf=DF (weil bit5 0 ist - also gesetzt) | ||
+ | EIN PROGRAMMIERT BIT = 0 | ||
+ | (Dies ist nun einmal den invertierte denkweise von atmel.) | ||
* lese avr manual fuer atmega644 seite 284 | * lese avr manual fuer atmega644 seite 284 | ||
− | * folgende fuse bits sind es bei mir geworden: | + | * folgende fuse bits sind es bei mir geworden für atmega644: |
* lfuse E7 | * lfuse E7 | ||
* hfuse DC | * hfuse DC | ||
* efuse FF | * 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 | 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 für 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 internem 8Mhz RC osc: | ||
+ | lfuse A4 | ||
+ | hfuse CF | ||
+ | |||
+ | fuse bits fuer atmega8 16Mz und den foodloader als bootloader: | ||
+ | lfuse FF | ||
+ | hfuse C8 | ||
+ | |||
+ | ===problem loesung setzen von efuse bei ein atmega88pa=== | ||
+ | |||
+ | nehm das entry 'atmega328p' von avrdude 5.10 und aender da das signature zu atmega88p (m88p). | ||
+ | |||
+ | pass die adressen und speicher an. | ||
+ | |||
+ | laut fuseclac soll es FA programmiert werden in efuse. | ||
+ | |||
+ | das klappt nicht weil immer ein fehler bei ruecklesen kommt. | ||
+ | |||
+ | sieht aus das die letzte 5 bits sich nicht aendern lassen. | ||
+ | |||
+ | weil nur die erste 3 bits gestzt werden sollten kann mann die letzte 5 bits von FA auf nul setzen. | ||
+ | |||
+ | FA gibt dann 0x02 als efuse. | ||
+ | |||
+ | wird dies an avr-dude weitergeleitet dan klappt es. | ||
+ | |||
+ | Womit ein bootloader mit 512 words lauft. | ||
+ | |||
+ | == Bootloader == | ||
+ | Findet man hier: http://www.lochraster.org/foodloader/ | ||
+ | |||
+ | Erstelle ein leeres Dir und wechsle hinein - z.B. 'bootloader'. | ||
+ | |||
+ | Download geht auch mit: | ||
+ | git clone git://github.com/fd0/foodloader | ||
+ | Sehr gute Seite ! | ||
== ecmd interface via rs232/ USART == | == ecmd interface via rs232/ USART == | ||
− | + | protocols -> Ecmd (Eteherrape Control Interface) support --> UART (RS232) (aktivieren) | |
− | + | ||
− | * | + | dann: Ecmd usart select (wählen) |
− | + | ||
− | + | dann: UART Baudrate (gewünschte baudrate einstellen) | |
+ | |||
+ | ==ecmd interface via i2c == | ||
+ | |||
+ | *Im hauptmenü --> 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 für den PC das unterstutzt wird durch linux ab vers. 2.6.21 | ||
+ | |||
+ | besteht aus 2 Widerständen und einer Diode. | ||
+ | |||
+ | http://www.hifi-remote.com/jp1/simple/index.shtml | ||
+ | |||
+ | module in linux laden mit: | ||
+ | modprobe i2c-parport type=7 | ||
+ | |||
== Port I/O und Ecmd == | == Port I/O und Ecmd == | ||
Zeile 51: | Zeile 124: | ||
* das Beispiel gibt dann die werten von port PA aus: | * das Beispiel gibt dann die werten von port PA aus: | ||
io get port 0 | io get port 0 | ||
+ | um das ddr Register von port 3 zu lesen: | ||
+ | |||
+ | Die Werte werden in hex als z.B. 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 == | == Named Pins und Ecmd == | ||
− | * macht das steuern | + | siehe [[Named_PIN]] |
− | * in /core/portio/config | + | * macht das steuern übers http einfach und schön (wenn http server im menuconfig aktiviert ist). |
+ | * in /core/portio/config gibst du Pins symbolische Namen. Zum Beispiel: | ||
PD7 OUTPUT HIGH Verstaerker | PD7 OUTPUT HIGH Verstaerker | ||
dann kannst du mit ecmnd | dann kannst du mit ecmnd | ||
Zeile 61: | Zeile 143: | ||
pin set Verstaerker off | pin set Verstaerker off | ||
schaltet den Verstaerker, bzw. pin PD7, wieder aus | schaltet den Verstaerker, bzw. pin PD7, wieder aus | ||
+ | |||
+ | == EcmdScript == | ||
+ | |||
+ | 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 [[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 == | == Netzwerk-Einstellung aendern == | ||
Zeile 75: | Zeile 203: | ||
eingeben, um die aenderungen zu uebernehmen. | eingeben, um die aenderungen zu uebernehmen. | ||
− | == | + | == Yport ( ethernet rs232 converter ) == |
− | + | ||
− | zu erreichen mit | + | verlagert nach [[YPort]] |
− | + | ||
− | den | + | == '''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 siehe '''Entwickulungs Platine''' unten. | ||
+ | |||
+ | |||
+ | |||
+ | [[bild:rs232network.png|800px]] | ||
+ | |||
+ | Alle RS232 vebindungen sind getrennt ansprechbar. | ||
+ | |||
+ | == '''USB (ip Netz Interface an avr-net-io) '''== | ||
+ | |||
+ | [[bild:USB.jpg|400px]] | ||
+ | |||
+ | 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. | ||
+ | |||
+ | [[bild:tcl1.png|350px]] [[bild:tcl2.png|350px]] | ||
+ | |||
+ | 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 '''== | ||
+ | |||
+ | === ''MC34063 Schaltnetzteil berechnung ''=== | ||
+ | |||
+ | http://dics.voicecontrol.ro/tutorials/mc34063/ | ||
+ | |||
+ | === ''Einsatz von cat5 Kabel ''=== | ||
+ | |||
+ | ==== ''Kabel''==== | ||
+ | |||
+ | Maximal Strom durch ein Leiter ist 570 mA. | ||
+ | |||
+ | Alles ueber cat5 Kabel ist hier zu finden. | ||
+ | |||
+ | http://en.wikipedia.org/wiki/Category_5_cable | ||
+ | |||
+ | Spannungs verlust in cat5 kabel | ||
+ | |||
+ | http://www.analog.com/library/analogdialogue/archives/38-07/equalizer.pdf | ||
+ | |||
+ | ==== ''I2C ueber cat5''==== | ||
+ | |||
+ | http://www.nxp.com/documents/application_note/AN10658.pdf | ||
+ | |||
+ | ==== ''VGA ueber cat5''==== | ||
+ | |||
+ | http://www.intersil.com/products/deviceinfo.asp?pn=EL4543 | ||
+ | |||
+ | http://www.intersil.com/data/fn/fn7325.pdf | ||
+ | |||
+ | ==== '' Levelshifter 5V <> 3.3V bidirektional ''==== | ||
+ | |||
+ | http://www.kip.uni-heidelberg.de/lhcb/Publications/external/AN97055.pdf | ||
+ | |||
+ | ==== '' Levelshifter RS232 - TTL mit 2x mosfet 2N7000 '' ==== | ||
+ | http://www.botkin.org/dale/rs232_interface.htm | ||
+ | |||
+ | http://www.electro-tech-online.com/attachments/microcontrollers/4897d1117851836-rs232-level-shifting-power-consumption-ttl-232_convertor.jpg | ||
+ | |||
+ | === ''Backplane Platine '' === | ||
+ | |||
+ | Verdrahtung zwischen Module findet hier sein Platz. | ||
+ | |||
+ | Wobei nur die drahten gelegt werden die wirklich genutzt werden. :-)) | ||
+ | |||
+ | [[bild:l1_back.jpg|25px]] [[bild:l1_front.jpg|25px]] [[bild:l1_kaarten.jpg|25px]] | ||
+ | |||
+ | [[bild:l1_backplane.jpg|250px]] [[bild:l1_fullsystem.jpg|250px]] | ||
+ | |||
+ | Stecker DIN41612 | ||
+ | |||
+ | Reihe a und c belegt | ||
+ | a c | ||
+ | ---------------------------------------------- | ||
+ | 1 .....9-40V dc........ 1 PINS 1-9 RESERVED | ||
+ | 2 .....ground.......... 2 | ||
+ | 3 .....+5V............. 3 [.....] SAME ON ALL 41612 SOCKETS (including modules) | ||
+ | 4 .....+3.3 V.......... 4 | ||
+ | 5 .....A Zbus.......... 5 | ||
+ | 6 .....B Zbus.......... 6 | ||
+ | 7 ..Rx (Yport) 7 ..Tx (Yport) | ||
+ | 8 ..SCL (bus) 8 ..Rx (slave) | ||
+ | 9 ..SDA (bus) 9 ..Tx (slave) | ||
+ | 10 .. 10 .. | ||
+ | 11 .. 11 .. | ||
+ | 12 .. 12 .. | ||
+ | 13 ..PB0 13 ..PA0 | ||
+ | 14 ..PB1 14 ..PA1 | ||
+ | 15 ..PB2 15 ..PA2 | ||
+ | 16 ..PB3 16 ..PA3 | ||
+ | 17 ..PB4 [SS] 17 ..PA4 | ||
+ | 18 ..PB5 [MOSI] 18 ..PA5 | ||
+ | 19 ..PB6 [MISO] 19 ..PA6 | ||
+ | 20 ..PB7 [SCK] 20 ..PA7 | ||
+ | 21 ..[RESET] 21 .. | ||
+ | 22 .. 22 .. | ||
+ | 23 .. 23 .. | ||
+ | 24 .. 24 ..PC7 | ||
+ | 25 ..XTAL1 [EXT.CLOCK] 25 ..PC6 | ||
+ | 26 ..PD0 [Rx0] 26 ..PC5 | ||
+ | 27 ..PD1 [Tx0] 27 ..PC4 | ||
+ | 28 ..PD2 28 ..PC3 | ||
+ | 29 ..PD3 29 ..PC2 | ||
+ | 30 ..PD4 30 ..PC1 [SDA] | ||
+ | 31 ..PD5 31 ..PC0 [SCL] | ||
+ | 32 ..PD6 32 ..PD7 | ||
+ | |||
+ | |||
+ | |||
+ | ===''Modular Platine Schaltnetzteil''=== | ||
+ | |||
+ | [[bild:l1_schaltnetzteil.jpg|250px]] | ||
+ | |||
+ | Schaltplan Schaltnetzteil: [[ZBus_am_PC_(RS232_zu_RS485_Konverter)]] | ||
+ | |||
+ | in : 9 - 40V dc oder 9 - 28V ac | ||
+ | |||
+ | out: +5V +3.3V | ||
+ | |||
+ | ===''Modular Platine Programmer + 2x RS232 + USB''=== | ||
+ | |||
+ | [[bild:l1_progger_rs232.jpg|250px]] | ||
+ | |||
+ | Schaltplan Programmer (ist ein pony seriell) sehe : [[http://www.olimex.com/dev/pdf/avr-pg1b.pdf ponyser programmer]] | ||
+ | |||
+ | Schaltplan RS232 : [[ZBus_am_PC_(RS232_zu_RS485_Konverter)]] | ||
+ | |||
+ | Schaltplan USB : [[USB]] | ||
+ | |||
+ | |||
+ | ===''Modular Platine Programmer seriell ttl''=== | ||
+ | |||
+ | [[bild:l1_rs232_ttl_programmer.jpg|250px]] | ||
+ | |||
+ | Nachbau von: | ||
+ | |||
+ | http://www.klaus-leidinger.de/mp/Mikrocontroller/AVR-Prog/AVR-Programmer.html#ATTiny2313 | ||
+ | |||
+ | Orginal Software gibt ein Baudrate von 115200 | ||
+ | |||
+ | Fuer Linux (Debian) " apt-get install avra " eingeben fuer ein brauchbare Compiler. | ||
+ | |||
+ | Damit laesst sich dan bei aenderung von den Baurate im Source die hex file neu erstellen. | ||
+ | |||
+ | ===''Modular Platine sd-karte''=== | ||
+ | |||
+ | [[bild:l1_sd-karte.jpg|250px]] [[bild:l1_sd-karte.png|250px]] | ||
+ | |||
+ | sehe fuer Schaltplan: http://www.roland-riegel.de/sd-reader/index.html | ||
+ | |||
+ | |||
+ | ===''Modular Platine Taktgeber''=== | ||
+ | |||
+ | [[bild:l1_taktgeber.jpg|250px]] | ||
+ | |||
+ | Schaltplan Taktgeber: 3 Taktgeber mit ein 74HC04 (achtung soll HC sein). | ||
+ | |||
+ | Jeder Taktgeber kann mit ein 74HCT4040 (ripple counter) weiter geteilt werden. | ||
+ | |||
+ | Und damit stehen alle Frequenzen zum verfuegung beim Entwicklung. | ||
+ | |||
+ | in folgende url kann man die aufbau von oscillator finden. | ||
+ | |||
+ | http://www.eetindia.co.in/STATIC/PDF/200810/EEIOL_2008OCT09_EDA_AN_01.pdf?SOURCES=DOWNLOAD | ||
+ | |||
+ | ===''Modular Platine 8-port Uart Switch''=== | ||
+ | |||
+ | [[bild:l1_8_port_ttl_switch.jpg|250px]] [[bild:l1_cpu_switch2.png|250px]] [[bild:l1_cpu_switch.png|250px]] | ||
+ | |||
+ | |||
+ | - wenn der PC an Y0D0 haengt ist immer ein Verbindung mit den cpu zu machen. (alle schalter auf 0) | ||
+ | |||
+ | - an alle andere YxDx kann ein esex oder was anders gehaengt werden pro rs232 | ||
+ | |||
+ | - an Haupt Anschluss (CPU) lauft dann den Supervisor. (mit ein bevorzugte Sprache) | ||
+ | |||
+ | - Der Supervisor waehlt pro A0 A1 A2 ein Slave zum quatchen. | ||
+ | |||
+ | - Der PC wird eingestezt als Datalogger. (oder esex mit sd-karte) | ||
+ | |||
+ | [[bild:rs232-switch-diode-and.png|250px]] | ||
+ | |||
+ | ===''Modular Platine ethernetz''=== | ||
+ | |||
+ | |||
+ | [[bild:l1_ethernet.jpg|250px]] [[bild:l1_back_ethernet.jpg|250px]] | ||
+ | |||
+ | Zusammen mit Yport in ein atmega644p wird der RS232 switch gesteuert sodass (vorlaufig) 8 slaves (max. 128) zu erreichen sind mit ein einziges ethernetz anbindung. | ||
+ | Pro RS422 wird weiter verteilt mit cat5 kabel. | ||
+ | |||
+ | Pin 4 (== int von ENC28J60) ist am Pin 3 (== PB2 Atmega644p) gelegt womit die Platine AVR-NET-IO aehnlich ist. | ||
+ | |||
+ | Impulsuebertrager: http://shop.ulrichradig.de/passive-Bauelemente | ||
+ | |||
+ | Schaltplan (mehr oder weniger): http://www.ulrichradig.de/home/index.php/avr/eth_m32_ex | ||
+ | |||
+ | PortA wird eingesetzt zum schalten von RS232 Switch. | ||
+ | Switch CPU | ||
+ | -------------- | ||
+ | A0......PA0 | ||
+ | A1......PA1 | ||
+ | A2......PA2 | ||
+ | ........PA3 - NC ist frei um einfacher zu schalten pro io (hex werten). | ||
+ | A3......PA4 - Ist das Card Select fuer Switch 1. | ||
+ | ........PA5 - Card Select Switch 2. | ||
+ | ........PA6 - Card Select Switch 3. | ||
+ | ........PA7 - Umschaltung von PC und Switch Eingang: PC <-> Slave 0. (mit ein 74hc241) | ||
+ | |||
+ | Erster channel auf card 1 (Channel geht von 0...7) | ||
+ | io set port 0 60 (Bei 6 ist Pin PA4 0 die andere 1) | ||
+ | |||
+ | Vielleicht erst Port richtig setzen: | ||
+ | io set ddr port 0 ff | ||
+ | Kein 0x bei Hex wert. | ||
+ | |||
+ | ===''Batterie Schalter 40V 380Amp ''=== | ||
+ | [[bild:mosfet.png|250px]] | ||
+ | |||
+ | ===''universeler serieller bi-directional extender ''=== | ||
+ | [[bild:universal-birectional-extender.png|250px]] [[bild:universal-birectional-extender-opto.png|250px]] | ||
+ | |||
+ | Automotive Physical Layer SAE J1708: http://www.national.com/an/AN/AN-915.pdf | ||
+ | |||
+ | Ten Ways to Bulletproof RS-485 Interfaces: http://www.national.com/an/AN/AN-1057.pdf | ||
+ | |||
+ | FAILSAFE Biasing of Differential Buses: http://www.national.com/an/AN/AN-847.pdf | ||
+ | |||
+ | Physical Layer Alternatives: http://www.national.com/an/AN/AN-967.pdf | ||
+ | |||
+ | ==='' single-wire-software-uart ''=== | ||
+ | |||
+ | http://atmel.com/dyn/resources/prod_documents/AVR274.pdf | ||
+ | |||
+ | http://www.atmel.com/dyn/resources/prod_documents/AVR274.zip | ||
+ | |||
+ | http://www.maxim-ic.com/app-notes/index.mvp/id/214 | ||
+ | |||
+ | ==='' single-wire-half-duplex-uart-bus ''=== | ||
+ | [[bild:diode-mosfet-single-wire.png|250px]] | ||
+ | |||
+ | ==='' Schaltungslayouts für Lochrasterplatinen ''=== | ||
+ | |||
+ | BlackBoard dient dazu, Schaltungslayouts für Lochrasterplatinen zu entwerfen. | ||
+ | |||
+ | Eine kurze Demonstration und Einführung, was man mit BlackBoard anstellen kann, gibt es hier: | ||
+ | |||
+ | http:/http://blackboard.serverpool.org/?p=91 | ||
+ | |||
+ | [[bild:netwerk-atmega.png|500px]]/www.blackboard.serverpool.org | ||
+ | |||
+ | Mit RS232 RS422 RS485 Ethernetz 'Single wire halb duplex uart bus' | ||
+ | |||
+ | Noch nicht gebaut - kann also Fehler enthalten. | ||
+ | |||
+ | Jetzt auch mit DIN41612 Stecker und viele andere Bauteilen, Download hier: | ||
+ | |||
+ | http://www.sebulli.com/BlackBoard/index.html | ||
+ | |||
+ | == Debian Tips == | ||
+ | |||
+ | sehe [[Debian_Tips]] | ||
+ | |||
+ | == LCD ausgabe == | ||
+ | |||
+ | sehe [[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 [[~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 : [[Spezial:Alle_Seiten ]] | ||
+ | |||
+ | Wo auch noch ein menge andere documentation zu finden ist. | ||
+ | |||
+ | |||
+ | ==== DIE UNGEAHNTE MOEGLICHKEITEN VON ETHERSEX ==== | ||
+ | [[Feature_Liste]] | ||
+ | |||
+ | ==== HARDWARE ==== | ||
+ | Direkt durch den software unterstuetzte hardware: | ||
+ | [[Unterstützte_Hardware]] | ||
+ | |||
+ | ==== SOFTWARE ==== | ||
+ | Ein komplette Entwicklungs umgebung (sogar ohne installierung) mit : | ||
+ | [[Live_CD]] | ||
+ | Voraussetzung an software: | ||
+ | [[Voraussetzungen]] | ||
+ | Download: | ||
+ | [[Download]] | ||
+ | git howto : | ||
+ | [[Git_HowTo]] | ||
+ | step by step zum software : | ||
+ | [[Kategorie:StepByStep]] | ||
+ | |||
+ | ==== SOFTWARE PROTOCOLS IN ETHERSEX ==== | ||
+ | ecmd : if enabled in menuconfig | ||
+ | [[ECMD]] | ||
+ | [[Ecmd_Reference]] | ||
+ | [[ECMD_Protocols]] | ||
+ | [[Ethersex_Ecmd_Erstellen]] | ||
+ | [[AliasCmd]] | ||
+ | |||
+ | ==== COMMUNITY ==== | ||
+ | Hier ist hilfe zu finden : | ||
+ | [[Community]] | ||
+ | |||
+ | ==== HARDWARE ANBINDUNG ==== | ||
+ | * in menuconfig unterstuetzte hardware. | ||
+ | lcd : | ||
+ | [[LCD]] | ||
+ | |||
+ | rfm12 : | ||
+ | senden und empfangen von ip ueber 433 Mhz (wireless netz) : | ||
+ | [[BitfehlerASK]] | ||
+ | [[RFM12]] | ||
+ | [[RFM12_ASK]] | ||
+ | TevionFunksteckdosen, welche über eine 'Anlern-Taste' auf den gesendeten Haus- und Gerätecode | ||
+ | programmiert werden können : | ||
+ | [[HowToRFM12_ASK]] | ||
+ | [[RS485_Converter]] | ||
+ | [[Hardware-Rayofhope]] | ||
+ | |||
+ | I2C :Der I2C-Bus (Inter Integrated Circuit) ist ein einfacher Zweidraht-Bus. | ||
+ | [[I2C]] | ||
+ | [[I2C_Bootloader]] | ||
+ | |||
+ | camera Dc3840 : | ||
+ | webcam | ||
+ | [[DC3840_Camera]] | ||
+ | [[HTTPD]] | ||
+ | |||
+ | one wire : | ||
+ | 1-wire Temperatursensoren mit ECMD auflisten und abfragen | ||
+ | [[Dallas_1-wire_Bus]] | ||
+ | |||
+ | stella light : | ||
+ | [[Stella_Light]] | ||
+ | [[Ecmd_speed_protocol]] | ||
+ | |||
+ | kty : | ||
+ | Temperaturen mit dem ATmega messen | ||
+ | [[Temperaturmessung_mit_KTY]] | ||
+ | |||
+ | * software aktivieren fuer neue hardware (nicht in menuconfig) : | ||
+ | [[Ethersex_Hardware_hinzufügen]] | ||
+ | |||
+ | ==== PORT STEUERUNG ==== | ||
+ | * Pins : | ||
+ | [[Pins_in_Ethersex_definieren]] | ||
+ | * Yport : ethernetz zu rs232 konverter | ||
+ | [[YPort]] | ||
− | + | ==== NETZWERK AUFBAU ==== | |
+ | lesen bevor man Zbus oder rfm12 einsetzt | ||
+ | [[Network_Bridges]] | ||
+ | * Zbus : | ||
+ | ip netzwerk ueber rs485 | ||
+ | [[ZBus]] | ||
+ | [[ZBus_Bootloader]] | ||
+ | [[ZBus_Protokoll]] | ||
+ | [[ZBus_Serial_Host]] | ||
+ | * rfm12 : | ||
+ | senden und empfangen von ip ueber 433 Mhz (wireless netz) : | ||
+ | [[RFM12]] | ||
+ | [[RFM12_ASK]] | ||
+ | TevionFunksteckdosen, welche über eine 'Anlern-Taste' auf den gesendeten Haus- und Gerätecode | ||
+ | programmiert werden können : | ||
+ | [[HowToRFM12_ASK]] | ||
+ | [[Funk2Duo]] | ||
− | + | == '''Live-CD mit rw partition''' == | |
+ | Verlagert zu [[Live-CD_mit_rw_partition]] | ||
− | |||
− | |||
− | |||
[[Kategorie:Erfahrungsberichte]] | [[Kategorie:Erfahrungsberichte]] |
Aktuelle Version vom 21. Oktober 2014, 11:00 Uhr
Fuer den die es noch nicht aufgefallen ist: Deutsch ist nicht mein Muttersprache :-)
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 programmiergerät
- 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
- 21.1 MC34063 Schaltnetzteil berechnung
- 21.2 Einsatz von cat5 Kabel
- 21.3 Backplane Platine
- 21.4 Modular Platine Schaltnetzteil
- 21.5 Modular Platine Programmer + 2x RS232 + USB
- 21.6 Modular Platine Programmer seriell ttl
- 21.7 Modular Platine sd-karte
- 21.8 Modular Platine Taktgeber
- 21.9 Modular Platine 8-port Uart Switch
- 21.10 Modular Platine ethernetz
- 21.11 Batterie Schalter 40V 380Amp
- 21.12 universeler serieller bi-directional extender
- 21.13 single-wire-software-uart
- 21.14 single-wire-half-duplex-uart-bus
- 21.15 Schaltungslayouts für Lochrasterplatinen
- 22 Debian Tips
- 23 LCD ausgabe
- 24 wissenswert bei make menuconfig
- 25 ETHERSEX HOWTO
- 26 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. Bei avrdude läuft dieser unter "pony seriell" also: -c ponyser
- Hier ist ein ponyser Programmer zu finden der dem obigen ähnelt: [ponyser programmer]
- avr-net-io
- atmega644
- geliefert von [http://www.pollin.de]
Software umgebung
- apt-get install libncurses5-dev
- update und installierte Software fuer ethersex wie hier beschrieben Download
- wenn help in menuconfig nicht geht: apt-get install dialog
Hilfe
- Die Community ist hier zu finden,
- dort habe ich folgendes erfahren:
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 siehe manual avrdude)
- aber avrdude bleibt beim Versuch mit /dev/ttyUSB0 als Interface zu flashen hängen
- 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 programmiergerät
http://www.klaus-leidinger.de/mp/Mikrocontroller/AVR-Prog/AVR-Programmer.html#ATTiny2313
Fuse bits
- Folgende Site gibt die richtigen Infos
- http://www.wiki.elektronik-projekt.de/mikrocontroller/avr/fusebit_tutorial
- hier findet mann ein Fusebit-calculator: http://www.engbedded.com/fusecalc/
- hier gibts noch ein Fusebit-calculator mit mehr chips: http://eleccelerator.com/fusecalc/fusecalc.php?
Wenn nichts selektiert ist gibts: lf=FFund hf=FF wenn mann ein bit selektiert wird es 0 Also wenn man nur spi enable anklickst gibts: lf=FF und hf=DF (weil bit5 0 ist - also gesetzt) EIN PROGRAMMIERT BIT = 0 (Dies ist nun einmal den invertierte denkweise von atmel.)
- lese avr manual fuer atmega644 seite 284
- folgende fuse bits sind es bei mir geworden für 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 für 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 internem 8Mhz RC osc: lfuse A4 hfuse CF
fuse bits fuer atmega8 16Mz und den foodloader als bootloader: lfuse FF hfuse C8
problem loesung setzen von efuse bei ein atmega88pa
nehm das entry 'atmega328p' von avrdude 5.10 und aender da das signature zu atmega88p (m88p).
pass die adressen und speicher an.
laut fuseclac soll es FA programmiert werden in efuse.
das klappt nicht weil immer ein fehler bei ruecklesen kommt.
sieht aus das die letzte 5 bits sich nicht aendern lassen.
weil nur die erste 3 bits gestzt werden sollten kann mann die letzte 5 bits von FA auf nul setzen.
FA gibt dann 0x02 als efuse.
wird dies an avr-dude weitergeleitet dan klappt es.
Womit ein bootloader mit 512 words lauft.
Bootloader
Findet man hier: http://www.lochraster.org/foodloader/
Erstelle ein leeres Dir und wechsle hinein - z.B. '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 (wählen)
dann: UART Baudrate (gewünschte baudrate einstellen)
ecmd interface via i2c
- Im hauptmenü --> 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 für den PC das unterstutzt wird durch linux ab vers. 2.6.21
besteht aus 2 Widerständen und einer Diode.
http://www.hifi-remote.com/jp1/simple/index.shtml
module in linux laden mit:
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 Werte werden in hex als z.B. 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
siehe Named_PIN
- macht das steuern übers http einfach und schön (wenn http server im menuconfig aktiviert ist).
- in /core/portio/config gibst 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
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 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 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 siehe Entwickulungs Platine unten.
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
MC34063 Schaltnetzteil berechnung
http://dics.voicecontrol.ro/tutorials/mc34063/
Einsatz von cat5 Kabel
Kabel
Maximal Strom durch ein Leiter ist 570 mA.
Alles ueber cat5 Kabel ist hier zu finden.
http://en.wikipedia.org/wiki/Category_5_cable
Spannungs verlust in cat5 kabel
http://www.analog.com/library/analogdialogue/archives/38-07/equalizer.pdf
I2C ueber cat5
http://www.nxp.com/documents/application_note/AN10658.pdf
VGA ueber cat5
http://www.intersil.com/products/deviceinfo.asp?pn=EL4543
http://www.intersil.com/data/fn/fn7325.pdf
Levelshifter 5V <> 3.3V bidirektional
http://www.kip.uni-heidelberg.de/lhcb/Publications/external/AN97055.pdf
Levelshifter RS232 - TTL mit 2x mosfet 2N7000
http://www.botkin.org/dale/rs232_interface.htm
Backplane Platine
Verdrahtung zwischen Module findet hier sein Platz.
Wobei nur die drahten gelegt werden die wirklich genutzt werden. :-))
Stecker DIN41612
Reihe a und c belegt
a c ---------------------------------------------- 1 .....9-40V dc........ 1 PINS 1-9 RESERVED 2 .....ground.......... 2 3 .....+5V............. 3 [.....] SAME ON ALL 41612 SOCKETS (including modules) 4 .....+3.3 V.......... 4 5 .....A Zbus.......... 5 6 .....B Zbus.......... 6 7 ..Rx (Yport) 7 ..Tx (Yport) 8 ..SCL (bus) 8 ..Rx (slave) 9 ..SDA (bus) 9 ..Tx (slave) 10 .. 10 .. 11 .. 11 .. 12 .. 12 .. 13 ..PB0 13 ..PA0 14 ..PB1 14 ..PA1 15 ..PB2 15 ..PA2 16 ..PB3 16 ..PA3 17 ..PB4 [SS] 17 ..PA4 18 ..PB5 [MOSI] 18 ..PA5 19 ..PB6 [MISO] 19 ..PA6 20 ..PB7 [SCK] 20 ..PA7 21 ..[RESET] 21 .. 22 .. 22 .. 23 .. 23 .. 24 .. 24 ..PC7 25 ..XTAL1 [EXT.CLOCK] 25 ..PC6 26 ..PD0 [Rx0] 26 ..PC5 27 ..PD1 [Tx0] 27 ..PC4 28 ..PD2 28 ..PC3 29 ..PD3 29 ..PC2 30 ..PD4 30 ..PC1 [SDA] 31 ..PD5 31 ..PC0 [SCL] 32 ..PD6 32 ..PD7
Modular Platine Schaltnetzteil
Schaltplan Schaltnetzteil: ZBus_am_PC_(RS232_zu_RS485_Konverter)
in : 9 - 40V dc oder 9 - 28V ac
out: +5V +3.3V
Modular Platine Programmer + 2x RS232 + USB
Schaltplan Programmer (ist ein pony seriell) sehe : [ponyser programmer]
Schaltplan RS232 : ZBus_am_PC_(RS232_zu_RS485_Konverter)
Schaltplan USB : USB
Modular Platine Programmer seriell ttl
Nachbau von:
http://www.klaus-leidinger.de/mp/Mikrocontroller/AVR-Prog/AVR-Programmer.html#ATTiny2313
Orginal Software gibt ein Baudrate von 115200
Fuer Linux (Debian) " apt-get install avra " eingeben fuer ein brauchbare Compiler.
Damit laesst sich dan bei aenderung von den Baurate im Source die hex file neu erstellen.
Modular Platine sd-karte
sehe fuer Schaltplan: http://www.roland-riegel.de/sd-reader/index.html
Modular Platine Taktgeber
Schaltplan Taktgeber: 3 Taktgeber mit ein 74HC04 (achtung soll HC sein).
Jeder Taktgeber kann mit ein 74HCT4040 (ripple counter) weiter geteilt werden.
Und damit stehen alle Frequenzen zum verfuegung beim Entwicklung.
in folgende url kann man die aufbau von oscillator finden.
http://www.eetindia.co.in/STATIC/PDF/200810/EEIOL_2008OCT09_EDA_AN_01.pdf?SOURCES=DOWNLOAD
Modular Platine 8-port Uart Switch
- wenn der PC an Y0D0 haengt ist immer ein Verbindung mit den cpu zu machen. (alle schalter auf 0)
- an alle andere YxDx kann ein esex oder was anders gehaengt werden pro rs232
- an Haupt Anschluss (CPU) lauft dann den Supervisor. (mit ein bevorzugte Sprache)
- Der Supervisor waehlt pro A0 A1 A2 ein Slave zum quatchen.
- Der PC wird eingestezt als Datalogger. (oder esex mit sd-karte)
Modular Platine ethernetz
Zusammen mit Yport in ein atmega644p wird der RS232 switch gesteuert sodass (vorlaufig) 8 slaves (max. 128) zu erreichen sind mit ein einziges ethernetz anbindung. Pro RS422 wird weiter verteilt mit cat5 kabel.
Pin 4 (== int von ENC28J60) ist am Pin 3 (== PB2 Atmega644p) gelegt womit die Platine AVR-NET-IO aehnlich ist.
Impulsuebertrager: http://shop.ulrichradig.de/passive-Bauelemente
Schaltplan (mehr oder weniger): http://www.ulrichradig.de/home/index.php/avr/eth_m32_ex
PortA wird eingesetzt zum schalten von RS232 Switch.
Switch CPU -------------- A0......PA0 A1......PA1 A2......PA2 ........PA3 - NC ist frei um einfacher zu schalten pro io (hex werten). A3......PA4 - Ist das Card Select fuer Switch 1. ........PA5 - Card Select Switch 2. ........PA6 - Card Select Switch 3. ........PA7 - Umschaltung von PC und Switch Eingang: PC <-> Slave 0. (mit ein 74hc241)
Erster channel auf card 1 (Channel geht von 0...7)
io set port 0 60 (Bei 6 ist Pin PA4 0 die andere 1)
Vielleicht erst Port richtig setzen:
io set ddr port 0 ff
Kein 0x bei Hex wert.
Batterie Schalter 40V 380Amp
universeler serieller bi-directional extender
Automotive Physical Layer SAE J1708: http://www.national.com/an/AN/AN-915.pdf
Ten Ways to Bulletproof RS-485 Interfaces: http://www.national.com/an/AN/AN-1057.pdf
FAILSAFE Biasing of Differential Buses: http://www.national.com/an/AN/AN-847.pdf
Physical Layer Alternatives: http://www.national.com/an/AN/AN-967.pdf
single-wire-software-uart
http://atmel.com/dyn/resources/prod_documents/AVR274.pdf
http://www.atmel.com/dyn/resources/prod_documents/AVR274.zip
http://www.maxim-ic.com/app-notes/index.mvp/id/214
single-wire-half-duplex-uart-bus
Schaltungslayouts für Lochrasterplatinen
BlackBoard dient dazu, Schaltungslayouts für Lochrasterplatinen zu entwerfen.
Eine kurze Demonstration und Einführung, was man mit BlackBoard anstellen kann, gibt es hier:
http:/http://blackboard.serverpool.org/?p=91
/www.blackboard.serverpool.org
Mit RS232 RS422 RS485 Ethernetz 'Single wire halb duplex uart bus'
Noch nicht gebaut - kann also Fehler enthalten.
Jetzt auch mit DIN41612 Stecker und viele andere Bauteilen, Download hier:
http://www.sebulli.com/BlackBoard/index.html
Debian Tips
sehe Debian_Tips
LCD ausgabe
sehe 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 ~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 : Spezial:Alle_Seiten
Wo auch noch ein menge andere documentation zu finden ist.
DIE UNGEAHNTE MOEGLICHKEITEN VON ETHERSEX
Feature_Liste
HARDWARE
Direkt durch den software unterstuetzte hardware:
Unterstützte_Hardware
SOFTWARE
Ein komplette Entwicklungs umgebung (sogar ohne installierung) mit :
Live_CD
Voraussetzung an software:
Voraussetzungen
Download:
Download
git howto :
Git_HowTo
step by step zum software :
SOFTWARE PROTOCOLS IN ETHERSEX
ecmd : if enabled in menuconfig
ECMD Ecmd_Reference ECMD_Protocols Ethersex_Ecmd_Erstellen AliasCmd
COMMUNITY
Hier ist hilfe zu finden :
Community
HARDWARE ANBINDUNG
- in menuconfig unterstuetzte hardware.
lcd :
LCD
rfm12 : senden und empfangen von ip ueber 433 Mhz (wireless netz) :
BitfehlerASK RFM12 RFM12_ASK TevionFunksteckdosen, welche über eine 'Anlern-Taste' auf den gesendeten Haus- und Gerätecode programmiert werden können : HowToRFM12_ASK RS485_Converter Hardware-Rayofhope
I2C :Der I2C-Bus (Inter Integrated Circuit) ist ein einfacher Zweidraht-Bus.
I2C I2C_Bootloader
camera Dc3840 : webcam
DC3840_Camera HTTPD
one wire : 1-wire Temperatursensoren mit ECMD auflisten und abfragen
Dallas_1-wire_Bus
stella light :
Stella_Light Ecmd_speed_protocol
kty : Temperaturen mit dem ATmega messen
Temperaturmessung_mit_KTY
- software aktivieren fuer neue hardware (nicht in menuconfig) :
Ethersex_Hardware_hinzufügen
PORT STEUERUNG
- Pins :
Pins_in_Ethersex_definieren
- Yport : ethernetz zu rs232 konverter
YPort
NETZWERK AUFBAU
lesen bevor man Zbus oder rfm12 einsetzt Network_Bridges
- Zbus :
ip netzwerk ueber rs485
ZBus ZBus_Bootloader ZBus_Protokoll ZBus_Serial_Host
- rfm12 :
senden und empfangen von ip ueber 433 Mhz (wireless netz) :
RFM12 RFM12_ASK TevionFunksteckdosen, welche über eine 'Anlern-Taste' auf den gesendeten Haus- und Gerätecode programmiert werden können : HowToRFM12_ASK Funk2Duo
Live-CD mit rw partition
Verlagert zu Live-CD_mit_rw_partition