<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://www.mikrocontroller.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jmf123</id>
	<title>Mikrocontroller.net - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="https://www.mikrocontroller.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jmf123"/>
	<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/articles/Spezial:Beitr%C3%A4ge/Jmf123"/>
	<updated>2026-04-21T11:51:02Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.39.7</generator>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Benutzer:Jmf123&amp;diff=107501</id>
		<title>Benutzer:Jmf123</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Benutzer:Jmf123&amp;diff=107501"/>
		<updated>2025-05-12T18:31:48Z</updated>

		<summary type="html">&lt;p&gt;Jmf123: GitHub&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Web: [http://github.com/koppi]&lt;/div&gt;</summary>
		<author><name>Jmf123</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=RS-232&amp;diff=81313</id>
		<title>RS-232</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=RS-232&amp;diff=81313"/>
		<updated>2014-02-06T15:23:23Z</updated>

		<summary type="html">&lt;p&gt;Jmf123: Beitrag: Latenzzeitmessung der seriellen Schnittstelle&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;RS-232&#039;&#039;&#039; ist der Name der am meisten verwendeten [[Bus|seriellen asynchronen Schnittstelle]], im Fachjargon auch Übertragungsstandard genannt, um Daten zwischen zwei elektronischen Geräten hin und her zu schicken (im Fachjargon: &#039;&#039;Datenkommunikation&#039;&#039;). Der offizielle Name ist &#039;&#039;EIA RS-232C&#039;&#039;, genormt durch die amerikanische [http://www.eia.org/ Electronic Industries Alliance].  Die äquivalente Norm der CCITT (*) wäre V.24 (Beschreibung des Steckverbinders) plus V.28 (Beschreibung der Signale und des Protokolls).  V.24/V.28 wird oft nur als &#039;&#039;V.24&#039;&#039; bezeichnet, obwohl das streng genommen ungenau ist.  V.24-Steckverbinder definieren zusätzlich zu V.28 eine Reihe von Signalen, die nur für synchrone Übertragungsmodi von Bedeutung sind (die von vielen besseren Modems jedoch zum Teil unterstützt werden können).&lt;br /&gt;
&lt;br /&gt;
(*) Comité Consultatif International Téléphonique et Télégraphique, jetzt nur noch ITU-T genannt; das Normungsgremium der Internationalen Telegrafen-Union für Telekommunikationsstandards.&lt;br /&gt;
&lt;br /&gt;
Einen guten englischsprachigen Überblick über die Steckverbinder und die  verschiedenen Signalnamen findet man bei [http://www.connectworld.net/rs232.html Connectworld]. &lt;br /&gt;
[http://www.beyondlogic.org/ Beyond Logic] liefert zu vielen gängigen Schnittstellen (RS232, PC-Parallelport, USB) umfassende Beschreibungen mit Soft- und Hardware-Beispielen.&lt;br /&gt;
&lt;br /&gt;
== Steckerbelegung ==&lt;br /&gt;
&lt;br /&gt;
Die Steckerbelegung am PC war früher 25-polig und ist heute 9-polig.&lt;br /&gt;
&lt;br /&gt;
:{| {{Tabelle}}&lt;br /&gt;
|+ &#039;&#039;&#039;RS-232 Steckerbelegung&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
! PCCOM1&amp;lt;br/&amp;gt;9Pol männl&lt;br /&gt;
! PCCOM2&amp;lt;br/&amp;gt;25Pol männl&lt;br /&gt;
! PC RS232&lt;br /&gt;
! In/Out&lt;br /&gt;
! Bezeichnung&lt;br /&gt;
! Anmerkung&lt;br /&gt;
|-&lt;br /&gt;
| 1  ||  8 || DCD || in  || Data Carrier Detect || Signalträger erkannt&lt;br /&gt;
|-&lt;br /&gt;
| 2  ||  3 || RxD || in  || || Empfangsdaten&lt;br /&gt;
|-&lt;br /&gt;
| 3  ||  2 || TxD || out || || Sendedaten&lt;br /&gt;
|-&lt;br /&gt;
| 4  || 20 || DTR || out || Data Terminal Ready ||&lt;br /&gt;
|-&lt;br /&gt;
| 5  || 7  || GND ||    || Ground || Bezugspotential&lt;br /&gt;
|-&lt;br /&gt;
| 6  || 6  || DSR || in  || Data Set Ready || Endgerät bereit&lt;br /&gt;
|-&lt;br /&gt;
| 7  || 4  || RTS || out || Request to send || Sendeanfrage&lt;br /&gt;
|-&lt;br /&gt;
| 8  || 5  || CTS || in  || Clear to send || Fertig zum Senden&lt;br /&gt;
|-&lt;br /&gt;
| 9  || 22 || RI  || in  || Ring Indicator || Klingel&lt;br /&gt;
|-&lt;br /&gt;
| —  || 12 ||     ||     || Speed Mode Detector ||&lt;br /&gt;
|-&lt;br /&gt;
| —  || 23 || SPDS ||    || Speed select ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Das RS232-Interface war ursprünglich nur für die Steuerung von Modems verwendet. Für den Datenaustauch zwischen zwei Rechnern genügen oft die Leitungen RxD, TxD und GND.&lt;br /&gt;
&lt;br /&gt;
== Signalpegel, Spannungsversorgung ==&lt;br /&gt;
&lt;br /&gt;
RS-232 arbeitet mit Signalpegeln im Bereich von +3 ... +15 V zur Darstellung einer logischen 0 (SPACE) und -3 ... -15 V zur Darstellung einer logischen 1 (MARK). Die Übertragung des ASCII-Zeichens &#039;C&#039; sieht dann so aus:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Rs232.png]]&lt;br /&gt;
&lt;br /&gt;
Der Bereich von -3 V bis +3 V ist nicht definiert, jedoch erkennen viele Leitungsempfänger das Potential 0 V als logisch 1 an, da sie erst bei positiveren Spannungen auf logisch 0 umschalten.  Dadurch ist es mit derartigen Empfängern durchaus möglich (jedoch nicht garantiert!), mit TTL-Pegel zu arbeiten. Zu beachten ist jedoch die RS-232-typische Negation der logischen Werte in diesem Falle, die dann zumindest noch einen einfachen Inverter (2 * 1/6 [[74xx | 74xx04]] o.ä.) oder einen Transistor in Emitterschaltung benötigt, wenn man als Signalquelle eine Standard-[[UART]] benutzen möchte, wie sie in vielen Mikrocontrollern bereits vorhanden ist. Lediglich im Falle einer in Software realisierten UART (Soft-UART) könnte man diese Negation bereits im Controller vornehmen und dann den Ausgang direkt an den RS-232-Eingang klemmen.  Beim umgekehrten Fall (RS-232-Ausgang mit regulärem Pegel an Eingang eines Controllers) jedoch unbedingt eine Schutzbeschaltung vornehmen, um die negativen oder hohen postiven Spannungen sicher vom Controller fernzuhalten!  Im einfachsten Falle genügt ein Widerstand, da den Rest die internen Schutzdioden übernehmen können (siehe [[Pegelwandler]]).&lt;br /&gt;
&lt;br /&gt;
Für ein reguläres RS-232-Interface jedoch wird immer eine negative Versorgungsspannung benötigt, um den negativen Pegel für logisch 1 erzeugen zu können. Im PC, dessen Netzteil eine -12 V Versorgung bereitstellt, ist dies einfach. Die entsprechenden Treiberbausteine werden für die Logiksignale mit +5 V versorgt und für die Bereitstellung der RS-232-Signale zusätzlich mit +12 V und -12 V.  Im Mikrocontroller, der in der Regel nur eine Versorgung mit +5 V (oder gar +3 V) benutzt, muss die negative Spannung auf andere geeignete Weise erzeugt werden. Stand der Technik ist dabei eine sogenannte Ladungspumpe: Ein Taktgenerator von einigen hundert Kilohertz lädt regelmäßig einen bzw. mehrere Kondensatoren um, und ein Schalternetzwerk aus [[FET | MOSFETs]] sorgt dafür, dass die jeweils positiven oder negativen Pole anschließend außerhalb in einem abschließenden Kondensator summieren.  Die entsprechenden Spannungsquellen sind nicht sehr stark belastbar, aber die RS-232-Schnittstelle arbeitet nur mit Strömen im einstelligen Milliamperebereich, so dass diese Variante genügt.&lt;br /&gt;
&lt;br /&gt;
[[Bild:Max232_korr.png|right|thumb|Beschaltung des MAX232]]&lt;br /&gt;
&lt;br /&gt;
Ladungspumpen gibt es als IC wie z.&amp;amp;nbsp;B. den ICL7660, der aus einer positiven Spannung eine (annähernd gleiche) negative Spannung erzeugt.  Da für RS-232 aber ohnehin Treiberstufen benötigt werden, die diese Pegel schalten können liegt es nahe, die Ladungspumpe gleich mit dem Treiber in einem IC zu vereinigen. Der Industriestandard für einen derartigen Schaltkreis ist der &#039;&#039;&#039;MAX232&#039;&#039;&#039;, den es von verschiedenen Herstellern in verschiedenen Varianten gibt. Maxim selbst hat daraus eine ganze Familie von Treiber-ICs entwickelt, die sich im Aufwand an externen Kondensatoren und der Anzahl der Sender und Empfänger unterscheidet. Der klassische MAX232 hat noch 4 x 10 µF Kondensatoren benötigt, aktuelle Typen benötigen nur noch 4 x 1 µF oder 4 x 100 nF (MAX202, MAX232A) bzw. gar keine externen Kondensatoren mehr (MAX233/203).&lt;br /&gt;
&lt;br /&gt;
Der TTL-Pegel bei der Übertragung des ASCII-Zeichens &#039;C&#039; sieht dann so aus:&lt;br /&gt;
&lt;br /&gt;
[[Bild:seri_ttl.png]]&lt;br /&gt;
&lt;br /&gt;
Der Ruhezustand des TTL-Pegels ist übrigens ein &#039;&#039;&#039;High-Pegel&#039;&#039;&#039;, wie im Bild ersichtlich.&lt;br /&gt;
&lt;br /&gt;
== Andere Signalpegel ==&lt;br /&gt;
&lt;br /&gt;
Wenn der Empfänger und der Sender etwas entfernt sind und zwischen dem Bezugspotential GND des Senders und des Empfängers mehr als 3 V Differenz auftreten, dann kann die Übertragung gestört werden. Deswegen wird offiziell gesagt, dass durch RS232 maximal 15 Meter überbrückt werden können. Praktisch ist aber oft wesenlich mehr möglich, vor allem bei niedrigen Baudraten.&lt;br /&gt;
&lt;br /&gt;
Außer RS232 gibt es auch noch die Norm RS422 bzw. RS485, mit der RxD und TxD durch je ein verdrillten Leiterpaar übertragen werden (diffentielle Signale). Damit wird das Bezugspotential durch die TX- (B) - Leitung zum Empfänger geführt.&lt;br /&gt;
&lt;br /&gt;
Eine andere Methode ist die Datenübertragung durch Strom 4mA - 20mA. Hierfür können die Signale auch durch Optokoppler getrennt werden. Im Ruhezustand &amp;quot;Idle&amp;quot;, also wenn der TTL-Pegel H ist, wird der Optokoppler durchgeschaltet. Die Stromschleife wird durch 12..30 Volt versorgt und die Stromstärke durch einen Widerstand von 500Ω, 630Ω, bzw. 3000Ω eingestellt. Die Stromschleife war in den Jahren bis ca. 1980 die serielle Standardschnittstelle für den Anschluß von Fernschreibern (Teletype ASR33).&lt;br /&gt;
&lt;br /&gt;
Die Stromschleife (engl. Current Loop) ist sehr robust. Es können mehrere hundert Meter überbrückt werden.&lt;br /&gt;
&lt;br /&gt;
== Flusssteuerung ==&lt;br /&gt;
&lt;br /&gt;
Für eine Kommunikation über RS-232 benötigt man normalerweise eine sogenannte Flusssteuerung (engl. &#039;&#039;flow control&#039;&#039;), damit ein Empfänger, der mit dem Einlesen der Daten nicht nachkommt, dem Sender Einhalt gebieten kann.  Gängige Varianten sind Xon/Xoff Flow Control (auch als Software Handshake bezeichnet) und CTS/RTS Flow Control (Hardware Handshake).  &lt;br /&gt;
&lt;br /&gt;
Bei dem Software Handshake wird ein Zeichen Xoff (ASCII DC3, Control-S, dezimal 19, hex 0x13) vom Empfänger gesendet, um den Datenstrom anzuhalten und Xon (ASCII DC1, Control-Q, dezimal 17, hex 0x11), um die Sendung fortzusetzen. Naturgemäß steht in diesem Falle nicht der gesamte Zeichenvorrat von 256 Zeichen für die Übertragung zur Verfügung. Darum wird diese Variante oft nur bei reinen ASCII-Übertragungen genutzt. &lt;br /&gt;
&lt;br /&gt;
Bei dem Hardware Handshake zieht der Empfänger das Signal CTS (Clear to Send) auf logisch 1 (also negativen RS-232 Pegel), um den Datenstrom anzuhalten.  Da bei Verbindung zweier RS-232-Endgeräte CTS mit RTS gekreuzt wird, ist daraus der Name CTS/RTS flow control entstanden.  Der Name &#039;&#039;Hardware Handshake&#039;&#039; darf dabei nicht missgedeutet werden: zwar werden Hardware-Signale für das Handshake benutzt, so dass der volle Zeichenvorrat für den Übertragungskanal zur Verfügung steht, aber weder die gängigen UARTs in PCs noch in Controller behandeln die eigentliche Flusssteuerung tatsächlich in Hardware, sondern die Softwareimplementierungen der jeweiligen Treiber müssen diese Zustände erkennen und entsprechend schnell reagieren.&lt;br /&gt;
&lt;br /&gt;
Bei Mikrocontrollern wird jedoch sehr oft auf jegliche Flusssteuerung verzichtet, so dass nur die Leitungen von RxD, TxD und GND (Masse) verdrahtet werden.  Diese Schnittstelle wird auch als &#039;&#039;3-wire&#039;&#039; bezeichnet, da sie nur drei Drähte benötigt.  Der Ausgang (TxD vom Controller via Treiberstufe des MAX232) wird dann mit dem RxD-Eingang des PC verbunden (Pin 2 bei DB9-Steckern), ggf. der Eingang (RxD des Controllers vom Empfänger des MAX232) mit TxD des PC (Pin 3 bei DB9), Masse des DB9-Steckers ist Pin 5.  &lt;br /&gt;
&lt;br /&gt;
Je nach Betriebssystem auf dem PC empfiehlt es sich noch, Pin 1 (DCD) und 6 (DSR) gebrückt an einen Treiberausgang des MAX232 zu legen, dessen Eingang auf 0 V liegt (so dass positiver Pegel an diesen beiden Pins liegt) sowie Pin 7 (RTS) und 8 (CTS) zu brücken, so dass der PC sich selbst RTS auf CTS rückkoppelt.&lt;br /&gt;
&lt;br /&gt;
== Terminalprogramme ==&lt;br /&gt;
&lt;br /&gt;
=== Linux ===&lt;br /&gt;
* [http://www.der-hammer.info/terminal/index.htm HTerm] Ohne Terminalemulation.&lt;br /&gt;
* [http://www.iftools.com/download.en.html wxTerminal] Ohne Terminalemulation.&lt;br /&gt;
* [https://fedorahosted.org/gtkterm/ GTKTerm] (enthält bösen Bug, siehe: http://www.mikrocontroller.net/topic/73781 - sollte in 0.99.6 gefixt sein)&lt;br /&gt;
* [http://efault.net/npat/hacks/picocom/ picocom]&lt;br /&gt;
* [http://cutecom.sourceforge.net/ CuteCom]&lt;br /&gt;
* [http://alioth.debian.org/projects/minicom/ minicom] (meist bei Linux dabei)&lt;br /&gt;
* [http://tinyserial.sourceforge.net/ tiny serial terminal]&lt;br /&gt;
* [http://sourceforge.net/projects/serial-io/ Serial-IO] (Terminal mit GUI und Sonderfunktionen wie Buffer senden, Highlighting, adaptive CRC-Berechnung)&lt;br /&gt;
* [http://dev.frozeneskimo.com/software_projects:ssterm ssterm] - Simple Serial-Port Terminal is a console-based serial port terminal with curses and stdin/stdout user interfaces. (GPL)&lt;br /&gt;
* [http://www.gnu.org/software/screen/ GNU screen] (Terminal-Multiplexer mit Zugriffsmöglichkeit auf serielle Ports)&lt;br /&gt;
* [http://www.chiark.greenend.org.uk/~sgtatham/putty/ PuTTY] z.B. Ubuntu 12.10 &amp;quot;apt-get install putty&amp;quot; mit: putty 0.62-6ubuntu0.1&lt;br /&gt;
* screen (&amp;quot;man screen&amp;quot; zeigt Hilfe: screen - screen manager with VT100/ANSI terminal emulation) Beispiel für USB -&amp;gt; RS232: sudo screen /dev/ttyUSB0 115200,cs8,-ixoff--ixoff,istrip&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
* [http://www.awavo.com/serial-port-monitor/ Serial Port Monitor]&lt;br /&gt;
* [http://www.der-hammer.info/terminal/index.htm HTerm] Ohne Terminalemulation.&lt;br /&gt;
* [https://sites.google.com/site/terminalbpp/ Br@y++ Terminal] Ohne Terminalemulation. &amp;lt;br&amp;gt;Alternativer Download bei [http://www.smileymicros.com/download/term20040714.zip?&amp;amp;MMN_position=42:42 www.smileymicros.com (ZIP, Version aus 2004!)]&lt;br /&gt;
* [http://www.rowalt.de/mc/index.htm AVRTERM] (Windows 9x/ME, grafische Ausgabe möglich)&lt;br /&gt;
* [https://iftools.com/opensource/wxterm.en.php wxTerminal] Ohne Terminalemulation. &lt;br /&gt;
* [http://www.hw-group.com/products/hercules/index_en.html Hercules Setup Utility] (auch TCP, UDP)&lt;br /&gt;
* [http://hp.vector.co.jp/authors/VA002416/teraterm.html Tera Term] (Windows 95/NT,CE)&lt;br /&gt;
* [http://www.ayera.com/teraterm/ TeraTerm Pro] (Windows 95/98, 2000, 2003, XP, and Vista)&lt;br /&gt;
* Hyperterminal (bis Windows XP dabei)&lt;br /&gt;
* Terminal (bei Windows 3.1 dabei)&lt;br /&gt;
* [http://www.docklight.de/index_de.htm Docklight] (Testversion mit eingeschränkten Funktionen)&lt;br /&gt;
* [http://www.webx.dk/XMON/ XMON] Micro controller serial port debugger variable view realtime curve tracer (Freeware)&lt;br /&gt;
* [http://www.chiark.greenend.org.uk/~sgtatham/putty/ PuTTY] ab Version beta 0.59&lt;br /&gt;
* [http://elmicro.com/de/service.html#download OC-Console] - Kostenloser Terminal Emulator für den Embedded Entwickler&lt;br /&gt;
* [http://www.DieProjektseite.de TKTerm] Terminalprogramm optimiert für den BasicBeetle. Aber auch für andere Zwecke verwendbar&lt;br /&gt;
* [http://www.compuphase.com/software_termite.htm Termite]: a simple RS232 terminal (MS Windows, kostenlos, closed source)&lt;br /&gt;
* [http://www.codeproject.com/KB/windows/Termie.aspx Termie] A Simple RS232 Terminal (ähnlich Termite, MS-Windows, open source C#)&lt;br /&gt;
* [http://realterm.sourceforge.net/ RealTerm] Windows, Opensource &amp;quot;specially designed for capturing, controlling and debugging binary and other difficult data streams&amp;quot;&lt;br /&gt;
&amp;lt;!-- * [http://www.elvand.com/en/index.php?option=com_content&amp;amp;task=view&amp;amp;id=26&amp;amp;Itemid=39 Com port monitor] von elvand.com (Freeware) --&amp;gt;&lt;br /&gt;
* [http://www.mmvisual.de/index Binterm] , klasse Freeware Terminalprogramm.&lt;br /&gt;
* [http://sourceforge.net/projects/y-a-terminal YAT] Freeware, mit vordefinierbaren Buttons&lt;br /&gt;
* [http://www.blueleafsoftware.com/Resources/EmbeddedSand/MegunoLink MegunoLink] - free tool for talking to Arduino microcontrollers (or any serial device for that matter).&lt;br /&gt;
&lt;br /&gt;
=== DOS/Kommandozeile ===&lt;br /&gt;
* [http://www.filegate.net/terminate/ terminate]&lt;br /&gt;
* [http://www.columbia.edu/kermit/ Kermit] (VT100-Emulation und Datenübertragung)&lt;br /&gt;
* TELIX&lt;br /&gt;
* Procomm&lt;br /&gt;
&lt;br /&gt;
== Datenvisualisierung ==&lt;br /&gt;
* [http://www.logview.info Logview] (Freeware, Windows)&lt;br /&gt;
* [http://www.rowalt.de/mc/index.htm AVRTERM] (Windows 9x/ME, grafische Ausgabe möglich)&lt;br /&gt;
* [http://www.webx.dk/XMON/ XMON] Micro controller serial port debugger variable view realtime curve tracer (Freeware)&lt;br /&gt;
* [http://www.mikrocontroller.net/topic/121001#1097477 Robot] - a scientific graph plotting and data analysis tool (Sourcecode, Binaries für Sun und Linux)&lt;br /&gt;
* [http://ttsiodras.googlepages.com/gnuplotStreaming.html Visualize real-time data streams with Gnuplot] (Perl) und eine [http://www.lysium.de/blog/index.php?/archives/234-Plotting-data-with-gnuplot-in-real-time.html Erweiterung]&lt;br /&gt;
* [http://www.python.org Python] mit [http://pyserial.sourceforge.net/ pyserial] zur Datenerfassung und Weitergabe der Daten an eine der  [http://www.scipy.org/Topical_Software#head-b98ffdb309ccce4e4504a25ea75b5c806e4897b6 2D/3D-Libraries zur Datenvisualisierung]&lt;br /&gt;
** [http://eli.thegreenplace.net/2009/08/07/a-live-data-monitor-with-python-pyqt-and-pyserial/ A “live” data monitor with Python, PyQt and PySerial] von Eli Bendersky&lt;br /&gt;
* [http://kst.kde.org/ kst] - plots scientific data (Linux mit KDE, GPL). Es können Daten aus Dateien angezeigt werden, die ständig ergänzt werden. Damit kann eine Real-Time Anzeige aufgebaut werden ([http://kst-plot.kde.org/kst1/handbook/commontasks-eventmonitor.html]). Ein [http://real2electronics.blogspot.de/2009/11/graficar-con-kst.html Usertutorial] inkl. Video für eine Arduino Anwendung gibt es auch.&lt;br /&gt;
* [http://www.thregr.org/~wavexx/software/trend/ Trend]: a general-purpose, efficient trend graph (Req.: POSIX system, OpenGL, Lizenz: LGPL)&lt;br /&gt;
* [http://processing.org/ Processing]&lt;br /&gt;
** [http://www.uchobby.com/index.php/2009/03/08/visualizing-sensor-with-arduino-and-processing/#more-288 Visualizing Sensor Data with Arduino and Processing]. &lt;br /&gt;
** [http://hacknmod.com/hack/how-to-graphically-visualize-data-real-time/ HOW-TO graphically visualize data real-time]&lt;br /&gt;
* [http://www.instructables.com/id/Automate-your-science-experiments/ Automate your science experiments] - Instructable zum Bau eines einfachen Datenloggers inkl. Transfer zum PC. Inhalt: µC (hier Picaxe) =&amp;gt; RS232 =&amp;gt; VB.Net (free!) =&amp;gt; .csv Datei mit Messpunkten =&amp;gt; Excel =&amp;gt; Diagramm&lt;br /&gt;
* [http://www.electronic-projects.de/index.php?option=com_content&amp;amp;view=article&amp;amp;id=65&amp;amp;Itemid=95 COMAnalyzer] und [http://www.electronic-projects.de/index.php?option=com_content&amp;amp;view=article&amp;amp;id=79&amp;amp;Itemid=100 COMAnalyzer 2] von Michael Hahnle (www.electronic-projects.de). Kostenlos für den privaten Gebrauch. Eine kommerzielle Nutzung ist nur mit einer schriftlichen Genehmigung gestattet. (Windows)&lt;br /&gt;
* [http://zedgraph.org/wiki/index.php?title=Main_Page Zedgraph] C#, C++ Klassen zur Datenvisualisierung statischer und dynamischer Daten (LGPL, Für Programmierer!)&lt;br /&gt;
* [http://www.kmitl.ac.th/~kswichit/PLogger/index.html Data Acquisition System using ATmega8]&lt;br /&gt;
* [http://www.live-graph.org/ Live Graph] kann Daten aus CSV Dateien und/oder über eine Java API aus Programmen heraus darstellen. (BSD Lizenz)&lt;br /&gt;
* [http://trash.net/~luethi/microchip/software/scope.html RS232 Scope V1.02] - Serial Data Capture with Microsoft Excel 97 on Windows 95/98/ME/NT&lt;br /&gt;
* [http://code.google.com/p/serialchart/ Serial Chart] - Analyse and chart serial data from RS-232 COM ports (Open source, C++, Windows Binary)&lt;br /&gt;
* [http://www.codeproject.com/Articles/389676/Arduino-and-the-Web-using-NodeJS-and-SerialPort2 Arduino and the Web using NodeJS and SerialPort2] von Bangon Kali auf www.codeproject.com (Javascript)&lt;br /&gt;
* [http://www.blueleafsoftware.com/Resources/EmbeddedSand/MegunoLink MegunoLink] - free tool for talking to Arduino microcontrollers (or any serial device for that matter). It has a window to graph data sent from the Ardunio in real time. Send {Temperature [degC],T,12.4} and MegunoLink will plot it.&lt;br /&gt;
* [http://www.solarc.de/cms/pages/de/download/sterm.php sTerm] kann Daten vom COM-Port live darstellen und Abspeichern, Skalieren etc.&lt;br /&gt;
&lt;br /&gt;
== Tipps ==&lt;br /&gt;
Günstige Möglichkeit einen Mikrocontroller mit dem PC zu verbinden sind oftmals USB-Handy-Datenkabel: Meistens ist ein USB nach RS232 Chip verbaut, man bekommt RS232 direkt mit 5V bzw. 3V-Pegel und könnte teilweise sogar die 5V USB-Spannung als Stromversorgung nutzen...&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
&lt;br /&gt;
* [[UART|Universal Asynchronous Receiver Transmitter]]&lt;br /&gt;
* [[AVR-Tutorial: UART]]&lt;br /&gt;
* [[AVR-GCC-Tutorial/Der UART]]&lt;br /&gt;
* [[Ports benutzen (GCC)]], [[Ports benutzen (PHP)]], [[Ports benutzen (Windows)]]&lt;br /&gt;
* [[Serielle Schnittstelle unter Java]]&lt;br /&gt;
* [http://www.mikrocontroller.net/topic/110671#982184 Beitrag: RS232 aus Excel heraus ansprechen]&lt;br /&gt;
* [[Terminal mit Kommandointerpreter]]&lt;br /&gt;
* [[Serial-Port-Weiterleitung]]&lt;br /&gt;
* [http://www.mikrocontroller.net/topic/219760#2196879 Daten von COM port in Excel einlesen] (Forumsbeitrag von Thomas)&lt;br /&gt;
* [http://www.mikrocontroller.net/topic/323522 Beitrag: Latenzzeitmessung der seriellen Schnittstelle]&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://www.awavo.com/com-port-monitor/ Com Port Monitor]&lt;br /&gt;
* [http://www.camiresearch.com/Data_Com_Basics/RS232_standard.html The EIA232 (former RS232) Standard]&lt;br /&gt;
* [http://www.taltech.com/TALtech_web/resources/intro-sc.html Introduction to Serial Communications]&lt;br /&gt;
* [http://www.lvr.com/serport.htm lvr.com &amp;quot;Serial Port Central&amp;quot;]&lt;br /&gt;
* [http://www.circuitcellar.com/renesas2005m16C/winners/DE/1765.htm QuickComs: RS-232 Analyzer] -  Wettbewerbsbeitrag für [[M16C]]/62P µC von Nicholas Lott&lt;br /&gt;
* [http://technet.microsoft.com/de-de/sysinternals/bb896644.aspx Portmon] für Windows&lt;br /&gt;
* [http://spritesmods.com/?art=autobaud&amp;amp;page=3 Sprites mods: Automatic baudrate converter] (Attiny2313, GPL)&lt;br /&gt;
* [http://www.codeproject.com/KB/system/ArduinoVB.aspx Arduino with Visual Basic] by Carl Morey auf codeproject.com&lt;br /&gt;
&lt;br /&gt;
[[Category:UART und RS232| ]]&lt;br /&gt;
[[Category:Datenübertragung]]&lt;/div&gt;</summary>
		<author><name>Jmf123</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Digilent_Nexys&amp;diff=55842</id>
		<title>Digilent Nexys</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Digilent_Nexys&amp;diff=55842"/>
		<updated>2011-03-13T22:39:48Z</updated>

		<summary type="html">&lt;p&gt;Jmf123: /* Erzeugen der SVF-Datei in Impact */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;FPGA-Board, verfügbar mit Xilinx Spartan 3-200, -400 und -1000, Speedgrade 4.&lt;br /&gt;
&lt;br /&gt;
[[Bild:Nexys-Audio-DSP-Foto-Andreas.jpg|thumb|600px|left|Nexys mit Erweiterungsboard FX2-BB]]&lt;br /&gt;
&amp;lt;br clear=&amp;quot;all&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Dokumentation ==&lt;br /&gt;
* [http://digilentinc.com/Products/Detail.cfm?Nav1=Products&amp;amp;Nav2=Programmable&amp;amp;Prod=NEXYS Webseite]&lt;br /&gt;
* [http://digilentinc.com/Data/Products/NEXYS/Nexys_sch.pdf Schaltplan]&lt;br /&gt;
* [http://digilentinc.com/Data/Products/NEXYS/Nexys_rm.pdf Datenblatt]&lt;br /&gt;
&lt;br /&gt;
== RAM ==&lt;br /&gt;
Das RAM ist ein MT45W8MW16 [[Speicher#PSRAM|PSRAM]] (pseudo-statisches RAM) von Micron. Im einfachsten Fall kann es wie ein (mit 70 ns leider ziemlich langsames) SRAM angesteuert werden (Beispiel unter [[T51-Core]]). Schneller geht es mit dem synchronen Burst-Mode, der auch nicht besonders schwierig zu implementieren sein sollte.&lt;br /&gt;
&lt;br /&gt;
* [http://www.micron.com/products/partdetail?part=MT45W8MW16BGX-701%20WT Webseite]&lt;br /&gt;
* [http://download.micron.com/pdf/datasheets/psram/128mb_burst_cr1_5_p26z.pdf Datenblatt]&lt;br /&gt;
&lt;br /&gt;
== Beispieldesigns ==&lt;br /&gt;
* [[T51-Core]] - 8051-kompatibler Prozessor mit BASIC-Interpreter, einfaches Beispielprojekt für das Nexys-Board&lt;br /&gt;
* [[Audio-DSP mit Spartan 3-FPGA]]&lt;br /&gt;
&lt;br /&gt;
== Cypress FX2-Firmware ==&lt;br /&gt;
&lt;br /&gt;
Die USB-Verbindung wird durch einen Cypress FX2-Mikrocontroller realisiert.&lt;br /&gt;
&lt;br /&gt;
Die vorinstallierte Firmware ermöglicht rudimentäre Verbindungen zu der auf der Digilent Webseite bereitgestellten Adept-Software. Das ebenfalls bereitgestellte &amp;quot;dpimref.vhd&amp;quot;-Modul kann für einen Datentransfer zwischen PC und FPGA benutzt werden. Ein Mapping der dort verwendeten Signale auf die USB-Signale innerhalb des Schematics ist dabei folgendermaßen (funktioniert so auch für das Basys Board und vermutlich allen anderen FX2 basierten Digilent Produkten):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
ASTRB &amp;lt;-&amp;gt; U-FLAGA&lt;br /&gt;
DSTRB &amp;lt;-&amp;gt; U-FLAGB&lt;br /&gt;
WAIT &amp;lt;-&amp;gt; U-SLRD&lt;br /&gt;
WRITE &amp;lt;-&amp;gt; U-FLAGC&lt;br /&gt;
DATA(7:0) &amp;lt;-&amp;gt; U-FD7 bis U-FD0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== FX2-Firmware Hacking ===&lt;br /&gt;
&lt;br /&gt;
Wie man die Firmware durch seine eigene ersetzen kann wird hier erklärt:&lt;br /&gt;
http://www.hackdaworld.org/cgi-bin/awki.cgi/NexysFPGA&lt;br /&gt;
&lt;br /&gt;
=== usb_jtag FX2-Firmware ===&lt;br /&gt;
&lt;br /&gt;
Es ist auch möglich, die Firmware des Projektes &amp;quot;usb_jtag&amp;quot; von [http://ixo-jtag.sourceforge.net/] zu benutzen, um dann mittels UrJtag auf den FPGA zuzugreifen. Man kann direkt die FX2-Firmware und die JTAG-Software installieren. Eine Anleitung dazu findet man unter [http://ixo-jtag.sourceforge.net/nexys2-linux-howto.html].&lt;br /&gt;
&lt;br /&gt;
Ist die FX2-Firmware geladen, sollte der FX2-Mikrocontroller sich mittels &amp;quot;lsusb&amp;quot; nun als &amp;quot;VOTI&amp;quot; melden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
 # lsusb &lt;br /&gt;
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub&lt;br /&gt;
Bus 002 Device 009: ID 16c0:06ad VOTI&lt;br /&gt;
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub&lt;br /&gt;
Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== JTAG-Software ====&lt;br /&gt;
&lt;br /&gt;
Nimmt man nun ein aktuelles Release von [http://www.urjtag.org/ URJtag] (hier: svn Version 1356), kann man nach dem &amp;quot;./configure; make &amp;amp;&amp;amp; make install&amp;quot; sofort loslegen (vgl. [http://buffalo.nas-central.org/index.php/JTAG_Software/UrJTAG]).&lt;br /&gt;
&lt;br /&gt;
Man muß lediglich beachten, daß man die richtigen BSDL-Dateien aus dem Xilinx-Ordner in das Verzeichnis /usr/local/share/urjtag/bsdl/ kopiert (die BSDL-Dateien heißen in der Xilinx-Installation &amp;quot;*.bsd&amp;quot;), damit URJtag beim &amp;quot;detect&amp;quot; die Chips richtig erkennt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
mobil11:~/.svn/fpga/Nexys_demo_simple# jtag&lt;br /&gt;
&lt;br /&gt;
UrJTAG 0.8 #1356&lt;br /&gt;
Copyright (C) 2002, 2003 ETC s.r.o.&lt;br /&gt;
Copyright (C) 2007, 2008 Kolja Waschk and the respective authors&lt;br /&gt;
&lt;br /&gt;
UrJTAG is free software, covered by the GNU General Public License, and you are&lt;br /&gt;
welcome to change it and/or distribute copies of it under certain conditions.&lt;br /&gt;
There is absolutely no warranty for UrJTAG.&lt;br /&gt;
&lt;br /&gt;
WARNING: UrJTAG may damage your hardware!&lt;br /&gt;
Type &amp;quot;quit&amp;quot; to exit, &amp;quot;help&amp;quot; for help.&lt;br /&gt;
&lt;br /&gt;
jtag&amp;gt; bsdl path /usr/local/share/urjtag/bsdl&lt;br /&gt;
jtag&amp;gt; cable UsbBlaster ftdi 16c0:06ad&lt;br /&gt;
Connected to libftdi driver.&lt;br /&gt;
jtag&amp;gt; detect&lt;br /&gt;
IR length: 14&lt;br /&gt;
Chain length: 2&lt;br /&gt;
Device Id: 11110101000001000110000010010011 (0x00000000F5046093)&lt;br /&gt;
  Filename:     /usr/local/share/urjtag/bsdl/xcf04s.bsd&lt;br /&gt;
Device Id: 00010001010000101000000010010011 (0x0000000011428093)&lt;br /&gt;
  Filename:     /usr/local/share/urjtag/bsdl/xc3s1000l.bsd&lt;br /&gt;
jtag&amp;gt; print chain&lt;br /&gt;
 No. Manufacturer              Part                 Stepping Instruction          Register&lt;br /&gt;
-------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
   0                           XCF04S                        BYPASS               BYPASS&lt;br /&gt;
   1                           XC3S1000L_BARE                BYPASS               BYPASS&lt;br /&gt;
jtag&amp;gt; part 1&lt;br /&gt;
jtag&amp;gt; svf Nexysdemo.svf&lt;br /&gt;
Warning: USB-Blaster frequency is fixed to 12000000 Hz&lt;br /&gt;
Warning svf: command TIR not implemented&lt;br /&gt;
Warning svf: command TDR not implemented&lt;br /&gt;
Warning svf: command TIR not implemented&lt;br /&gt;
Warning svf: command TDR not implemented&lt;br /&gt;
Warning svf: command HIR not implemented&lt;br /&gt;
Warning svf: command HDR not implemented&lt;br /&gt;
Warning svf: command TIR not implemented&lt;br /&gt;
Warning svf: command TDR not implemented&lt;br /&gt;
Error svf: SIR command length inconsistent.&lt;br /&gt;
 in input file between line 6623 col 1 and line 6623 col 33&lt;br /&gt;
Error occured for SVF command SIR.&lt;br /&gt;
jtag&amp;gt; quit&lt;br /&gt;
mobil11:~/.svn/fpga/Nexys_demo_simple#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die usb_jtag-Firmware wird in URJtag als &amp;quot;Altera USB-Blaster&amp;quot; erkannt. Wichtig beim &amp;quot;cable&amp;quot;-Kommando ist die Angabe der USB-ID &amp;quot;16c0:06ad&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==== Erzeugen der SVF-Datei in Impact ====&lt;br /&gt;
&lt;br /&gt;
Beim Erzeugen der SVF-Datei in Impact muß man darauf achten, daß alle Geräte des JTAG-Chains des Nexys-Boards in der Datei enthalten sind. Mit Hilfe folgender Datei &amp;quot;impact.cmd&amp;quot; lässt sich dieser Schritt auf der Kommandozeile automatisieren:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
setMode -bs&lt;br /&gt;
setCable -port svf -file Nexysdemo.svf&lt;br /&gt;
addDevice -p 1 -file /usr/local/share/jtag/bsl/xcf04s.bsd&lt;br /&gt;
addDevice -p 2 -file Nexysdemo.bit&lt;br /&gt;
program -p 2&lt;br /&gt;
closeCable&lt;br /&gt;
quit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jetzt kann man mittels &amp;quot;impact -batch impact.cmd&amp;quot; den Prozeß des SVF-Datei-Erzeugens automatisieren:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
$ impact -batch impact.cmd&lt;br /&gt;
Release 9.2.01i - iMPACT J.37&lt;br /&gt;
Copyright (c) 1995-2007 Xilinx, Inc.  All rights reserved.&lt;br /&gt;
Preference Table&lt;br /&gt;
Name                 Setting&lt;br /&gt;
StartupClock         Auto_Correction&lt;br /&gt;
AutoSignature        False&lt;br /&gt;
KeepSVF              False&lt;br /&gt;
ConcurrentMode       False&lt;br /&gt;
UseHighz             False&lt;br /&gt;
ConfigOnFailure      Stop&lt;br /&gt;
UserLevel            Novice&lt;br /&gt;
MessageLevel         Detailed&lt;br /&gt;
svfUseTime           false&lt;br /&gt;
SpiByteSwap          Auto_Correction&lt;br /&gt;
&lt;br /&gt;
Reusing 6400C001 key.&lt;br /&gt;
Reusing E800C001 key.&lt;br /&gt;
&lt;br /&gt;
INFO:iMPACT:501 - &#039;1&#039;: Added Device UNKNOWN successfully.&lt;br /&gt;
----------------------------------------------------------------------&lt;br /&gt;
INFO:iMPACT:1777 -&lt;br /&gt;
   Reading /usr/local/share/urjtag/bsdl/xcf04s.bsd...&lt;br /&gt;
&lt;br /&gt;
INFO:iMPACT:1777 -&lt;br /&gt;
   Reading /opt/xilinx-webpack/xcf/data/xcf04s.bsd...&lt;br /&gt;
INFO:iMPACT:501 - &#039;1&#039;: Added Device XCF04S successfully.&lt;br /&gt;
----------------------------------------------------------------------&lt;br /&gt;
----------------------------------------------------------------------&lt;br /&gt;
----------------------------------------------------------------------&lt;br /&gt;
----------------------------------------------------------------------&lt;br /&gt;
INFO:iMPACT:1777 -&lt;br /&gt;
   Reading /usr/local/share/urjtag/bsdl/xcf04s.bsd...&lt;br /&gt;
----------------------------------------------------------------------&lt;br /&gt;
&#039;2&#039;: Loading file &#039;Nexysdemo.bit&#039; ...&lt;br /&gt;
&lt;br /&gt;
done.&lt;br /&gt;
&lt;br /&gt;
INFO:iMPACT:1777 -&lt;br /&gt;
   Reading /opt/xilinx-webpack/spartan3/data/xc3s1000.bsd...&lt;br /&gt;
INFO:iMPACT:501 - &#039;2&#039;: Added Device xc3s1000 successfully.&lt;br /&gt;
----------------------------------------------------------------------&lt;br /&gt;
----------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;2&#039;: Programming device...&lt;br /&gt;
&lt;br /&gt;
done.&lt;br /&gt;
INFO:iMPACT:579 - &#039;2&#039;: Completed downloading bit file to device.&lt;br /&gt;
INFO:iMPACT - &#039;2&#039;: Checking done pin....done.&lt;br /&gt;
&#039;2&#039;: Programmed successfully.&lt;br /&gt;
Elapsed time =      1 sec.&lt;br /&gt;
----------------------------------------------------------------------&lt;br /&gt;
----------------------------------------------------------------------&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:FPGA und Co]]&lt;/div&gt;</summary>
		<author><name>Jmf123</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Benutzer:Jmf123&amp;diff=52342</id>
		<title>Benutzer:Jmf123</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Benutzer:Jmf123&amp;diff=52342"/>
		<updated>2010-10-26T14:34:32Z</updated>

		<summary type="html">&lt;p&gt;Jmf123: Die Seite wurde neu angelegt: „Web: [http://koppi.me koppi.me]“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Web: [http://koppi.me koppi.me]&lt;/div&gt;</summary>
		<author><name>Jmf123</name></author>
	</entry>
</feed>