www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Crumb2560: USART Schnittstelle mit CP2102 USB-Wandler


Autor: flying_dutchman (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Forum,

ich arbeite zur Zeit mit dem (an sich) recht praktischen Crumb2560-Board 
von Chip45.com. Leider besteht das Problem, das es mir nicht gelingen 
will die serielle Kommunikation mit dem PC zum laufen zu bringen.

Von der Platine wird angeblich der USART1 mit dem CP2102-Chip als 
USB-Port bereitgestellt. So lässt sich die Platine direkt ohne weiteres 
am Rechner anschließen, und mittels einer virtuellen Konsole 
(/dev/ttyUSB0) die Daten auslesen. Verwendet wurde dazu HTerm.

Das CKDIV8-Fusebit wurde gelöscht, damit der externe 16Mhz-Quarz auch 
voll genutzt wird. Die korrekte Kernfrequenz würde mittels blinkenden 
LEDs überprüft.

Am entsprechenden Sende-Pin (PD3) liegen 5V an.

Sämtliche Einstellungen sind doppelt gecheckt, und stammen aus dem 
Handbuch bzw. den reichlich vorhandenen Tutorials im Internet. Hier die 
relevanten Codestücke:
#define F_CPU 16000000
#define BAUD 38400
#define UBRR_VAL ((F_CPU+BAUD*8)/(BAUD*16)-1)
#define BAUD_REAL (F_CPU/(16*(UBRR_VAL+1)))
#define BAUD_ERROR ((BAUD_REAL*1000)/BAUD)

#if ((BAUD_ERROR<980) || (BAUD_ERROR>1020))
   #error Baudratenfehler groesser als 2% und damit zu hoch! 
#endif

void initUSART(uint16_t ubrr){
   /* Set baud rate */
   UBRR1H = (uint8_t)(ubrr >> 8);
   UBRR1L = (uint8_t)(ubrr & 0xFF);
   /* Enable transmitter */
   UCSR1B |= _BV(TXEN1);
}

void USART_Transmit( uint8_t data )
{
  while ( !( UCSR1A & (1<<UDRE1)) );
  UDR1 = data;
}

Es kommen aber keine Daten am PC an. Woran könnte das liegen? Was könnte 
ich noch testen?

Beim Empfang (Aktivierung von RXEN1) tut sich ebenfalls nichts. 
Allerdings scheint die Einstellung korrekt zu sein, da beim weiteren 
Testen am Port PD2 mit einem Taster ein Signal erzeugt wurde. Dieses hat 
der Controller als Datenempfang interpretiert und eine LED getoggelt.

Bin echt verzweifelt...
Die Dokumentation vom Crumb-Board ist auch recht dünn...
Wie könnte man den USB-Wandler direkt testen?

Vielen Dank für die Antworten und mit Grüßen
    flying_dutchman

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Den USB-Wandler kannst Du direkt testen, indem Du die Verbindung seiner 
RX- und TX-Signale zum µC trennst und dann diese beiden Signale 
miteinander verbindest.

Ein angeschlossener PC bekommt so von ihm gesendete Daten als Echo 
zurückgesandt, was sich mit einem einfachen Terminalprogramm wie 
HyperTerminal testen lässt.

Autor: flying_dutchman (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo
Danke für den Tipp. In unserem Fall leider nicht so einfach möglich, da 
das BGA-Gehäuse bereits auf die Platine gelötet ist.

Allerdings stellte sich bei genauem betrachten der Crumb-Platine heraus, 
das der USB-Wandler nicht an USART1 hängt... Entgegen der Info auf der 
Herstellerseite, 
http://www.chip45.com/index.pl?page=Crumb2560&sub=..., 
hängt der Wandler an USART0.

Wieso der Hersteller so spärliche und falsche Informationen zu seinem 
coolen Produkt ins Netz stellt ist mir aber Schleierhaft.

Vielleicht hilft unser Problem aber auch anderen...

Autor: P. S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
flying_dutchman wrote:

> Allerdings stellte sich bei genauem betrachten der Crumb-Platine heraus,
> das der USB-Wandler nicht an USART1 hängt... Entgegen der Info auf der
> Herstellerseite,
> http://www.chip45.com/index.pl?page=Crumb2560&sub=...,
> hängt der Wandler an USART0.

Auf dem Schema ist es dann richtig:

http://www.chip45.com/download/Crumb2560_V1.0_Schematic.pdf

> Wieso der Hersteller so spärliche und falsche Informationen zu seinem
> coolen Produkt ins Netz stellt ist mir aber Schleierhaft.

Reichlich ist es wirklich nicht, aber was wuerdest du dir noch erwarten?

Autor: Anon Ymous (avion23)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo flying_dutchman,

ich verwende die uart lib von Peter fleury. Die ist getestet und 
funktioniert.

Die fehlenden und widersprüchlichen Angaben auf der Homepage kann ich 
bestätigen. Ich habe nur mit dem crumb128 gearbeitet. Wenn es beim dem 
crumb2560 auch so ist wirst du noch viele Überraschungen erleben. 
Schreib dir am besten alle Fallstricke auf weil in 3 Monaten weißt du es 
nicht mehr.

Autor: flying_dutchman (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Naja, ich würde mich erstmal freuen wenn die Angaben auf der 
Herstellerseite stimmen würden ;-)

Hast recht, das Schematic stimmt. Wenn man aber die Tabelle auf der 
Seite sieht, nimmt man es erstmal für bare Münze --  reichlich 
verwirrend...

Nagut, jetzt klappt es.

Autor: P. S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Anon Ymous wrote:

> Wenn es beim dem
> crumb2560 auch so ist wirst du noch viele Überraschungen erleben.
> Schreib dir am besten alle Fallstricke auf weil in 3 Monaten weißt du es
> nicht mehr.

Welche sollen das denn sein? So viel ist ja nicht drauf.

Autor: Anon Ymous (avion23)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Z.B. dass die Schaltung nicht über den USB mit strom versorgt wird. Das 
war mir nicht klar.

Und den von chip45 angebotenen bootloader fand ich unmöglich.

Das mitgelieferte Datenblatt stimmte nicht mit der Schaltung überein. 
Leider genau dort wo ich drauf vertraut habe :(

Autor: P. S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Anon Ymous wrote:
> Z.B. dass die Schaltung nicht über den USB mit strom versorgt wird. Das
> war mir nicht klar.

Dafuer ist ja der Jumper da...?

> Und den von chip45 angebotenen bootloader fand ich unmöglich.

Hm, den habe ich mir nicht mal angesehen, ich wusste nicht mal, dass sie 
sowas anbieten. Ich war ja nur an der Hardware interessiert.

> Das mitgelieferte Datenblatt stimmte nicht mit der Schaltung überein.
> Leider genau dort wo ich drauf vertraut habe :(

Ja, sehr unschoen.

Autor: flying_dutchman (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

habe die PeterFleury Bibliothek auch mal ausprobiert -- es funktionierte 
auf Anhieb. Sehr schönes Ding, das hätte ich mal vorher wissen sollen, 
dann häte ich den eigentlichen Fehler vielleicht schneller gefunden ;-)

Also, dann werde ich mich mal weiter beschäftigen. Gibt es eigentlich 
ein Wiki oder eine andere Art offene Community für die 
Crumb-Plattformen? Für Arduino zB gibt es davon Massenhaft, und wenn es 
da so viele Fallstricke gibt...

Autor: P. S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
flying_dutchman wrote:

> Also, dann werde ich mich mal weiter beschäftigen. Gibt es eigentlich
> ein Wiki oder eine andere Art offene Community für die
> Crumb-Plattformen?

Faende ich nun etwas uebertrieben. Es gibt ja noch mehr Boards dieser 
Art und im Endeffekt ist wirklich nicht viel dran.

> Für Arduino zB gibt es davon Massenhaft, und wenn es da so viele Fallstricke 
gibt...

Na, da bin ich noch gespannt.

Autor: Erik Lins (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo flying_dutchman,

puh, da ist die Homepage in der Tat fehlerhaft. Auch der RS232 Wandler 
hängt nicht an UART0, sondern an UART2... Asche auf mein Haupt.

Danke für die Kritik, gerne auch direkt an mich beim nächsten Mal. Ich 
werde die Infosheets kurzfristig überarbeiten und etwas ausführlicher 
gestalten. Nachdem was ich bislang an Rückmeldung zu meinen Crumb 
Modulen bekommen habe, verwenden die meisten User den Schaltplan als 
Doku. So viel ist ja wirklich nicht drauf auf den Teilen. Trotzdem werde 
ich die Infosheets mal etwas überarbeiten.

Viele Grüße,
ER!K

Autor: Erik Lins (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Anon Ymous,

es gibt seit einer Weile einen neuen Bootloader chip45boot2, der 
deutlich besser ist, als der alte chip45boot. Er liest nun direkt Intel 
Hex Files per UART ein und stellt seine Baudrate automatisch ein. Es 
gibt vorkompilierte Hexfiles für viele Controller.

Viele Grüße,
ER!K

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.