Forum: Mikrocontroller und Digitale Elektronik Wert auslesen aus ATtiny


von Dieter R. (dieter_r)


Lesenswert?

Hallo zusammen,

vorweg, bin noch NOOB in Sachen ATtiny und Konsorten. Nutze Bascom, 
Fischl-programmer und ATtiny85.
Für ein Kleinprojekt soll der Attiny über einen Eingangspin eine 
Zeitdauer messen, als Wert (vermutlich 8, eventuell 10Bit) speichern und 
entsprechend reagieren.
Gibt es bei dem Typ eine Möglichkeit, den im Testaufbau gemessenen Wert 
mir in irgendeiner Art mitzuteilen?
Für das fertige Projekt brauche ich das dann nicht mehr, aber am Anfang 
zum debuggen und in der trial-and-error Phase, um zu sehen ob sich zB 
überhaupt was tut, bzw. Werte dann größer oder kleiner werden wenn ich 
das erwarte.

Gruß,
Dieter

von Udo R. (udo_r)


Lesenswert?

Seriell über com-port ausgeben.

von Rene. K (Gast)


Lesenswert?

UART ist dein Freund. Aber aufpassen: Beim Tiny85 gibt es keine HW UART 
(Sowie bei allen 8pin Tinys). Du bist also auf ein Soft-UART angewiesen, 
stellt aber keine große Herrausforderung da und es gibt genügend 
Beispiele. (Bestimmt auch in Basic)

von löhring (Gast)


Lesenswert?

Dieter R. schrieb:
> vorweg, bin noch NOOB in Sachen ATtiny und Konsorten. Nutze Bascom,
> Fischl-programmer und ATtiny85.

> Gibt es bei dem Typ eine Möglichkeit, den im Testaufbau gemessenen Wert
> mir in irgendeiner Art mitzuteilen?

zB per RS232. In Bascom läßt sich software UART leicht einrichten. 
Nachzulesen zB beim Befehl OPEN.

von Dieter (Gast)


Lesenswert?

Verstanden. Wenn ich jetzt
1
Open "comb.2:1200,8,n,1" For Output As #1
2
Print #1 , "Hello World"

einfüge, wo gehen die Daten von PortB.2 dann hin?
Ich habe in den Einstellungen des "Terminal Emulator" die möglichen 
COM-Ports durchprobiert, sind nur 2. Ohne Erfolg, es scheint nichts 
anzukommen.
Was mache ich falsch oder geht das nicht über den USBasp?

von Karsten U. (herr_barium)


Lesenswert?

Dieter schrieb:
> Was mache ich falsch oder geht das nicht über den USBasp?

Natürlich nicht.

Du brauchst einen TTL zu RS232 Wandler, der den seriellen Datenstrom aus 
dem Sende-Pin auf den Pegel bringt, mit dem der PC etwas anfangen kann.

von Karl B. (gustav)


Lesenswert?

Hi,

Seite 1:
https://www.heise.de/make/artikel/Arduino-Uno-als-In-System-Programmer-2769246.html

Hier ein einfaches RS232-Interface o h n e den Max232:

http://www.atmel.com/Images/Atmel-0943-In-System-Programming_ApplicationNote_AVR910.pdf

Seite 12

Statt der dort vordefinierten Ports für RXD und TXD eben den/die 
Wunschport(s) nehmen und mit der Softwarelösung arbeiten.

ciao
gustav

: Bearbeitet durch User
von Dieter (Gast)


Lesenswert?

Sowas hatte ich beinahe befürchtet, hatte aber die Hoffnung der USBasp 
leistet das mit. Einen Max232 habe ich zwar sicherlich noch in einer 
hinteren Schublade liegen, aber mein Rechner hat nur noch USB.
Was für andere Alternativen habe ich denn?

von Karl B. (gustav)


Lesenswert?

Hi,
so etwas müsste gehen.

https://www.amazon.de/Manhattan-Seriell-Konverter-Anschluss-PL-2303RA-Chipsatz-205146/dp/B0007OWNYA

(Der braucht doch noch einen "Genderchanger" zur Sicherheit Sub D Min 9 
Male auf female, jedenfalls ist die Buchse an meinem PC male.)

Aber, bevor man sich unnötig in Unkosten stürzt:

Ich glaube der USBasp kann das auch.
Muss nur softwaremäßig "verbogen" werden.

Noch einmal gezielt googeln.

ciao
gustav

: Bearbeitet durch User
von Thomas E. (thomase)


Lesenswert?

Dieter schrieb:
> Was für andere Alternativen habe ich denn?

Solange du nicht den Timer 1 des Tiny85 mit seinen Besonderheiten 
verwendest, kannst du deine Software auch auf nahezu jedem anderen AVR 
entwickeln. Einen Arduino Uno beispielsweise mit seinem Atmega328 kannst 
du auch unter Bascom programmieren. Dann weiß der gar nicht mehr, daß er 
mal als Arduino auf die Welt gekommen ist, sondern ist nur noch eine 
Hardware mit einem USB-Anschluß. Die Programmierung erfolgt über ISP und 
die Bascom-Umgebung, irgendwelche Ausgaben schickst du seriell auf den 
PC. Wenn alles läuft, schmeisst du die Debug-Sachen raus, passt ein paar 
Register und Ports an und lässt es auf dem 85er laufen.

von löhring (Gast)


Lesenswert?


von Stefan F. (Gast)


Lesenswert?

> Was für andere Alternativen habe ich denn?

Einen Haltepunkt setzen und dann die Variable mit einem Debugger 
auslesen. Ist aber unpraktisch und teuer. Die serielle Ausgabe ich auf 
jeden Fall einfacher.

Das Verfahren habe ich samt Beispielcode hier beschrieben: 
http://stefanfrings.de/avr_hello_world/index.html

von Karl B. (gustav)


Lesenswert?

löhring schrieb:
> Ich würd mir soetwas besorgen.
> 
https://www.pollin.de/p/cubieboard-usb-zu-ttl-uart-kabel-702242?&gclid=EAIaIQobChMItK6LiKmv2AIVSCjTCh1HDA-5EAUYASABEgKtJfD_BwE

Hi,

da ist die Software drin um den TTL-Pegel des gewünschten Ausleseports 
am MC via USB zum PC (Terminalprogramm) zu schicken ?
In der Produktinfo zum Kabel oben steht etwas darüber:
"...Windows Driver for Prolific PL2303 is installed automatically...."


Wie gesagt USB ist USB, arbeitet mit 5V ok. Da hat man schon einmal 
nicht die + - 12V Pegel-Probleme. Aber trotzdem ganz anderes Protokoll. 
Das müsste dann die passende Software bzw. der richtige Treiber machen. 
Noch einmal die Produktinfo genau lesen.

ciao
gustav

: Bearbeitet durch User
von Stefan F. (Gast)


Lesenswert?

> da ist die Software drin um den TTL-Pegel des gewünschten Ausleseports
> am MC via USB zum PC (Terminalprogramm) zu schicken

Vereinfacht gesagt: ja

Beim PL2303 Chip gibt es einen lösbares Problem, von dem meines Wissens 
nach alle diese Kabel betroffen sind: 
http://stefanfrings.de/avr_tools/index.html#pl2303

> Aber trotzdem ganz anderes Protokoll.
Nein, das Übertragungsprotokoll am µC Ende des Kabels ist UART. Passen 
zu allen Mikrocontrollern, die eine echte UART Schnitsttelle oder eine 
Software-emulierte UART Schnittstelle haben.

von Dieter (Gast)


Lesenswert?

Karl B. schrieb:
> Aber, bevor man sich unnötig in Unkosten stürzt:
>
> Ich glaube der USBasp kann das auch.
> Muss nur softwaremäßig "verbogen" werden.

Ich habe ein Projekt namens USBasp-tty gefunden, scheint aber nicht ganz 
stabil. Etwas, das ich in meiner Situation nicht so richtig gebrauchen 
kann :) Wäre ja zu schön gewesen

Der Tipp mit dem Cubieboard USB UART TTL converter lässt mich aber 
diverse Module zB mit CP2102, CP2104 bzw. PL2303 finden. Taugen die auch 
dafür?

von Stefan F. (Gast)


Lesenswert?

Noch etwas: Diese PL2303 Kabel haben 3,3V Pegel. Wenn du den AVR mit 5V 
betreibst, musst du dessen Ausgangsspannung durch einen Spannungsteiler 
herab setzen:
1
                     1k
2
AVR Ausgang Tx o----[===]----+-------o Rx PL2303 
3
                             |
4
                            |~|
5
                            | | 2,2k
6
                            |_|
7
                             |
8
           GND o-------------+-------o GND

von Stefan F. (Gast)


Lesenswert?

Der CP2102 hat ebenfalls 3,3V Pegel ist aber ohne Spannungsteiler zu 5V 
kompatibel.

Zum CP2104 kann ich nichts sagen, da musst du mal in Datenblatt schauen 
oder googeln.

von löhring (Gast)


Lesenswert?

Karl B. schrieb:
> löhring schrieb:
>> Ich würd mir soetwas besorgen.
> Noch einmal die Produktinfo genau lesen.

Danke Karl und entschuldigt bitte. Ich bin mir gar nicht mehr sicher, 
daß es das ist was der TO braucht. :-( :-(

von Karl B. (gustav)


Angehängte Dateien:

Lesenswert?

Stefan U. schrieb:
> Einen Haltepunkt setzen und dann die Variable mit einem Debugger
> auslesen. Ist aber unpraktisch und teuer. Die serielle Ausgabe ich auf
> jeden Fall einfacher.

OK,
noch einmal zurück.
@stefan meint so etwas?
OK. Die "Käsekästchen" rechts fehlen noch.


ciao
gustav

von Dieter (Gast)


Lesenswert?

Danke für den Support, da hat sich mein letzter post mit anderen 
gekreuzt. Dann wird es wohl eine CP2102 Lösung werden.

Zwischenzeitlich schaue ich mir noch die Möglichkeit mit den 
Haltepunkten mal an, kann ja nicht schaden.

von Stefan F. (Gast)


Lesenswert?

> @stefan meint so etwas?

Ja genau das.

von Thomas E. (thomase)


Lesenswert?

Dieter schrieb:
> Zwischenzeitlich schaue ich mir noch die Möglichkeit mit den
> Haltepunkten mal an, kann ja nicht schaden.

Das nennt sich Debugger. Das aktuelle Gerät dafür ist der Atmel-ICE. 
Vorher mußt du aber noch C lernen. Mit Bascom wirst du da nichts.

von Dieter (Gast)


Lesenswert?

Thomas E. schrieb:
>
> Das nennt sich Debugger. Das aktuelle Gerät dafür ist der Atmel-ICE.
> Vorher mußt du aber noch C lernen. Mit Bascom wirst du da nichts.


So kam mir das gerade auch vor, Haltepunkte gibt es in Bascom nur im 
Simulator.

Aber ich bin andersweitig in den Schubladen fündig geworden, nämlich ein 
laut Gerätemanager "Prolific USB serial controller" :) Auf der nicht-USB 
Seite schon mit 4 poligem Konnektor verlötet (Habe ich glaube mal für 
einen gebrickten Router genutzt)

Jetzt muss ich nur noch rausfinden, welche Farbe wie belegt ist. Rot und 
schwarz ist hoffentlich einfach :)

von Stefan F. (Gast)


Lesenswert?

> Prolific USB serial controller

Hört sich brauchbar an.

> Jetzt muss ich nur noch rausfinden, welche Farbe wie belegt ist

Anleitung dazu: 
http://stefanfrings.de/mikrocontroller_buch2/Einblick%20in%20die%20moderne%20Elektronik.pdf 
Kapitel 6

von Dieter (Gast)


Lesenswert?

Stefan U. schrieb:
>> Jetzt muss ich nur noch rausfinden, welche Farbe wie belegt ist
>
> Anleitung dazu:
> http://stefanfrings.de/mikrocontroller_buch2/Einbl...
> Kapitel 6

Warum gab es sowas nicht damals, als ich noch eiliger Teenager war? 
Danke vielmals. Hat alles geklappt, Daten werden sauber empfangen.

Schwarz war allerdings nicht GND, sondern RxD. Dafür gibt es für GND 
eine Schirmleitung.

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.