Forum: Mikrocontroller und Digitale Elektronik AT89C5131: wie eine USB Bridge generieren


von Ralph S. (jjflash)


Lesenswert?

Hallo alle zusammen,

ich hantiere schon eine ganze Weile mit dem AT89C5131 und für die 
Verbindung zum PC (weil es so schön einfach ist) hab ich immer mit einer 
USB2RS232 Bridge gearbeitet.

Es "juckt" mich schon eine geraume Zeit, den AT89C5131 als USB-Bridge zu 
verwenden (ähnlich, wie das mit einem AT-Tiny der AVR Serie auch 
funktioniert).

Im Netz dazu findet man dummerweise immer nur die Applikation von Atmel 
selbst unter:

http://www.atmel.com/Images/c5131-usb-cdc-1_2_1.zip

Dachte ich mir, so schwierig kann das nicht sein und versuche das. Mein 
Compiler ist Ride7 von Raisonance.

Jetzt hab ich das Problem, dass sich dieses Paket nicht compilieren 
läßt. Einige Inkompatibilitäten hab ich ausgeräumt, allerdings bekomme 
ich den Fehler für das STDIO.H nicht weg. Hier meldet der Compiler für 
die (immens wichtigen) PUTCHAR und GETCHAR Funktionen einen

Type redeclaration error !

Hab ich alle Quelldateien nachgesehen und dann die Typ-Definition in den 
Atmeldateien geändert und hangele mir neue Fehler ein.

Zu meiner Schande muß ich gestehen, dass ich noch nicht einmal das 
beigefügte Hex-File als Demo zum laufen bekomme, der Controller meldet 
sich nicht als USB-Device !

Hat schon mal jemand eine solche Bridge erstellt, die sich mit Ride7 
übersetzen läßt oder kann mir jemand sagen wo ich funktionierende 
Quellcodes laden kann, damit ich diese für eigene Applikationen nutzen 
kann?

Wohlbemerkt: Ich meine nicht den USB-Bootloader des Controllers für ein 
Upload eines Programmes (das funktioniert ja prima). Ich möchte schlicht 
eigene Applikationen schreiben, die dann über USB mit einem PC 
kommunizieren können und ich nicht jedes mal einen zusätzlichen FTDI 
Chip benötige !

Nette Grüße
Ralph

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Ralph S. schrieb:
> Einige Inkompatibilitäten hab ich ausgeräumt, allerdings bekomme
> ich den Fehler für das STDIO.H nicht weg. Hier meldet der Compiler für
> die (immens wichtigen) PUTCHAR und GETCHAR Funktionen einen
>
> Type redeclaration error !

Details?

Woher kommt die stdio.h, die Du da verwendest?

von Ralph S. (jjflash)


Lesenswert?

Das ist die STDIO.H von RIDE7 selbst... nicht manipuliert, das Paket von 
Atmel bindet die ein.

Leider deklariert das Paket in einem Modul Putchar und Getchar vor dem 
Einbinden der STDIO sodaß der Fehler im originalen STDIO von Ride 
geschieht !

Die Typvereinbarung im Modul von Atmel ist eben eine andere als die von 
Ride.

Ändere ich die von Atmel ... passiert nichts, ändere ich die STDIO.H von 
Ride passiert auch nichts ! Leider !

(in beiden Fällen handle ich mir wieder - logischerweise - neue Fehler 
ein)

von Sebastian (Gast)


Lesenswert?

Man bekommt dieses Codebeispiel ohne Nacharbeit mit der 4K-Demo von Keil 
zum laufen. Portieren ist nicht so simpel, leider.

von Ralph S. (jjflash)


Lesenswert?

Schade... "n bissi portieren" wäre ja nicht so schlimm, aber ein 
Typ-Fehler find ich schon arg...

Abgesehen davon steht ja in der CONFIG.H des Atmel-Pakets ja explizit 
der Compiler von Raisonance ... hmmm und grübel.

Allerdings - wenn man auf das Alter der Atmel-Applikation schaut - 
dürfte Atmel das für Ride 4 oder 5 gemacht haben .... (leider hab ich 
keinen so alten Compiler mehr zur Verfügung)

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Ralph S. schrieb:
> Leider deklariert das Paket in einem Modul Putchar und Getchar vor dem
> Einbinden der STDIO sodaß der Fehler im originalen STDIO von Ride
> geschieht !

Wie sind die denn genau deklariert?

Poste doch mal die betreffenden Zeilen, sowohl aus der stdio.h Deines 
Compilers als auch die aus "dem Paket".

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
Noch kein Account? Hier anmelden.