Forum: Mikrocontroller und Digitale Elektronik Pin für USB DFU BootLoader ATxmega128A1U


von Benni (Gast)


Angehängte Dateien:

Lesenswert?

Hi,

wisst ihr, an welchem PIN des ATxmega128A1U ich den Taster (nach GND) 
anlegen muss, damit ich beim Starten in den Bootloader komme?

Im Datenblatt finde ich keine Angabe und im Application Note (Atmel 
AVR1916) steht PF10 (siehe Bild). Den Pin gibt es doch gar nicht,oder?

Besten Dank
Benni

von Mr.Murks (Gast)


Lesenswert?

Das scheint wieder einmal eine "Qualitätsinfo" von Atmel zu sein.
Sonst habe ich leider keine Ahnung, was richtig wäre.
Wenn wenigstens der F-Port stimmt, könntest du in Header Dateien danach 
suchen und Sherlok Holmes spielen

von Stephan B. (matrixstorm)


Lesenswert?

Hallo

Atmel gibt doch den Quellcode mit raus dafuer.

Ich sehe gleich einmal nach, welcher Port genau gemeint ist und berichte 
dir dann.

MfG

von Stephan B. (matrixstorm)


Lesenswert?

So, wie versprochen - ich wieder.

Es ist PORTF0 - siehe Anhang.
1
// Definition of hardware condition to enter in ISP mode
2
#if XMEGA_A1U
3
# define ISP_PORT_DIR      PORTF_DIR
4
# define ISP_PORT_PINCTRL  PORTF_PIN5CTRL
5
# define ISP_PORT_IN       PORTF_IN
6
# define ISP_PORT_PIN      0
7
#elif (XMEGA_A3U || XMEGA_A3BU || XMEGA_C3)
8
# define ISP_PORT_DIR      PORTE_DIR
9
# define ISP_PORT_PINCTRL  PORTE_PIN5CTRL
10
# define ISP_PORT_IN       PORTE_IN
11
# define ISP_PORT_PIN      5
12
#elif (XMEGA_A4U || XMEGA_C4)
13
# define ISP_PORT_DIR      PORTC_DIR
14
# define ISP_PORT_PINCTRL  PORTC_PIN3CTRL
15
# define ISP_PORT_IN       PORTC_IN
16
# define ISP_PORT_PIN      3
17
#elif XMEGA_B
18
# define ISP_PORT_DIR      PORTC_DIR
19
# define ISP_PORT_PINCTRL  PORTC_PIN6CTRL
20
# define ISP_PORT_IN       PORTC_IN
21
# define ISP_PORT_PIN      6
22
#else
23
# error Unknow AVR Xmega part
24
#endif

MfG Stephan

von Benni (Gast)


Lesenswert?

Entschuldigt bitte die späte Rückmeldung.
Auf die Idee mit dem Quelltext hätte ich auch kommen können :-)


Vielen Dank für die Hilfe!

von Benjamin P. (drank)


Lesenswert?

Bitte entschuldigt das späte Feedback. Leider funktioniert PF0 nicht!

Es ist auch verwunderlich, dass als Pin PF0 angegeben wird,
1
# define ISP_PORT_PIN      0

aber das Controlregister von PF5.
1
# define ISP_PORT_PINCTRL  PORTF_PIN5CTRL


In welcher Datei hast du den Quellcode gefunden, Stephan B.? Vllt ist 
meine Hardware noch zu gebrauchen, wenn ich das CTRL-Register in PF0 
ändere.


Liebe Grüße

von matrixstorm (Gast)


Lesenswert?

Hi.

Die defines sind aus:
1
$ XMEGA_bootloaders_v104/source_code $ grep -Rin "# define ISP_PORT_PINCTRL  PORTF_PIN5CTRL" ./
2
./common/services/usb/class/dfu_flip/device/bootloader/xmega/conf/conf_isp.h:73:# define ISP_PORT_PINCTRL  PORTF_PIN5CTRL

Ggf. disassemblier ich nachher mal das binary. Mal sehen, bin heute very 
busy...

MfG

von Benjamin P. (drank)


Lesenswert?

Die SourceCodes liefert Atmel mit. Die Stelle habe ich dank Deiner Hilfe 
auch gefunden.

Gibt es eine Möglichkeit einen Ordner mit vielen Unterordnern bzw. eine 
zip in ein AtmelStudio-Projekt zu laden?

Dann könnte ich die Stelle editieren und neu kompilieren.... Eine 
Projekt-Datei wird leider nicht mitgeliefert.

von Stephan B. (matrixstorm)


Lesenswert?

Ich weis auch nicht, was Atmel sich dabei denkt, so ein Durcheinander 
auszuliefern.
Als ich damals die PinSettings aendern musste, war es einfacher im 
Maschinencode ein paar Bytes zu aendern um die Register anzupassen.

Das sagt wohl hoffentlich alles ;-)

MfG

: Bearbeitet durch User
von Benjamin P. (drank)


Lesenswert?

Immerhin halten sie es nicht für nötig, den Fehler innerhalb der letzten 
Jahre mal zu beheben.... :-)

Wie kann ich denn die HEX am einfachsten disassemblieren? Ich bin mir 
nicht sicher, ob ich mit meinen Assembler-Grundlagen die richtige Stelle 
überhaupt finde :-)

von Rainer (Gast)


Angehängte Dateien:

Lesenswert?

Pin PF0 ist der defaultpin für den ATXMEGA128A1U!

Siehe Atmel Knowledgebase "AVR1916 - Default pin configuration for boot 
loader- ATxmega128A1U"

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.