Hallo zusammen, hab schon wieder ne Frage. Bezüglich der Erzeugung einer stabilen und korrekten Baudrate beim MSP ist es wohl notwendig einen externen 32-kHz Quarz zu verwenden ? Ist das so ? Ist dies mit dem internen Oszillator nicht zu machen ? So jedenfalls habe ich die Beiträge die ich hier gelesen habe verstanden. Ich benötige eine Baudrate von 9600 Baud und diese sollte auch stabil zur Verfügung stehen. In den TI App. Notes sieht man auch immer einen Quarz, würde aber gerne ohne auskommen. Danke im vorraus, Gruß Joe
Hiho,mit den neuen F2xxx braucht man nicht zwingend einen Quarz, da reicht der interne DCO mit den abgelegten Kalibrierwerten. Die sollen lt. Spec für eine Toleranz von max. 3% sorgen. Reicht fuer eine UART aus. Allerdings haben die von Dir genannten F20xx meines Wissens noch keinen UART.
Hallo szimmi, habe den folgenden Sample Code für den F2013 gefunden, oder sehe ich da was falsch (siehe Anhang). Hier wird ein externer Quarz verwendet. Welche I/O Pins ich verwende ist doch egal, oder ? Auch die Möglichkeit das jeder PIN alles kann ist zunächst verwirrend aber auch irgendwie genial. Also, geht beliebiger I/O, und brauche ich den Quarz ? Ich denke ja, aber bin mir eben nicht sicher.
Hiho, das Beispiel vergewaltigt den Timer für die UART.Musst also auch die Pins nehmen, an denen CCI0A bzw. CCIOB konfigurierbar sind. Du kannst auch den DCO nehmen (mit den im Info-Flash abgelegten Kalibrierwerten), mußt allerdings dann die Timings neu berechnen. Pionieraufgabe :-)
Kannst du das etwas ausführlicher erklären ?
>>> das Beispiel vergewaltigt den Timer <<<
Wie meinst du das ?
Also, in aller Kuerze: Empfangsrichtung (RX): 1. CCR0 als Capture konfigurieren 2. Nach der ersten 1->0 Flanke wird dies in der ISR erkannt und in den Compare-Modus umgeschaltet. Dies führt dazu, dass nach der eingestellten Bit-Zeit die ISR erneut angesprungen und nun Bit fuer Bit des zu empfangenden Bytes eingesammelt wird. Senderichtung (TX): 1. CCR0 als Compare konfigurieren 2. Bit-Zeit definiert die Zeit, nach welcher die ISR immer angesprungen wird. Bei jedem ISR wird ein Bit ausgegeben, bis das Byte durch ist. Das beschriebene Verfahren hat allerdings einen Nachteil, das Empfang und Senden nicht gleichzeitig (Full-Duplex) erfolgen kann. Muesste man noch CCR1 einbeziehen (ohne dass ich da jetzt intensiver drueber nachdenke). Ein F1xxx mit "richtiger" UART kommt bei Deinem Projekt nicht in Frage? Die Emulation ueber den Timer ist immer ziemlicher Krampf.
Nein, leider nicht. Danke zunächst für deine Erklärung, Full Duplex ist nicht gar so wichtig aber 9600 Baud wären schon wichtig. Eignet sich dieses Verfahren denn dafür ? Und wie bestimme ich das Timing ? Ich weiß, viel auf einmal aber bin dankbar für jede Hilfe.
Etwas ausführlicher ist das hier beschrieben http://focus.ti.com/mcu/docs/mcusupporttechdocsc.tsp?sectionId=96&tabId=1502&abstractName=slaa078a
Ich denke das Verfahren hab ich kapiert, deinem Link folgend sieht man dann wieder ein Beispiel das auf anhieb für meinen Typ ungeignet ist. Also, für mich ist aber auch jeder kleine Schritt auf den MSP's jedesmal ein Kampf. Weniger ist manchmal mehr. Gibt es kein brauchbares Konzept mit dem man "mein Beispiel", angehängtes TI sample mittels Werteänderung oder anderem Quarz auf 9600 Baud bekommt ? Im Moment fehlt mir wieder einmal der "zündende Gedanke" ;-( Wie rechnet man das aus ?
Hiho, also in dem Beispiel ergibt sich die Bitzeit von 2400Baud bei 32768 wie folgt: Bitzeit in Timer-Ticks = 32768 / 2400 = 13,65 (daher kommt "#define Bitime 0x0E". Wenn Du z.B. die 16MHz des DCO nimmst und auf 9600 kommen willst, musst Du als Bitzeit in Timer-Ticks entsprechend 16000000/9600 = 1667 nehmen. Kannst natuerlich auch kleinere Frequenzen nehmen und entsprechend anpassen.
Super Erklärung, danke. Dann komm ich aber wieder auf die ürsprüngliche Frage, ist der interne Generator genau genug ? Sind die 9600 Baud dann stabil ? oder bau ich mir nen Zufallsgenerator ? Das muß ich alles erst ein mal sortieren ;-() Im Moment blick ich noch nicht ganz durch.
Nochmal, der interne kalibrierte DCO liefert 3% Toleranz. Eine serielle Kommunikation a la UART vertraegt meines Wissens 5%. Sollte also funzen.
OK, dann wie üblich learning by doing, werde es ausprobieren. Ich frage mich nur warum es bei TI dann kein einziges Sample ohne externen Quarz gibt ??? Mißtrauen die Ihren eigenen Bausteinen ? Jedesmal diese kuriosen Nummern, so etwas kenne ich bei anderen MC's nicht. Irgendwie tue ich mich beim MSP immer wieder schwer, wie geht es euch dabei ? Ich bin eh Anfänger und wundere mich nur (:-() Wie sagt man, der Fachmann staunt und der Laie wundert sich ;-)) Nochmals danke, < 5% wäre ok.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.