Добрый день!
Сейчас делаю свой первый проект на xmega. Некоторые вопросы (и ответы на них) оказались не настолько очевидны и изучение различий с традиционными (старыми) контроллерами занимает у меня определенное время. Некоторые моменты буду записывать здесь. Разумеется никакой эксклюзивности, это все есть в документации и хелпе, надо лишь понимать, что там искать.
Пост будет обновляться.
АЦП
-----------
1.1 В xmega нельзя просто взять и обратиться к каналу АЦП, надо сначала объявить, что каким каналом будет являться. Для этого служит опция muxN, где N - номер канала.
Формат такой: muxN=&B0_AAAA_BBB, где AAAA - номер входного канала (ножки) adc0-adc15 для положительного входа (он же единственный для недифференциального режима), а ВВВ - номер для отрицательного входа. Отрицательными входами могут быть не все ножки, так что сверяйтесь с документацией, прежде чем рисовать плату.
Пример описания АЦП, в котором я использую входы 4,3,9,8 как каналы 1-4 в недифференциальном режиме. 12 разрядов без знака:
Config Adca = Single , Convmode = Unsigned , Resolution = 12bit , Dma = Off , _ Reference = Int1v , Event_mode = None , Prescaler = 256 , Sweep = Ch01 , _ Ch0_gain = 1 , Ch0_inp = Single_ended , Mux0 = &B0_0100_000 , _ Ch1_gain = 1 , Ch1_inp = Single_ended , Mux1 = &B0_0011_000 , _ Ch2_gain = 1 , Ch2_inp = Single_ended , Mux2 = &B0_1001_000 , _ Ch3_gain = 1 , Ch3_inp = Single_ended , Mux3 = &B0_1000_000 ... W = Getadc(adca , 0 )
1.2 Каналов АЦП 4, а входов 16. Для того, чтобы использовать больше 4-х каналов надо подменять значение mux в выбранном канале, перенастраивая его на новый вход. В Баскоме это делается непосредственно параметром оператора Getadc:
W = Getadc(adca , 3 , &B0_0101_000) - выбор входа 5 для канала 3
Новое значение запоминается и в дальнейшем будет использовано, если этот параметр не указывать
2. В недифференциальном режиме, АЦП имеет смещение, т.е. при "0" на входе, на выходе будет некое число. В доках примерно 200, у меня около 165. Надо учитывать при калибровке.
Отредактировано Civil (2015-11-05 17:58:18)

