LINUX.ORG.RU

Правильно ли я подключил МК?

 


0

2

Хочу поэкспериментировать с МК. Для этого собрал следующую конструкцию:

Плата Baite STM32F030F4

Модуль зарядки TP4056

Далее у меня есть плата Nucleo L073RZ мануал (стр. 16). Я от этой платы отрезал верхний кусок по линии разреза, как я понимаю, там находится программатор. У этого программатора я вытащил два джампера CN2 чтобы переключить его на работу с внешним МК.

Подключил я это всё следующим образом:

1 провод от модуля зарядки TP4056 с пометкой «OUT +» к плате Baite, пину «header 1 pin 5 VIN»

1 провод от модуля зарядки TP4056 с пометкой «OUT -» к плате Baite, пину «header 1 pin 6 GND»

4 провода от Nucleo L073RZ коннектор CN4 пины VDD_TARGET, SWCLK, GND, SWDIO к Baite пинам SWD header pins 3V3, SWCLK, GND, SWDIO

2 провода от Nucleo L073RZ пины TX RX к Baite пинам Serial header pins RX TX

Вообще вчера я подключал всё почти так же, только питание у модуля зарядки брал похоже не с тех разъёмов. В итоге на Baite шло нефильтрованное питание из USB (примерно 4.5В показывал мультиметр). В целом всё заработало, программу я смог залить, но периодически программатор показывал, что соединения с контролером нет.

Сегодня я питание подключил как выше написал, теперь там 4.2В, как я понимаю, более стабильное. Также запитал USB-порт отдельным блоком питания. Пока вроде не отваливается. Вообще допускаю, что я плохо что-то припаял, т.к. паять я не умею, модуль питания и контролер шли без гребёнок, я эту гребёнку к ним припаял и соединил всё на проводках с квадратными разъёмами.

Вопрос 1 - вообще всё правильно?

Вопрос 2 - для чего нужен пин VDD_TARGET? Я сначала подумал, что от него можно запитать контролер, но потом почитав понял, что он питание не даёт а наоборот проверяет.

Вопрос 3 - для чего я подключил TX/RX? Я сам не знаю. Как-то через ST Link можно получить к нему доступ?

Вопрос 4. Можно ли куда-то подключить пин с программатора NRST? Я так понимаю, это удобная штука для перезагрузки контролера, но куда его подключить я не нашёл. Или он не нужен?

★★★★

Последнее исправление: vbr (всего исправлений: 5)

Вопрос 2 - для чего нужен пин VDD_TARGET? Я сначала подумал, что от него можно запитать контролер, но потом почитав понял, что он питание не даёт а наоборот проверяет.

Э... ты почитав понял или не понял?

slackwarrior ★★★★★
()
Ответ на: комментарий от slackwarrior

Ну там как-то смутно написали, что программатору нужно знать напряжение на контролере но я не понял, для чего это и что будет, если не подключать.

vbr ★★★★
() автор топика

Пока вроде всё работает, буду грешить на вчерашнее питание.

Ещё заметил, что без NRST как-то работает ресет. st-flash reset хоть и пишет WARN common.c: NRST is not connected но видно, что перезагружает контроллер. Видимо как-то софтовым способом.

Теперь осталось только поморгать диодом без HAL-а. Пока не получилось.

vbr ★★★★
() автор топика
Ответ на: комментарий от vbr

Для согласования уровней, скорее всего. Вроде в оригинальном st-link есть буферы и они как раз запитываются от VDD_TARGET, чтобы при питании цели от пониженного напряжения не вышел волшебный дым.

KivApple ★★★★★
()

Модуль зарядки TP4056

Сегодня я питание подключил как выше написал, теперь там 4.2В, как я понимаю, более стабильное.

Это какая-то дичь. Модуль зарядки ведь должен отключать заряд при снижении тока потребления. Если МК уйдёт в сон, его выключат. Плюс, там на плате линейный стабилизатор AMS1117, который делает 3,3В, но чтобы сделать 3,3В, ему нужно как минимут 4,6В. Сколько у вас сейчас напряжение у МК на ногах 3,3В?

Обычно при программировании VIN отключают, а питание подают на 3V3 с платы программатора.

И линейные стабилизаторы горят от обратного напряжения, нельзя одновременно подключать VIN и 3V3. Причём именно подключать, если на VIN подключить внешний БП, выдернуть его из розетки и подать напржяение на 3V3, то тока на заряд выходного конденсатора внешнего БП может хватить, чтобы убить AMS1117.

VDD_TARGET, ИМХО, красивая теория, на него нужно подать напряжение, на котором нужно вести программирование. Как-бы вывод 3V3 вашего МК. Но насколько это реализовано в разных моделях программаторов, там может вобеще этот вывод в воздухе болтается.

3. У вас при подключении программтора появляется последовательный порт (в dmesg). Если появляется, это и есть TX/RX.

4. Откройте даташит и посмотрите где Reset у МК, потом посмотрите куда идёт этот вывод на плате. Так, без NRST прошивается, но не всегда, допустим, определили SWDIO как GPIO. Если на вашей плате NRST не выведен на гребёнку, то это как-то неправильно.

mky ★★★★★
()
Ответ на: комментарий от mky

Модуль зарядки TP4056

Сегодня я питание подключил как выше написал, теперь там 4.2В, как я понимаю, более стабильное.

Это какая-то дичь. Модуль зарядки ведь должен отключать заряд при снижении тока потребления. Если МК уйдёт в сон, его выключат.

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

Плюс, там на плате линейный стабилизатор AMS1117, который делает 3,3В, но чтобы сделать 3,3В, ему нужно как минимут 4,6В. Сколько у вас сейчас напряжение у МК на ногах 3,3В?

На выходе у модуля зарядки ровно 4В показывает, когда всё работает. На ногах у микросхемы ровно 3В.

Хотя я заметил один интересный спецэффект. У меня USB подключены через разветвитель. У этого разветвителя есть отдельные кнопки включения/выключения для каждого порта. Очень удобно перезагружать что-то не вытаскивая. Так вот, если у меня в разветвитель подключен программатор (соединенный с платой), то всё работает. Даже если программатор отключен кнопкой разветвителя. При этом если штекер программатора из USB-разветвителя вытащить, то схема работать перестаёт. Модуль заряда моргает красной лампой, МК вообще не моргает, будто питание отключено.

Да, напряжения явно не хватает, надо будет менять схему питания. Взял что под рукой было. Поищу полноценный блок питания.

Может ли от низкого напряжения что-то перегореть или в худшем случае просто МК будет отключаться/глючить?

В принципе в даташите на МК написано, что VDD Standard operating voltage от 2.4 до 3.6. Поэтому, наверное, 3.0 это приемлемо.

Обычно при программировании VIN отключают, а питание подают на 3V3 с платы программатора.

Я не нашёл на моём программаторе, где брать питание. Можно, конечно, подпаяться где-то, но как-то это неправильно.

  1. Откройте даташит и посмотрите где Reset у МК, потом посмотрите юкуда идёт этот вывод на плате. Так, без NRST прошивается, но не всегда, допустим, определили SWDIO как GPIO. Если на вашей плате NRST не выведен на гребёнку, то это как-то неправильно.

Даташита у меня нет. Есть эта схема, судя по ней NRST не выведена никуда. Ладно, в принципе уже не актуально, софтом как-то оно умеет ресетать и без пина.

vbr ★★★★
() автор топика
Последнее исправление: vbr (всего исправлений: 2)
Ответ на: комментарий от vbr

МК вообще не моргает, будто питание отключено.

Дак измерьте.

Даташита у меня нет.

Даташит на микроконтроллер, а не на отладочную плату. Пока не BGA, мультиметр и тонкие щупы спокойно позволяют прозвонить всё плату. И это норма изучать что там китайцы наразводили — могут неправильно подписать выводы платы, могут светодиод на другую ногу повесить и т.д.

У этого модуля зарядки есть отдельные выводы на аккумулятор и на потребителя.

Как и у всех контроллеров лит. акумов. Он работает как ИБП, но ИБП без аккумулятора работает плохо. Я вобще не понял, зачем вам какой-то блок питания, вам на VIN можно 5В прямо с USB подать, главное полярность не перепутать. И на большинстве компов USB спокойно выдаёт 5В с любым (разумным) током без всякого согласования. Хотя вашем МК и 100 мА хватит.

Что касается отключения при отключении штекера программатора, то, скорее всего это из-за отсутствия аккумулятора у контроллера заряда. Пока штерекр подключён, получается у МК две земли, часть тока идёт через контроллер, а часть через программатор. Возможно из-за этого контроллер не понимает, что аккумулятора нет и нет тока заряда. Точно без схемы не сказать.

STM может работать от 3 В, но желательно, чтобы уровни сигналов МК и программатора совпадали, без буферных микросхем это означает одинаковое напряжение питания. Сгорит/не сгорит это даташит надо смотреть, там по идее указывается насколько входной сигнал может быть больше напряжения питания. Вроде, у него эти ноги 5 В устойчивые, что по их данным означает VDD+4 В. То есть не сгорит, а вот глючить при прошивке может, хотя не при 3В<->3,3В, а, допустим, 2,4В<->3,4В.

Ну и отдельно на каких-то форумах были жалобы, что китайские МК (видимо не клоны, а отбраковка) не любят пониженное напряжение и запись во флеш при пониженом напряжении.

mky ★★★★★
()
Ответ на: комментарий от vbr

Здесь https://blog.kvv213.com/2020/01/kak-proshit-chip-stm32/ написано, что на вашем программаторе на левом пине JP1 (если снять перемычку) находится 3,3 В и его предлагается использовать для запитки МК.

mky ★★★★★
()
Ответ на: комментарий от mky

Дак измерьте.

Я когда измерял, вроде показывало 4В, но скакало, может быть у меня руки дрожали, а может быть нет.

Я вобще не понял, зачем вам какой-то блок питания, вам на VIN можно 5В прямо с USB подать, главное полярность не перепутать. И на большинстве компов USB спокойно выдаёт 5В с любым (разумным) током без всякого согласования. Хотя вашем МК и 100 мА хватит.

Ну это надо как-то шнур раздербанивать или разъём искать и распаивать, мне показалось, что проще готовую плату использовать. Я пытался сначала к этой плате подключаться спереди, там есть два выхода, которые, как я понял, напрямую к USB подключены (то бишь плата бы просто вхолостую работала бы) и в принципе оно у меня заработало, но, как писал в первом сообщении, периодически отваливалось, я подумал, что в USB питание нестабильное.

vbr ★★★★
() автор топика
Ответ на: комментарий от mky

Спасибо большое, действительно там ровнёхонько 3.3 V, это всё сильно упрощает.

Я правильно понимаю, что если контролер питается от программатора, то никаких согласований напряжений уже точно не нужно и пин VDD_TARGET можно смело оставлять неподключенным?

vbr ★★★★
() автор топика