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

Решено STM32F103 USART2 Remap

Тема в разделе "STM8/STM32", создана пользователем radioengineer, 3 апр 2017.

  1. radioengineer

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

    Сообщения:
    3.552
    Симпатии:
    352
    Адрес:
    Алматы
    Наткнулся на непонятную работу интерфейса USART2 после ремапа. Отправляю пакет в USART2, получаю на выходе один байт 0x00. После ремапа PD5 - USART2_TX, PD6 - USART2_RX. Инициализация GPIO:
    PHP:
    AFIO->MAPR |= AFIO_MAPR_USART2_REMAP;
    // PD5 - USART2_TX
    GPIOD->CRL &= ~(GPIO_CRL_MODE5 GPIO_CRL_CNF5);
    GPIOD->CRL |= GPIO_CRL_MODE5;            // Выход с макс. тактовой частотой 50МГц
    GPIOD->CRL |= GPIO_CRL_CNF5_1;            // Выход Alternate Function Push-pull

    // PD6 - USART2_RX
    GPIOD->CRL &= ~(GPIO_CRL_MODE6 GPIO_CRL_CNF6);
    GPIOD->CRL |= GPIO_CRL_CNF6_0;            // Floating input
    Тактирование включено, функции отправки пакета проверенные и работают на других интерфейсах USART. USART2 у меня в схеме используется как RS485 интерфейс, вот схема включения:
    usart2.jpg
    Кто с подобным сталкивался помогите разобраться?
     
    : stm32, usart, remap
  2. radioengineer

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

    Сообщения:
    3.552
    Симпатии:
    352
    Адрес:
    Алматы
    В общем с интерфейсом разобрался, припаялся напрямую к ножкам и подключился переходником USART на USB, интерфейс работает, но вот в RS485 получаем 0x00.
  3. UL7AAjr

    UL7AAjr В доску свой

    Сообщения:
    1.848
    Симпатии:
    313
    Род занятий:
    инженер-программист
    Адрес:
    Алма-Ата
    А терминатор хоть с одной стороны есть? А то без него всякие чудеса бывают. Например приемник поймает только 0x00 в момент переключения передача/чтение.

    PS: глянь еще сигналы осциллом на A и B выходах.
  4. _VN_

    _VN_ В доску свой

    Сообщения:
    488
    Симпатии:
    64
    Род занятий:
    Инженер
    Адрес:
    Алматы
    На схеме не показаны нагрузочные резисторы входной линии передачи приёмника. Значение резистора должно быть равно волновому сопротивлению линии передачи.
  5. radioengineer

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

    Сообщения:
    3.552
    Симпатии:
    352
    Адрес:
    Алматы
    Резисторы по 120 Ом с обоих сторон есть, поставил в программе задержку после переключения на передачу, по идее должно все успевать. Сегодня возьму осцил и буду дальше тыкаться.
  6. UL7AAjr

    UL7AAjr В доску свой

    Сообщения:
    1.848
    Симпатии:
    313
    Род занятий:
    инженер-программист
    Адрес:
    Алма-Ата
    То что A и B в линии перепутаны надеюсь исключено;)
  7. radioengineer

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

    Сообщения:
    3.552
    Симпатии:
    352
    Адрес:
    Алматы
    В общем проблема решилась заменой SN65HVD12DR на MAX3483, которая была под рукой. Микросхема была битая, заказывал с Ali, попробовал 3 штуки и все одинаково нерабочие:facepalm:
    Buba_Chkhadze нравится это.
  8. Buba_Chkhadze

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

    Сообщения:
    4.328
    Симпатии:
    352
    Адрес:
    Талгар
    однако блин... что то в последнее время дофига неликвида попадается
  9. UL7AAjr

    UL7AAjr В доску свой

    Сообщения:
    1.848
    Симпатии:
    313
    Род занятий:
    инженер-программист
    Адрес:
    Алма-Ата
    Я такие беру для этого дела, хорошие микры.
    https://www.aliexpress.com/item/ADM...OP-8-50pcs-lot-Free-shipping/32600156072.html

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