1. В сообществе нашего форума Вконтакте создан раздел по продаже электронных компонентов.
    Каждый может продать в нем свои залежавшиеся детали. Подробности здесь.

Туториал Универсальный модуль на STM32L

Тема в разделе "Идеи и планируемые к разработке устройства", создана пользователем UL7AAjr, 15 фев 2017.

  1. UL7AAjr

    UL7AAjr В доску свой

    Сообщения:
    1.848
    Симпатии:
    313
    Род занятий:
    инженер-программист
    Адрес:
    Алма-Ата
    Идеей разработки данного устройства было создание универсального модуля на "все случаи жизни" с набором необходимой периферии на борту. В качеств МК был выбран низкопотребляющий микроконтроллер STM32L151 для обеспечения возможности работы модуля от автономного питания. Ну и большим плюсом данного МК, в отличии от его собратьев F1 серии - наличие EEPROM.

    Это уже вторая доработанная версия модуля в которой исправлены недочеты проектирования.

    Итак, что мы имеем на борту.
    1. Собственно МК STM32L151C8T6 (32K ROM, 20K RAM, 4K EEPROM).
    2. Интерфейс USB, разъем микро-USB. Мне показалось, что это удобнее чем стандартный мини.
    3. Два UART. Оба выведены на разъемы. Второй UART можно перекоммутировать джамперами на RS-485, драйвер которого имеется в модуле. Есть джампер для терминирования UART.
    4. Два SPI, оба выведены на разъемы. Параллельно второму SPI подключен слот для Микро-SD карты, поэтому при использовании карты, второй SPI непосредственно использовать не получится. Как вариант - использовать дополнительный вывод в качестве CS, а не тот который выведен на разъем. Кроме того, у данного МК объединены выводы DAC с выводами SPI1. Поэтому можно использовать либо SPI1, либо каналы DAC.
    5. Разъем для подключения энкодера. Кнопки решил не устанавливать, пользоваться энкодером намного удобнее при наличии дисплея. Если не подключать энкодер, то разъем можно использовать как обычные выводы GPIO PB8, PB9, PC13.
    6. Разъем для подключения TFT дисплея, использовал один из самых популярных и доступных 1.44" 128х128 на контроллере ST7735. Он хорошо вписывается в габариты модуля и позволяет настроить переворот изображения, при одинаковых пропорциях экрана даже код переделывать не надо.
    7. Слот Микро-SD (в четвертом пункте особенности использования)
    8. Часовой кварц Abracon ABS07 на 6 пФ. Для L-серии не следует использовать резонаторы с большей емкостью, запуск RTC может быть неуверенным или невозможным.
    9. Четыре силовых выхода с отдельным внешним питанием на ULN2003, либо два H моста для управления маломощным степ-двигателем на L9110. В зависимости от того, что будет впаяно.
    10. Четыре светодиода, подключены к тем-же выводам управления, куда подключена силовая нагрузка. Если силовая часть отсутствует (не впаяна), то светодиоды - просто светодиоды, при наличии силовой части - индикация включения каналов.
    11. Отсек для батарейки типа CR2032. Резервное питание часов или питание МК в режиме LowPowerRun.
    12. Десять свободных выводов GPIO PB0..PB7, PB10, PB11. Эти выводы можно использовать по своему усмотрению, впрочем как и остальные выводы от неиспользуемой периферии.

    Вроде ничего не забыл, вспомню - добавлю.

    Питание производится через USB разъем либо от выведенного разъема питания. Напряжение питания 5В (максимум 5.5В). На модуле установлен миниатюрный, но достаточно мощный степ-даун преобразователь-стабилизатор LTC3564 (корпус SOT23-5). Он работает на частоте выше 2МГц, поэтому размер индуктора минимальный. Мощности с большим запасом хватает для режима записи на SD карту.

    Имеются некоторые особенности схемы питания модуля. Питание всей платы и питание МК разделено диодом. Это сделано для возможности резервного питания МК при отключении внешнего питания от батареи. Батарея так-же подключена через два диода. Наличие двух диодов необходимо для понижения напряжения батареи, которое может засечь встроенный в МК детектор напряжения. В противном случае встроенный механизм МК не поймет, что внешнее питание отключено и произошел переход на резервное. Если обнаружен переход на резервное питание, то МК можно перевести в режим LPR либо Standby (сон). Для пробуждения МК используется подтягивающий резистор с ноги PA0-WKUP1, в обычном режиме этот вывод используется как сигнал SDA для дисплея.

    Питание аналоговой части МК производится через LC фильтр. У этого МК очень точные и быстрые АЦП, поэтому лишняя защита от помех не помешает.

    Собственно схема.
    Schematic Prints.jpg

    Первая сторона.
    side-1.jpg

    Вторая сторона.
    side-2.jpg

    Фото первой версии модуля.
    IMAG0567 (1).jpg


    Я еще продолжу/подправлю описание. А пока все. Жду, пока изготовятся печатные платы.
    DenisD, Buba_Chkhadze и radioengineer нравится это.
     
    : STM32L
  2. radioengineer

    radioengineer Администратор Команда форума

    Сообщения:
    3.550
    Симпатии:
    352
    Адрес:
    Алматы
    То что добавил микро USB это очень удобно, так как мини себя изжил похоже, у меня и шнурков не осталось уже:) Для дисплея выложишь библиотеку? Вроде дисплей подходящий для часиков, надо попробовать его в деле, если понравится, то сделаю маленькую платку с контроллером и датчиками для часов.
  3. radioengineer

    radioengineer Администратор Команда форума

    Сообщения:
    3.550
    Симпатии:
    352
    Адрес:
    Алматы
    Дроссель L1 какого номинала?
  4. UL7AAjr

    UL7AAjr В доску свой

    Сообщения:
    1.848
    Симпатии:
    313
    Род занятий:
    инженер-программист
    Адрес:
    Алма-Ата
    L1 по даташиту 2мкгн, но у меня таких нету. Поставил на 10 мкгн. Работает нормально. Я думаю и 22 мкгн можно поставить.
    L2 - любой по размеру какой подойдет или резистор на 50...150 ом. Это просто фильтр помех для питания АЦП.
    --- Сообщения объединены, 28 фев 2017 ---
    Да, еще конденсаторы С11, C12, C13 нужно впаивать только если на PB8, PB9, PC13 энкодер подключается или кнопки.
  5. radioengineer

    radioengineer Администратор Команда форума

    Сообщения:
    3.550
    Симпатии:
    352
    Адрес:
    Алматы
    Понял, спасибо, мне как раз вот-вот придет комплект дросселей разного номинала, но там тоже по моему от 10мкГн.
  6. radioengineer

    radioengineer Администратор Команда форума

    Сообщения:
    3.550
    Симпатии:
    352
    Адрес:
    Алматы
    USB разъем не встает в отверстия, похоже не верный футпринт.
  7. UL7AAjr

    UL7AAjr В доску свой

    Сообщения:
    1.848
    Симпатии:
    313
    Род занятий:
    инженер-программист
    Адрес:
    Алма-Ата
    Да, у меня оказались немного другие разъемы, передние лепестки пришлось разогнуть и припаять плашмя.
  8. radioengineer

    radioengineer Администратор Команда форума

    Сообщения:
    3.550
    Симпатии:
    352
    Адрес:
    Алматы
    Нашел в интернете интересный проект умных часов на таком же дисплейчике и #stm32
  9. UL7AAjr

    UL7AAjr В доску свой

    Сообщения:
    1.848
    Симпатии:
    313
    Род занятий:
    инженер-программист
    Адрес:
    Алма-Ата
    Приехали печатки с http://dirtypcbs.com под это дело. Качество отменное.
    IMAG0620 (1).jpg
    .ctor и radioengineer нравится это.
  10. UL7AAjr

    UL7AAjr В доску свой

    Сообщения:
    1.848
    Симпатии:
    313
    Род занятий:
    инженер-программист
    Адрес:
    Алма-Ата
    Готовое изделие.

    IMAG0624.jpg

    Силовую часть не впаивал, не знаю какой вариант понадобится.
    .ctor, radioengineer и Buba_Chkhadze нравится это.
  11. Buba_Chkhadze

    Buba_Chkhadze Модератор Команда форума

    Сообщения:
    4.313
    Симпатии:
    350
    Адрес:
    Талгар
    чот CR2032 не вижу на готовых
  12. UL7AAjr

    UL7AAjr В доску свой

    Сообщения:
    1.848
    Симпатии:
    313
    Род занятий:
    инженер-программист
    Адрес:
    Алма-Ата
    Бокс батарейный кончился:)
  13. UL7AAjr

    UL7AAjr В доску свой

    Сообщения:
    1.848
    Симпатии:
    313
    Род занятий:
    инженер-программист
    Адрес:
    Алма-Ата
    Собранный модуль, готовый к встраиванию в корпус.
    IMAG0626.jpg
    IMAG0628.jpg
    .ctor и Buba_Chkhadze нравится это.
  14. Buba_Chkhadze

    Buba_Chkhadze Модератор Команда форума

    Сообщения:
    4.313
    Симпатии:
    350
    Адрес:
    Талгар
    ц ц ц ... красота :)
  15. .ctor

    .ctor В доску свой

    Сообщения:
    715
    Симпатии:
    202
    Род занятий:
    парогенератор
    Адрес:
    Алматы
    Красота! тоже так хочу..
  16. UL7AAjr

    UL7AAjr В доску свой

    Сообщения:
    1.848
    Симпатии:
    313
    Род занятий:
    инженер-программист
    Адрес:
    Алма-Ата
    Разъем энкодера надо на другую сторону перепаять. Что-то сразу не сообразил.

    ну так не проблема-же. Только ты СТМ не любишь:)
  17. radioengineer

    radioengineer Администратор Команда форума

    Сообщения:
    3.550
    Симпатии:
    352
    Адрес:
    Алматы
    @UL7AAjr может сможешь помочь, не могу понять в чем проблема, пробую прошивать платку твою, все прошивается нормально через стлинк, как только начинаю отлаживать (из среды keil) выдает ошибку Cannot access memory и все отладка замораживается. Уже и программаторы различные пробовал и SWD и JTAG, ничего не меняется. Вот мои настройки проекта и отладчика:

    [​IMG]

    [​IMG]

    [​IMG]
  18. UL7AAjr

    UL7AAjr В доску свой

    Сообщения:
    1.848
    Симпатии:
    313
    Род занятий:
    инженер-программист
    Адрес:
    Алма-Ата
    Антон, вот даже не знаю, как помочь. Я из под Кеил не пробовал. Единственное, когда сталкивался с проблемами при отладке из IDE была высокая скорость обмена, пришлось "костыли" писать для настройки скорости. Но это было для MikroPascal.

    Попробуй шнур укоротить, может помочь.Там по умолчанию скорость очень высокая стоит.
  19. radioengineer

    radioengineer Администратор Команда форума

    Сообщения:
    3.550
    Симпатии:
    352
    Адрес:
    Алматы
    Пробовал разные программаторы и шнуры, и скорости минимальные ставил, пока не помогает. В интернете что-то тоже решение не нашел.
  20. UL7AAjr

    UL7AAjr В доску свой

    Сообщения:
    1.848
    Симпатии:
    313
    Род занятий:
    инженер-программист
    Адрес:
    Алма-Ата
    Попробуй контроллер на 24МГц запустить, на 32МГц надо дополнительные настройки в коде делать если они автоматом в либах не прописаны.

Поделиться этой страницей