Проблемы упакованных структур

Не так давно я столкнулся с проблемой: структуры, полученные от устройства через USB-VCOM, содержали не те данные, которые я ожидал. Размер структуры в программе на Qt отличался от размера встроенной программы, скомпилированной в Keil uVision. Соответственно, доступ к членам структуры, а особенно к битовым полям оказывался некорректным.

Читать далее Проблемы упакованных структур

Макет повторителя CAN

Как-то раз была задача реализовать гальваническую развязку шины CAN. Проблема заключалась в том, что сигнал на шине дифференциальный и просто пропустить его через оптрон нельзя. Помимо этого, если соединить два приемопередатчика между собой, произойдет зацикливание обмена на шине.

Читать далее Макет повторителя CAN

Первичная настройка печатной платы в Altium Designer

  1. Настройка стека слоев;
  2. Настройка правил проектирования;
  3. Настройка пар механических слоев Top Assy (M13) — Bottom Assy (M14) и Top
  4. Cortyard (M15) — Bottom Cortyard (M16);
  5. Настройка предпочитаемых толщин линий и диаметров переходных отверстий.

Проверки топологии печатной платы

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

  1. Подключение внутренних полигонов;
  2. Наличие маски переходных отверстий;
  3. Наличие всех элементов;
  4. Оптимизация линий;
  5. Полигоны на Top и Bottom над соответствующими землями;
  6. Все полигоны залиты;
  7. Сетчатые полигоны на внутренних слоях гибко-жестких плат;
  8. Расстановка шелкографии;
  9. Наличие строки с номером модуля и печатной платы;
  10. Тестовые точки и площадки;
  11. Справочные надписи шелкографией;
  12. Выполняется проверка Design Rule Check;
  13. Для автоматического монтажа по длинному краю плату (панели) поля минимум по 5 мм;
  14. Реперные точки.

startup.s для Cortex-M в ARM компиляторе

Попытаюсь разобраться со структурой стартового файла startup.s для процессоров Cortex-M в среде Keil MDK-ARM и понять, как запускается процессор, на примере файла инициализации для отечественных процессоров 1986ВЕ1Т, которые являются аналогом ядра Cortex-M1.

Читать далее startup.s для Cortex-M в ARM компиляторе