Jump to content

    

skilful

Свой
  • Content Count

    222
  • Joined

  • Last visited

Community Reputation

0 Обычный

About skilful

  • Rank
    Местный

Контакты

  • Сайт
    Array
  • ICQ
    Array

Recent Profile Visitors

1451 profile views
  1. у меня топология общая шина для для нескольких устройств с uart. Мне нужно с помощью МК настроить Прибор2. Ответы от Прибора2 не должны попасть в Прибор1 (а то мало ли он начнет вещать в линию uart неожиданно для меня). Поэтому пока МК и Прибор2 общаются -- я думал отключить MAX3232. После настройки Прибора2, он начинает общаться с Прибором1. МК при этом не участвует.
  2. я взял схему применения N-канального MOSFET. Например, такую. А теперь мучаюсь... А как "надежно" тогда микросхему отключать, чтобы она не мешала и через нее данные не прошли случайно? Правильно + отключать? Может как вы сказали и вправду сигнальные линии MOSFETом включать/отключать ? Питание микросхемы при этом не трогая. Или питание + и - снимать с max3232? Сергей, посоветовал резисторы поставить. Я поставил по 47 кОм. Max3232, то нормально заводится и на ножках 4-5 напряжение 9 В, то 4 В.
  3. Здравствуйте всем. Мне надо управлять питанием микросхемы max3232 (иногда отключать ее). Для этого поставил irf7341 и коммутирую ножку gnd max3232 на землю (с МК через резистор R1 подаю на 4-ю лапу irf7341 пять вольт, когда мне нужно включить max3232). После этого наблюдаю следующий эффект: микросхема max3232 то нормально работает (не греется, на ножках 4-5 напряжение 9 В), то греется просто жутко. Когда сильно греется вместо положенных 9 Вольт на ее ножках 4-5 напряжение становится 0.6 В. Из 10 попыток включения: 1-2 может не греться, а остальные - кипяток. Если у max3232 ножку gnd сразу паяю на землю (без mosfet), то вроде бы 10 из 10 попыток все хорошо. Ничего не греется. Пока не пойму почему так может происходить. Помогите, пожалуйста, разобраться, где косяк.
  4. В соседней ветке сказал спасибо за ответы. Тут, видимо, я забыл. Спасибо за ответы. Думаю, она полностью раскрыта и у кому еще придет такая мысль (про питание от лап МК) не пойдет по этому пути.
  5. byRAM, вы может в профиле темы пересмотрите мои прежде, чем писать? Но в чем-то вы правы - много лет назад я делал проект под названием AptiLight (фоновая подсветка для монитора/телевизора). В ютубе можете найти пару древних видео. Суть была в анализе видеосигнала hdmi/dvi на пролете - из кабеля. Проект уместился в CPLD MAX II. И проект пожил немного пока в HDMI не ввели HDCP. Baser, спасибо. Вот еще нашел еще ссылку, в которой указывается про возможность питания от порта. Но DiHalt четко сразу все расписал по ограничению данного способа. http://easyelectronics.ru/vklyuchit-vyklyuchit-sxemy-upravleniya-pitaniem.html
  6. Да, что вы пристали с этим месяцем :) я месяц не только этим транзистором занимался ))) Без ваших подсказок/советов я бы еще 2 дня думал почему схема хреновая. Только так подробно не надо ж пинать - просто сказали бы посчитать токи по закону Ома с нагрузкой и без куда этот ток польется. В спецификации на RS-485 написано, что ток короткого замыкания на линии 250 мА... Понимаете, меня еще не покидает мысль о том, что МК имеет столько всего на борту и думается зачем еще дополнительные элементы всякие. И еще их покупать, ЛУТить. Кто-то писал, что лениво - похоже, что-то в этот есть. Фраза про белье была про то, что какую полезность имеет то в каких я группах состою. Зачем такие вопросы? Сам понимаю какой мой уровень вопросов - пишу в разделе для новичков. Немного еще офтоп вопрос: насколько критичен уровень напряжения питания МК AVR (Ардуино). У меня 16 МГц. Если я от 4-4.2 В запитаю как это отразится на работе МК? В Даташите написано на мою Mega328p: 0 to 16MHz at 4.5 to 5.5V На сайтах ардуинщиков читал, что и от 3.5 Вольт работает нормально, а в даташите напряжение это с запасом.
  7. Чем хуже ? Плохо, когда хотя бы минимального пояснения нет. Мой уровень разработки - на уровне радиолюбительства/хобби в свободное от основной работы время. У меня в городе достаточно трудоемко и накладно радиодетали приобретать. Тем более будет обидно, что можно было сделать по другому - как-то изящнее и дешевле за свои то покупаю детали. Да и некоторым мыслям тутешних участников форума восторгаюсь ибо сам бы не догадался и(или) знаний с опытом не хватает. Что касается группы Свой: так это было много лет назад. Тогда в ней давался доступ к фтп с софтом хорошим. Тогда еще моя работа была связана с ПЛИС и с кодированием схемы заданных алгоритмов в схеме ПЛИС. MrBearManul, не люблю, когда начинают копаться в "нижнем белье". Это уровень некоторых ТВ передач. Лучше вообще не отвечать, чем пытаться как-то задеть :)
  8. Скажите, пожалуйста. А вот такая схема управлением питанием от ножки МК допустима ли? Когда на ножке Hi-Z, то микросхема запитана. Когда 0 - то нет.
  9. ну, вот так у меня получается, что влазить в него нельзя :) jcxz, спасибо Вам за помощь. Я хочу попробовать с каскадированием таймеров. Для меня это выглядит наиболее шустрым решением. Еще раз Спасибо всем откликнувшимся
  10. так ведь критично важный по времени кусок кода вообще нельзя нарушать. тогда я еще после куска критичного кода еще sei постоянно должен буду делать, чтобы прерывания разрешить до следующей итерации цикла. Да и дольше они выполняются эти прерывания. В моем же куске кода, если таймер не переполнился, то за 3 такта вернемся к выполнению критичного кода. if ((TIFR1) & (1 << TOV1)) { //таймер с предделителем работает в фоне. Сработка каждые 4 секунды SBIS 0x16,0 Skip if bit in I/O register set RJMP PC-0x0006 Relative jump
  11. Мой код проверки в цикле дизассемблируется вот так. if ((TIFR1) & (1 << TOV1)) { //таймер с предделителем работает в фоне. Сработка каждые 4 секунды SBIS 0x16,0 Skip if bit in I/O register set RJMP PC-0x0006 Relative jump TIFR1 = 0x01; //TIFR1 |= (1 << TOV1); //сброс бита переполнения. Надо записать туда 1 для сброса OUT 0x16,R25 Out to I/O location SUBI R24,0x01 Subtract immediate } while (TOV1_cnt > 0); BRNE PC-0x09 Branch if not equal Вроде и неплохо по количеству тактов. Но задача избавиться от этой проверки. Очень интересная идея с каскадированием таймеров. Спасибо! Простите, но я не понимаю какую мысль Вы хотите донести, чтобы избавиться от контрольной части куска кода. Идея с каскадированием таймеров более-менее понятна, а Вашу не пойму. Что получится в итоге... Переход в прерывание более длителен как показал дизассемблер
  12. да жаль, что столько еще неиспользуемой периферии на борту и внешние цепи/устройства ставить
  13. проведите немного ликбез: что поменяется при применении RTOS ? Таймеры в AVR выше этих 4 секунд не настроить на 16 МГц. Значит будут прерывания, которые будут прерывать мой код для проверки переключения задачи? По тактам, если использовать прерывания, то больше выходит, чем код, который я написал. Хотя могу ошибаться из-за недопонимания. К сожалению, сторожевик в AVR только максимально 8 секунд может отсчитать. Так бы его применил как параллельный процесс и не парился бы :)
  14. Здравствуйте. Имеется критичный по времени работы кусочек кода, который работает в цикле и ему лучше не мешать :) Однако этот кусок кода должен поработать минут 15-20 и прекратить работать. МК -- AVR. Сейчас я сделал так: cli(); //запустили таймер1 с делителем 1024 без прерываний. Будем следить за битом переполнения //сработка равна ~ 4 секунды на 16 МГц TCCR1A = 0; TCCR1B = 0; TIMSK1 = 0; TCCR1B |= (1 << CS12); TCCR1B |= (1 << CS10); uint8_t TOV1_cnt = 255; ~ 4 секунды do { ////////тут критичный по времени код. Написан на ассемблере //.... //////// // выход из цикла примерно через 15-20 минут if ((TIFR1) & (1 << TOV1)) { //таймер1 с предделителем работает в фоне. Сработка каждые 4 секунды TIFR1 = 0x01; //сброс бита переполнения. Пишем туда 1 для сброса TOV1_cnt--; } } while (TOV1_cnt > 0); sei(); Т.е. запустили Таймер1 в фоне и без прерываний, и опрашиваем бит его переполнения в критичном по времени работы цикле. Если Таймер1 переполнился -- сбрасываем этот бит, и декрементируем счетчик времени работы цикла. Этот код я дизассемблировал и он как бы во временном допуске получается. Но может как-то еще быстрее можно контролировать время работы цикла? Можно применять абсолютно любую периферию МК AVR, программные трюки в том числе и сторожевой таймер :) Задача: максимально не мешать критично важному по времени куску кода и завершить его через 15-20 минут. Спасибо!