mikrocontroller.net

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


Autor: NanaLisa (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...

DANKE schon mal im Voraus!!!

Autor: Igor Metwet (bastel-wastel)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Matthias Lipinsky (lippy)
Datum:

Bewertung
0 lesenswert
nicht 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..

Autor: NanaLisa (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Igor Metwet (bastel-wastel)
Datum:

Bewertung
0 lesenswert
nicht 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-Tutori...

Autor: NanaLisa (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, genau.

Autor: NanaLisa (Gast)
Datum:

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

Autor: Igor Metwet (bastel-wastel)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.