Xmega-a1-usb USBXpress nutzen

Kryskeys

Neues Mitglied
25. Okt. 2010
11
0
0
Sprachen
Hey,
bräuchte mal von euch Hilfe. Habe mir das Xmega-a1-usb hier aus dem Shop bestellt, und würde gerne den USBXpress speed nutzen, leider finde ich keinen Sample Code. Habe es schon selbst Versucht bekomme aber leider keine richtige Komunikation das heist ich kann die Daten nicht senden mit
USARTF0.DATA = 0;
und Auslesen
Mit SI_Read(hDev, dataRead, toBeRead, read);
Das ist der Code vom Atmel
Anhang anzeigen AVR_adc.c
Das ist der Code vom PC
Anhang anzeigen CP2102_Com.txt

Danke im voraus
Kryskeys
 
Hallo und willkommen im Forum,

wenn du USBXpress installierst, findest du im Silabs-Verzeichnis ein Beispiel in C, vielleicht hilft dir das schonmal weiter.
(C:\SiLabs\MCU\USBXpress\Examples\CP210x\Source\)


Mit SI_GetNumDevices ermittelst du die Anzahl der angeschlossenen USBXpress Devices, das ist soweit richtig.

Normalerweise ist nicht sicher, dass nur ein Device angeschlossen ist.
Du musst dir somit erst das richtige Device "aussuchen", zum Beispiel anhand der SerialNumber. Das kannst du einfach in einer Schleife machen, in der du devNum von 0 bis (dwNumDevices-1) hochzählst und mit SI_GetProductString die Seriennummer ausliest. Parameter ist hier SI_RETURN_SERIAL_NUMBER.

Hast du das richtige Device gefunden, merkst du dir devNum, das ist nämlich die Nummer vom Device.

Danach öffnest du das Device mit SI_Open(devNum, &hDev).
hDev ist jetzt dein DeviceHandle.

Nun must du den CP2102 "einstellen":
Code:
SI_SetBaudRate(hDev , 250000)  // Beispiel 250.000 bps
SI_SetTimeOuts(2000, 2000)
SI_SetLineControl(hDev, SI_DATA_BITS_8 or SI_PARITY_NONE or SI_STOP_BITS_1)
SI_SetFlowControl(hDev, SI_STATUS_INPUT, SI_HELD_INACTIVE,
    SI_HELD_INACTIVE, SI_STATUS_INPUT, SI_STATUS_INPUT, 0)

optional:
SI_FlushBuffers(hDev, 1, 1)
Nun kannst du mit SI_Read und SI_Write Daten übertragen.

Nicht vergessen, das Device wieder mit SI_Close freizugeben, wenn du es nicht mehr benötigst.

Den Sourcecode für den Xmega habe ich nur einmal überflogen, es ist ja mein Beispiel mit ADC-Initialisierung von dir. Ich würde hier erst einmal das Grundbeispiel verwenden und Daten übertragen, von denen du die Werte kennst, also eventuell vom PC ein Byte senden und danach sendet der Xmega wieder das Byte zurück. Danach ganze Datenpakete senden und danach ADC-Werte, so kannst du dich herantasten.

Wenn du andere Baudraten benötigst, hilft dir vielleicht mein kleines Tool
Xmega-Usart-Calculator.


Grüße,
Dirk
 
Danke für die schnelle antwort. Hast mir echt weiter geholfen. Eine frage habe ich noch ist der befehl richtig USARTF0.DATA= in welcher Form muss ich die variable sein die ich senden möchte oder kanns es jedes beliebige sein?
Viele grüße
kryskeys

Danke im voraus
 
Hallo,
Eine frage habe ich noch ist der befehl richtig USARTF0.DATA= in welcher Form muss ich die variable sein die ich senden möchte oder kanns es jedes beliebige sein?

ja, du schreibst so in das DATA Register des USART, der sendet es dann. Das Datenregister ist 8Bit breit, du kopierst also ein Byte (uint8_t) in das Register.

Grüße,
Dirk
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)