Forum: Mikrocontroller und Digitale Elektronik Erstes "richtiges" Projekt


von Michael K. (hummel030)


Angehängte Dateien:

Lesenswert?

Also nachdem ich jetzt ein bisschen mit dem ATMEGA8 warm geworden bin 
und bisher eher Minimalbeispiele nachgebaut und programmiert habe, 
möchte ich mich an mein erstes Projekt wagen, wobei ich allerdings schon 
beim Einstieg massiv Hilfe brauche.
Es soll ein sogenanntes "Combro CB 625 MK4" ausgelesen werden. Das ist 
ein Geschwindigskeitmessgerät für Airsoft-Waffen und Luftgewehre das 
außer einer LCD-Anzeige der Geschwindigkeit auch die Möglichkeit bietet 
per Schnittstelle die Daten an einen PC + Software
zu übertragen.
Und hier ist auch schon mein erstes Problem: Ich verstehe das "wie" es 
übertragen wird bzw. die verschiedenen Optionen nicht wirklich (s. 
anghänte Grafik). Für mich sieht es so aus als gäbe es zwei 
Möglichkeiten die Daten auszulesen einmal mit einer RS232-Schnittstelle 
(die ich nicht habe, s. Hardware) und einmal was für mich aussieht wie 
eine Art UART (rechtes kleines Rechteck mit runden Ecken). Diese Daten 
sollen auf einem ATMEGA "gelesen" werden und per UART + Putty auf dem 
PC/Laptop
ausgegeben werden. Ausserdem gibt es eine Möglichkeit das Messgerät zu 
Resetten (entweder per RST-Taster am Gerät oder mit der Software)
um eine weitere Messung durchzuführen. Später möchte ich das die Daten 
per Funk(RFM12?) an den PC übertragen und dort weiter verarbeitet 
werden.

Hier wären meine Fragen:
1. Ist das Projekt "zu groß" für mich (s. unten "Bisher gemacht") und 
reicht meine HW dafür aus?
Ich sehe das Pojekt als Learning by Doing und bin der Meinung man wächst 
mit der Aufgabe. Vllt. sieht das Ganze für mich auch ersteinmal 
komplexer aus als es in Wirklichkeit ist.
2. Wie gehe ich vor?
Mein Ansatz wäre jetzt erstmal irgenwie die Daten aus dem Gerät auf den 
ATMEGA + Putty zu kriegen und das Ausgabeformat (laut angehängtem Bild 
im ASCII-Format?!)zu verstehen und dann weiterzusehen.


Vorhandene Hardware:
Multimeter, Oszilloskop OWON VDS1022i 2x25MHz und 100MS/s, Laptop m. 2x 
USB3 + AtmelStudio7 + WIN10,  Pololu ISP v2.1 (UART + 
Spannungsversorgung),
das Combro-Messgerät, Breadboard + ATMEGA8 + Zeug (LEDs, Quarz, 
Fotowiderstand, Kondensator...)

Bisher gemacht:
ADC + UART, I2C + UART (MPU6050 Lagesensor), ein bisschen Timer + ISR, 
Servo ansteuern, alles mit C



Ich wäre für jede Hilfe dankbar und wenn Fragen offen sind bitte fragen.

: Bearbeitet durch User
von Dieter S. (dolivo)


Lesenswert?

Frage: Welche Programmiersprache beherrschst Du, bzw. übst Du?
dolivo

PS: ich hab's gefunden: C. Frage vergessen, bitte. Das ist nicht mein 
Revier.

: Bearbeitet durch User
von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Bau doch mit dem Mega erstmal ein UART Echoprogramm, das die Daten von 
SOUT empfängt und an einen PC weitergibt.
Wenn du das Datenformat verstanden hast, kannst du daran gehen, es in 
ein für den RFM passenden Paket zu packen und auf der anderen Seite zu 
empfangen und zu dekodieren.
An Hardware wirst du nicht viel brauchen. Als alter Angsthase setze ich 
zwischen SOUT der Gun und dem Mega einen 470 Ohm Widerstand.

von c-hater (Gast)


Lesenswert?

Michael K. schrieb:

> Und hier ist auch schon mein erstes Problem: Ich verstehe das "wie" es
> übertragen wird bzw. die verschiedenen Optionen nicht wirklich (s.
> anghänte Grafik).

Das ist tatsächlich dein Hauptproblem. Hättest du dies nicht, würdest du 
dich als erstes fragen, was der ATmega8 dabei soll...

Den brauchst du nämlich absolut nicht. Maximal brauchst du einen 
USB-RS232-Adapter, den du für ein paar Euro in 'zig Varianten überall 
kaufen kannst. Darüber können die Daten direkt von dem Gerät in den PC 
gelangen.

Was du dann allerdings brauchst, sind zumindest minimale Kompetenzen bei 
der PC-Programmierung.

von Michael K. (hummel030)


Lesenswert?

Matthias S. schrieb:
> UART Echoprogramm

Öhhh??? Also ich stöpsel SOUT an den RX-Pin vom Atmega und der TX-Pin 
geht zu meinen ISProgrammer (dieser übernimmt bisher die Kommunikation 
mit dem PC + Putty, wobei bisher RX und TX mit dem Programmer verbunden 
sind)?

> setze ich
> zwischen SOUT der Gun und dem Mega einen 470 Ohm Widerstand

Gun = der Pin der die Daten ausgibt?. Was macht dieser Widerstand? Meine 
Vermutung ist ein Spannungsabfall damit der ATMEGA keine Schaden nimmt 
falls der Pegel zu hoch ist? Bitte nicht lachen aber ich habe keine 
Ahnung.


c-hater schrieb:
> Das ist tatsächlich dein Hauptproblem. Hättest du dies nicht, würdest du
> dich als erstes fragen, was der ATmega8 dabei soll...
>
> Den brauchst du nämlich absolut nicht. Maximal brauchst du einen
> USB-RS232-Adapter, den du für ein paar Euro in 'zig Varianten überall
> kaufen kannst. Darüber können die Daten direkt von dem Gerät in den PC
> gelangen.

Ich weiß das es diese Kabel gibt aber das ist nicht mein Ziel! Am Ende 
soll eine kleine Platine am Messgerät hängen die ohne Kabel (und mit 
eigener Spannungsversorgung) die Kommunikation mit dem PC übernimmt. 
Hätte ich vllt. im Anfangspost deutlicher machen sollen.

> Was du dann allerdings brauchst, sind zumindest minimale Kompetenzen bei
> der PC-Programmierung.

Ein bisschen Java- und Python3-Skills sind vorhanden wobei ich eher zu 
Python3 tendiere.

: Bearbeitet durch User
von Stefan F. (Gast)


Lesenswert?

Ich würde erstmal die Daten des Gerätes ohne Mikrocontroller mit dem 
Hammer Terminal auslesen.

von -gb- (Gast)


Lesenswert?

Michael K. schrieb:
> Am Ende soll eine kleine Platine am Messgerät hängen die ohne Kabel (und
> mit eigener Spannungsversorgung) die Kommunikation mit dem PC übernimmt.

Und was macht diese Platine? Wenn sie nur Daten von links nach rechts 
und in Gegenrichtung schaufelt kann man sie vermutlich durch ein Stück 
Kabel ersetzen.
Das Gerät hat doch schon eine serielle Schnittstelle. Da kann der PC 
direkt ran. Eine eigene Hardware würde ich nur bauen wenn das komplett 
ohne PC laufen soll.

Tipp:
Lass die Platine erstmal weg und werte die Daten am PC.mit Python aus. 
Das geht sehr einfach. Zum Empfang ist pyserial geeignet.

von Stefan F. (Gast)


Lesenswert?

Ich würde erstmal die Daten des Gerätes ohne Mikrocontroller mit dem 
Hammer Terminal auslesen und schauen, was dabei heraus kommt.

Mach dich mit dem Gerät und Hammer Terminal vertraut.

Und dann:
> Lass die Platine erstmal weg und werte die Daten am PC.mit Python aus.

Wenn du danach immer noch einen µC dazwischen pappen willst, dann:

Schreibe ein Testprogramm auf dem µC, dass Texte und Zahlen an den PC 
sendet.

Schreibe dann ein Testprogramm auf den µC, dass jedes om PC empfangene 
Byte als Bitmuster auf 8 LEDs ausgibt.

Schreibe dann ein anderes Testprogramm, dass Kommandos (bestehend aus 
Text und Zahlen) vom PC empängt und darauf reagiert. Zum Beispiel "LED 1 
an", "LED 2 aus" und "addiere 12 mit 26".

Es geht darum, dass du dich mit den einzelnen Teilkomponenten (sowohl 
Hardware als auch Software) vertraut machst, bevor du sie miteinander 
kombinierst.

Du solltest einen Mikrocontroller mit 2 seriellen Schnittstellen 
verwenden, weil das einfacher wird. Am Besten eine mit USB-UART Chip und 
eine ohne, wie beim Crumb-644 Modul oder Arduino Mega.

> Ich weiß das es diese Kabel gibt aber das ist nicht mein Ziel!

Wenn du gleich Hochzeitstorten backen willst, ohne die üblichen 
Vorübungen mit Brötchen und Keksen, dann wird das nichts.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

-gb- schrieb:
> Und was macht diese Platine? Wenn sie nur Daten von links nach rechts
> und in Gegenrichtung schaufelt kann man sie vermutlich durch ein Stück
> Kabel ersetzen.

Es soll doch gerade wireless gehen. Hast du den Abschnitt mit der 
Benutzung des RFM12 nicht gelesen?

Michael K. schrieb:
> Später möchte ich das die Daten
> per Funk(RFM12?) an den PC übertragen und dort weiter verarbeitet
> werden.

Als Vorübung ist also der Empfang der seriellen Daten mit dem Mega8 gar 
nicht dumm. Dann geht das schon mal. Dann kann man sich damit 
beschäftigen, so einen Datensatz auf das für den RFM12 benötigte 
Paketformat umzuschnurzeln. Schliesslich muss dann am anderen Ende der 
Funkstrecke wieder ein Entschnurzler sein, der das auf den PC bringt.

Es sei angemerkt, das es Bluetooth Module gibt, die so eine UART 
Schnittstelle ohne grosse Klimmzüge per BT übertragen können.

von Stefan F. (Gast)


Lesenswert?

Matthias S. schrieb:
> Es sei angemerkt, das es Bluetooth Module gibt, die so eine UART
> Schnittstelle ohne grosse Klimmzüge per BT übertragen können.

Nenne sie doch beim Namen: HC-05 und HC-06
http://stefanfrings.de/bluetooth/index.html

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Stefanus F. schrieb:
> Nenne sie doch beim Namen: HC-05 und HC-06

Hast du doch schon gemacht :-) Nee, ich habe für sowas noch nie eine 
Anwendung gehabt und kenne sie deswegen nicht persönlich - ich wusste 
nur, das es sowas gibt.

von Michael B. (laberkopp)


Lesenswert?

Michael K. schrieb:
> Ist das Projekt "zu groß" für mich

Nicht unbedingt, die Beschreibung ist aber etwas dürftig.

Michael K. schrieb:
> Wie gehe ich vor?
> Mein Ansatz wäre jetzt erstmal irgenwie die Daten aus dem Gerät auf den
> ATMEGA + Putty zu kriegen

Erst mal die Daten auf dem Ozsilloskop sehen.

Das erste Schaltbild zeigt, wie man aus dem 3-poligen Anschluss eine 
RS232-kompatible Schnittstelle macht. Interessiert dich nicht.

Die beiden anderen Bilder zeigen, wie man das Gerät dauereinschaltet. 
Nicht wichtig, weil damit keine serielle Übertragung mehr geht.

Das letzte Bild zeigt die Anschlussbelegung.

Aus dem Gerät kommen direkt 0V, 6V und ein serielles Signal. Das 
serielle Signal möchte mit einem pull up an diese 6V gezogen werden, um 
das Gerät dauernd einzuschalten.

Also
1
+6V---+
2
      |
3
GND  10k
4
      |
5
SOUT--+----
Du kannst mit deinem Scope direkt zwischen GND und SOUT die serielle 
Datenübertragung messen, erwartete Spannungen 0V und 6V, und das Gerät 
sollte dauernd An bleiben.

Wenn du nun einen Arduino oder ATMega8 anschliessen willst, kommt GND an 
GND und SOUT an einen Eingang der das serielle Signal liest (RXD), und 
der 10k pull up kommt an die +5V des Arduino/ATmega damit keine 
Querstöme fliessen wenn eines der beiden Geräte ausgeschaltet ist.

Dann sollte dein Programm den serillen Datenstrom erfassen können.

von c-hater (Gast)


Lesenswert?

Matthias S. schrieb:

> Es soll doch gerade wireless gehen.

Also BT-Bridges oder WLAN-fähiger COM-Port-Host. Gibt's beides fix und 
fertig für kleines Geld. Ich sehe immer noch nicht die Notwendigkeit für 
einen AVR8.

Insbesondere keine für den (ziemlich veralteten) ATmega8. Wenn der 
wenigstens irgendein besonderes Feature hätte, was ihn für die konkrete 
Aufgabe besonders geeignet machen würde. Hat er aber nicht.

Übrigens: auch RFM12 ist nicht gerade "up to date". Gibt's überhaupt 
noch irgendwo welche zu kaufen?

von Ralph S. (jjflash)


Lesenswert?

c-hater schrieb:
> Wenn der
> wenigstens irgendein besonderes Feature hätte, was ihn für die konkrete
> Aufgabe besonders geeignet machen würde.

Wenn er für viele Dinge ausreichend ist und spezielle Features nicht 
benötigt, ist das hier ein besonderes Feature:

https://www.ebay.de/itm/10-PCS-MCU-IC-ATMEL-TQFP-32-ATMEGA8A-AU-ATMEGA8A-AN-MEGA8A-AU-ATMEGA8A-NEW/221921782544?hash=item33ab91ab10:g:IoEAAOSwo6lWKzIF

47ct per Stück und bei einigen Dingen ist er dennoch unterfordert. Vor 3 
oder 4 Jahren hatte ich auch einen STM8S103 in mein "Reportoire" 
aufgenommen, weil er damals schlicht 23 ct per Stück gekostet hat. 
Mittlerweile kostet er das gleiche wie der ATmega8.

Sein spezielles Feature ist, dass er 16 MHz mit internem Taktgeber kann, 
mit 3,3V auskommt und weniger Strom verbraucht (Batterie).

Ich verstehe nicht, warum man auch immer gegen "veraltete" Dinge 
"wettern" muss: Mein Radio hier im Wohnzimmer ist restlos veraltet (aus 
dem Jahre 1957).. und ich liebe es heiß und inniglich.

c-hater schrieb:
> Ich sehe immer noch nicht die Notwendigkeit für
> einen AVR8.

Die sehe ich allerdings auch nicht !

Als erstes Projekt gibts was "schöneres", und nein, ich meine nicht 
LED's blinken lassen.

von Stefan F. (Gast)


Lesenswert?

Ralph S. schrieb:
> Ich verstehe nicht, warum man auch immer gegen "veraltete" Dinge
> "wettern" muss

Vor ein paar Monaten wurde ich hier im Forum von mehreren Leuten richtig 
hart kritisiert, weil ich das "Tote Pferd" STM32F103 empfohlen habe. 
Meine Begründung, dass er preisgünstig auf handlichen Boards erhältlich 
sei, wurde nicht akzeptiert.

Ich hatte die Kritik zum Anlass genommen, die Nachfolger STM32F303 und 
den STM32L073 auszuprobieren und auf meiner Homepage zu dokumentieren. 
Jetzt ratet mal, wie viele Leute sich für diese Doku interessieren:

F103: 80%
F303: 15%
L073: 5%

So viel zum Thema "veraltete Mikrocontroller".

von jemand (Gast)


Lesenswert?

Michael K. schrieb:
> 1. Ist das Projekt "zu groß" für mich (s. unten "Bisher gemacht") und
> reicht meine HW dafür aus?

Nein!
Dein Projekt ist technisch machbar und nicht zu komplex. Also mach es. 
Wenn du es nicht schaffst, lernst du trotzdem dazu.

Das ist ja das Schöne beim Basteln: Man kann seiner Hybris mal freien 
Lauf lassen. Weil man nicht liefern muss. Also die Frage an Sich ist 
schon falsch gestellt.

Im Höchstfall fragt man: Ist das technisch möglich?

von Der Duke (Gast)


Lesenswert?

Ich stelle mir die Frage, was der µC zwischen dem Messgerät und dem PC 
machen soll.
So wie die Fotos bei der Threaderöffnung aussehen, würde ich zu einem 
USB<=>Seriell Wandler Kabel greifen, dass sich als virtueller Com-Port 
am PC anmeldet und da mit Putty, Hterm etc. drangehen.

von Ralph S. (jjflash)


Lesenswert?

Stefanus F. schrieb:
> Ich hatte die Kritik zum Anlass genommen, die Nachfolger STM32F303 und
> den STM32L073 auszuprobieren und auf meiner Homepage zu dokumentieren.
> Jetzt ratet mal, wie viele Leute sich für diese Doku interessieren:
>
> F103: 80%
> F303: 15%
> L073: 5%

Als Nachfolger würde ich die auch nicht bezeichnen, oder wäre ein ATmega 
der Nachfolger eines Tinys und der XMega der des Mega?

Der L073 ist ein Cortex M0+, wird zum Stromsparen eingesetzt (und läuft 
meines Wissens mit maximal 32 MHz) und hat von daher komplett anderes 
Einsatzgebiet

Der F103 ist ein Cortex M3 und ich möchte mal sagen ist ein universeller 
alter Geselle (und für das allermeiste absolut ausreichend)

Der F303 ist ein Cortex M4 und somit etwas anderes als der F103.

Ich wurde bspw. gefragt, warum ich den F303 einsetze und nicht gleich 
einen F4xx und bei der Antwort: "Weil ich einen F4xx nicht in einem 
LQFP-48 Gehäuse bekomme" wurde die Nase gerümpft.

Ich habe (außer Spielereien) meiner Zeit als Elektroniker erst 2 Geräte 
entwickelt, bei denen ein F4 Dienst getan hat.

Die Wahl des Controllers richtet sich nach der Anwendung (und nach dem 
Preis).

von Stefan F. (Gast)


Lesenswert?

Ralph S. schrieb:
> Als Nachfolger würde ich die auch nicht bezeichnen

Das ist Geschmackssache, ST nennt ihn so. Vielleicht, weil sie sowohl 
den F103 als auch den F303 als Mainstream Serie bezeichnen. Natürlich 
sind sie nicht gleich - wenn das so wäre, könnte man nicht von einem 
Nachfolger sprechen.

von Michael K. (hummel030)


Angehängte Dateien:

Lesenswert?

Soo, erstmal Danke für die vielen Antworten!

Ich will nochmal ein paar Gründe nennen warum ich das wireless machen 
will und ICH mit meinem bescheidenen Wissen keine Alternative zu einem 
µC sehe.
Als erstes ist es für mich die Möglichkeit in einem Projekt zwei Hobbys 
(µC und Luftgewehrschiessen [E0 < 7,5J]) zu vebinden und am Ende ein 
weit nützlicheres Tool zu haben als wenn es dauernd per Kabel verbunden 
ist oder ich das Messgerät jedesmal per Hand resetten muss. Das hat 
folgenden Grund. Das Messgerät verwendet ein ausserordentlich sprödes 
Hartplastik für Hülle und Halterung und beim (wettkampforientierten) 
Luftgewehrschiessen ist es so, dass man manchmal verschiedene 
Diabolosorten probiert um zu ermitteln welche am besten mit dem Gewehr 
harmoniert. Dieses Testen kann sich oft über Stunden hinziehen und in 
dieser Zeit bewegt man Gewehr unweigerlich und damit erhöht sich die 
Gefahr das das Messgerät bricht. Bilder 1 und 2 lassen m.M.n. erahnen: 
A. wie spröde das Material ist und  B. wie "filigran" die 
Befestigungsmöglichkeit ist. Auch wenn man das geschmeidigste 
Silikonkabel verwendet besteht dann immer noch die Gefahr das wenn das 
Gewehr unachtsam bewegt wird, das Messgerät -zumindest die Halterung- 
zerstört wird weil das Kabel zu kurz ist oder sich irgendwo verheddert 
hat. Ausserdem möchte man den Lauf des Gewehres -auch wenn nur 7,5J- 
ständig auf einen Kugelfang bzw. in diese Richtung halten, da die 
Energie doch immer noch erheblich ist (Manche denken: "Ist doch nur ein 
Luftgewehr" aber auf kürzeste und auch längere Entfernung ist der Finger 
ab, das Auge weg oder wenn es ganz schlecht läuft die Halsschlagader 
offen oder andere Gegenstände kaputt). Sprich: hier stört ein Kabel 
auch.


Nun zu den Antworten:

Stefanus F. schrieb:
> Ich würde erstmal die Daten des Gerätes ohne Mikrocontroller mit dem
> Hammer Terminal auslesen und schauen, was dabei heraus kommt.

Michael B. schrieb:
> Aus dem Gerät kommen direkt 0V, 6V und ein serielles Signal. Das
> serielle Signal möchte mit einem pull up an diese 6V gezogen werden, um
> das Gerät dauernd einzuschalten.
>
> Also+6V---+
>       |
> GND  10k
>       |
> SOUT--+----
> Du kannst mit deinem Scope direkt zwischen GND und SOUT die serielle
> Datenübertragung messen, erwartete Spannungen 0V und 6V, und das Gerät
> sollte dauernd An bleiben.

Ich würde jetzt also ersteinmal ein Adapterkabel basteln (USB) wie in 
Bild3 mit dem ich dann entweder die Daten per Oszilloskop oder Hammer 
Teminal auslesen kann? Ist das so wie in der Darstellung richtig? An 
welchen Pin muss SOUT D+ oder D- damit das Terminal die Daten lesen 
kann? Kann ich Messgerät + PC + Oszilloskop gleichzeitig verbinden?


Matthias S. schrieb:
> RFM12 benötigte
> Paketformat umzuschnurzeln. Schliesslich muss dann am anderen Ende der
> Funkstrecke wieder ein Entschnurzler sein, der das auf den PC bringt.
>
> Es sei angemerkt, das es Bluetooth Module gibt, die so eine UART
> Schnittstelle ohne grosse Klimmzüge per BT übertragen können.

Stefanus F. schrieb:
> Nenne sie doch beim Namen: HC-05 und HC-06
> http://stefanfrings.de/bluetooth/index.html

RFM12 war nur mein erster Gedanke weil ich neulich das 
(https://www.mikrocontroller.net/articles/%C3%9Cbersicht_Funkmodule) 
gelesen habe und mir hier vor allem der Support im Forum wichtig ist. 
Ich schliesse BT keineswegs aus.


c-hater schrieb:
> Insbesondere keine für den (ziemlich veralteten) ATmega8. Wenn der
> wenigstens irgendein besonderes Feature hätte, was ihn für die konkrete
> Aufgabe besonders geeignet machen würde. Hat er aber nicht.

Den ATMEGA8 würde ich auch nur nehmen weil er schon da ist. Hier kann 
gerne Kritik geübt werden was später sinnvoller ist. Wie zum Beispiel 
hier.

Ralph S. schrieb:
> Wenn er für viele Dinge ausreichend ist und spezielle Features nicht
> benötigt, ist das hier ein besonderes Feature:
>
> Ebay-Artikel Nr. 221921782544

Was für mich jetzt erstmal wichtig ist, ist das Adapterkabel (Bild3) 
korrekt?
Wenn ich die Daten lesen kann, werde ich mich wieder melden und bin dann 
über Meinungen für das weitere Vorgehen offen.

von Stefan F. (Gast)


Lesenswert?

Du kannst das Ding nicht direkt an einen USB Port anschließen. Du sollst 
dazu einen USB-UART Adapter verwenden. Und zwar einen, der 5V Pegel hat.

Außerdem wurde doch geschrieben, dass du den Pull-Up Widerstand nicht an 
6V anschließen sollst, sondern an 5V (vom USB).

Verbinde:
GND mit GND
SOUT mit RxD
SOUT durch einen 10kΩ Widerstand mit +5V

Wenn du das dann fertig hast, kannst du versuchen, die Daten mit einem 
Terminalprogramm anzuzeigen.

Wie kommst du jetzt auf ein Oszilloskop? Oszilloskope sind 
Messinstrumente, keine Datenanzeiger.

von Percy N. (vox_bovi)


Lesenswert?

Stefanus F. schrieb:
> Ralph S. schrieb:
>> Ich verstehe nicht, warum man auch immer gegen "veraltete" Dinge
>> "wettern" muss
> Ich hatte die Kritik zum Anlass genommen, die Nachfolger STM32F303 und
> den STM32L073 auszuprobieren und auf meiner Homepage zu dokumentieren.
> Jetzt ratet mal, wie viele Leute sich für diese Doku interessieren:
>
> F103: 80%
> F303: 15%
> L073: 5%
>
> So viel zum Thema "veraltete Mikrocontroller".

Ähnlich bei Schrauben: Überall wird gelobt, wie sehr viel stärker doch 
eine M 10 sei, aber zum Befestigen von Kühlkörpern wird dann doch M 3 
bevorzugt oder gleich geklammert.

von Michael K. (hummel030)


Lesenswert?

Stefanus F. schrieb:
> Du kannst das Ding nicht direkt an einen USB Port anschließen. Du sollst
> dazu einen USB-UART Adapter verwenden. Und zwar einen, der 5V Pegel hat.

So einen?
https://www.amazon.de/HER-CH340G-Serial-Converter-Schalter/dp/B01N7KA3OO/ref=sr_1_1?__mk_de_DE=%C3%85M%C3%85%C5%BD%C3%95%C3%91&keywords=USB+to+TTL&qid=1558626823&refinements=p_76%3A419122031&rnid=419121031&rps=1&s=gateway&sr=8-1


Stefanus F. schrieb:
> Außerdem wurde doch geschrieben, dass du den Pull-Up Widerstand nicht an
> 6V anschließen sollst, sondern an 5V (vom USB).

Steht hier aber anders wenn ich das richtig verstanden habe.

Michael B. schrieb:
> Aus dem Gerät kommen direkt 0V, 6V und ein serielles Signal. Das
> serielle Signal möchte mit einem pull up an diese 6V gezogen werden, um
> das Gerät dauernd einzuschalten.
>
> Also+6V---+
>       |
> GND  10k
>       |
> SOUT--+----
> Du kannst mit deinem Scope direkt zwischen GND und SOUT die serielle
> Datenübertragung messen, erwartete Spannungen 0V und 6V, und das Gerät
> sollte dauernd An bleiben.


Stefanus F. schrieb:
> Wie kommst du jetzt auf ein Oszilloskop? Oszilloskope sind
> Messinstrumente, keine Datenanzeiger.

Wenn ich das so einstelle das das Oszilloskop auf eine steigende Flanke 
triggert und es danach nicht weiter misst kann ich doch theoretisch das 
Signal lesen oder ist das ganz falsch?!
Ich weiß das einen Logic-Analyzer gibt (z.B. als Erweiterung meines 
Oszilloskops) aber diesen habe ich nicht.

von Rainer V. (a_zip)


Lesenswert?

Michael K. schrieb:
> Wenn ich das so einstelle das das Oszilloskop auf eine steigende Flanke
> triggert und es danach nicht weiter misst kann ich doch theoretisch das
> Signal lesen oder ist das ganz falsch?!

Dazu brauchst du ein Speicher-Oszilloskop! Aber für diese Anwendung wird 
es wohl mühsam bis unmöglich werden, etwas Brauchbares auf den Schirm zu 
bannen. Bestenfalls bekommst du eine grobe Einschätzung, ob dein Signal 
gut sein könnte!
Gruß Rainer

von Stefan F. (Gast)


Lesenswert?

Michael K. schrieb:
> So einen?

Ja, zum Beispiel. Gibts auch in Form eines Kabels (ein Ende mit USB 
Stecker, das andere mit losen Drähten).

von Michael K. (hummel030)



Lesenswert?

Ich habe jetzt den USB-UART-Adapter 
(https://www.amazon.de/gp/product/B01N7KA3OO/ref=ppx_yo_dt_b_asin_title_o00_s00?ie=UTF8&psc=1) 
bekommen, das Kabel (Bild: Adapterkabel) gebastelt und das Hammer 
Terminal installiert ... aber es kommt nichts an.
Am Terminal und dem Adapter kann es m.M.n. nicht liegen da man den RX- 
und TX-Pin kurzschliessen kann und dann mit dem Terminal Zeichen senden 
und wieder empfangen kann, was problemlos funktoniert. Auch blinken zwei 
kleine LEDs für den RX- un TX-Pin wenn etwas gesendet und empfangen 
wird.
Ich hab dann doch mal das Oszilloskop angeschlossen und obige Bilder 
gemacht:

Oszi_SOUT_0V_ca_0_80_mpros_Adapter_an_USB.png: USB-UART-Adapter an USB 
angeschlossen mit Adapterkabel dran, Combro Anzeige = Messwert 0.80

Oszi_SOUT_0V_0_84_mpros_abgezogen: Signal ohne eingesteckten 
USB-UART-Adapter
am Combro-Messgerät, Combro Anzeige = Messwert 0.84

Oszi_RX=TX_char_w: USB-UART-Adapter an USB und RX u. TX verbunden, mit 
Hammer Terminal ein "w" gesendet

HTerminal_Einstellungen: Die Einstellungen die ich im Terminal-Programm 
eingestellt habe aber trotzdem nichts ankommt


Edit: Das Gerät bleibt jetzt dauernd eingeschaltet wenn es mit 
Adapterkabel, USB-UART-Adapter am PC hängt

: Bearbeitet durch User
von Stefan F. (Gast)


Lesenswert?

Ich glaube es ergibt mehr Sinn, den Eingang des Oszilloskopes auf DC 
einzustellen.

w = 119 = 0111011101
(von links nach rechts: Start-Bit, 8 Daten Bits, Stop-Bit)

Das passt zu dem gezeigten Oszilloskop-Bild. Ich sehe, dass die 
Übertragung des Zeichen etwa 1ms dauert, was zur Bitrate 9600 passt. 
Dein USB-UART Adapter ist also in Funktionsfähig.

Die Übertragungsrate deines Messgerätes scheint zu passen. Nach 1,9 
horizontalen div kehrt das Signals stets zum High Pegel zurück, das wäre 
ein gültiges Stop-Bit.

Was hier nicht passt, sind die Spannungspegel. Ich sehe da nur 1,5V 
anstatt die erwarteten mindestens 3V. Versuche mal einen niedrigeren 
Pull-Up Widerstand, zum Beispiel 3,9kΩ oder 2,2kΩ.

von Michael K. (hummel030)


Angehängte Dateien:

Lesenswert?

Mehr Bilder:

2k_Pull_Up: 2kiloOhm zwischen SOUT und 5V USB-UART-Adapter

Ohne_Pull_Up: SOUT und 5V nicht verbunden


Auf dem PC kommt immer noch nichts an.

Edit: Die Batterien im Messgerät neigen sich dem Ende. Am 6V Pin kommen 
nur noch ca. 4,6V an. Die einzelnen Zellen (insgesamt 4) haben jeweils 
nur noch ca. 1,2V.

: Bearbeitet durch User
von Stefan F. (Gast)


Lesenswert?

Oh, das Gerät hat wohl einen zu schwachen Ausgang.

Ich glaube du brauchst eine Verstärkerstufe. Bei diesem blöden 
Signalpegel würde ich das mit einem Operationsverstärker lösen, 
geschaltet als Schmitt-Trigger.

von Michael B. (laberkopp)


Lesenswert?

Michael K. schrieb:
> Ich würde jetzt also ersteinmal ein Adapterkabel basteln (USB) wie in
> Bild3 mit dem ich dann entweder die Daten per Oszilloskop oder Hammer
> Teminal auslesen kann? Ist das so wie in der Darstellung richtig? An
> welchen Pin muss SOUT D+ oder D- damit das Terminal die Daten lesen
> kann?

Au weia.

Gehe zurück in den Kindergarten, armer Troll.

Man kann gar keine serielles Signal an D+ oder D- eines USB Anschluss 
einlesen.

von Stefan F. (Gast)


Angehängte Dateien:

Lesenswert?

Schaltungsvorschlag für den Schmitt-Trigger.

von Michael K. (hummel030)


Lesenswert?

Michael B. schrieb:
> Au weia.
>
> Gehe zurück in den Kindergarten, armer Troll.

Danke für die konstruktive Kritik.
Für mich ist ein Forum zum Fragen und Antworten erhalten da, auch wenn 
man ganz falsch liegt. Ich habe im Eröffnungspost geschrieben:

Michael K. schrieb:
> Ich sehe das Pojekt als Learning by Doing und bin der Meinung man wächst
> mit der Aufgabe.

und so sehe ich das immer noch und weiß jetzt auch, unter anderem wegen 
Dir, das das nicht geht.

Stefanus F. schrieb:
> Oh, das Gerät hat wohl einen zu schwachen Ausgang.
>
> Ich glaube du brauchst eine Verstärkerstufe. Bei diesem blöden
> Signalpegel würde ich das mit einem Operationsverstärker lösen,
> geschaltet als Schmitt-Trigger.

> Schaltungsvorschlag für den Schmitt-Trigger.

Danke für die konstruktive Kritik.

Würde es was bringen neue Batterien zu verwenden?
Gibt es Alternativen zu dem von Dir vorgeschlagenen OPV?

von Stefan F. (Gast)


Lesenswert?

Michael K. schrieb:
> Würde es was bringen neue Batterien zu verwenden?

Kann sein, Aber wenn das Gerät mit schwachen Batterien noch läuft, dann 
würde ich auch wollen, dass die Schnittstelle so noch nutzbar ist.

Ich ärgere mich oft genug darüber, dass Geräte frühzeitig ausfallen, 
obwohl die Batterien noch nicht wirklich leer sind. Manche Geräte machen 
schon bei 1,2V (pro 1,5V Zelle) Schluss - das ist unverschämt.

von Michael K. (hummel030)



Lesenswert?

Verstärkerschaltung (mit TI LM358P) ist gebaut. Signal kommt an (RX-LED 
am UART-USB-Adapter blinkt wenn neuer Wert auf dem Messgerät erfasst 
wird) aber ich weiß nicht wie die Daten zu interpretieren sind! Deshalb 
wieder Bilder. Speziell die Werte im Hammer Terminal für 0.79 m/s kann 
ich nicht nachvollziehen, da es ja eigentlich immer derselbe Wert ist 
den das Messgerät anzeigt und überträgt.

Auswertung_Combro_Excel.PNG:
Spalten von links nach rechts. "Hterminal" ist das was das Hammer 
Terminal empfängt/anzeigt. "Combro" ist der Messwert der auf dem LCD des 
Messgeräts angezeigt wird. "Bild Oszill." s. Bild oben. "Bild Hterm" s. 
Bild oben

OPV_Combro_0.86.PNG:
Bild vom Wert 0.86(Combro) und Signalform

HTerminal_Combro_0.86.PNG:
Bild vom Hammer Terminal mit den übertragenden Daten des Messwerts 0.86.

HTerm_gesamte_Session.PNG:
Alle empfangenen Daten im HTerminal. Die ersten 6 Werte waren ohne 
Pull-Up zwischen SOUT und 5V. Jetzt 10k.

: Bearbeitet durch User
von Stefan F. (Gast)


Lesenswert?

Das Signal auf deinem Oszilloskop-Bild hat jetzt gute Pegel, aber die 
Flanken sind mir nicht steil genug. Dies kann zu einzelnen Bitfehlern 
führen. Vermutlich kriegen wir das verbessert, indem wir einen 
Widerstand in Reihe zu C1 schalten. Vielleicht 10kΩ.

Da allerdings dein HTerm ausschließlich Ziffern empfangen hat und alle 
Zeilenumbrüche korrekt empfangen werden, hast du hier vermutlich nochmal 
Glück gehabt. Ich würde Schaltung vorläufig unverändert lassen.

Bleibt also noch die Interpretation der Zahlen. Dazu habe ich spontan 
keine hilfreiche Idee.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.