Найти в Дзене
Wizardino

Wizardino Starter - общее описание

Оглавление

Начнем с самого простого. Эта статья является первой из цикла, посвященного минимальному варианту платформы Wizardino - Wizardino Starter. Сразу оговорюсь, что все решения разработаны с расчетом на то, чтобы собрать, и даже изготовить плату мог человек, не отличающийся большой прямотой рук (тут я ориентировался на себя :))

Несмотря на то, что Starter является самым простым вариантом из всех, его возможности нельзя назвать излишне скромными. За основу разработки взят микроконтроллер STM32L151CBT6. Выбор был сделан по соотношению цена/возможности. Надо отметить, что даже в условиях текущего дикого повышения цен на электронику, этот чип вполне доступен по цене в пределах 400 рублей. Итак, что мы имеем за эти деньги?

Микроконтроллер

Корпус: LQFP 48 выводов. С учетом выводов, задействованных для подключения отладчика и USB нам остается 25 выводов. ИМХО - весьма и весьма неплохо.

Ядро: 32 бит ARM Cortex L1. Тактовая частота - 32 МГц. Напряжение питания - 1.8...3.6В. Рекомендуемое - 3.3В

Память: 128К Flash (используется для хранения программ) с функцией контроля ошибок, 16К оперативной памяти, 4К EEPROM с поддержкой ECC

Интерфейсы:

  • USB 2.0 FS device с полной аппаратной поддержкой (никаких дополнительных компонентов не требуется)
  • 3x USARTs (ISO 7816, IrDA)
  • 2x SPIs 16 Mbit/s
  • 2x I2Cs (SMBus/PMBus)

Периферия:

  • Многоканальный 12-bit ADC с производительностью до 1 миллиона семплов в секунду
  • 2 12-bit DAC
  • 2 компаратора

Таймеры:

10 16-бит таймеров, из которых 6 с поддержкой до 4-х PWM каналов каждый, 2 - 16-бит базовых таймеров и 2 - watchdog таймеры

Плата

Для того, чтобы добраться до всех этих богатств, была разработана весьма компактная плата (57.4 мм в длину, 30 мм в ширину). Что на этой плате есть, и что она умеет?

  • Собственно микроконтроллер, с необходимой обвязкой - конденсаторы на цепях питания и два кварца (8 МГц и 32 788 Гц) с необходимой обвязкой.
  • 5 контактный разъем MiniUSB для подключения к компьютеру
  • 8 контактный разъем для подключения внешнего отладчика. Поддерживается как JTAG, так и SWD режим. Для подключения стандартного отладчика ST-Link потребуется вспомогательная плата - переходник (схема будет дана здесь)
  • Светодиод - индикатор включения. Включается микроконтроллером, таким образом является индикатором успешного старта, а не просто наличия питания
  • Кнопка сброса
  • 3-х контактный джампер для выбора режима загрузки
  • Джампер для соединения шины 5В c контактом VBUS USB. При питании платы от USB джампер должен быть замкнут, при питании от внешнего источника - разомкнут
  • Два стабилизатора напряжения (на 5В и на 3.3В), соединенные каскадно. Это позволяет при питании от внешнего источника 6-24В получить оба востребованных напряжения - 5В и 3.3В
  • 28 выводов (по 14 выводов с каждой стороны платы) к которым подключено 25 GPIO выводов микроконтроллера, земля, питание 3.3В и 5В
Плата Wizardino Starter, вид сверху
Плата Wizardino Starter, вид сверху

Схема поддерживает питание как от USB, так и от внешнего источника постоянного тока 6-24В

Выводы, обозначенные как PAx и PBx соединены с соответствующими выводами микроконтроллера и могут использоваться как обычные GPIO. Кроме того, они могут быть сконфигурированы для выполнения следующих альтернативных функций (против часовой стрелки на рисунке):

PA0(*):

  1. Внешний тактирующий сигнал для таймера 2 (TIM2_CH1_ETR)
  2. Первый выходной канал таймера 5 (TIM5_CH1)
  3. USART2_CTS
  4. Wakeup сигнал 1 (WKUP1)
  5. Входной сигнал детектора взлома (RTC_TAMP). По этому сигналу происходит стирание критических данных из памяти для защиты от хакеров
  6. Первый входной канал ADC (ADC_IN0) - аналоговый режим
  7. Вход первого компаратора (COMP1_INP) - аналоговый режим

PA1(*):

  1. Выходной канал 2 таймеров 2 и 5 (TIM2_CH2/TIM5_CH2)
  2. USART2_RTS
  3. Второй входной канал ADC (ADC_IN1) - аналоговый режим
  4. Вход первого компаратора (COMP1_INP) - аналоговый режим
  5. Высокий уровень напряжения для операционного усилителя (OPAMP1_VINP) - аналоговый режим

PA2(*):

  1. Третий выходной канал таймеров 2 и 5 (TIM3_CH3/TIM5_CH3)
  2. Первый канал 9-го таймера (TIM9_CH1)
  3. USART2_TX
  4. Третий входной канал ADC (ADC_IN2)
  5. Вход первого компаратора (COMP1_INP)
  6. Низкий уровень напряжения для операционного усилителя (OPAMP1_VINM)

PA3:

  1. Четвертый выходной канал таймеров 2 и 5 (TIM3_CH4/TIM5_CH4)
  2. Второй канал 9-го таймера (TIM9_CH2)
  3. USART2_RX
  4. 4-й входной канал ADC (ADC_IN3)
  5. Вход первого компаратора (COMP1_INP)
  6. Выход операционного усилителя (OPAMP1_VOUT)

PA4:

  1. Сигнал NSS для SPI 1 и 3 (SPI1_NSS/SPI3_NSS)
  2. Сигнал WS для третьей шины I2S(I2S3_WS)
  3. USART2_CK
  4. 5-й входной канал ADC (ADC_IN4)
  5. Выход первого DAC (DAC_OUT1)
  6. Вход первого компаратора (COMP1_INP)

PA5:

  1. Внешний тактирующий сигнал для таймера 2 (TIM2_CH1_ETR)
  2. SPI1_SCK
  3. 6-й входной канал ADC (ADC_IN5)
  4. Выход второго DAC (DAC_OUT2)
  5. Вход первого компаратора (COMP1_INP)

PA6(*):

  1. Первый канал таймеров 3 и 10 (TIM3_CH1/TIM10_CH1)
  2. SPI1_MISO
  3. 7-й входной канал ADC (ADC_IN6)
  4. Вход первого компаратора (COMP1_INP)
  5. Высокий уровень напряжения для второго операционного усилителя (OPAMP2_VINP)

PA7(*):

  1. Второй канал таймера 3 (TIM3_CH2)
  2. Первый канал таймера 11 (TIM11_CH1)
  3. SPI1_MISO
  4. 8-й входной канал ADC (ADC_IN7)
  5. Вход первого компаратора (COMP1_INP)
  6. Низкий уровень напряжения для второго операционного усилителя (OPAMP2_VINM)

PB0:

  1. Третий канал третьего таймера (TIM3_CH3)
  2. 9-й входной канал ADC (ADC_IN8)
  3. Вход первого компаратора (COMP1_INP)
  4. Выход второго операционного усилителя (OPAMP2_VOUT)
  5. Выход "опорное напряжение" (VREF_OUT)

PB1(*):

  1. Четвертый канал третьего таймера (TIM3_CH4)
  2. 10-й входной канал ADC (ADC_IN9)
  3. Выход "опорное напряжение" (VREF_OUT)

PB2(*):

  1. BOOT1 Участвует в выборе источника запуска ПО

PB10(*):

  1. Третий канал второго таймера (TIM2_CH3)
  2. I2C2_SCL
  3. USART3_TX

PB11(*):

  1. Четвертый канал второго таймера (TIM2_CH4)
  2. I2C2_SDA
  3. USART3_RX

PB12(*):

  1. Первый канал десятого таймера (TIM10_CH1)
  2. I2C2_SMBA
  3. SPI2_NSS
  4. I2S2_WS
  5. USART3_CK
  6. 19-й вход ADC (ADC_IN18)
  7. Вход первого компаратора (COMP1_INP)

PB13(*):

  1. Первый канал 9-го таймера (TIM9_CH1)
  2. SPI2_SCK
  3. I2S2_CK
  4. USART3_CTS
  5. 20-й вход ADC (ADC_IN19)
  6. Вход первого компаратора (COMP1_INP)

PB14(*):

  1. Второй канал 9-го таймера (TIM9_CH2)
  2. SPI2_MISO
  3. USART3_RTS
  4. 21-й вход ADC (ADC_IN20)
  5. Вход первого компаратора (COMP1_INP)

PB15(*):

  1. Первый канал 11-го таймера (TIM11_CH1)
  2. SPI2_MOSI
  3. I2S2_SD
  4. 22-й вход ADC (ADC_IN21)
  5. Вход первого компаратора (COMP1_INP)
  6. Вход опорной частоты для точной работы календаря (RTC_REFIN)

PA8(*):

  1. USART1_CK
  2. Вывод внутренней тактовой частоты процессора (MCO)

PA9(*):

  1. USART1_TX

PA10(*):

  1. USART1_RX

PB5(*):

  1. Второй канал 3-го таймера (TIM3_CH2)
  2. I2C1_SMBA
  3. SPI1_MOSI
  4. SPI3_MOSI
  5. I2S3_SD
  6. Вход второго компаратора (COMP2_INP)

PB6(*):

  1. Первый канал 4-го таймера (TIM4_CH1)
  2. I2C1_SCL
  3. USART1_TX
  4. Вход второго компаратора (COMP2_INP)

PB7(*):

  1. Второй канал 4-го таймера (TIM4_CH2)
  2. I2C1_SDA
  3. USART1_RX
  4. Вход второго компаратора (COMP2_INP)
  5. Вход детектора падения напряжения питания (PVD_IN)

PB8(*):

  1. Третий канал четвертого таймера (TIM4_CH3)
  2. Первый канал 10-го таймера (TIM10_CH1)
  3. I2C1_SCL

PB9(*):

  1. Четвертый канал 4-го таймера (TIM4_CH4)
  2. Первый канал 11-го таймера (TIM11_CH1)
  3. I2C1_SDA

Выводы, помеченные (*) в описании, являются устойчивыми к входному напряжению 5В. Для выводов без такой отметки подача входного напряжения, превышающего напряжение питания микроконтроллера недопустима.

Таймеры TIM2, TIM3, TIM4, TIM5 поддерживают несколько каналов каждый. Эти каналы могут настраиваться независимо и служить как счетчиками внешних событий, так и для генерации ШИМ. Возможность настройки нескольких каналов на вход позволяет использовать данные таймеры в том числе для считывания сигналов энкодера, или для работы с 1-3 датчиками Холла.

Таймеры TIM9, TIM10, TIM11 устроены несколько проще. Однако, они тоже способны генерировать ШИМ.

Электрическая и монтажная схемы Wizardino Starter будут описаны с следующей статье