-         

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 11

Thema: AT90USB1287 mit Nutzung von USB und UART mit 460800 Baud

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    01.06.2007
    Ort
    München
    Alter
    54
    Beiträge
    198

    AT90USB1287 mit Nutzung von USB und UART mit 460800 Baud

    Anzeige

    SMARTPHONES & TABLETS-bis zu 77% RABATT-Kostenlose Lieferung-Aktuell | Cool | Unentbehrlich
    Hallo,

    ich möchte auf einem neu zu entwerfenden PCB einen AT90USB1287 einerseits mit der USB-Schnittstelle zum Programmieren via FLIP und nach dem Code flashen für die UART-Kommunikation zu einer Sony Ericson MCA-25 Kamera mit 460800 Baud nutzen.

    Mein Problem:
    - USB braucht einen Quartzkristall für die Systemclock mit einer Zweierpotenz von 2 MHz (z.B. 16 MHz).
    - Für den UART brauche ich aber einen Quartzkristall mit 14,7456 oder 7,3728 MHz für die Systemclock.

    Erste Idee zur Lösung:
    2 verschiedene Quartzkristalle auf das Board setzen und über Jumper konfigurieren.
    Nachteil: Man muss jedesmal zweimal zwei Jumper umstecken, wenn man neuen Code laden will.

    Habt ihr noch eine pfiffigere Idee?

    Braucht man den Quartzkristall für USB auch schon dann, wenn man nur mit dem Bootloader Code laden will?

    Kann man evtl. die Baudrate für den UART auch vom externen Quartz für den Timer2 generieren?

    Danke und Gruß, uffi.

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    02.11.2005
    Beiträge
    1.607
    Wenn 8MHz für das System gehen könntest du mit einem FlipFlop die Frequenz schlichtweg Teilen

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    01.06.2007
    Ort
    München
    Alter
    54
    Beiträge
    198
    und wie teilt man 8 MHz, um dann auf 7,3728 MHz für den UART zu kommen?

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    02.11.2005
    Beiträge
    1.607
    Wie gesagt, wenn 8Mhz auch gehen kannste ja nen 1:2 Teiler nehmen und gut ist Ansonsten weis ich nich ob man auch anders Teilen kann (auser 1:5 oder so)

  5. #5
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    01.06.2007
    Ort
    München
    Alter
    54
    Beiträge
    198
    ich denke Du hast mein Problem nicht richtig gelesen bzw. verstanden...

  6. #6
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Für den USB wird man den Quarz wohl immer brauchen, denn da braucht man für die 12 MBit Rate ein ziehmlich enges timing. Bei niedrigen Baudraten kommt man eventuell noch mit einem relativ schnellen (z.B. 16 MHz) geraden Takt klar. So weit ich das kennen geht die UART nicht über den alternativen 2 ten Takt.

    Mit etwas glück könnte man mit einem 12 Mhz Quarz auch die 460800 Baud hinkriegen. Immhin sind 12 MHz : 26 = 461538 Hz. Das ist nicht so weit daneben.

  7. #7
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    01.06.2007
    Ort
    München
    Alter
    54
    Beiträge
    198
    nette Idee!

    Leider nicht realisierbar, da 12 MHz keine 2er Potenz ist. Der Clock prescaler erlaubt nur die Teilerfaktoren 1,2,4,8, und 16, um aus der Frequenz des Quartzkristalls die 2 MHz für die 48 MHz PLL zu erzeugen.

    Daher sind die 12 MHz für USB nicht nutzbar.

  8. #8
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Die 12 Mhz haben noch ein Weiteres Problem: Die Hardare UART hat nur Teilerfaktoren die vielfache von 8 bzw. 16 sind. Mit viel Aufwand könnte man eventuell noch eine Software UART bei 16 Mhz hinkriegen, aber dann ist der controller im wesenlichen damit beschäftigt. Das ist bestimmt nicht Sinn der Sache. Da wäre der 2 te Controller, oder ein externes USB Interface wohl die bessere Wahl.

  9. #9
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    01.06.2007
    Ort
    München
    Alter
    54
    Beiträge
    198
    Zitat Zitat von Besserwessi
    Die 12 Mhz haben noch ein Weiteres Problem: Die Hardare UART hat nur Teilerfaktoren die vielfache von 8 bzw. 16 sind.
    Da irrst Du Dich: der UART Baud Raten Generator erlaubt das Teilen des Systemtaktes durch (fast beliebige) ganze Zahlen.

  10. #10
    Erfahrener Benutzer Roboter Experte Avatar von sternst
    Registriert seit
    07.07.2008
    Beiträge
    672
    Da irrst Du Dich: der UART Baud Raten Generator erlaubt das Teilen des Systemtaktes durch (fast beliebige) ganze Zahlen.
    Ja, das Ergebnis der Teilung ist aber nicht die Baudrate selber, sondern das 16-fache der Baudrate (oder das 8-fache bei Nutzung von U2Xn). D.h. wenn sich der Takt ganzzahlig auf die Baudrate teilen lässt (wie bei 12 MHz : 26 = 461538 Hz), nützt dir das nichts. Der Takt muss sich ganzzahlig auf das 16-fache (oder halt 8-fache) der Baudrate teilen lassen.

    PS: Warum ist das so? Weil der UART ein einzelnes Bit 16 mal abtastet (oder eben 8 mal, wenn U2Xn gesetzt ist).
    MfG
    Stefan

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •