Программирование МК STM32

 

 

 

Помечено: ,

В этой теме 111 ответов, 58 участников, последнее обновление  kvanton 1 месяц, 2 нед. назад.

Просмотр 7 сообщений - с 106 по 112 (из 112 всего)
  • Автор
    Сообщения
  • #17829

    Alexrusneft
    Участник

    Здравствуйте, кто нибудь пробовал повторить урок №96, подключение LAN8720 к STM32F4Disc. Я повторил урок, но нет результата. Уже несколько дней пытаюсь разобраться в чём дело, но пока что безрезультатно. Использую в проекте ту же плату с LAN8720 что и в уроке. Готовый проект с урока так же не работает. PHY адрес пробовал и 0 и 1, отключал DHCP и статичный адрес вбивал, в общем так и не удалось запустить передачу данных. Помогите пожалуйста.

    #18383

    boichonoc
    Участник

    Доброго времени суток! Кто-то работал с GSM модулями SIM800 и ему подобными? Конкретней SIM7600. Какая последовательность команд для установки связи с мобильным интернетом? И как осуществить передачу данных между МК и с данным модулем и сервером? (Конечный результат, прошивка МК STM32 удаленно, через интернет)

    #18544

    A.Tim.
    Участник

    Нужна консультация (Возмездно) по 7-ому уроку на STM32. Вкратце: дисплей выводит символы, если вывожу их поштучно. Если пытаюсь вывести строку, то дисплей выводит случайную букву/цифру из строки, вместо самой строки. Код — в соответствии с Вашим, за тем исключением, что у меня другой контроллер с тактовой частотой 80 МГц и он хоть что-то стал выводить на дисплей при задержке 50-100 в функции delay(void), а не 1000. Т.е. я застрял на середине седьмого урока.

    Работаю в Atollic True Studio

    #18651

    APB1
    Участник

    Здравствуйте. Помогите, пожалуйста, если знаете ответ на мой вопрос.
    Необходимо генерировать сигнал с помощью таймера. Линия подтянута к питанию, сигнал инверсный. Нужно притягивать линию к земле на заданное количество тиков таймера, а потом отпускать на какое-то время, после чего сигнал повторяется. Это как инверсный ШИМ.
    Я думал, что это так же легко, как настроить прямой ШИМ. Но нет:
    <div class=»spoilerui»>PWM mode 1
    — In up-counting, channelx is active as long as CNT< CCRx, otherwise it is inactive
    — In down-counting, channelx is inactive as long as CNT> CCRx, otherwise it is active.
    PWM mode 2
    — In up-counting, channelx is inactive as long as CNT < CCRx, otherwise it is active
    — In down-counting, channelx is active as long as CNT > CCRx, otherwise it is inactive.</div>
    Запускаю в режиме единичного сигнала, в итоге, как ни настраиваю PWM_mode и направление счетчика, а в конце передачи сигнала таймер притягивает ножку к земле. А мне важно, чтобы она оставалась в поднятом состоянии.

    Протокол похож на 1Wire ot Dallas Semiconductor
    Примерная диаграмма протокола

    #19166

    Sergey1985
    Участник

    Доброго времени суток. Очень хотелось чтобы на сайте была затронута тема ассемблерных вставок в особенности для STM32. Или вот еще вопросик. Как подключить встроенные функции C++ команд ассемблера. Например __ror.

    #19321

    idushy
    Участник

    Приветствую уважаемый Narod Stream. В одном коментарии к вашему видео задали вопрос, который меня тоже волнует.
    «Что-то с ходу не нашел:
    Есть три канала АЦП, регуляр мод, опрашивание идет по очереди и такой вопрос, когда забираем значение где узнать с какого канала оно поступило?»
    Вы ответили так.
    Триггеры используйте. Поставьте триггеры на каждый канал и обрабатывайте события.
    Если не трудно укажите где про это почитать посмотреть. Ну а если вы это освещали это было бы вообще идеально)

    #19322

    kvanton
    Участник

    Всем привет, начал недавно STM32 осваивать (до этого были pic12-18/arduino/raspberry) и столкнулся с интересной проблемой:

    Настроил GPIO как Input Pull-Up но при считывании получаю 0.

    Условия:
    Несколько других также настроенных портов (Input Pull-Up) при этом посажены на землю (на один порт Output Open-Drain), а непосредственно перед считыванием переключаю другой порт Output Open-Drain Pull-Up с 1 на 0.
    При этом, если поставить задержку (пробовал 1мс) после переключения OutPut и считыванием Input получаю — 1, как и должно быть. Порты по схеме ни как не связанны — пробовал вообще отключать input порт от схемы (матрица кнопок) ситуация не меняется.

    Работаю с китайской платой на stm32f103c8t6 (ардуино подобная) и библиотекой LL. Скорость порта пробовал разную — результат один.

    Сможет кто-то объяснить или хотя бы намекнуть (куда копать, что почитать) почему такой эффект возможен?
    Во всяких даташитах/аппликейшн ноте вроде ни чего интересного, зацепила только аббревиатура SSO ( simultaneous switching output) в разделе Adapt GPIO speed (в AN на GPIO) — но понять глубину этой фразы и контекста с ходу не получилось (возможно из-за непонимания каких-то базовых моментов)

    Хотя и проблема в принципе решена (задержка допустима) — но хотелось бы разобраться в причинах.

    Буду благодарен любым вариантам, может что-то натолкнет на правильные мысли.

  • Автор
    Сообщения
  • #17829

    Alexrusneft
    Участник
    • Оффлайн

    Здравствуйте, кто нибудь пробовал повторить урок №96, подключение LAN8720 к STM32F4Disc. Я повторил урок, но нет результата. Уже несколько дней пытаюсь разобраться в чём дело, но пока что безрезультатно. Использую в проекте ту же плату с LAN8720 что и в уроке. Готовый проект с урока так же не работает. PHY адрес пробовал и 0 и 1, отключал DHCP и статичный адрес вбивал, в общем так и не удалось запустить передачу данных. Помогите пожалуйста.

    #18383

    boichonoc
    Участник
    • Оффлайн

    Доброго времени суток! Кто-то работал с GSM модулями SIM800 и ему подобными? Конкретней SIM7600. Какая последовательность команд для установки связи с мобильным интернетом? И как осуществить передачу данных между МК и с данным модулем и сервером? (Конечный результат, прошивка МК STM32 удаленно, через интернет)

    #18544

    A.Tim.
    Участник
    • Оффлайн

    Нужна консультация (Возмездно) по 7-ому уроку на STM32. Вкратце: дисплей выводит символы, если вывожу их поштучно. Если пытаюсь вывести строку, то дисплей выводит случайную букву/цифру из строки, вместо самой строки. Код — в соответствии с Вашим, за тем исключением, что у меня другой контроллер с тактовой частотой 80 МГц и он хоть что-то стал выводить на дисплей при задержке 50-100 в функции delay(void), а не 1000. Т.е. я застрял на середине седьмого урока.

    Работаю в Atollic True Studio

    #18651

    APB1
    Участник
    • Оффлайн

    Здравствуйте. Помогите, пожалуйста, если знаете ответ на мой вопрос.
    Необходимо генерировать сигнал с помощью таймера. Линия подтянута к питанию, сигнал инверсный. Нужно притягивать линию к земле на заданное количество тиков таймера, а потом отпускать на какое-то время, после чего сигнал повторяется. Это как инверсный ШИМ.
    Я думал, что это так же легко, как настроить прямой ШИМ. Но нет:
    <div class=»spoilerui»>PWM mode 1
    — In up-counting, channelx is active as long as CNT< CCRx, otherwise it is inactive
    — In down-counting, channelx is inactive as long as CNT> CCRx, otherwise it is active.
    PWM mode 2
    — In up-counting, channelx is inactive as long as CNT < CCRx, otherwise it is active
    — In down-counting, channelx is active as long as CNT > CCRx, otherwise it is inactive.</div>
    Запускаю в режиме единичного сигнала, в итоге, как ни настраиваю PWM_mode и направление счетчика, а в конце передачи сигнала таймер притягивает ножку к земле. А мне важно, чтобы она оставалась в поднятом состоянии.

    Протокол похож на 1Wire ot Dallas Semiconductor
    Примерная диаграмма протокола

    #19166

    Sergey1985
    Участник
    • Оффлайн

    Доброго времени суток. Очень хотелось чтобы на сайте была затронута тема ассемблерных вставок в особенности для STM32. Или вот еще вопросик. Как подключить встроенные функции C++ команд ассемблера. Например __ror.

    #19321

    idushy
    Участник
    • Оффлайн

    Приветствую уважаемый Narod Stream. В одном коментарии к вашему видео задали вопрос, который меня тоже волнует.
    «Что-то с ходу не нашел:
    Есть три канала АЦП, регуляр мод, опрашивание идет по очереди и такой вопрос, когда забираем значение где узнать с какого канала оно поступило?»
    Вы ответили так.
    Триггеры используйте. Поставьте триггеры на каждый канал и обрабатывайте события.
    Если не трудно укажите где про это почитать посмотреть. Ну а если вы это освещали это было бы вообще идеально)

    #19322

    kvanton
    Участник
    • Оффлайн

    Всем привет, начал недавно STM32 осваивать (до этого были pic12-18/arduino/raspberry) и столкнулся с интересной проблемой:

    Настроил GPIO как Input Pull-Up но при считывании получаю 0.

    Условия:
    Несколько других также настроенных портов (Input Pull-Up) при этом посажены на землю (на один порт Output Open-Drain), а непосредственно перед считыванием переключаю другой порт Output Open-Drain Pull-Up с 1 на 0.
    При этом, если поставить задержку (пробовал 1мс) после переключения OutPut и считыванием Input получаю — 1, как и должно быть. Порты по схеме ни как не связанны — пробовал вообще отключать input порт от схемы (матрица кнопок) ситуация не меняется.

    Работаю с китайской платой на stm32f103c8t6 (ардуино подобная) и библиотекой LL. Скорость порта пробовал разную — результат один.

    Сможет кто-то объяснить или хотя бы намекнуть (куда копать, что почитать) почему такой эффект возможен?
    Во всяких даташитах/аппликейшн ноте вроде ни чего интересного, зацепила только аббревиатура SSO ( simultaneous switching output) в разделе Adapt GPIO speed (в AN на GPIO) — но понять глубину этой фразы и контекста с ходу не получилось (возможно из-за непонимания каких-то базовых моментов)

    Хотя и проблема в принципе решена (задержка допустима) — но хотелось бы разобраться в причинах.

    Буду благодарен любым вариантам, может что-то натолкнет на правильные мысли.

Просмотр 7 сообщений - с 106 по 112 (из 112 всего)

Для ответа в этой теме необходимо авторизоваться.