Jump to content

Vit@lik

Members
  • Content Count

    384
  • Joined

  • Last visited

Community Reputation

6 Обычный

About Vit@lik

  • Rank
    Постоялец

Информация

  • Город
    Ukraine

Электроника

  • Стаж в электронике
    1-2 года
  • Сфера радиоэлектроники
    Ukraine

Recent Profile Visitors

2670 profile views
  1. Делаю что-то похожее на ИК пульт. Использовал атмегу8 и 8МГц кварц. Настроил Таймер_2 в режим СТС. Настроил Таймер 2 на частоту 36кГц. И проверил осциллографом - все работает. 36кГц есть на порте. Была у меня идея первый таймер использовать для генерации частоты а второй для того чтобы им первый включать и выключать с определенными задержками для создания "пакетов" данных. Но подумал немного и что-то мне стало жалко использовать аж целых два таймера только для одного этого задания. И решил попробовать сделать на одном таймере. Написал функцию которая посылает сначала стартовый длинный пакет импульсов, а потом берет массив в котором находятся 1 и 0 (код который нужно отправить), и в зависимости от того 1 или 0 отправляет пачки импульсов определенной длины добавляя задержки между ними. For и Loop не использовал чтобы процессор "не зависал" в прерывании на долго и успевал выполнять другие задачи. Все сделано проверками IF и еще несколько статических переменных и там же в векторе ISR(TIMER0_OVF_vect) инвертирую порт. Правильно ли я поступил? На время разработки я запустил таймер_2 который генерирует несущую частоту 36кГц на постоянно. Но в дальнейшем когда программа будет закончена буду запускать его кнопкой только на время передачи импульсов и по он окончанию самостоятельно выключиться. Таймер_2 работает на прямую от генератора 8МГц то есть - на частоте процессора. void timer2_init () { TIMSK |= (1<<OCIE2); //Timer/Counter2 Output Compare Interrupt Enable //Разрешение прерывания по совпадению таймера/счетчика2 TCCR2 |= (1<<CS20) | (1<< WGM21); // clkT2S/1024 (From prescaler) AND Clear Timer On Compare - CTC OCR2 = 110; // Output Compare Register – OCR2 continuously compared with the counter value (TCNT2) } А таймер 0 для других заданий так clkT2S/128 (From prescaler) void timer0_init(){ TIMSK |= (1<<TOIE0); TCCR0 |= (1<<CS00) | (1 << CS02) ; //TCNT0 = 60; //PORTD |= (1<<7); } Так вот код в OVF таймера _0 не выполняется когда запущен таймер_2 ISR(TIMER0_OVF_vect){ //code //code } То есть если превысить некий лимит команд в прерывании таймера_2 то код в прерывании таймера_0 не выполняется. Я все правильно понимаю? Это потому что таймер_2 работает на частоте процессора и забирает все его время и производительность на себя? И код в основном цикле тогда тоже не будет выполняться если таймер_0 будет все время прерываться с частотой тактирования процессора? Если i < 11 таймер_0 не работает. Если i < 10 то еще работает. ISR(TIMER2_COMP_vect){ //fire_act(); for(int i = 0; i < 11; i++){asm("nop");} }//ISR Я понимаю это так. Что время выполнения кода прерывания или равно или превышает время между вызовами этого же прерывания. Правильно? Только что заметил что ошибся с темой. А удалить сообщение уже нельзя ...
  2. можна, но хотелось бы чтобы устройством можно было и пользоваться когда он подключен к USB. И тогда надо будет как-то дополнительно отслеживать включена ли кнопка или нет , чтобы МК мог вернуться к работе по нажатию, и тогда вообще получается что МК будет работать постоянно (или переводить его в спящий режим ....) должно сработать VCCIO - +1.8V to +5.25V supply to the UART Interface and CBUS group pins. VCCIO брать от VDD. Тогда можно и FT232_VCC отключать и питать от того же VDD что и МК. Потому что если питание МК отключено то и FT232 не нужна. а от USB нужно только питание для зарядки внутреннего аккумулятора Наверное что бы я по TX и RX использовал какой-нибудь "буферный логический элемент" с питанием от VDD то не было с паразитного питания. Наверно буду менять точку питания для ft232, запитаю от vdd. А что думал можно решить это диодами с резисторами..
  3. Здравствуйте. В проектируемом устройстве стоит атмега и преобразователь FT232RL для возможности обновления прошивки через USB. Также в устройстве будет аккумулятор который может заряжаться через тот же USB порт. И есть кнопка которая отключает питание от процессора. Но преобразователь FT232RL работает и аккумулятор должен заряжаться даже если устройство выключено етой кнопкой. Схему придумал уже и заказал платы и даже начал паять. И вот заметил что если устройство выключить кнопокой, на атмеге есть около 2.2В. Я так понимаю это паразитное питание через TX и RX ? и защитные диоды порт-ов? Так как на линиях TX RX есть 2.5В. Как-то можно это убрать? Какой самый правильный способ? Все что я придумал пока что - это поставить резистор (47 - 100 ом) и диод на линии tx rx на плате устройства очень тоненькие дорожки и все на маленьких smd, если начну експерементировать на нем то все испорчу.. подскажите пожалуйста решение
  4. @IMXO так как на рисунку? А если перед резистором на 1К стоит супрессор ("в обратном включении") то диод на оптопару все равно ставить? и конденсатор параллельно оптопаре оставить или убрать? если параллельно светодиода оптопары будет стоять еще резистор на 470 ом, то может надо уменьшить 1к например до 680 оМ, и увеличить ток, чтобы его хватало для светодиода, а то если я не ошибаюсь то какая-то часть тока буду течь через резистор и на светодиоде будет уже не 5мА а где-то 3мА забыл еще попробовать экранированным проводом подключать датчики и посмотреть осциллографом что будет((
  5. добавил конденсатор 100-150нф к светодиоду И микроконтроллер уже не видит что контакты замыкаются а подобие синусоиды из сети вообще исчезло
  6. такое на светодиоде оптопары все время. думаю ето наводки от сети а такое если включить катушку с искрами вблизи проводов датчика концевика. микроконтроллер видит что контакты замыкаются
  7. Как источник наводок использовал катушку зажигания и свечу - и сработало. Позже добавлю описание и фото. на светодиоде оптопары Даже без длинных проводов есть синусоида, и "иглы" от наводок ЛБП что стоит сбоку но все же их не достаточно что бы светодиод подмигивал а вот от работы катушки зажигания начали приходить ложные данные. Но конденсатор на 150 нФ параллельно светодиоду подавил почти все, ложных срабатываний с ним не было.
  8. конвертер здесь ни к чему. Он работает стабильно, легко переносит КЗ. И выдает в почти 2 раза большую мощность от паспортной далее перходит в защиту и виходит самостоятельно.
  9. @IMXO при подаче питания на светодиод оптопары на входе МК из 5в меняется на 100мВ. Ток в цепи транзистора оптопары мультиметр показывает 625 микроампер (там где 0,55мА). Что-то не так? Нужно уменьшить R7 и резистор подтяжки (тот что на 10K)? В оптопары Continuous Forward Current = 50мА. i Forward Voltage max 1.4V, по расчетам если я не ошибся то можно ставить резистор и 70 (а лучше 100оМ). Но я думаю с таким током для долговечность светодиода сильно сократится.
  10. 47К - 100К зависит от модели. Внешняя подтяжка возле микроконтроллера есть на 10К к +5В. в МК на порте я измерял то около 0,7В если он настроен на выход. Для того чтобы МК видел сигнал лог.нулем 0... 1,5В В этой схеме протекает 5-6 мА через светодиод оптопары. Пробовали подключать последовательно R7 переменный резистор и увеличивалидо 8К - работает, после уже нет
  11. коротит разве что через резистор и светодиод оптопары. а супрессор подключен верно
  12. Нет не я. Ее придумал другой человек и связи с ним нет. Ето плата с микроконтроллером который посылает на компьютер информацию о состоянии датчиков, датчики ето или механические кнопки (концевик) или геркон. Установлены в разных комнатах помещения к которым идут длинные провода. Иногда компьютер фиксирует ложные срабатывания в больших количествах. Защита от дребезга контактов есть (программная). Питание есть свое отдельное через источник бесперебойного питания и еще есть встроенный аккумулятор в сигнализацию. Часть схемы которая обрабатывает датчики была показана ранее. Хотим воспроизводить по команде похоже явление в офисных условиях на столе. А на обычные бытовые устройства такие как паяльник, фен или микроволновая печь оно не реагирует
  13. @IMXO ответ ни о чем. да концевик. на схеме как кнопка показан установлены на дверях, окнах, некоторые работают как механическая кнопка другие как герконы
×
×
  • Create New...