0
Над тем, что я сказал.
0
Это не оскорбление, подумайте над что я сказал.
0
Можно пойти по пути «бешеной собаке семь вёрст не крюк». А можно заранее исключить лишние телодвижения. МК в smd корпусах оставить для конечных устройств и обзавестись мк в DIN-корпусах.
0
Резистор, стабилитрон, конденсатор. Разве могут быть другие трактовки?
В автомобильной технике так: резистор, стабилитрон на 16-18 вольт, если бортовая сеть на 12 вольт, затем параметрический стабилизатор на 5 вольт. Это питание мк.
0
У параметрических стабилизаторов есть минус, маленький ток, по сути хватает только на мк. Поэтому все нагрузки выносим на внешнее питание. Нагрузка выходов мк микросхемы, полевые транзисторы. Биполярные только составные, так меньше ток базы.
0
Странный вопрос на форуме радиолюбителей. А погуглить?
0
Трансформаторные, с гальванической развязкой
0
LDO целесообразны при входном напряжении не выше 9 вольт, с радиаторов, и нагрузкой не выше 200 мА. На макетках нет гарантии, что не будет кз, превышения тока. Если LDO вылетит, то все входящее напряжение будет на мк. С определённого момента, а значит случаев, я стараюсь не использовать LDO. С 2008 года от силы два три раза. Во всех этих случаях использовались токоограничительные резисторы. В своих проектах я использую либо параметрические стабилизаторы, либо DC-DC.
0
И да, один из принципов оперирования — блочный, модульный. Каждое устройство разделяется на модули, декомпозиция вплоть до отдельного компонента, класса резистор, конденсатор. Просто для меня это уже само собой разумеещееся. Плата без МК и модулей — отдельный модуль оперирования.
0
STK-500 слишком дорогое удовольствие, чтобы экспериментировать на ней… Поэтому на ней проверяются только основные и простые моменты. Программы отлаживаются в симуляторе AVR-Studio. Даже самые тяжёлые. Это означает, что вы должны научиться создавать программные отладочные инструменты.
Я понял как закрыть бесполезный спор. Задача разработчика, инженера — минимизировать ошибки как при разработке, отладке, так и на будущих устройствах. Один из способов, проверка монтажа без дорогостоящих комплектующих, либо минимизация потерь при кз. Панельки для мк, штекера для периферии этому условию соответствуют на 100 процентов.
0
У меня на макетных платах нет LDO. 5 вольт внешнее. Максимум, что я ставил на макетные платы LDO c 5 вольт на 3.3 вольта. В этом случае при ошибке монтажа я рисковал модулем на 3.3 вольта. но не всей платой и мк.
0
Любой LDO на макетной плате — зло! Если МК не той стороны воткнул и спалил — не страшно. Сгорел — выкинул, другой мк поставил.
Макетная плата — на то и макетная, чтобы предусматривать форс-мажорные ситуации. В том числе кз при ошибках монтажа.
0
Ошибка монтажа.
0
Минусую.
1 — Используемый корпус МК. Ошибка при экспериментах, мк в топку. Нужно перепаивать мк. Если плата нелучшего качества, скорее всего при перепайке мк плата тоже летит в топку.
2 — Стабилизатор на 7805 и подобных. То же самое. Ошибка, стабилизатор выдал всю напругу, мк, плата в топку.
3 — По сути, голая плата.
Я до сих пор использую отладочную плату STK-500. Для большинства моих задач достаточно. На борту есть кнопки, светодиоды, преобразователь UART-ТТЛ. Плюс программирование мк на плате же. Если уж делать макетную плату, то по уму. За основу можно взять подход, как у STK-500. Кнопки, светодиоды, в общем, продумать ТЗ. И обязательно ZIF-панельку, чтобы экспериментировать с мк в DIP-корпусе. Накосячил, вытащил сгоревший мк, заменил. Когда проект полностью отлажен, только тогда делать плату для мк в SMD корпусе.
0
Интерфейс ЖКИ 4 бита и только запись я с некоторого времени использую всегда. Koyodza на пустыне (он и здесь зарегистрирован, но в последнее время что-то его на этом форуме не видно) подсказал мне следующий способ. Создается буфер размером в кол-во строк * кол-во символов. И посимвольно, скажем, раз в 1 мс выводим. Полное обновление экрана 20х4 происходит за 20*4+4 адреса строки = 84 мс. дело в том, что ЖКИ очень неплохо ловят помехи. И если ничего не выводить в течении длительного времени, то на экране появляются кракозябры. Притом я это наблюдал в достаточно тепличных, домашних условиях.
Естественно, при таком подходе кнопки к шине дисплея уже не подключить. Для расширения ввода-вывода я использую сдвиговые регистры 74HC165 и 74HC595. Но и тут есть своя ложка дегтя. Эти регистры тоже чувствительны к помехам. Поэтому их использовать в не ответственных узлах. Типа опроса интерфейсных кнопок и светодиодных дисплеях, матрицах. Помеха на кнопки подавится антидребезгом, на светодиоде, ну мыгнет светодиод. Не критично.
0
У меня такая реализация. Ссылка.
0

#define TMR_OCR_RIGHT   OCR1B
#define TMR_OCR_LEFT    OCR1A

#define TMR_COM_RIGHT   COM1B1
#define TMR_COM_LEFT    COM1A1


То есть, если ноль, отключаем ШИМ, и отключаем пин выхода ШИМ-а.
0

void Set_Proc_Motor_Stop (void)
{
   clr_bit (P_CH_RIGHT_DDR, P_CH_RIGHT);
   clr_bit (P_CH_RIGHT_PORT, P_CH_RIGHT);

   clr_bit (P_CH_LEFT_DDR, P_CH_LEFT);
   clr_bit (P_CH_LEFT_PORT, P_CH_LEFT);

   clr_bit (PWM_RIGHT_DDR, PWM_RIGHT);
   clr_bit (PWM_LEFT_DDR,  PWM_LEFT);

   clr_bit (TCCR1A, TMR_COM_RIGHT);
   TMR_OCR_RIGHT = 0;

   clr_bit (TCCR1A, TMR_COM_LEFT);
   TMR_OCR_LEFT = 0;

   all_leds_off ();
   direction = DIRECTION_STOP;
   motor_mode = MOTOR_STOP;
   _proc_motor = PROC_MOTOR_IDLE;
}

      case PROC_MOTOR_BRAKING: // Торможение.
         if (handle_soft_timer (ST_PROC_MOTOR))
         {
            switch (direction)
            {
               case DIRECTION_RIGHT:
                  if (TMR_OCR_RIGHT > 0)
                     TMR_OCR_RIGHT--;
                  else
                     Set_Proc_Motor_Stop ();
                  break;

               case DIRECTION_LEFT:
                  if (TMR_OCR_LEFT > 0)
                     TMR_OCR_LEFT--;
                  else
                     Set_Proc_Motor_Stop ();
                  break;
            }
         }
         break;
0
У кого что болит, тот о том и говорит…
0

static u08 _show_id_errors;


set_timer, wait — программный таймер. Это из старых библиотек, которые я переписал. Пример смотри тут: www.avrfreaks.net/projects/soft-timers-0

Предложенный мной способ подходит, если: автоматное программирование, конечные автоматы. Никаких зацикленностей. Вход, проверка условий, действие в зависимости от условий, выход. Системный таймер настраивается на 1 мс. Итерация основного цикла должна с запасом впаковаться в системный тик.
Пример основного цикла:

__C_task main (void)
{
   wdt_enable (WDTO_15_MS);

   init_sys_timer ();

   Init_Events ();

   __enable_interrupt ();

   while (1)
   {
      __watchdog_reset ();

      kbd_drv ();

      proc_nrf24l01 ();

      Process_Events ();
   }
}