Мелкие вопросы по МК и ПЛИС.

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Аватара пользователя
ooogo
Это не хвост, это антенна
Сообщения: 1306
Зарегистрирован: Вс янв 18, 2009 20:51:02

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение ooogo »

Возникла проблема с захватом. Нужно замерить время до прихода первого импульса(примерно 20-25 мкс), сигнал с внешнего компаратора завожу на ICP1 (PD6, 20 ножка) МК ATMega16, использую 16 битный таймер 1, включаю прерывание по захвату(по спадающему фронту) и переполнению таймера, затем запускаю таймер и жду пока не произвойдет захват или переполнение. Происходит захват, но на "ровном месте", т.е. смотрю по осцилографу в этом месте нет даже намека на спадающий фронт, а захват происходит. PD6 сконфигурировал на вход без подтяжки, установил следующие биты:

Код: Выделить всё

TCCR1B=0b10000001; //подавление помех, захват по спадающему фронту, источкик зг
TIMSK=0b00100100; //прерывания захват и переполнение Т1

Что я не правильно сделал?
Аватара пользователя
Modest
Сверлит текстолит когтями
Сообщения: 1138
Зарегистрирован: Сб апр 03, 2010 08:57:35

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Modest »

ooogo писал(а):PD6 сконфигурировал на вход без подтяжки

Может в этом проблема?
[img]http://i053.radikal.ru/1102/71/0a0346d3a067.gif[/img]
[size=85]Ты думаешь ты думал как ты думаешь? (с)[/size]
Аватара пользователя
ValBag
Потрогал лапой паяльник
Сообщения: 326
Зарегистрирован: Сб сен 06, 2008 12:56:13

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение ValBag »

ooogo
А от "родного" компаратора не может поступать сигнал захвата, бит ACIC обнулен?
Аватара пользователя
ooogo
Это не хвост, это антенна
Сообщения: 1306
Зарегистрирован: Вс янв 18, 2009 20:51:02

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение ooogo »

родной компаратор отключен ACIC обнулен, код вижан постарался

Код: Выделить всё

// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;
Аватара пользователя
ooogo
Это не хвост, это антенна
Сообщения: 1306
Зарегистрирован: Вс янв 18, 2009 20:51:02

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение ooogo »

Modest писал(а):Может в этом проблема?

как это может повлиять?
на выходе компаратора +5 В постоянно, пока не придут импульсы. :?
Аватара пользователя
ValBag
Потрогал лапой паяльник
Сообщения: 326
Зарегистрирован: Сб сен 06, 2008 12:56:13

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение ValBag »

Ну, тогда, очевидно, по "железу", где-то могут "иголки" от внешнего компаратора проскакивать. Чтобы удостовериться, попробуйте RC фильтром чуть сгладить.
Схема есть?
Аватара пользователя
ooogo
Это не хвост, это антенна
Сообщения: 1306
Зарегистрирован: Вс янв 18, 2009 20:51:02

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение ooogo »

схему прикрепил, в качестве микрофона ультразвуковой датчик.
А если алгоритм для определения длительности импульса прикрутить?
Вложения
Приёмник ультразвука4.rar
схема
(4.58 КБ) 151 скачивание
Аватара пользователя
ValBag
Потрогал лапой паяльник
Сообщения: 326
Зарегистрирован: Сб сен 06, 2008 12:56:13

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение ValBag »

ooogo, у вас импульсы с LM311 идут? В каком месте сигнала на ICP1 происходит захват?. В компаратор лучше бы ввести некоторый гистерезис, т. к. сигнал у вас с пъезо..., то возможны игольчатые импульсы, которые осциллографом не сразу обнаружишь, при том масштабе развертки в которой смотрите сигнал.
А вообще, такие вещи, лучше отладить подавая на вход регулярный известный сигнал, начиная со входа МК и далее к началу. Тогда будет ясно, в какой части схемы "заковыка".
А то, что сейчас происходит - да, можно попытаться определить длительность импульса захвата программным путем.
Аватара пользователя
ooogo
Это не хвост, это антенна
Сообщения: 1306
Зарегистрирован: Вс янв 18, 2009 20:51:02

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение ooogo »

ValBag писал(а): у вас импульсы с LM311 идут?

да, смотрю осцилографом после компаратора, при включенном пиковом детекторе, при развертке 5 мкс.
В каком месте сигнала на ICP1 происходит захват?.

примерно через 1,2 мкс, после того как разрешаю прерывание.
В компаратор лучше бы ввести некоторый гистерезис, т. к. сигнал у вас с пъезо..., то возможны игольчатые импульсы, которые осциллографом не сразу обнаружишь, при том масштабе развертки в которой смотрите сигнал.

не вижу смысла в гистерезисе, мне нужно зафиксировать только первый импульс, а от игольчитых импульсов он не спасет, единственное может быть осцилографом только будут заметны
А вообще, такие вещи, лучше отладить подавая на вход регулярный известный сигнал, начиная со входа МК и далее к началу. Тогда будет ясно, в какой части схемы "заковыка".

наверное в железе, но не могу понять в какой части. для проверки PD6 сделал выходом и записывал в него ноль через определенную задержку, захват вроде работает нормально, длительность задержки определяет точно.
А то, что сейчас происходит - да, можно попытаться определить длительность импульса захвата программным путем.

можно по подробней, а то ни разу не сталкивался с таким вопросом.
Вложения
3.07.rar
осцилограммы
(68.2 КБ) 140 скачиваний
Аватара пользователя
ValBag
Потрогал лапой паяльник
Сообщения: 326
Зарегистрирован: Сб сен 06, 2008 12:56:13

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение ValBag »

ooogo, да, на выходе компаратора, вроде ничего лишнего нет. А что за импульс внизу, в начале? По его фронтам есть какие-то выбросы на входе около 50 mV. Написали бы подробнее во вложении задачу и что хотите получить, с расстановкой процессов по времени и способом возбуждения входа.
Попробуйте перед разрешением прерывания сбросить флаг запроса по захвату.
По измерению длительности напишу попозже.
lirik
Открыл глаза
Сообщения: 43
Зарегистрирован: Ср мар 17, 2010 23:27:58

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение lirik »

Ребят подскажите есть мега16 и 8MHZ кремний нужно запрограммировать 2 таймера, чтобы один обнулялся каждые 10мс а второй каждые 0.1 мс, какие нужно числа в регистры TCNT,TCCR и OCR1 загонять?
по той считалке что в обучалке чет не получается нужные числа высчитать... :?
Аватара пользователя
AI_Disable
Сверлит текстолит когтями
Сообщения: 1116
Зарегистрирован: Чт окт 15, 2009 14:16:18
Откуда: Екб
Контактная информация:

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение 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мс
lirik
Открыл глаза
Сообщения: 43
Зарегистрирован: Ср мар 17, 2010 23:27:58

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение lirik »

Спасибо большое))
Аватара пользователя
ooogo
Это не хвост, это антенна
Сообщения: 1306
Зарегистрирован: Вс янв 18, 2009 20:51:02

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение ooogo »

ValBag писал(а): да, на выходе компаратора, вроде ничего лишнего нет. А что за импульс внизу, в начале?

это синхроимпульс для запуски развертки, он же возбуждающий импульс передатчика уз. Возбуждение происходит методом ударного импульса, т.е. стоит полевик в истоке которого стоит колебательный контур с уз датчиком.
По его фронтам есть какие-то выбросы на входе около 50 mV.

"звон" от возбуждающего контура, проникает в приемник через общий трансформатор питания.
Написали бы подробнее во вложении задачу и что хотите получить, с расстановкой процессов по времени и способом возбуждения входа.

хочу измерить время прхождения уз через образец.
1. устанавливаю единицу на затворе полевика(IRL640), возбуждающего контура и сразу запускаю таймер;
2. пауза 3 мкс обнуляю затвор полевика;
3. пауза 3 мкс, для того что бы не словить "звон";
4. разрешаю прерывание захвата;
5. жду пока не сработает захват или переполнение.
Попробуйте перед разрешением прерывания сбросить флаг запроса по захвату.
По измерению длительности напишу попозже.

флаг сбрасывать пробовал не помогает.
по поводу длительности, думаю соединить вход ICR1 INT0, захват по спаду, прерывание по передниму фронту, и во внешнем прерывании брать значение TCNT1L TCHT1H счетчика таймера и смотреть разнизу с захватом ICR1L ICR1H !?
Аватара пользователя
ValBag
Потрогал лапой паяльник
Сообщения: 326
Зарегистрирован: Сб сен 06, 2008 12:56:13

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение 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 мкс, чтобы убрать возможные последствия от "звона". Надеюсь, что правильно сбрасывали флаг запроса прерывания - записью в него логической еденицы. Может просаживается питание во время возбуждения или по земляной шине что-то "лезет", при достаточно больших токах в этот момент.
Последний раз редактировалось ValBag Пн июл 05, 2010 19:01:53, всего редактировалось 1 раз.
xVekx
Встал на лапы
Сообщения: 125
Зарегистрирован: Вс мар 01, 2009 20:41:19

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение xVekx »

Народ как в режиме мастера принять данные по SPI интерфейсу ???. (atmega8)
Последний раз редактировалось xVekx Пн июл 05, 2010 17:57:12, всего редактировалось 1 раз.
Chettuser

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Chettuser »

Народ! А где можно раскопать сводную таблицу по командам ассемблера под PIC24 (32)??? Я ассемблерщик, в Си - знаю только название :))
Аватара пользователя
AI_Disable
Сверлит текстолит когтями
Сообщения: 1116
Зарегистрирован: Чт окт 15, 2009 14:16:18
Откуда: Екб
Контактная информация:

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение AI_Disable »

xVekx писал(а):Народ как в режиме мастера принять данные по SPI интерфейсу ???. (atmega8)

Даташит -> вкладка "Serial Peripheral Interface – SPI" (страница 124 Rev.2486V) или читайте форум или дайте больше информации (режим SPI, программный/аппаратный).
xVekx
Встал на лапы
Сообщения: 125
Зарегистрирован: Вс мар 01, 2009 20:41:19

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение xVekx »

AI_Disable писал(а):
xVekx писал(а):Народ как в режиме мастера принять данные по SPI интерфейсу ???. (atmega8)

Даташит -> вкладка "Serial Peripheral Interface – SPI" (страница 124 Rev.2486V) или читайте форум или дайте больше информации (режим SPI, программный/аппаратный).


Есть ацп ADS1241 24-бит у него CLK является входным, передача МК(atmega8)->ацп более менее понятна.
Не могу разобраться как написать код под аппаратный SPI работающий на приём МК(atmega8)<-ацп.
Аватара пользователя
AI_Disable
Сверлит текстолит когтями
Сообщения: 1116
Зарегистрирован: Чт окт 15, 2009 14:16:18
Откуда: Екб
Контактная информация:

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение AI_Disable »

SPI - дуплексный интерфейс. Вот вы знаете, как осуществить передачу, дак вот, приём точно так же. Просто, после того, как передача завершится, читайте содержимое регистра SPDR, там уже будут принятые данные.
Ответить

Вернуться в «Разные вопросы по МК»