Форум Микро-Чип
Поиск и заказ электронных компонентов
 

Вернуться   Форум Микро-Чип > Продукция MICROCHIP

Продукция MICROCHIP Технические вопросы по всей продукции Microchip

Ответ
 
Опции темы Опции просмотра
Старый 07.06.2018, 08:45   #1
Iptash
Senior Member
 
Регистрация: 29.03.2008
Возраст: 52
Сообщений: 400
Вес репутации: 330/45
Iptash is a jewel in the roughIptash is a jewel in the roughIptash is a jewel in the roughIptash is a jewel in the rough
По умолчанию PIC32MK...

Здравствуйте все!
Пытаюсь освоить данную серию. У меня куча вопросов по данным PIC и возможно у других. Поэтому решил создать тему.
Очередной вопрос. Вчера весь вечер просидел в поисках как подключить внутренний ОУ к АЦП внутри кристалла. В мануале написано, что если хорошо сконфигурировать, то можно). Искал в АЦП регистрах источник входного сигнала. Не нашел(. Конечно можно выход ОУ на вывод, который на вход АЦП). Но в структурной схеме на ОУ и компаратор, нарисовано, что можно.
Iptash вне форума   Ответить с цитированием
Старый 07.06.2018, 20:01   #2
Iptash
Senior Member
 
Регистрация: 29.03.2008
Возраст: 52
Сообщений: 400
Вес репутации: 330/45
Iptash is a jewel in the roughIptash is a jewel in the roughIptash is a jewel in the roughIptash is a jewel in the rough
По умолчанию Re: PIC32MK...

Не нашел. Видимо можно сканировать с помощью AD7, но на входа AD0..AD5 подавать возможности нет. Или не нашел).
Iptash вне форума   Ответить с цитированием
Старый 08.06.2018, 22:21   #3
Iptash
Senior Member
 
Регистрация: 29.03.2008
Возраст: 52
Сообщений: 400
Вес репутации: 330/45
Iptash is a jewel in the roughIptash is a jewel in the roughIptash is a jewel in the roughIptash is a jewel in the rough
По умолчанию Re: PIC32MK...

Наверное можно сделать так. Так как например выход ОУ2 сидит на выводе 13 и аналоговый вход AN0 сидит на этом выводе, то при включении выхода ОУ2 и подключении AN0 к ADC0, то АЦП0 должно считывать выход ОУ2. Надо проверить.
Iptash вне форума   Ответить с цитированием
Старый 08.06.2018, 22:31   #4
besogon
Senior Member
 
Регистрация: 12.07.2012
Возраст: 31
Сообщений: 1,777
Вес репутации: 3483/74
besogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond repute
По умолчанию Re: PIC32MK...

Iptash
там же схема нарисована.
besogon вне форума   Ответить с цитированием
Старый 08.06.2018, 22:35   #5
Iptash
Senior Member
 
Регистрация: 29.03.2008
Возраст: 52
Сообщений: 400
Вес репутации: 330/45
Iptash is a jewel in the roughIptash is a jewel in the roughIptash is a jewel in the roughIptash is a jewel in the rough
По умолчанию Re: PIC32MK...

Цитата:
Сообщение от besogon Посмотреть сообщение
Iptash
там же схема нарисована.
На схеме выход ОУ идет через какой то выключатель на ADC. Он никак не обозначен. В каком регистре это вкл. выкл. не нашел.
Iptash вне форума   Ответить с цитированием
Старый 08.06.2018, 22:38   #6
Iptash
Senior Member
 
Регистрация: 29.03.2008
Возраст: 52
Сообщений: 400
Вес репутации: 330/45
Iptash is a jewel in the roughIptash is a jewel in the roughIptash is a jewel in the roughIptash is a jewel in the rough
По умолчанию Re: PIC32MK...

Вот из даташита.
Миниатюры
ADC.jpg  
Iptash вне форума   Ответить с цитированием
Старый 08.06.2018, 22:39   #7
besogon
Senior Member
 
Регистрация: 12.07.2012
Возраст: 31
Сообщений: 1,777
Вес репутации: 3483/74
besogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond repute
По умолчанию Re: PIC32MK...

CMxCON регистр.
бит 11
если стоит, то выход операционного усилителя присутствует на OAxOUT ножке.

1 OAO: Op amp Output Enable bit(1)
1 = Op amp output is present on the OAxOUT pin
0 = Op amp output is not present on the OAxOUT pi
besogon вне форума   Ответить с цитированием
Старый 08.06.2018, 22:41   #8
Iptash
Senior Member
 
Регистрация: 29.03.2008
Возраст: 52
Сообщений: 400
Вес репутации: 330/45
Iptash is a jewel in the roughIptash is a jewel in the roughIptash is a jewel in the roughIptash is a jewel in the rough
По умолчанию Re: PIC32MK...

Меня смутила схема, см. выше. Там какой то выкл.
Iptash вне форума   Ответить с цитированием
Старый 08.06.2018, 22:55   #9
besogon
Senior Member
 
Регистрация: 12.07.2012
Возраст: 31
Сообщений: 1,777
Вес репутации: 3483/74
besogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond repute
По умолчанию Re: PIC32MK...

Iptash
это кусок adc.
besogon вне форума   Ответить с цитированием
Старый 08.06.2018, 23:27   #10
Iptash
Senior Member
 
Регистрация: 29.03.2008
Возраст: 52
Сообщений: 400
Вес репутации: 330/45
Iptash is a jewel in the roughIptash is a jewel in the roughIptash is a jewel in the roughIptash is a jewel in the rough
По умолчанию Re: PIC32MK...

Я понимаю, что кусок АЦП. КАк туда попасть)
Iptash вне форума   Ответить с цитированием
Старый 08.06.2018, 23:27   #11
Iptash
Senior Member
 
Регистрация: 29.03.2008
Возраст: 52
Сообщений: 400
Вес репутации: 330/45
Iptash is a jewel in the roughIptash is a jewel in the roughIptash is a jewel in the roughIptash is a jewel in the rough
По умолчанию Re: PIC32MK...

У меня был такой вопрос.
Iptash вне форума   Ответить с цитированием
Старый 09.06.2018, 09:04   #12
besogon
Senior Member
 
Регистрация: 12.07.2012
Возраст: 31
Сообщений: 1,777
Вес репутации: 3483/74
besogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond repute
По умолчанию Re: PIC32MK...

Iptash
скорее прочего проинициализировать ADC для той ножки, куда это adc и выход компаратора идут, начать семплинг, закочить семплинг и оцифровать.

не вполне понял вопрос.
besogon вне форума   Ответить с цитированием
Старый 09.06.2018, 15:17   #13
Iptash
Senior Member
 
Регистрация: 29.03.2008
Возраст: 52
Сообщений: 400
Вес репутации: 330/45
Iptash is a jewel in the roughIptash is a jewel in the roughIptash is a jewel in the roughIptash is a jewel in the rough
По умолчанию Re: PIC32MK...

С ОУ все в порядке. Выход ОУ он же вход АЦП. Просто считываю этот вх/вых и все.
Уперся я в компаратор. Не хочет работать и все. Что только не делал . Видимо еще, что то надо вкл. Вот код. Может кто знает?
Цитата:
//---------------------------------------------------------------
// Инициализация ОУ и Компаратора
//---------------------------------------------------------------
void OpCompInit(void)
{

ANSELGbits.ANSG7 = 0; // RG7 цифровой вывод
TRISGbits.TRISG7 = 0; // выход

RPG7Rbits.RPG7R = 0b00111; // вывод C3OUT назначаем на RG7

PMD2bits.OPA3MD = 0; // разблокируем ОУ
// PMD2bits.CMP3MD = 0; // разблокируем компаратор
CFGCON2bits.ENPGA3 = 0; // откл. внутреннюю обратную связь ОУ
CM3CON = 0;

CM3CONbits.OAO = 1; // выход ОУ включить
CM3CONbits.AMPMOD = 1; // режим ОУ-Компар. включить
CM3CONbits.CCH = 0b11; // вход компар. подкл. к вых. ОУ
CM3CONbits.COE = 1; // вых. компар. подать на вывод(PPS)
CM3CONbits.CREF = 1; // вх. IN+ компаратора подкл. к DAC3
CM3CONbits.CPOL = 1;

CM3CONbits.ON = 1; // Разрешить компар.
}
Iptash вне форума   Ответить с цитированием
Старый 09.06.2018, 15:37   #14
Iptash
Senior Member
 
Регистрация: 29.03.2008
Возраст: 52
Сообщений: 400
Вес репутации: 330/45
Iptash is a jewel in the roughIptash is a jewel in the roughIptash is a jewel in the roughIptash is a jewel in the rough
По умолчанию Re: PIC32MK...

Статусный бит устанавливается. Внутри компаратор значит работает.
Iptash вне форума   Ответить с цитированием
Старый 09.06.2018, 15:38   #15
Iptash
Senior Member
 
Регистрация: 29.03.2008
Возраст: 52
Сообщений: 400
Вес репутации: 330/45
Iptash is a jewel in the roughIptash is a jewel in the roughIptash is a jewel in the roughIptash is a jewel in the rough
По умолчанию Re: PIC32MK...

Я пробовал и на др. вывод подключать и пр.
Iptash вне форума   Ответить с цитированием
Старый 09.06.2018, 17:17   #16
besogon
Senior Member
 
Регистрация: 12.07.2012
Возраст: 31
Сообщений: 1,777
Вес репутации: 3483/74
besogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond repute
По умолчанию Re: PIC32MK...

Iptash
Вы не хотите ознакомится для начала с каким-нибудь более простым режимом работы компаратора?

Чтобы можно было осциллографом ознакомиться с его работой?
Вывести все выводы на ножки и повертеть регистры.

Я не могу сейчас вникнуть в Вашу проблему в силу того, что не совсем понимаю, что у Вас происходит и чего Вы в итоге хотите.

какой-то кусок, который работает с компаратором, анализируя то, что были срабатывания.
вообще говоря не сталкивался с трудностями при работе с компаратором.
почитайте, может у Вас есть какая-либо завязанная на компаратор errata.
Код:
	signal_sensor->port = signal_sensor_conf->port;
	signal_sensor->port_mask = 1 << signal_sensor_conf->port_pin;
	signal_sensor->port->trisset = signal_sensor->port_mask;
	signal_sensor->port->anselset = signal_sensor->port_mask;

...
	signal_sensor->cmp_vref = signal_sensor_conf->cmp_vref;
	signal_sensor->cmp_vref->all = (_CVREF_ON_M)|(_CVREF_CVRR_M)|(0x03 << _CVRCON_CVR_P);

...

	signal_sensor->cmp = signal_sensor_conf->cmp;
	signal_sensor->cmp->all = (0x01 << _CMCON_CCH_P)|(_CMCON_ON_M)|(0x03 << _CMCON_EVPOL_P)|(_CMCON_CREF_M);
	signal_sensor->int_res = signal_sensor_conf->int_res;
	signal_sensor->last_state = signal_sensor->cmp->cout;

...
signal_detected = int_flag_is_set(signal_sensor->int_res);
besogon вне форума   Ответить с цитированием
Старый 09.06.2018, 18:22   #17
Iptash
Senior Member
 
Регистрация: 29.03.2008
Возраст: 52
Сообщений: 400
Вес репутации: 330/45
Iptash is a jewel in the roughIptash is a jewel in the roughIptash is a jewel in the roughIptash is a jewel in the rough
По умолчанию Re: PIC32MK...

Это самый простой режим компаратора. Без фильтров и маскирований. В нутри чипа он работает, т.к. флаг события выставляется при подачи на вх. напряжения. А на вывод не доходит. Вроде выход настроил как надо.
Iptash вне форума   Ответить с цитированием
Старый 09.06.2018, 18:26   #18
Iptash
Senior Member
 
Регистрация: 29.03.2008
Возраст: 52
Сообщений: 400
Вес репутации: 330/45
Iptash is a jewel in the roughIptash is a jewel in the roughIptash is a jewel in the roughIptash is a jewel in the rough
По умолчанию Re: PIC32MK...

Так и есть. В errata написано, что если вкл. выход ОУ, то отключаются вых. компаратора. Да и фиг с ним. Все равно по прерыванию будет работать. Ведь думал же посмотреть ерата))
Iptash вне форума   Ответить с цитированием
Старый 09.06.2018, 18:45   #19
Iptash
Senior Member
 
Регистрация: 29.03.2008
Возраст: 52
Сообщений: 400
Вес репутации: 330/45
Iptash is a jewel in the roughIptash is a jewel in the roughIptash is a jewel in the roughIptash is a jewel in the rough
По умолчанию Re: PIC32MK...

В общем то ОУ хреновые. Возбуждаются. Нужно внешние ОУ ставить.
Iptash вне форума   Ответить с цитированием
Старый 17.06.2018, 22:58   #20
Iptash
Senior Member
 
Регистрация: 29.03.2008
Возраст: 52
Сообщений: 400
Вес репутации: 330/45
Iptash is a jewel in the roughIptash is a jewel in the roughIptash is a jewel in the roughIptash is a jewel in the rough
По умолчанию Re: PIC32MK...

Пытаюсь освоить DMA. Пока не получается) Написал код для передачи по UART1.
Цитата:
void DMAinit(void)
{
IEC2bits.DMA0IE = 0; // отключаем прерывания DMA0
IFS2bits.DMA0IF = 0; // сбрасываем флаг прерывания

DMACONSET = 0x8000; // влючаем DMA
DCH0CON = 0x63;



DCH0ECONbits.CHSIRQ = 40; // Старт вектор прерывания UART1TX
DCH0ECONbits.SIRQEN = 1; // включить начало передачи
DCH0ECONbits.PATEN = 1;
DCH0DATbits.CHPDAT = 0;

DCH0SSAbits.CHSSA = KVA_TO_PA(&buff[0]); // адрес источника
DCH0DSAbits.CHDSA = KVA_TO_PA(&U1TXREG); // адрес приемника
DCH0SSIZbits.CHSSIZ = sizeof(buff); // размер источника
DCH0DSIZbits.CHDSIZ = 1; // размер приемника
DCH0CSIZbits.CHCSIZ = 1; // передача по 1 байту

DCH0INTCLR = 0xFF00FF; // очистка регистра прерываний
DCH0INTbits.CHSDIE = 1; // прерывание по завершению приемника ??



IPC18bits.DMA0IP = 4; // приоритет прерывания 4
IPC18bits.DMA0IS = 3; // суббприоритет 3
IEC2bits.DMA0IE = 1; // включаем прерывания DMA0

DCH0CONbits.CHAEN = 1; // включить канал
}
инициализация DMA.

Инициализация UART1 в обычном режиме передача нормально идет.
Цитата:
void UART1Init(void)
{
U1RXRbits.U1RXR = 0b0101; // Конфигурируем пин RPC6 как U1RX
RPC7Rbits.RPC7R = 0b0001; // Конфигурируем пин RPC7 как U1TX



U1BRG = 390; // Устанавливаем 9600 бод
U1STA = 0; // Очищаем регистр статуса

U1MODEbits.ON = 1; // Включить UART

U1STAbits.URXEN = 1; // Включить приемник
U1STAbits.UTXEN = 1; // Включить передатчик
IPC10bits.U1TXIP = 3;

IEC1CLR = 0x1C0;
IFS1bits.U1TXIF = 0;
IEC1bits.U1TXIE = 0;
}
Все ли я сделал? И еще. Какинициировать передачу DMA?. Пробовал флаг прерывания UART1 IFS1bits.U1TXIF = 1; устанавливать и вот так DCH0ECONbits.CFORCE = 1;
Iptash вне форума   Ответить с цитированием
Старый 17.06.2018, 23:29   #21
Марк
Senior Member
 
Аватар для Марк
 
Регистрация: 18.08.2007
Адрес: МО
Возраст: 58
Сообщений: 2,334
Вес репутации: 3037/94
Марк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond repute
По умолчанию Re: PIC32MK...

Если реквест у ДМА сам передатчик УАРТ, то следовало бы сгенерировать то, что вызовет этот реквест - ЗАВЕРШЕНИЕ ПЕРЕДАЧИ (пустой буфер). То есть надо первый байт послать РУЧКАМИ.

Последний раз редактировалось Марк; 17.06.2018 в 23:34.
Марк на форуме   Ответить с цитированием
Старый 17.06.2018, 23:40   #22
Iptash
Senior Member
 
Регистрация: 29.03.2008
Возраст: 52
Сообщений: 400
Вес репутации: 330/45
Iptash is a jewel in the roughIptash is a jewel in the roughIptash is a jewel in the roughIptash is a jewel in the rough
По умолчанию Re: PIC32MK...

Не понятно в INTERRUPT CONTROL REGISTER какое прерывание нужно установить CHSDIE: Channel Source Done Interrupt Enable bit или CHDDIE: Channel Destination Done Interrupt Enable bit. А просто инициировать установив флаг прерывания UART не получиться?
Iptash вне форума   Ответить с цитированием
Старый 17.06.2018, 23:47   #23
Марк
Senior Member
 
Аватар для Марк
 
Регистрация: 18.08.2007
Адрес: МО
Возраст: 58
Сообщений: 2,334
Вес репутации: 3037/94
Марк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond repute
По умолчанию Re: PIC32MK...

Я не слишком вникал в регистры конкретно PIC32, но реквест ДМА обычно не сам флаг, а СОБЫТИЕ, которое этот флаг устанавливает. Так что принудительная установка флага событием для реквеста не является.
ЗЫ. Вообще то делать реквестом к ДМА обслуживающем передатчик УАРТ сам этот передатчик не слишком куртуазно. Возьмите какой нибудь Output Compare или таймер. Тогда и зазоры между байтами будут вменяемые и не потребуется извращаться с первым байтом.
Марк на форуме   Ответить с цитированием
Старый 17.06.2018, 23:49   #24
Iptash
Senior Member
 
Регистрация: 29.03.2008
Возраст: 52
Сообщений: 400
Вес репутации: 330/45
Iptash is a jewel in the roughIptash is a jewel in the roughIptash is a jewel in the roughIptash is a jewel in the rough
По умолчанию Re: PIC32MK...

Спасибо. Надо попробовать.
Iptash вне форума   Ответить с цитированием
Старый 18.06.2018, 07:25   #25
HHIMERA
Senior Member
 
Регистрация: 10.06.2008
Возраст: 56
Сообщений: 2,821
Вес репутации: 3872/104
HHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond repute
По умолчанию Re: PIC32MK...

Цитата:
Сообщение от Марк Посмотреть сообщение
Вообще то делать реквестом к ДМА обслуживающем передатчик УАРТ сам этот передатчик не слишком куртуазно. Возьмите какой нибудь Output Compare или таймер. Тогда и зазоры между байтами будут вменяемые и не потребуется извращаться с первым байтом.
Ваще... не пиши чего не знаешь...
Реквест ЮАРТа это одно... а реквест таймера это другое...
И не нужен там первый байт "вручную"... ДМА сам разрулит... запустили ЮАРТ... запустили ДМА... получили непрерывный поток до последнего байта...
И не верю... что нет примеров по этому поводу...
__________________
"Я не даю готовых решений, я заставляю думать!"(С)
HHIMERA вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +3, время: 18:34.


Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd. Перевод: zCarot