condor 0 6 марта, 2007 Опубликовано 6 марта, 2007 · Жалоба Делаю свою первый проект на ADUC'e. Из-за неполного даташита появились непонятки. ---- PWM ---- В маленьком корпусе ШИМ напрямую наружу не выходит. В ДШ написано, что можно вывести через PLA. Сделал так: PLAELM8 = 0x0035; PLAELM15 = 0x0059; PLAELM0 = 0x0059; GP1CON = 0x3 << 28; // (PWM)PLAO[0] -> P1.7 GP3CON = 0x1; // PWM0 -> P3.0(PLAI[8]) Но смущает то, что в ИАРовском хедере ioaduc7021.h нету описания регистров ШИМа. Он в этом контроллере присутствует? Утилита PLA Tool тоже ведет себя непонятно. При записи в PLAELM8 0x0035 (т.е. подключение ко входу элемента8 P3.0 (PWM)) ругается "The GPIO pins you selected as inputs to the elements of Block1 have been disabled as they are not available on ADuC2071". Это утилита кривая или действительно можно подключать к PLA только выведенные наружу входы? ---- ADC ---- Нужно с максимальной скоростью оцифровать ~1ms сигнала и сложить в буфер для дальнейшей обработки. В ДШ нигде не нашел описание непрерывного режима преобразований (continious mode). Я конечно догадываюсь что это, но хотелось бы уточнить :). В примере с фтп Analog'a при использовании непрерывного преобразования каждый раз переключают каналы 0 и 1. Это просто измеряют два разных сигнала, или к обоим каналам подключен один и тот же сигнал, а такое переключение дает выграш в быстродействии? ADCCON = 0x4E4; // Config: fADC/2, acq. time = 2 clocks => ADC Speed = 1MSPS while(1) { // start continuous conversion for (i=0; i <2; i++) { while (!ADCSTA){} // wait for end of conversion ADCDATA[i] = (ADCDAT >> 16); if (ADCCP == 0) ADCCP = 1; // change channel else ADCCP = 0; } } Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Igor68 0 7 марта, 2007 Опубликовано 7 марта, 2007 · Жалоба Делаю свою первый проект на ADUC'e. Из-за неполного даташита появились непонятки. ---- PWM ---- В маленьком корпусе ШИМ напрямую наружу не выходит. В ДШ написано, что можно вывести через PLA. Сделал так: PLAELM8 = 0x0035; PLAELM15 = 0x0059; PLAELM0 = 0x0059; GP1CON = 0x3 << 28; // (PWM)PLAO[0] -> P1.7 GP3CON = 0x1; // PWM0 -> P3.0(PLAI[8]) Но смущает то, что в ИАРовском хедере ioaduc7021.h нету описания регистров ШИМа. Он в этом контроллере присутствует? Утилита PLA Tool тоже ведет себя непонятно. При записи в PLAELM8 0x0035 (т.е. подключение ко входу элемента8 P3.0 (PWM)) ругается "The GPIO pins you selected as inputs to the elements of Block1 have been disabled as they are not available on ADuC2071". Это утилита кривая или действительно можно подключать к PLA только выведенные наружу входы? ---- ADC ---- Нужно с максимальной скоростью оцифровать ~1ms сигнала и сложить в буфер для дальнейшей обработки. В ДШ нигде не нашел описание непрерывного режима преобразований (continious mode). Я конечно догадываюсь что это, но хотелось бы уточнить :). В примере с фтп Analog'a при использовании непрерывного преобразования каждый раз переключают каналы 0 и 1. Это просто измеряют два разных сигнала, или к обоим каналам подключен один и тот же сигнал, а такое переключение дает выграш в быстродействии? ADCCON = 0x4E4; // Config: fADC/2, acq. time = 2 clocks => ADC Speed = 1MSPS while(1) { // start continuous conversion for (i=0; i <2; i++) { while (!ADCSTA){} // wait for end of conversion ADCDATA[i] = (ADCDAT >> 16); if (ADCCP == 0) ADCCP = 1; // change channel else ADCCP = 0; } } PWM - работает напрямую (настроить порты ввода-вывода): GP3CON = 0x00000011; // Enable the PWM outputs to the GPIO для моего случая: PWMCON = 0x0005; //0x0001; // 0x01 is enabled //0x05 PWMDAT0=_F_Ram_P_Shim; //мои значения частоты модуляции и гарантированной паузы PWMDAT1=_F_Ram_Pt_Shim; PWMCFG = 0x0008; // PWMA = 0x0000; // A channel PWMB= 0x0000; // B channel PWMC= 0x0000; // C channel PWMEN = 0x010F; // Enable (0=enabled) обратите внимание - значения модуляции СО ЗНАКОМ (0x00000000 - меандр) ADC: REFCON=0x01; //включ. внутр. опорн напр ADCCP=0x02; //выбор канала ADCCN=0x00; //--------- ADCCON = 0xA4; //непрерывный режим остальное как вы и написали выше у меня один даташит на ADuC702x. (есть и на русском) /примеры для ADuC7024 (в KEIL )/ Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Igor68 0 7 марта, 2007 Опубликовано 7 марта, 2007 · Жалоба Делаю свою первый проект на ADUC'e. Из-за неполного даташита появились непонятки. ---- PWM ---- В маленьком корпусе ШИМ напрямую наружу не выходит. В ДШ написано, что можно вывести через PLA. Сделал так: PLAELM8 = 0x0035; PLAELM15 = 0x0059; PLAELM0 = 0x0059; GP1CON = 0x3 << 28; // (PWM)PLAO[0] -> P1.7 GP3CON = 0x1; // PWM0 -> P3.0(PLAI[8]) Но смущает то, что в ИАРовском хедере ioaduc7021.h нету описания регистров ШИМа. Он в этом контроллере присутствует? Утилита PLA Tool тоже ведет себя непонятно. При записи в PLAELM8 0x0035 (т.е. подключение ко входу элемента8 P3.0 (PWM)) ругается "The GPIO pins you selected as inputs to the elements of Block1 have been disabled as they are not available on ADuC2071". Это утилита кривая или действительно можно подключать к PLA только выведенные наружу входы? ---- ADC ---- Нужно с максимальной скоростью оцифровать ~1ms сигнала и сложить в буфер для дальнейшей обработки. В ДШ нигде не нашел описание непрерывного режима преобразований (continious mode). Я конечно догадываюсь что это, но хотелось бы уточнить :). В примере с фтп Analog'a при использовании непрерывного преобразования каждый раз переключают каналы 0 и 1. Это просто измеряют два разных сигнала, или к обоим каналам подключен один и тот же сигнал, а такое переключение дает выграш в быстродействии? ADCCON = 0x4E4; // Config: fADC/2, acq. time = 2 clocks => ADC Speed = 1MSPS while(1) { // start continuous conversion for (i=0; i <2; i++) { while (!ADCSTA){} // wait for end of conversion ADCDATA[i] = (ADCDAT >> 16); if (ADCCP == 0) ADCCP = 1; // change channel else ADCCP = 0; } } PWM - работает напрямую (настроить порты ввода-вывода): GP3CON = 0x00000011; // Enable the PWM outputs to the GPIO для моего случая: PWMCON = 0x0005; //0x0001; // 0x01 is enabled //0x05 PWMDAT0=_F_Ram_P_Shim; //мои значения частоты модуляции и гарантированной паузы PWMDAT1=_F_Ram_Pt_Shim; PWMCFG = 0x0008; // PWMA = 0x0000; // A channel PWMB= 0x0000; // B channel PWMC= 0x0000; // C channel PWMEN = 0x010F; // Enable (0=enabled) обратите внимание - значения модуляции СО ЗНАКОМ (0x00000000 - меандр) ADC: REFCON=0x01; //включ. внутр. опорн напр ADCCP=0x02; //выбор канала ADCCN=0x00; //--------- ADCCON = 0xA4; //непрерывный режим остальное как вы и написали выше у меня один даташит на ADuC702x. (есть и на русском) /примеры для ADuC7024 (в KEIL )/ Прошу простить за мою глупость (правильно говорят: сколько дурака ни бей....) в ADuC7021 PWM вообще не значится(по даташиту). Он есть начиная с 7024. Еще раз извиняюсь! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alex_rav 0 7 марта, 2007 Опубликовано 7 марта, 2007 · Жалоба Прошу простить за мою глупость (правильно говорят: сколько дурака ни бей....) в ADuC7021 PWM вообще не значится(по даташиту). Он есть начиная с 7024. Еще раз извиняюсь! Это правда..... Cам с примером работы через PLA не разобрался, но могу дать по нему(PLA в ADUC) ссылку на статью одного уважаемого человека: http://iosifk.narod.ru/aduc_pla.pdf Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
condor 0 7 марта, 2007 Опубликовано 7 марта, 2007 · Жалоба Прошу простить за мою глупость (правильно говорят: сколько дурака ни бей....) в ADuC7021 PWM вообще не значится(по даташиту). Он есть начиная с 7024. Еще раз извиняюсь! А вот это уже интересно. В каком ДШ? Я нашел только такую фразу: DIGITAL PERIPHERALS THREE-PHASE PWM Each ADuC7019/7020/7021/7022/7024/7025/7026/7027 provides a flexible and programmable, three-phase pulse-width modulation (PWM) waveform generator. ................. 40-Pin Package Devices On the 40-pin package devices, the PWM outputs are not directly accessible, as described in the General-Purpose Input/Output section. One channel can be brought out on a GPIO via the PLA as shown in this example: PWMCON = 0x1; // enables PWM o/p PWMDAT0 = 0x055F; // PWM switching freq // Configure Port Pins GP4CON = 0x300; // P4.2 as PLA output GP3CON = 0x1; // P3.0 configured as // output of PWM0 //(internally) // PWM0 onto P4.2 PLAELM8 = 0x0035; // P3.0 (PWM output) // input of element 8 PLAELM10 = 0x0059; // PWM from element 8 Так все таки он там есть или нету? :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
etoja 0 7 марта, 2007 Опубликовано 7 марта, 2007 · Жалоба ШИМ есть во всех ADuC70xx. Об этом написано на странице №53 английского даташита. Пример конфигурирования выходов ШИМ через PLA приведён на странице №54. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Igor68 0 9 марта, 2007 Опубликовано 9 марта, 2007 · Жалоба ШИМ есть во всех ADuC70xx. Об этом написано на странице №53 английского даташита. Пример конфигурирования выходов ШИМ через PLA приведён на странице №54. страница: Rev. PrA | Page 9 of 78 указывает, что именно PWM там и нет (наличие устройства "+") ШИМ есть во всех ADuC70xx. Об этом написано на странице №53 английского даташита. Пример конфигурирования выходов ШИМ через PLA приведён на странице №54. страница: Rev. PrA | Page 9 of 78 указывает, что именно PWM там и нет (наличие устройства "+") * Package, PWM, GPIO availability and number of Analog I/O depend on part model. See page 9. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Igor68 0 9 марта, 2007 Опубликовано 9 марта, 2007 · Жалоба ШИМ есть во всех ADuC70xx. Об этом написано на странице №53 английского даташита. Пример конфигурирования выходов ШИМ через PLA приведён на странице №54. страница: Rev. PrA | Page 9 of 78 указывает, что именно PWM там и нет (наличие устройства "+") ШИМ есть во всех ADuC70xx. Об этом написано на странице №53 английского даташита. Пример конфигурирования выходов ШИМ через PLA приведён на странице №54. страница: Rev. PrA | Page 9 of 78 указывает, что именно PWM там и нет (наличие устройства "+") * Package, PWM, GPIO availability and number of Analog I/O depend on part model. See page 9. файл PWM.H (KEIL) /* PWM */ #if defined (ADUC7024) || defined (ADUC7025) || defined (ADUC7026) || defined (ADUC7027) #define PWMBASE (*(volatile unsigned long *) 0XFFFFFC00) #define PWMCON (*(volatile unsigned long *) 0XFFFFFC00) #define PWMSTA0 (*(volatile unsigned long *) 0XFFFFFC04) #define PWMDAT0 (*(volatile unsigned long *) 0XFFFFFC08) #define PWMDAT1 (*(volatile unsigned long *) 0XFFFFFC0C) #define PWMCFG (*(volatile unsigned long *) 0XFFFFFC10) #define PWMA (*(volatile unsigned long *) 0XFFFFFC14) #define PWMB (*(volatile unsigned long *) 0XFFFFFC18) #define PWMC (*(volatile unsigned long *) 0XFFFFFC1C) #define PWM0 (*(volatile unsigned long *) 0XFFFFFC14) #define PWM1 (*(volatile unsigned long *) 0XFFFFFC18) #define PWM2 (*(volatile unsigned long *) 0XFFFFFC1C) #define PWMEN (*(volatile unsigned long *) 0XFFFFFC20) #define PWMDAT2 (*(volatile unsigned long *) 0XFFFFFC24) #define PWMSTA1 (*(volatile unsigned long *) 0XFFFFFC38) #endif искренне не хотелось вас огорчать, но уменя больше нет достоверной информации на эту тему. (через PLA PWM я ниразу не юзал) с уважением PARAMON. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexQ 0 13 марта, 2007 Опубликовано 13 марта, 2007 · Жалоба Народ ну вы чего? хидер подцепляйте для 7024 у которого PWM выведен. блок PWM есть во всех адуках, но у 40 ногих не выведен наружу, поэтому только через PLA. Вот вам пример для 7020 под IAR #include "ioADuC7024.h" __irq __arm void irq_handler() {} // Init Frequency void InitFreq(void) { POWKEY1 = 0x01; // POWCON = 0x02; //11.272MHz CPU clock POWCON = 0x00; //41780000Hz CPU clock POWKEY2 = 0xF4; } int main() { // InitFreq(); // Тактовая 41780000Гц PWMCON = 0x1; // enables PWM o/p PWMDAT0 = 0xFFFF; // PWM switching freq //Configure Port Pins GP4CON = 0x300; // P4.2 as PLA output GP3CON = 0x1; // P3.0 configured as // output of PWM0 internally // PWM0 onto P4.2 PLAELM8 = 0x0035; // P3.0 (PWM output) // input of element 8 PLAELM10 = 0x0059; // PWM from element 8 while(1) {} } Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Igor68 0 14 марта, 2007 Опубликовано 14 марта, 2007 · Жалоба Народ ну вы чего? хидер подцепляйте для 7024 у которого PWM выведен. блок PWM есть во всех адуках, но у 40 ногих не выведен наружу, поэтому только через PLA. Вот вам пример для 7020 под IAR #include "ioADuC7024.h" __irq __arm void irq_handler() {} // Init Frequency void InitFreq(void) { POWKEY1 = 0x01; // POWCON = 0x02; //11.272MHz CPU clock POWCON = 0x00; //41780000Hz CPU clock POWKEY2 = 0xF4; } int main() { // InitFreq(); // Тактовая 41780000Гц PWMCON = 0x1; // enables PWM o/p PWMDAT0 = 0xFFFF; // PWM switching freq //Configure Port Pins GP4CON = 0x300; // P4.2 as PLA output GP3CON = 0x1; // P3.0 configured as // output of PWM0 internally // PWM0 onto P4.2 PLAELM8 = 0x0035; // P3.0 (PWM output) // input of element 8 PLAELM10 = 0x0059; // PWM from element 8 while(1) {} } Спасибо alexQ за инфу! Неведал! Прошу извинить,если я в чём-то был неправ! С уважением PARAMON! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alex_rav 0 4 мая, 2007 Опубликовано 4 мая, 2007 · Жалоба AlexQ, а вы сами это делали? просто инфа нужна точная.... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexQ 0 7 мая, 2007 Опубликовано 7 мая, 2007 · Жалоба Да. пробовал. 100% работает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Snusmumrik 0 11 мая, 2007 Опубликовано 11 мая, 2007 · Жалоба страница: Rev. PrA | Page 9 of 78 указывает, что именно PWM там и нет (наличие устройства "+") Скачайте даташит посвежее, не preliminary A. У Вас совсем уж старый. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexQ 0 14 мая, 2007 Опубликовано 14 мая, 2007 · Жалоба в новом даташите как раз инфу про то как вывести PWM через PLA у 40-ка ногих адуков выкинули. не знаю по каким причинам.... :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Igor68 0 14 мая, 2007 Опубликовано 14 мая, 2007 · Жалоба Скачайте даташит посвежее, не preliminary A. У Вас совсем уж старый. Признаю вину! :( Я ведь не по злботе душевной, а по недоумию своему :crying: Просто хотел искренне помоч! У самого меня были проблемы подобные! Сейчас просто с проектом зашился, но даташит обновлю! С уважением :beer: PARAMON! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться