Привет дорогие друзья. Подскажите как могу сделать 2-канальной генератор прямоуголньйх сигналов с изменяемьйе времена. Основная функция - через 3 потенциометра задать времена Т1, Т2, Т3 в указанньйе на фото границьй.
Тоест нужньйе 3 индивидуалньйе потенциометрьй для: Т1 - период между сигналов, одинаков для оба канала. Т3 - продолжительность сигнала, одинакова для оба канала. Т2 - процентное соотношение времени дефазирование каналов: от =Т3 до 50%*Т1. Для Т2 ето тонкий момент, потому чтоб нужно делить Т1 на процентьй в реальное время.
И если Т1 меняеться, нужно Т2 автоматически измениться според него. Допускаеться заступать конца первого сигнала с начала второго, как видно в первая половина графики.
Точность и шаги изменения не критические, можно взять значения с верхнего диапазона (самьйе бьйстрие).
Не важно за какой МК писан - PIC, Atmel или STM, но понятно чтоб у него нужно есть 3 АЦП входа для потенциометров. У меня есть все нужньйе програматорьй для них, а плата не проблем - могу сделать легко. Например: PIC16F54, 505, 526, 57, 18313, 1503, 18323, 18Fxxx или AtTiny 13, 24, 26, 44, 85, 2313, AtMega8, 48, 88 или любьй другой, кто вам нравиться. Про STM - есть 2 броя STM32F100C4T6. Нет Arduino. Все осталньое могу купить с Алиекспреса, но предпочтаю сделать плата сам, не хочу ждать 20 дней доставка.
Если возможно как опция - отображать на дисплей примерно LCD 2х16 времена Т1 в RPM (оборотьй /мин), а Т2 и Т3 в мс или мкс.
10ns если не ошибаюсь 100MHz, значит в микроконтроллере должна быть внутри такая частота (или выше) для тактирования таймера (если задачу на таймере делать). PIC Tiny AtMega получается отпадают. АЦП 10 бит это 1024 значения с потенциометра. АЦП 12 бит это 4096 значения с потенциометра. T3 10nS-1mS = 10nS - 1000000nS это 999990 значений с шагом 1nS. При 10 бит АЦП можно регулировать с дискретностью 999990/1024=976,552734375nS T1 0-2mS еще больше.
Заголовок сообщения: Re: Простой генератор прямоуголньйх импульсов
Добавлено: Сб ноя 18, 2017 23:47:02
Открыл глаза
Карма: 6
Рейтинг сообщений: 14
Зарегистрирован: Вс май 23, 2010 11:54:59 Сообщений: 69 Откуда: Москва
Рейтинг сообщения:0
Altium, если вы замените 10ns на более вменяемую величину, то реализовать будет значительно проще. Тем более дискретность АЦП (4096 отчетов для 12 битного) не позволит регулировать времянки с таким шагом. Определитесь с минимальной дискретой по времени. Так ли вам нужно 10ns? Я решал задачу с формированием сложной последовательности импульсов с дискретностью перестройки длительностей и фаз между ними 50нс на микроконтроллере STM32F103. Задавались временные параметры импульсов по CAN интерфейсу, то есть не стояло проблемы дискретности АЦП. Реализовать получилось при помощи каскадного включения таймеров. Чуть разогнав контроллер можно было выжать и 25нс... А делать 10 нс... Либо контролер с большими частотами, либо FPGA. Ну или на аналоге сообразить. Задача тяжело мне далась, но в итоге вылилась буквально в несколько строчек кода. Для лучшего понимания процесса можно посмотреть аппликейшн от ST en.DM00236305.pdf AN4776 Application note General-purpose timer cookbook. Но для не программиста задача ИМХО не подъемная. А альтруиста готового её решить найти будет сложно.
Инженеры КОМПЭЛ провели сравнительное тестирование аккумуляторов EVE и Samsung популярного для бытовых и индустриальных применений типоразмера 18650.
Для теста были выбраны аккумуляторы литий-никельмарганцевой системы: по два образца одного наименования каждого производителя – и протестированы на двух значениях тока разряда: 0,5 А и 2,5 А. Испытания проводились в нормальных условиях на электронной нагрузке EBD-USB от ZKEtech, а зарядка осуществлялась от лабораторного источника питания в режиме CC+CV в соответствии с рекомендациями в даташите на определенную модель.
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
Примерно... Жирненький АВР (или МК с аналогичной/подобной конфигурацией таймеров "пошустрее") Т0 - базовый период Т1 - первый участок по одному компаратору, второй участок по второму, общий период по ICP - третий участок как разница между общим периодом и суммарным временем обеих компараторов... Однако там плавность перестройки определяется частотой тактирования (в разумных пределах).
Заголовок сообщения: Re: Простой генератор прямоуголньйх импульсов
Добавлено: Вс ноя 19, 2017 10:44:35
Модератор
Карма: 90
Рейтинг сообщений: 1289
Зарегистрирован: Чт мар 18, 2010 23:09:57 Сообщений: 4510 Откуда: Планета Земля
Рейтинг сообщения:0 Медали: 1
ТС не сказал самого главного - какая необходима точность измеренных временных интервалов, и какова приемлемая дискретность изменения этих интервалов. А то, к примеру, он хочет один из периодов - от нуля до ... А что в его понятии ноль ? Идеальная одновременность, или может и 10, 20, а может и 100 us будет вполне приемлемо. Так же и с изменением, например, периода - от 100 us до 1000 us. А каков шаг изменения ? Может нужен не более 1 us, а может и 100 us будет достаточно.
Да, пропустил сказать про шаг изменения Т1 - примерно с 2мс. Точность и шаг дефазирования каналов Т2 - вообще не критично, можно с 200мкс и вьйше. В принципе, дефазирование каналов всегда нужно. Шаг изменения Т3 - примерно 200мкс. Все они не критические,.
И если есть возможность отобразить на дисплей время Т1 в RPM (оборотьй за минуту) и Т2 и Т3 в мкс, то будет супер.
Заголовок сообщения: Re: Простой генератор прямоуголньйх импульсов
Добавлено: Вс ноя 19, 2017 11:53:12
Модератор
Карма: 90
Рейтинг сообщений: 1289
Зарегистрирован: Чт мар 18, 2010 23:09:57 Сообщений: 4510 Откуда: Планета Земля
Рейтинг сообщения:0 Медали: 1
Вам бы в раздел "Работа" обратиться, там быстрее откликнутся. Не думаю, что такой проект будет дорого стоить. Всё это делается элементарно на любом МК с парой-тройкой таймеров на борту.
если все не критично может подойдет на тупых задержках - по быстрому на тини13 (асм подзабыл, на АБ еще помнится ) теперь так: в протеусе все задается 3 потенциометрами: суперпрограмма : hex:
Привет Олег и спасибо за своевременная реакция. Я в первьй пост в последний раз поменял на рисунок время за изменения Т2. Передумал и оказалось нуль (польное совпадение) не нужна. Можно начинать дефазирование с 200мкс и вьйше.
А через потенциометрьй нужно менять Т1, Т2, Т3 точно как по моей схеме, у вас получаеться другой принцип регулирования.
T2 можно посчитать с помощью пропорции из школьной программы, T3 можно пренебречь (+-1 mS роли не сыграет): Если T1 это АЦП1, X искомое T2: (АЦП1 / 2) ~ 1024 X ~ АЦП2 ---------- X = ((АЦП1 / 2) * АЦП2) / 1024 = (АЦП1 * АЦП2) / 2048 умножение и деление на ассемблере 16 бит чисел я забыл может кто возьмется...
Сейчас этот форум просматривают: BOB51 и гости: 10
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения