Страница 105 из 628
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Вс июл 04, 2010 08:40:40
ooogo
Возникла проблема с захватом. Нужно замерить время до прихода первого импульса(примерно 20-25 мкс), сигнал с внешнего компаратора завожу на ICP1 (PD6, 20 ножка) МК ATMega16, использую 16 битный таймер 1, включаю прерывание по захвату(по спадающему фронту) и переполнению таймера, затем запускаю таймер и жду пока не произвойдет захват или переполнение. Происходит захват, но на "ровном месте", т.е. смотрю по осцилографу в этом месте нет даже намека на спадающий фронт, а захват происходит. PD6 сконфигурировал на вход без подтяжки, установил следующие биты:
Код: Выделить всё
TCCR1B=0b10000001; //подавление помех, захват по спадающему фронту, источкик зг
TIMSK=0b00100100; //прерывания захват и переполнение Т1
Что я не правильно сделал?
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Вс июл 04, 2010 08:56:49
Modest
ooogo писал(а):PD6 сконфигурировал на вход без подтяжки
Может в этом проблема?
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Вс июл 04, 2010 10:41:32
ValBag
ooogo
А от "родного" компаратора не может поступать сигнал захвата, бит ACIC обнулен?
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Вс июл 04, 2010 13:23:26
ooogo
родной компаратор отключен ACIC обнулен, код вижан постарался
Код: Выделить всё
// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Вс июл 04, 2010 13:25:50
ooogo
Modest писал(а):
Может в этом проблема?
как это может повлиять?
на выходе компаратора +5 В постоянно, пока не придут импульсы.

Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Вс июл 04, 2010 13:42:31
ValBag
Ну, тогда, очевидно, по "железу", где-то могут "иголки" от внешнего компаратора проскакивать. Чтобы удостовериться, попробуйте RC фильтром чуть сгладить.
Схема есть?
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Вс июл 04, 2010 14:35:13
ooogo
схему прикрепил, в качестве микрофона ультразвуковой датчик.
А если алгоритм для определения длительности импульса прикрутить?
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Вс июл 04, 2010 16:07:44
ValBag
ooogo, у вас импульсы с LM311 идут? В каком месте сигнала на ICP1 происходит захват?. В компаратор лучше бы ввести некоторый гистерезис, т. к. сигнал у вас с пъезо..., то возможны игольчатые импульсы, которые осциллографом не сразу обнаружишь, при том масштабе развертки в которой смотрите сигнал.
А вообще, такие вещи, лучше отладить подавая на вход регулярный известный сигнал, начиная со входа МК и далее к началу. Тогда будет ясно, в какой части схемы "заковыка".
А то, что сейчас происходит - да, можно попытаться определить длительность импульса захвата программным путем.
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Вс июл 04, 2010 20:08:26
ooogo
ValBag писал(а): у вас импульсы с LM311 идут?
да, смотрю осцилографом после компаратора, при включенном пиковом детекторе, при развертке 5 мкс.
В каком месте сигнала на ICP1 происходит захват?.
примерно через 1,2 мкс, после того как разрешаю прерывание.
В компаратор лучше бы ввести некоторый гистерезис, т. к. сигнал у вас с пъезо..., то возможны игольчатые импульсы, которые осциллографом не сразу обнаружишь, при том масштабе развертки в которой смотрите сигнал.
не вижу смысла в гистерезисе, мне нужно зафиксировать только первый импульс, а от игольчитых импульсов он не спасет, единственное может быть осцилографом только будут заметны
А вообще, такие вещи, лучше отладить подавая на вход регулярный известный сигнал, начиная со входа МК и далее к началу. Тогда будет ясно, в какой части схемы "заковыка".
наверное в железе, но не могу понять в какой части. для проверки PD6 сделал выходом и записывал в него ноль через определенную задержку, захват вроде работает нормально, длительность задержки определяет точно.
А то, что сейчас происходит - да, можно попытаться определить длительность импульса захвата программным путем.
можно по подробней, а то ни разу не сталкивался с таким вопросом.
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Пн июл 05, 2010 08:27:35
ValBag
ooogo, да, на выходе компаратора, вроде ничего лишнего нет. А что за импульс внизу, в начале? По его фронтам есть какие-то выбросы на входе около 50 mV. Написали бы подробнее во вложении задачу и что хотите получить, с расстановкой процессов по времени и способом возбуждения входа.
Попробуйте перед разрешением прерывания сбросить флаг запроса по захвату.
По измерению длительности напишу попозже.
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Пн июл 05, 2010 08:28:49
lirik
Ребят подскажите есть мега16 и 8MHZ кремний нужно запрограммировать 2 таймера, чтобы один обнулялся каждые 10мс а второй каждые 0.1 мс, какие нужно числа в регистры TCNT,TCCR и OCR1 загонять?
по той считалке что в обучалке чет не получается нужные числа высчитать...

Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Пн июл 05, 2010 09:59:10
AI_Disable
TCCR0=0x0A; //CTC, clkI/O/8
OCR0=100;
//(8*100)/8000000=0000,1c=0,1мс
TCCR1B=0x0B; //CTC, clkI/O/64
OCR1A=1250;
//(64*1250)/8000000=0,01c=10мс
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Пн июл 05, 2010 10:21:35
lirik
Спасибо большое))
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Пн июл 05, 2010 10:24:14
ooogo
ValBag писал(а): да, на выходе компаратора, вроде ничего лишнего нет. А что за импульс внизу, в начале?
это синхроимпульс для запуски развертки, он же возбуждающий импульс передатчика уз. Возбуждение происходит методом ударного импульса, т.е. стоит полевик в истоке которого стоит колебательный контур с уз датчиком.
По его фронтам есть какие-то выбросы на входе около 50 mV.
"звон" от возбуждающего контура, проникает в приемник через общий трансформатор питания.
Написали бы подробнее во вложении задачу и что хотите получить, с расстановкой процессов по времени и способом возбуждения входа.
хочу измерить время прхождения уз через образец.
1. устанавливаю единицу на затворе полевика(IRL640), возбуждающего контура и сразу запускаю таймер;
2. пауза 3 мкс обнуляю затвор полевика;
3. пауза 3 мкс, для того что бы не словить "звон";
4. разрешаю прерывание захвата;
5. жду пока не сработает захват или переполнение.
Попробуйте перед разрешением прерывания сбросить флаг запроса по захвату.
По измерению длительности напишу попозже.
флаг сбрасывать пробовал не помогает.
по поводу длительности, думаю соединить вход ICR1 INT0, захват по спаду, прерывание по передниму фронту, и во внешнем прерывании брать значение TCNT1L TCHT1H счетчика таймера и смотреть разнизу с захватом ICR1L ICR1H !?
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Пн июл 05, 2010 14:41:16
ValBag
ooogo писал(а):...по поводу длительности, думаю соединить вход ICR1 INT0, захват по спаду, прерывание по передниму фронту, и во внешнем прерывании брать значение TCNT1L TCHT1H счетчика таймера и смотреть разнизу с захватом ICR1L ICR1H !?
Может лучше попробовать так:
Код: Выделить всё
...
#define modTOP 0xFFFF // модуль счета Т1
unsigned char OverCount; // счетчик переполнения Т1
unsigned int TimeDN, TimeUP; // время спада и фронта импульса
unsigned int RezTime; // для широких импульсов long
...
// обработка переполнения
OverCount++;
...
// обработка захвата
if (~(PIND&0x40))
{
TimeDN=ICR1;
TCCR1B|=(1<<ICES1); // следующий захват по фронту
OverCount=0;
}
else
{
TimeUP=ICR1;
TCCR1B&=(~(1<<ICES1)); // следующий захват по спаду
RezTime=TimeUP - TimeDN + (OverCount * modTOP);
}
Ну а по поводу ложного срабатывания ...даже не знаю, что еще сказать. У вас задержка есть 6 мкс, чтобы убрать возможные последствия от "звона". Надеюсь, что правильно сбрасывали флаг запроса прерывания - записью в него логической еденицы. Может просаживается питание во время возбуждения или по земляной шине что-то "лезет", при достаточно больших токах в этот момент.
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Пн июл 05, 2010 17:56:18
xVekx
Народ как в режиме мастера принять данные по SPI интерфейсу ???. (atmega8)
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Пн июл 05, 2010 17:56:55
Chettuser
Народ! А где можно раскопать сводную таблицу по командам ассемблера под PIC24 (32)??? Я ассемблерщик, в Си - знаю только название

Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Пн июл 05, 2010 18:49:04
AI_Disable
xVekx писал(а):Народ как в режиме мастера принять данные по SPI интерфейсу ???. (atmega8)
Даташит -> вкладка "Serial Peripheral Interface – SPI" (страница 124 Rev.2486V) или читайте форум или дайте больше информации (режим SPI, программный/аппаратный).
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Пн июл 05, 2010 19:06:40
xVekx
AI_Disable писал(а):xVekx писал(а):Народ как в режиме мастера принять данные по SPI интерфейсу ???. (atmega8)
Даташит -> вкладка "Serial Peripheral Interface – SPI" (страница 124 Rev.2486V) или читайте форум или дайте больше информации (режим SPI, программный/аппаратный).
Есть ацп ADS1241 24-бит у него CLK является входным, передача МК(atmega8)->ацп более менее понятна.
Не могу разобраться как написать код под аппаратный SPI работающий на приём МК(atmega8)<-ацп.
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Пн июл 05, 2010 19:10:40
AI_Disable
SPI - дуплексный интерфейс. Вот вы знаете, как осуществить передачу, дак вот, приём точно так же. Просто, после того, как передача завершится, читайте содержимое регистра SPDR, там уже будут принятые данные.