Jump to content
stanlick

Детектор Модуляции Низкой Частоты. Помогите Собрать, Чтобы Просто.

Recommended Posts

Всем привет. Уважаемые друзья, помогите со схемой, бился тут в одной курилке в дискусиях и понял что вопросов решения моей идеи много, но ни один до ума не довел. Попробую описать техническое задание:

1. На входе "устройства" имеем сигнал VSP который состоит из положительных импульсов аплитудой 5в одинаковой длительности и скважности 50% (вроде так), сигнал приходит от датчика холла автомобиля (датчик скорости), расчетная частота повторения импульсов от 0 (остановка) до 1500 Гц (200км/ч). Сигнал датчика нагружать нельзя, чтобы мозги авто и спидометр работали правильно.

2. На выходе "устройства" роль ключа выполняет простое "нормально замкнутое реле".

3. Ключ должен размыкаться (лог 1 на выходе "устройства") при частоте импульсов VSP менее 150 Гц (+-50 регулируется настройкой).

4. Ключ должен замыкаться (лог 0 на выходе "устройства") при частоте импульсов VSP более 150 Гц (+-50 регулируется настройкой).

Вроде как все описал. если что то добавлю, спрашивайте.

Пробовали подсунуть ФНЧ 8 порядка, потом компаратор - запутались.

Пробовали собрать частотный компаратор с генератором - запутались.

Еще что-то пробовали, но пришли к выводу, что я это не спаяю.

Нашли гоовую схему электронного экономайзера, но там 9в для импульсов надо и частоты в десяток раз выше.

Короче вот такие мы инженера, ПОМОГАЙТЕ.

П.С.: Я почему-то уверен, что это все можно собрать на спичечном коробке на паре логических элементах и стабилизаторе.

post-194574-0-80579400-1444379667_thumb.jpg

Share this post


Link to post
Share on other sites

Тут контролер-частотометр нужен.

Зачем? Есть такая микросхема - преобразователь частота-напряжение , а на выход компаратор (точнее два, чтобы гистерезис организовать).

Edited by Эсер

Share this post


Link to post
Share on other sites

Литиевые батарейки Fanso для систем телеметрии и дистанционного контроля

Системы телеметрии находят все более широкое применение во многих отраслях на промышленных и коммунальных объектах. Требования, предъявляемые к условиям эксплуатации приборов телеметрии и, как следствие, источников питания для них, могут быть довольно жесткими. Fanso предоставляет широкую линейку продукции, рассчитанной на различные условия эксплуатации, что позволяет подобрать батарейку для каждого конкретного применения, в том числе и для устройств телеметрии.

Подробнее

Зачем? Преобразователь частота-напряжение и компаратор.

ЗЫ опередили...

Share this post


Link to post
Share on other sites

А еще можно использовать одну из схем ЭПХХ и модифицировать под свои нужды.

Share this post


Link to post
Share on other sites
                     

Приглашаем на вебинар Решения для построения ультразвуковых счетчиков жидкостей и газов на базе MSP430

Компэл совместно с Texas Instruments 23 октября 2019 приглашают на вебинар, посвященный системам-на-кристалле для построения ультразвуковых расходомеров жидкостей и газов на базе ядра MSP430. Вебинар проводит Йоханн Ципперер – эксперт по ультразвуковым технологиям, непосредственно участвовавший в создании данного решения. На вебинаре компания Texas Instruments представит однокристальное решение, позволяющее создавать точные недорогие счетчики жидкостей и газов.

Подробнее...

П.С.: Я почему-то уверен, что это все можно собрать на спичечном коробке на паре логических элементах и стабилизаторе.

Про стабилизатор не ошиблись , очень микросхемка любит стаб питание 5 вольт желательно.

Её выпускают уже давно , LM - KA - NE - SE567 микросхема тонального декодера.

post-151360-0-89318900-1444385351_thumb.jpg

Edited by ПРАЙМЕР

Share this post


Link to post
Share on other sites

stanlick

Одна микросхема "Искл. ИЛИ" + немного R,C.

(частотный детектор и компаратор)

Edited by Jeer

Share this post


Link to post
Share on other sites

Её выпускают уже давно , LM567 микросхема тонального декодера.

Не совсем то, или даже совсем не то. Если её использовать , то реле будет срабатывать только на заданной частоте (150 Гц , к примеру)

А автору требуется

3. Ключ должен размыкаться (лог 1 на выходе "устройства") при частоте импульсов VSP менее 150 Гц (+-50 регулируется настройкой).

4. Ключ должен замыкаться (лог 0 на выходе "устройства") при частоте импульсов VSP более 150 Гц (+-50 регулируется настройкой).

Share this post


Link to post
Share on other sites

это основа , дальше пусть думает сам , они обьединяются , гаражные ворота на них делали лет 12 - 13 тому назад до сих пор работают.

даташиты в помощь главное не ленится и собрать по ней данные.

SE567 tone dec.pdf

Edited by ПРАЙМЕР

Share this post


Link to post
Share on other sites

Еще мне такое предложили ...

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

post-194574-0-56126300-1444400377_thumb.jpg

Share this post


Link to post
Share on other sites

точность нужна как громкость у магнитафонах... 100 гц на шкалу переменного резистора без цифровой привязки и не обязательно линейно.

между порогами не должно быть ничего - на выходе либо 0 либо 1

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

Share this post


Link to post
Share on other sites

Еще мне такое предложили ...

Почему бы и нет, если получится на ней понизить частоту срабатывания. Но непонятно как это сделать - описание отсутствует. Разве что понизить частоту кварца или использовать внешний задающий генератор. Микросхема специализированная, для ЭПХХ карбюраторных авто..

Посмотри другие схемы ЭПХХ , их в инете много.

И посмотри еще эту статью http://www.rtcimpex.ru/index.php/stati/14-integralnyj-preobrazovatel-napryazhenie-chastota-napryazhenie-kr1108pp1-i-ego-primenenie

Edited by Эсер

Share this post


Link to post
Share on other sites

Это готовый блок, который можно купить в автомагазинах, но он настроен на частоту 2100Гц - вкл схемы, 1900Гц - выключение её.

Если в момент закрытия первой дроссельной заслонки (нажата кнопка SNOW) частота вращения была выше 2100 об/мин, то блок управления отключит клапан, и включит его, когда частота вращения коленчатого вала снизится до 1900 об/мин или при нажатии на педаль «газа» (отключения кнопки в нашем случае).

Какими элементами на схеме мне снизить частоту под мои условия? и куда воткнуть регулировочку? СПАСИБО.

___

Рис. 5.85. Принципиальная схема блока управления 5003.3761 - ТУ 37.459.063-84 на микросхемах К554 серии и его модификаций

post-194574-0-10417300-1444455068_thumb.jpg

Share this post


Link to post
Share on other sites

74HC4046A

Расчитываем обвес ГУНа в микросхеме так, чтобы резистором регулировать частоту в пределах необходимого диапазона изменения порога по частоте.

Подаем на вход фазового детектора микросхемы входной сигнал и сигнал ГУН. Снимаем сигнал со 2-го фазового детектора микросхемы (РС2) и на внешнем пассивном RC фильтре интегрируем. Этот сигнал и будет искомым.

Второй ФД в этой микросхеме является частотно-фазовым детектором с раскрывом лискриминационной характеристики от -360 до +360 градусов.

Другой вариант можно сделать на восьми- или шестиногом МК.

Тупо захватываем период входного сигнала и сравниваем с уставкой, которая регулируется потенциометром с питания на землю и движком на входе АЦП контроллера.

Последний вариант (с МК) будет самый компактный с не требующей никакого гимора с обвесом реализацией.

Алгоритм совершенно примитивный с пустым while(1). Все будет в прерываниях.

Edited by my504

Share this post


Link to post
Share on other sites

Хотя тут кажется проще КР1086СС1 только я вот это никак не пойму (fвкл=38,1 Гц, fоткл=49,7 Гц).

74HC4046A ... Все будет в прерываниях.

Извини конечно ... но похоже я ничего не понял (вот такой я инженер - хренов) (возьми это, убери это и добавь это, красный на +, синий на минус, белый перереж ...

post-194574-0-29645100-1444457533_thumb.jpg

post-194574-0-98955400-1444457533_thumb.png

Share this post


Link to post
Share on other sites

74HC4046A ... Все будет в прерываниях.

Извини конечно ... но похоже я ничего не понял (вот такой я инженер - хренов) (возьми это, убери это и добавь это, красный на +, синий на минус, белый перереж ...

Для того, чтобы понять сказанное, нужно, как минимум, скачать и бегло пробежать глазами даташит на эту микросхему.

На словах предварительно объясню.

Эта микросхема представляет из себя ядро ФАПЧ (PLL) и содержит ГУН (генератор управляемый напряжением) и три вида фазовых детекторов с различными раскрывами дискриминационной характеристики. Из них Вам нужен только 2-й потому что он единственный из всех является частотно-фазовым.

Для вашего случая замыкать петлю ФАПЧ не нужно. Достаточно подать на входы ФД (их два входа) исследуемый сигнал и сигнал с ГУНа.

Управление ГУНом делаем на внешнем потенциометре (это установка пороговой частоты).

Выходной сигнал 2-го ФД до внешнего ФНЧ-интегратора будет представлять из себя импульсы подключения либо к питанию, либо к земле. При когерентном совпадении сигналов ГУНа и входа с точностью до нулевой фазы выход этого ФД переходит в 3-ье состояние (отключен).

На практике на выходе ФНЧ-интегратора мы получим обычный переход из 0 в 1 при проходе частоты на входе через значение частоты ГУНа.

ЗЫ. Микросхема копеешная и есть практически у всех продавцов подобной элементной базы.

Edited by my504

Share this post


Link to post
Share on other sites

Датчик скорости херачит 50 имп/метр для скорости 25км/ч (порог) это 7 м/сек * 50 = 350 Гц ... добавим гестерезис +-5км/ч = 300-400 Гц

___

Режим программирования частот: 33,5 - 71,3 Гц для КР11086СС1 в БУ ЭПХХ

делитель на 8 надо...

____

Особый интерес представляет микросхема серии ТТЛ – К155ИЕ2. Состоит она из двух блоков — делителя на 2 (вход С1) и делителя на 5. При соединении выхода первого делителя с входом второго, легко получить делитель. Еще один полезный узел микросхемы — 2 входа сброса, соединенных по «И» (выводы 2,3). Благодаря этому узлу и выводов выхода с каждого тригера счетчика (выводы 12,9,8,11) несложно собрать делитель с числом от 2 до 10 без использования дополнительных элементов. Для примера на рис. 6в – делитель на 8.

развязка нужна между делителем и сигналом с датчика? и какая?

post-194574-0-64908900-1444465521.gif

Share this post


Link to post
Share on other sites

Последний вариант (с МК) будет самый компактный с не требующей никакого гимора с обвесом реализацией.

Алгоритм совершенно примитивный с пустым while(1). Все будет в прерываниях.

как-то так, может сгодится....

PIC12F675_ADC.rar

Share this post


Link to post
Share on other sites

proba вы пункты 3,4 пост1 читали? ТСу нужно частотное реле с гистерезисом ... что бы при скажем 140Гц включилось и при 160Гц выключилось....

Share this post


Link to post
Share on other sites

proba вы пункты 3,4 пост1 читали? ТСу нужно частотное реле с гистерезисом ... что бы при скажем 140Гц включилось и при 160Гц выключилось....

Разве? А не наоборот? Включилось при превышении 160 , а выключилось при уменьшении меньше 140 .

Share this post


Link to post
Share on other sites

нет не наоборот... там четко прописано меньше = лог1 , а как там контакты реле задействованы для алгоритма до лампочки...

Share this post


Link to post
Share on other sites

А не случится ли так, что данный прошитый микроконтроллер после пары взаимодействий с -43 и осенне весенней влажностью сойдет с ума !?!?

Share this post


Link to post
Share on other sites

Join the conversation

You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Similar Content

    • By Павел Лопатин
      Добрый день!
      Подскажите, пожалуйста, можно ли вынести переменный резистор 16K1-B10K, L20KC, 10 кОм с ШИМ регулятора на отдельную плату? 
      Какие провода лучше использовать? На какое расстояние можно вынести (длина провода) и изменятся ли от этого характеристики? (все-таки, как я понимаю, появится дополнительное сопротивление от провода)
      ШИМ покупной в RDC2-0024 - фото и схема в аттаче
      DOC002726141.pdf
    • By Kukush
      Здравствуйте. Пишу диплом, работаю со схемой мостового параллельного преобразователя. Есть готовый контроллер для него, который реализует фазо-импульсную модуляцию. Сейчас дошла до выбора драйверов для каждого полумоста и возникла проблема - в даташитах в типовых схемах включения везде показывают ШИМ контроллеры на входе драйверов. И вот вопрос - есть ли специальные драйвера, которые работают с ФИМ или можно использовать те же самые, что и для ШИМ?
    • By Kirillius Labutin
      Добрый день!
      Имеется готовый лазерный модуль с драйвером (стабилизатор тока и, наверное, напряжения). 
      Хочу регулировать яркость лазера с помощью ШИМ с МК, гугл сказал что лучший вариант - шунтирование лазера. Но драйвер устроен таким образом, что в нём с питанием напрямую не связан ни "+" ни земля лазера. Набросал такую схемку, чтобы реализовать это через оптопару.

      Внимание, вопрос)
      1. Заработает ли такая схема?
      2. Какой посоветуете транзистор Q1 и оптопару? Макс. напряжение в цепи - 5В, ток - 0.5А Я думаю что-нибудь вроде IRLL014TRPBF
      3. Какой выбрать номинал резистора R1 для разряда Q1? Частота ШИМ планируется в районе 1кгц.
    • By SigmA
      Доброго времени суток всем. Для своей новой жены захотелось мне сделать сердечко на atmega8, с кучей эффектов и т.д. Так вот, разные мигалки-переключалки св-диодов я написал, использовал delay. Но мне этого стало мало и я решил подключить шим программный. Отдельно от всей программы шим работает как нужно, так же и переключалки работают отдельно от шим, но вот когда я соединяю это всё воедино то работает только шим и не переходит дальше по коду.Я так понимаю, что таймеры и delay вместе работать не могут? Но если могут, то как?
      #include <mega8.h> #include <delay.h> #define GREEN PORTC.1=PORTC.2=PORTC.3=PORTC.0 unsigned char i, s,; unsigned char green=255; unsigned char green_b; //переменные, для буферизации значений скважности ШИМ unsigned char count; //переменная- счетчик вызовов обработчика прерываний unsigned char temp=1; interrupt [TIM0_OVF] void timer0_ovf_isr(void) { count++; if (count == 0){ //если счетчик переполнился и принял значение 0 green_b = green; GREEN = 1; } if (green_b == count) { GREEN = 0;} } void main(void) { PORTC=0x0F; //конфигурируем порт DDRC=0x0F; TCCR0=0x01; //настраиваем таймер TCNT0=0x00; TIMSK=0x01; //разрешаем генерацию прерывания по переполнению таймера T0 #asm("sei") //глобально разрешаем прерывания while (1) { for (i=0;i<3;i++) { if (temp==1) {if (green < 255) green += 1; else temp = 2;} if (temp==2) {if (green > 0) green -= 1; else temp = 1;} delay_ms(1000); }; s=7; for (i=0;i<=s;i++) { PORTC.0=1; delay_ms(200); PORTC.0=0; PORTC.1=1; delay_ms(200); PORTC.1=0; PORTC.2=1; delay_ms(200); PORTC.2=0; PORTC.3=1; delay_ms(200); PORTC.3=0; } for (i=0;i<=s;i++) { PORTC.3=1; delay_ms(200); PORTC.3=0; PORTC.2=1; delay_ms(200); PORTC.2=0; PORTC.1=1; delay_ms(200); PORTC.1=0; PORTC.0=1; delay_ms(200); PORTC.0=0; } for (i=0;i<=s;i++) { PORTC.3=1; delay_ms(200); PORTC.2=1; delay_ms(200); ; PORTC.1=1; delay_ms(200); PORTC.0=1; delay_ms(200); PORTC.3=0; delay_ms(200); PORTC.2=0; delay_ms(200); PORTC.1=0; delay_ms(200); PORTC.0=0; delay_ms(200); } for (i=0;i<=s;i++) { PORTC.0=1; delay_ms(200); PORTC.1=1; delay_ms(200); ; PORTC.2=1; delay_ms(200); PORTC.3=1; delay_ms(200); PORTC.0=0; delay_ms(200); PORTC.1=0; delay_ms(200); PORTC.2=0; delay_ms(200); PORTC.3=0; delay_ms(200); } for (i=0;i<=s;i++) { PORTC=0x01; delay_ms(200); PORTC=0x02; delay_ms(200); PORTC=0x04; delay_ms(200); PORTC=0x08; delay_ms(200); PORTC=0x09; delay_ms(200); PORTC=0x0A; delay_ms(200); PORTC=0x0C; delay_ms(200); PORTC=0x0D; delay_ms(200); PORTC=0x0E; delay_ms(200); PORTC=0x0F; delay_ms(200); PORTC=0x07; delay_ms(150); PORTC=0x0B; delay_ms(200); PORTC=0x03; delay_ms(250); PORTC=0x05; delay_ms(300); PORTC=0x09; delay_ms(350); PORTC=0x01; delay_ms(400); PORTC=0x02; delay_ms(200); PORTC=0x04; delay_ms(200); PORTC=0x08; delay_ms(200); PORTC=0x00; delay_ms(200); } for (i=0;i<=5;i++) { PORTC=0x0f; delay_ms(100); PORTC=0x00; delay_ms(100); PORTC=0x0f; delay_ms(100); PORTC=0x00; delay_ms(100); PORTC=0x0f; delay_ms(100); PORTC=0x00; delay_ms(150); PORTC=0x0f; delay_ms(300); PORTC=0x00; delay_ms(100); PORTC=0x0f; delay_ms(300); PORTC=0x00; delay_ms(100); PORTC=0x0f; delay_ms(300); PORTC=0x00; delay_ms(150); PORTC=0x0f; delay_ms(100); PORTC=0x00; delay_ms(100); PORTC=0x0f; delay_ms(100); PORTC=0x00; delay_ms(100); PORTC=0x0f; delay_ms(100); PORTC=0x00; delay_ms(1000); } } }  
    • By mr_smit
      Вынес то что не получается в упрощенной форме в отдельный проект. Среда разработки CooCox 1.7.8, микроконтроллер STM32F103C8T6.
      Нужно раз в ~100 мсек формировать на ножке МК, например,такую последовательность:

      Стартовую длительность формирует таймер, в первом же своем прерывании по совпадению активирует DMA и дальше уже DMA по запросу таймера загружает значение CCR из массива. Что то похожее на управление светодиодами WS2812B. То что я сочинил выдает на пин:

      Но только один раз при первом вызове. При последующих вызовах данные из массива выдаются без первоначальной длительности в 150 мкс.
      Не могу найти ошибку. 
       
      #include <stm32f10x.h> #include <stm32f10x_conf.h> #include <stm32f10x_gpio.h> #include <stm32f10x_rcc.h> #include <stm32f10x_tim.h> #include <stm32f10x_dma.h> GPIO_InitTypeDef PIN; TIM_TimeBaseInitTypeDef TIM_Config; TIM_OCInitTypeDef TIM_OCConfig; DMA_InitTypeDef DMA_Setting; uint8_t Test_Buf[] = {15,30,30,30,15}; void delay_ms(uint32_t ms) { volatile uint32_t nCount; RCC_ClocksTypeDef RCC_Clocks; RCC_GetClocksFreq (&RCC_Clocks); nCount = (RCC_Clocks.HCLK_Frequency/10000)*ms; for (; nCount != 0; nCount--); } void Init_GPIO(void) { RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE); PIN.GPIO_Pin = GPIO_Pin_11; // PA11 -> TIM1 Channel4 PIN.GPIO_Mode = GPIO_Mode_AF_PP; PIN.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOA, &PIN); } void Init_TIM_Transmit(void) { RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE); TIM_TimeBaseStructInit(&TIM_Config); // настройки по дефолту TIM_Config.TIM_Prescaler = 72-1; // Запускаем таймер на тактовой частоте 1 MHz (72000000/(72-1)) TIM_Config.TIM_Period = 150-1; // Период - 150 мкс TIM_Config.TIM_ClockDivision = 0; // частоту дополнительно не делим TIM_Config.TIM_CounterMode = TIM_CounterMode_Up; // считаем вверх TIM_TimeBaseInit(TIM1, &TIM_Config); // Инициализируем TIM1 TIM_OCStructInit(&TIM_OCConfig); // настройки по дефолту TIM_OCConfig.TIM_OCMode = TIM_OCMode_PWM1; // Конфигурируем как ШИМ (выравнивание по границе) TIM_OCConfig.TIM_OutputState = TIM_OutputState_Enable; // Включаем выход TIM_OCConfig.TIM_Pulse = 0; // CCR до старта пока нулевой TIM_OCConfig.TIM_OCPolarity = TIM_OCPolarity_High; // Полярность TIM_OCConfig.TIM_OCIdleState = TIM_OCIdleState_Reset; // состояние выхода по совпадению CCR (сброс) TIM_OC4Init(TIM1, &TIM_OCConfig); // Инициализируем 4-й выход таймера, это PA11 TIM_ARRPreloadConfig(TIM1,ENABLE); // Предзагрузка периода (ARR) TIM_OC4PreloadConfig(TIM1, TIM_OCPreload_Enable); // Предзагрузка длины импульса CCR 4-го канала // (даем досчитать до конца и только потом значение меняется на новое) TIM_DMACmd(TIM1,TIM_DMA_CC4,DISABLE); // выключаем пока запрос к DMA от таймера TIM1 по достижении CCR) TIM_CtrlPWMOutputs(TIM1, ENABLE); // включаем выходы (это только для TIM1) TIM_CCxCmd(TIM1,TIM_Channel_4,TIM_CCx_Enable); // разрешаем таймеру управлять выводом PA11 TIM_ITConfig(TIM1, TIM_IT_CC4, DISABLE); // запрещаем пока таймеру генерировать прерывание по совпадению NVIC_EnableIRQ(TIM1_CC_IRQn); // разрешаем прерывания TIM_Cmd(TIM1, DISABLE); // Выключаем таймер (пока ждем) } void TIM1_CC_IRQHandler(void) // прошло 130 мкс { if (TIM_GetITStatus(TIM1, TIM_IT_CC4) != RESET) { // по совпадению TIM_ClearITPendingBit(TIM1,TIM_IT_CC4); // сбрасываем флаг прерывания TIM1 по совпадению } NVIC_EnableIRQ(TIM1_CC_IRQn); // выключаем прерывания от таймера TIM_ITConfig(TIM1, TIM_IT_CC4, DISABLE); // TIM1->ARR = 40-1; // устанавливаем период 40 мкс TIM1->CCR4 = Test_Buf[0]; // ширину из массива для следующего импульса DMA1_Channel4->CNDTR = 4; // длина данных для DMA на 1 меньше т.к. уже установили выше 1 элемент TIM_DMACmd(TIM1,TIM_DMA_CC4,ENABLE); // разрешаем таймеру делать запрос к DMA по совпадению CCR DMA_Cmd(DMA1_Channel4, ENABLE); // включаем DMA } void Init_DMA(void) { RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE); // включаем тактирование DMA1 DMA_Setting.DMA_PeripheralBaseAddr = (uint32_t) &TIM1->CCR4; // куда копировать DMA_Setting.DMA_MemoryBaseAddr = (uint32_t) &Test_Buf[1]; // что копировать DMA_Setting.DMA_DIR = DMA_DIR_PeripheralDST; // копируем в периферию (Peripheral Destination, точка назначения - периферия) DMA_Setting.DMA_BufferSize = 0; // количество передаваемых данных DMA_Setting.DMA_PeripheralInc = DMA_PeripheralInc_Disable; // адрес периферии постоянный DMA_Setting.DMA_MemoryInc = DMA_MemoryInc_Enable; // адрес в памяти увеличиваем DMA_Setting.DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord; // периферия 16 бит DMA_Setting.DMA_MemoryDataSize = DMA_MemoryDataSize_Byte; // массив 8 бит DMA_Setting.DMA_Mode = DMA_Mode_Normal; // режим обычный DMA_Setting.DMA_Priority = DMA_Priority_Medium; // приоритет средний DMA_Setting.DMA_M2M = DMA_M2M_Disable; // MemoryToMemory откл. DMA_Init(DMA1_Channel4, &DMA_Setting); // TIM1_CH4 относится к 4-му каналу DMA1 DMA_ITConfig(DMA1_Channel4, DMA_IT_TC, ENABLE); // настраиваем прерывание по окончанию передачи NVIC_EnableIRQ(DMA1_Channel4_IRQn); // включаем прерывания от 4-го канала DMA1 DMA_Cmd(DMA1_Channel4, DISABLE); // пока выключаем 4-ый канал DMA1 } void DMA1_Channel4_IRQHandler(void) // закончили передавать { if (DMA_GetITStatus(DMA1_IT_TC4) != RESET) { // по совпадению DMA_ClearITPendingBit(DMA1_IT_TC4); // сбрасываем флаг прерывания DMA1 Channel4 transfer complete } if (TIM_GetITStatus(TIM1, TIM_IT_CC4) != RESET) { // по совпадению TIM_ClearITPendingBit(TIM1,TIM_IT_CC4); // сбрасываем флаг прерывания TIM1 на всякий случай } TIM1->ARR = 150-1; // вновь настраиваем на период 150 мкс TIM1->CCR4 = 0; // и ждем следующею передачу TIM1->CNT = 0; // TIM_DMACmd(TIM1,TIM_DMA_CC4,DISABLE); // всё выключаем DMA_Cmd(DMA1_Channel4, DISABLE); // TIM_Cmd(TIM1, DISABLE); // TIM_ITConfig(TIM1, TIM_IT_CC4, DISABLE); // TIM_CCxCmd(TIM1,TIM_Channel_4,TIM_CCx_Disable); } int main(void) { Init_GPIO(); Init_TIM_Transmit(); Init_DMA(); delay_ms(1000); while(1) { TIM1->CCR4 = 130-1; // до включения линия удерживается в 0 (CCR=0) TIM_ITConfig(TIM1, TIM_IT_CC4, ENABLE); TIM_CCxCmd(TIM1,TIM_Channel_4,TIM_CCx_Enable); TIM_Cmd(TIM1, ENABLE); delay_ms(100); } }  
      TEST_TIM_DMA.zip
  • Сообщения

    • Мне очень запала эта схемка,кто бы ее правильно на кварц.стабилизацию качнул!?Хотя жалоб о стабильности от меня.Просто хотелось бы увести его из этого диапазона.  представляю мощного жука #1²  и #1³ Т1 КТ3130Б; Т2 Bfr93; Т3 Bfr93. Т1 КТ3107Л; Т2 КТ368; КТ913Б.     Для антенн буду использовать посеребренный провод. .ля,как же я доволен вашей схемкой!
    • Вопрос следовало задать в теме защиты акустики, так так собственно к усилителю она имеет опосредованное отношение. По вопросу, я делаю так       
    • Здарова друзья!Ну что пробовал я собирать как и обещал,эту схему!Так как на схемке. Работает жучек,но мощность сильно падает,до 150метров,катушку на выходе делал так :L3 3+3витка(2катушки)спаивал в одну катушку,получался центральный выход на коллектор s9018,и катушечка L4 на 2виточка, от которой идет уже конкретно антенна,своими двумя витками помещалась посредине L3,3миллиметровый латунный сердечник плотно проходил внутри,и это не добавляло особо мощности,только взлетала частота до 145мГц что немножко упрощало его поиск и все. Потому я от этого каскада отказался.Просто перед антенной поставил конденсатор от 10--22pf!
    • То есть цифровой вольтметр определяет направление тока и по этому принципу ставит знак? И высчитывает разность потенциалов этого минуса?
    • Еще раз напишу, что стрелочки указывают направление тока. Если батарейку (любую) перевернуть, тока не будет, светодиод светится не будет. Ионы не перейдут через запрещённую зону PN-перехода диода  при "не той" полярности. Считай, что в мультиметре знак "минус" подсвечивает тот светодиод, который правый. Переворачиваешь правую батарейку, и мультиметр твой покажет напряжение без знака "минус".
    • @Slavka Всё именно так, как вы сказали. Но и с vg155 согласен, что вызванивать каждый контакт без конкретной схемы, а только аналогов. Нет гарантий что найду все контакты или не допущу ошибки. По этому и посмотрел барахолку и нашёл экземпляр с более простой проблемой. А так вот мой парк (маленьких DT182 даже 2шт)  
    • Прошу объясните. Вот если чёрный щуп мультиметра ставлю между двумя батарейками, а красный ставлю на плюс или минус, то почему мультиметр показывает знак минус в случае если ставлю на минус красный щуп? Как мультиметр определяет где минус, где плюс?
  • Покупай!

×
×
  • Create New...