Hallo,
ich muss mich im Rahmen einer Projektarbeit der Uni mit einem
ATxMega64A3U beschäftigen. Dazu habe ich mir ein kleines Devboard
gebastelt mit 16MHz Quarz und alle Ausgänge auf Stiftleisten gelegt.
Ich habe bis jetzt nur mit ATMegas (8, 16, 32, 64 und 128) und einigen
ARM Cortex-M3 Controllern gearbeitet.
Die Anfänge mit dem xMega waren garnicht so schwierig, wenn man das neue
System mit Peripherie.Funktion verstanden hat.
Allerdings habe ich nun ein Problem:
Die Ports A und B kann ich nicht als digitale Ausgänge verwenden. Wenn
ich z.B. programmiere
1 | #include <avr/io.h>
|
2 |
|
3 | int main(void)
|
4 | {
|
5 |
|
6 | PORTA.DIR = 0xFF;
|
7 | PORTA.OUT = 0xFF;
|
8 |
|
9 | for(;;)
|
10 | {
|
11 | ;
|
12 | }
|
13 |
|
14 | return 0;
|
15 | }
|
sollten eigentlich alle Pins vom PORT A auf Ausgang und auf High-Level
sein, ich messe aber überall 0V. Bei PORTC - F messe ich aber auf die
gleiche Weise die 3,3V !
Ich habe die wage Vermutung, dass das was mit dem ADC zu tun hat. Diesen
habe ich aber testweise durch ADCA.CTRLA = 0x00; deaktiviert.
Bei PORTB funktionieren die Ausgänge auch nicht. Ich würde gerne den DAC
benutzen, der reagiert entsprechend aber auch nicht. Ich habe nur
Spannungen zwischen 0 und 0,36V.
Der ATxMega ist ein Sample direkt von Atmel.
Ist der Controller defekt oder muss ich noch eine Fuse setzen oder
irgendwas ins Programm einfügen, damit die digitalen Ausgänge
funktionieren ?
LG
Nico