Forum: Mikrocontroller und Digitale Elektronik PWM empfangen, wandeln, per UART weitersenden - welcher µC?


von NanaLisa (Gast)


Lesenswert?

Hallo!

Erstmal zum Warmwerden:

Gibt es überhaupt µC mit einem echten PWM-Eingang??
[Eigentlich brauche ich ja nur nen digitalen Eingang mit einem 
vernünftigen Timer, der mir sagen kann, wie lange das Signal jetzt 
eigentlich HIGH bzw LOW war, oder?]

Und nun ran an den eigentlichen Speck:

Ich suche einen µC, der folgende Funktion ausführen kann:
- Empfangen wird ein PWM-Signal, T=10Hz, welches mit mindestens 20kHz 
abgetastet werden sollte (um die für diese Anwendung notwendige 
Auflösung hinzubekommen).
- Diese Information soll dann per UART an einen anderen Rechner 
weitergeleitet werden.
---> Der µC soll also nur ein ankommendes PWM-Signal in ein UART-Signal 
umwandeln.

Nun hab ich mir den ATtiny23/13 herausgesucht, frage mich aber, ob mir 
der Speicher reicht? Kann das jemand abschätzen? Er bietet 2 Kbytes 
Flash, 0.125 Kbytes EEPROM und 128 Bytes SRAM.
Was bedeutet das eigentlich? Der Flash beinhaltet den Code, oder? Und 
was treiben die anderen beiden?
Wenn das nicht reicht, wen empfehlt Ihr mir dann? Der Timer muss 
jedenfalls mindestens 11 Bit breit sein für meine Anwendung.

http://www.atmel.com/dyn/Products/Product_card.asp?part_id=3229

DANKE schon mal im Voraus!!!

von Igor M. (bastel-wastel)


Lesenswert?

> - Empfangen wird ein PWM-Signal, T=10Hz, welches mit mindestens 20kHz

Du meinst wohl f=10Hz.

Du solltest lieber einen µC mit Hardware-UART nehmen. Z.B. den Tiny2313

Du kannst so vorgehen:
Timer laufen lassen und den Pegelwechsel des PWM-Signals mit dem Capture 
detektieren. Dann einfach den Timerstand auslesen. So musst du das 
System gar nicht ständig abtasten. Ist ein gängiges Verfahren. Der µC 
hat eigentlich überhaupt nichts zu tun. Lediglich ab und zu den Timer 
auslesen und den entsprechenden Wert ins UART-Register schieben. 
Flash-Speicher brauchts da nur sehr wenig. Wenn du den Tiny13 nehmen 
willst, musst du die UART per Software programmieren. Ist deutlich 
aufwändiger als HArdware-UART. Da dein µC jedoch nur senden soll und er 
sonst nichts zu tun hat, ist das auch eine Option. Wenn Software-UART, 
dann such in der Codesammlung mal nach Peter Danneggers Beispiel-Code.

PS: Ich sehe, dass du noch nicht so viel von µCs weißt. Les dir mal 
folgendes durch:
http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial

Musst dir halt mal mehrere Stunden Zeit nehmen.

SRAM ist der Arbeitsspeicher für Variablen
Flash ist der Festspeicher fürs erstellte Programm

von Matthias L. (Gast)


Lesenswert?

>frage mich aber, ob mir der Speicher reicht? Kann das jemand abschätzen?
>Er bietet 2 Kbytes Flash

Das wird wohl reichen um eine Zeit zu messen und in einen Wert 
umzuwandeln und zu versenden..

>0.125 Kbytes EEPROM und 128 Bytes SRAM.
Für die von dir beschriebene Aufgabe solltest du mit ~10Bytes SRAM 
auskommen

Tipp:
Wenn das Signal nicht prellt, wovon ich ausgehe, dann nutze die 
Input-Capture-Funktion des Atmels. So kannst du, wenn du willst, mit dem 
Prozessortakt (bis zu 16MHz) als Abtastfrequenz arbeiten..

von NanaLisa (Gast)


Lesenswert?

Ja genau, klar, ich mein natüüürlich f=10Hz!!!

Äh ja klar, ich mein ja auch den Tiny2313. Sorry, war etwas ungeschickt 
getippselt. [Der Tiny13 hat ja auch nur nen 8-bit Timer, der würde mir 
ja gar nicht reichen.]

Also kannste mir den ATtiny2313 uneingeschränkt für diese Anwendung 
empfehlen?

Wie sieht denn das bei dem mit dem Handling aus, was brauch ich in dem 
Fall noch als Infrastruktur um den µC mit meinem Code zu beschicken?

von Igor M. (bastel-wastel)


Lesenswert?

Der Tiny2313 sollte für deine Zwecke ideal sein.

Was meinst du mit "Infrastruktur". Die Beschaltung? Ein Programmiergerät 
um den Code auf den µC zu übertragen?
http://www.mikrocontroller.net/articles/AVR-Tutorial:_Equipment

von NanaLisa (Gast)


Lesenswert?

Ja, genau.

von NanaLisa (Gast)


Lesenswert?

Oh 'tschuldigung, hab nicht zu Ende gelesen! Ich mein das 
Programmiergerät!

von Igor M. (bastel-wastel)


Lesenswert?

Willst du das ganze für Privat oder beruflich?
Willst du ein Programmiergerät kaufen oder selbst bauen?

Wenn kaufen: z.B. ATMEL STK500
Wenn bauen: Folgender Programmer ist sehr einfach zu bauen:
http://s-huehn.de/elektronik/avr-prog/avr-prog.htm

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.