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:
1
#define F_CPU 16000000
2
#define BAUD 38400
3
#define UBRR_VAL ((F_CPU+BAUD*8)/(BAUD*16)-1)
4
#define BAUD_REAL (F_CPU/(16*(UBRR_VAL+1)))
5
#define BAUD_ERROR ((BAUD_REAL*1000)/BAUD)
6
7
#if ((BAUD_ERROR<980) || (BAUD_ERROR>1020))
8
#error Baudratenfehler groesser als 2% und damit zu hoch!
9
#endif
10
11
voidinitUSART(uint16_tubrr){
12
/* Set baud rate */
13
UBRR1H=(uint8_t)(ubrr>>8);
14
UBRR1L=(uint8_t)(ubrr&0xFF);
15
/* Enable transmitter */
16
UCSR1B|=_BV(TXEN1);
17
}
18
19
voidUSART_Transmit(uint8_tdata)
20
{
21
while(!(UCSR1A&(1<<UDRE1)));
22
UDR1=data;
23
}
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
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.
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=technical&lang=de,
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...
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=technical&lang=de,> 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?
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.
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.
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.
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 :(
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.
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...
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.
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
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
Eine eigene Frage?
Dieser Thread ist über 17 Jahre alt.
Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.