Форум Микро-Чип
Поиск и заказ электронных компонентов
 

Вернуться   Форум Микро-Чип > Микроконтроллеры других производителей

Микроконтроллеры других производителей Все, что касается микроконтроллеров и НЕ подошло в раздел Microchip.

Ответ
 
Опции темы Опции просмотра
Старый 20.07.2020, 15:16   #1
Марк
Senior Member
 
Аватар для Марк
 
Регистрация: 18.08.2007
Адрес: Московская область
Возраст: 61
Сообщений: 3,389
Вес репутации: 4234/124
Марк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond repute
По умолчанию F051 цепочка TIM16_CH1 => DMAch4 => UART2Tx

Диспозиция:
По завершению приема пакета в обработчике UART2Rx запускается пакет ответа через TIM16_CH1 => DMAch4 => UART2Tx
В регистре SYSCFG->CFGR1 ремаппирую на 4 канал ДМА в качестве реквестов TIM16_CH1.
Таймер инициализирую с требуемым интервалом следования байт. Включаю прерывания таймера в NVIC, поднимаю бит разрешения реквестов от этого таймера в ДМА в TIM16->DIER.
Когда требуется включить передачу пакета обнуляю таймер, включаю канал ДМА, запускаю таймер.
ОДИН РАЗ все отлично срабатывает, пакет генерируется, код влетает в обработчик ДМА по каналу 4. В обработчике я выключаю канал ДМА, останавливаю таймер и ухожу на ожидание завершения приема, где все должно повториться.
В перезапуск ДМА код попадает, но ничего более в УАРТ не засылается и в обработчик ДМА, естественно, код так же не попадает.
Вопрос естественен: ЧЯДНТ?
Спасибо.
Марк на форуме   Ответить с цитированием
Старый 20.07.2020, 17:34   #2
besogon
Senior Member
 
Регистрация: 12.07.2012
Возраст: 33
Сообщений: 2,519
Вес репутации: 4677/102
besogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond repute
По умолчанию Re: F051 цепочка TIM16_CH1 => DMAch4 => UART2Tx

Марк
у Вас один раз работает?
сравните состояние регистров периферии до и после.

Если считаете что у Вас есть особенности в коде - приведите код.
besogon вне форума   Ответить с цитированием
Старый 20.07.2020, 17:59   #3
Марк
Senior Member
 
Аватар для Марк
 
Регистрация: 18.08.2007
Адрес: Московская область
Возраст: 61
Сообщений: 3,389
Вес репутации: 4234/124
Марк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond repute
По умолчанию Re: F051 цепочка TIM16_CH1 => DMAch4 => UART2Tx

Состояние регистров идентично. Инициализация в одном месте до основного цикла.
Марк на форуме   Ответить с цитированием
Старый 20.07.2020, 18:06   #4
besogon
Senior Member
 
Регистрация: 12.07.2012
Возраст: 33
Сообщений: 2,519
Вес репутации: 4677/102
besogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond repute
По умолчанию Re: F051 цепочка TIM16_CH1 => DMAch4 => UART2Tx

Марк
у Вас случайно overrun нет?
besogon вне форума   Ответить с цитированием
Старый 20.07.2020, 19:54   #5
Марк
Senior Member
 
Аватар для Марк
 
Регистрация: 18.08.2007
Адрес: Московская область
Возраст: 61
Сообщений: 3,389
Вес репутации: 4234/124
Марк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond repute
По умолчанию Re: F051 цепочка TIM16_CH1 => DMAch4 => UART2Tx

overrun на предатчике, да еще и с ДМА?
Марк на форуме   Ответить с цитированием
Старый 20.07.2020, 20:12   #6
besogon
Senior Member
 
Регистрация: 12.07.2012
Возраст: 33
Сообщений: 2,519
Вес репутации: 4677/102
besogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond repute
По умолчанию Re: F051 цепочка TIM16_CH1 => DMAch4 => UART2Tx

Марк
Судя по всему я не смог вникнуть в Ваш алгоритм.

Напишите по шагам что Вы делаете и на каком шаге у Вас происходит не то, что Вы ожидаете.
besogon вне форума   Ответить с цитированием
Старый 20.07.2020, 21:37   #7
Марк
Senior Member
 
Аватар для Марк
 
Регистрация: 18.08.2007
Адрес: Московская область
Возраст: 61
Сообщений: 3,389
Вес репутации: 4234/124
Марк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond repute
По умолчанию Re: F051 цепочка TIM16_CH1 => DMAch4 => UART2Tx

1. Приемник В ОБРАБОТЧИКЕ (без ДМА) принимает пакет и ставит флаг требования передачи.
2. В основном цикле - while(1) - по флагу запускается передача по ДМА. Для чего очищается таймер, включается канал ДМА, запускается таймер.
3. Через некоторое (гораздо больше, чем пакет передачи) время принимается новый пакет и все повторяется.
Всё. Остальное я написал ранее.
Установка бряка на лету в обработчик приемника в точке завершения пакета, а так же в функции запускающей передачу всегда приводит к останову. То есть код нормально принимает все пакеты и выходит на запуск передачи. В обработчик ДМА код попадает только если бряк поставить до запуска. Это же подтверждает осциллограмма. Формируется только первый пакет передачи.
Марк на форуме   Ответить с цитированием
Старый 20.07.2020, 23:37   #8
besogon
Senior Member
 
Регистрация: 12.07.2012
Возраст: 33
Сообщений: 2,519
Вес репутации: 4677/102
besogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond repute
По умолчанию Re: F051 цепочка TIM16_CH1 => DMAch4 => UART2Tx

Марк
Так много написано и ничего не понятно.

В итоге у Вас есть функция, которая стартует передачу по uart с помощью DMA и она у Вас запускается только один раз?

Вы пробовали без установки флага в прерывании свою транзакцию из некого while(1) дважды запускать?
besogon вне форума   Ответить с цитированием
Старый 20.07.2020, 23:44   #9
besogon
Senior Member
 
Регистрация: 12.07.2012
Возраст: 33
Сообщений: 2,519
Вес репутации: 4677/102
besogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond repute
По умолчанию Re: F051 цепочка TIM16_CH1 => DMAch4 => UART2Tx

Отладьте функцию, которая у Вас передает данные. То что по флагу передает данные. Отправляйте тестовый пакет вида 12345...n.
besogon вне форума   Ответить с цитированием
Старый 22.07.2020, 10:54   #10
Марк
Senior Member
 
Аватар для Марк
 
Регистрация: 18.08.2007
Адрес: Московская область
Возраст: 61
Сообщений: 3,389
Вес репутации: 4234/124
Марк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond repute
По умолчанию Re: F051 цепочка TIM16_CH1 => DMAch4 => UART2Tx

Разобрался...
Как говорится - чем дальше в лес, тем толще партизаны...
Не ожидал я такого подвоха и ответ на мой вопрос для работающих с F0 должен был быть очевиден.
Короче.
В 32F0, в отличии от F4 при режиме DMA One Shot счетчик транзакций нужно апдейтить РУКАМИ. То есть тупо восстанавливать значение регистра перед КАЖДЫМ пуском.
Выглядит полным идиотизмом, поскольку в циркуляре (циклический режим) счетчик апдейтится сам.
Если есть техническая возможность, WHY SO?
Марк на форуме   Ответить с цитированием
Старый 22.07.2020, 11:40   #11
besogon
Senior Member
 
Регистрация: 12.07.2012
Возраст: 33
Сообщений: 2,519
Вес репутации: 4677/102
besogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond repute
По умолчанию Re: F051 цепочка TIM16_CH1 => DMAch4 => UART2Tx

Марк
Не ожидал я такого подвоха и ответ на мой вопрос для работающих с F0 должен был быть очевиден. - Вы сказали, что проверили значение регистров.
besogon вне форума   Ответить с цитированием
Старый 22.07.2020, 11:44   #12
Марк
Senior Member
 
Аватар для Марк
 
Регистрация: 18.08.2007
Адрес: Московская область
Возраст: 61
Сообщений: 3,389
Вес репутации: 4234/124
Марк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond repute
По умолчанию Re: F051 цепочка TIM16_CH1 => DMAch4 => UART2Tx

Проверил, но до 2 пуска. Я полагал, что после пуска регистр проапдейтится. Так это должно быть.
Марк на форуме   Ответить с цитированием
Старый 22.07.2020, 11:50   #13
besogon
Senior Member
 
Регистрация: 12.07.2012
Возраст: 33
Сообщений: 2,519
Вес репутации: 4677/102
besogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond repute
По умолчанию Re: F051 цепочка TIM16_CH1 => DMAch4 => UART2Tx

Марк
Так это должно быть. - в Вашем воображаемом мире.
besogon вне форума   Ответить с цитированием
Старый 22.07.2020, 12:00   #14
Марк
Senior Member
 
Аватар для Марк
 
Регистрация: 18.08.2007
Адрес: Московская область
Возраст: 61
Сообщений: 3,389
Вес репутации: 4234/124
Марк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond repute
По умолчанию Re: F051 цепочка TIM16_CH1 => DMAch4 => UART2Tx

Причем тут воображение?
В таких раскладах я читаю всегда счетчик, а пишу в буфер. И я не могу проверить буфер. Только косвенно.
Что я и сделал.
Так что с моим миром все в порядке.
Марк на форуме   Ответить с цитированием
Старый 29.07.2020, 05:19   #15
Марк
Senior Member
 
Аватар для Марк
 
Регистрация: 18.08.2007
Адрес: Московская область
Возраст: 61
Сообщений: 3,389
Вес репутации: 4234/124
Марк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond repute
По умолчанию Re: F051 цепочка TIM16_CH1 => DMAch4 => UART2Tx

Немного с другой стороны, но о том же.
Немного меняем диспозицию.
Тоже UART.
1. 9-битный режим. ПРИЕМНИК.
2. Принимаем пакет из 66 байт, где первый байт в пакете - адресный с 1 в старшем 9-м бите.
3. Исходное состояние. Прерывания по приемнику разрешены, DMA по приемнику остановлен.
4. Обработчик (ISR UART Rx). Отлавливаем 1 в девятом бите и свой адрес в младшей части байта. Как только поймали - запрещаем прерывания, запускаем DMA на оставшиеся 65 байт в пакете и разрешаем прерывания по DMA выбранного канала.
5. В силу некоторых причин, массив назначения DMA uint8_t (так далее удобнее).
Проблема.
DMA цепляет первым принятый по прерыванию байт. Хотя флаг, естественно, сбрасывается второй строкой в обработчике.
Ну и традиционный вопрос: ЧЯДНТ?
Удлинить на один байт массив - не предлагать. Это уже сделано и все, естественно, работает. Вопрос о ПРИНЦИПЕ. Почему так?
Марк на форуме   Ответить с цитированием
Старый 03.08.2020, 17:08   #16
Марк
Senior Member
 
Аватар для Марк
 
Регистрация: 18.08.2007
Адрес: Московская область
Возраст: 61
Сообщений: 3,389
Вес репутации: 4234/124
Марк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond repute
По умолчанию Re: F051 цепочка TIM16_CH1 => DMAch4 => UART2Tx

Цитата:
Сообщение от Марк Посмотреть сообщение
Удлинить на один байт массив
Практически завершил проект на F407 и обнаружил две занятные вещи.
При работе передатчика UART через DMA при входе в прерывание по TC DMA передается еще два символа (видимо один из сдвигового регистра и один из буфера передатчика). В 33-их дспиках - после прерывания передается только один символ. То есть при работе на RS485 для формирования сигнала управления передатчиком драйвера шины нужно формировать ДВА фиктивных символа на конце пакета, тогда выключение драйвера в прерывании по DMA как раз создаст нужный строб на целевой пакет.
Вторая занятная вещь. Поток ДМА должен реквестится и пробрасывать данные только в пределах ОДНОЙ ШИНЫ (APB1 или APB2). Например, нельзя реквестить таймером TIM5 (APB1) передатчик USART6 (APB2), а таймером TIM3 можно реквестить передатчик USART3 (оба на APB1).
Марк на форуме   Ответить с цитированием
Старый 03.08.2020, 17:52   #17
besogon
Senior Member
 
Регистрация: 12.07.2012
Возраст: 33
Сообщений: 2,519
Вес репутации: 4677/102
besogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond repute
По умолчанию Re: F051 цепочка TIM16_CH1 => DMAch4 => UART2Tx

Марк
При работе передатчика UART через DMA при входе в прерывание по TC DMA передается еще два символа - dma прерывание происходит, когда все зашло в модуль.
соответственно, потом модуль досылает.
это не особенность контроллера - это свойство модуля.
в pic32m емкость буфера - 8. соответственно будет досылать вплоть до 9.

хотите прерывание когда всё отправлено? делайте прерывание по модуль закончил отправку.
besogon вне форума   Ответить с цитированием
Старый 03.08.2020, 20:56   #18
Марк
Senior Member
 
Аватар для Марк
 
Регистрация: 18.08.2007
Адрес: Московская область
Возраст: 61
Сообщений: 3,389
Вес репутации: 4234/124
Марк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond repute
По умолчанию Re: F051 цепочка TIM16_CH1 => DMAch4 => UART2Tx

Особенности модуля - это особенности семейства МК. И наличие буфера ФИФО не означает, что при работе модуля через ДМА этот буфер включен. В дсПИК33 УАРТы тоже имеют четыре уровня ФИФО, только с ДМА этот буфер не работает. Патамушта он в режиме ДМА вообще не нужен.
Не исключено, что и в пик32 примерно так же. Завтра полюбопытствую.
Марк на форуме   Ответить с цитированием
Старый 03.08.2020, 20:59   #19
Марк
Senior Member
 
Аватар для Марк
 
Регистрация: 18.08.2007
Адрес: Московская область
Возраст: 61
Сообщений: 3,389
Вес репутации: 4234/124
Марк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond repute
По умолчанию Re: F051 цепочка TIM16_CH1 => DMAch4 => UART2Tx

Цитата:
Сообщение от besogon Посмотреть сообщение
хотите прерывание когда всё отправлено? делайте прерывание по модуль закончил отправку.
Не так все просто. В СТМ32 прерывания конкурируют с реквестами ДМА.
И нужно на лету переобувать модуль. Оно надо?
Проще передать фиктивный байт или два.
Можно даже выключить и включить модуль, сбросив сдвиговый регистр после завершения строба драйвера.
Марк на форуме   Ответить с цитированием
Старый 03.08.2020, 21:21   #20
besogon
Senior Member
 
Регистрация: 12.07.2012
Возраст: 33
Сообщений: 2,519
Вес репутации: 4677/102
besogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond repute
По умолчанию Re: F051 цепочка TIM16_CH1 => DMAch4 => UART2Tx

Марк
Патамушта он в режиме ДМА вообще не нужен. - буфер нужен для увеличения пропускной способности.
без буфера пропускная способность больше зависит от того, получит или не получит DMA шину. со всеми вытекающими.

Проще передать фиктивный байт или два. - просто какой-то странный костыль, в который я не буду вникать.
besogon вне форума   Ответить с цитированием
Старый 03.08.2020, 21:38   #21
HHIMERA
Senior Member
 
Регистрация: 10.06.2008
Возраст: 59
Сообщений: 2,942
Вес репутации: 4193/116
HHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond repute
По умолчанию Re: F051 цепочка TIM16_CH1 => DMAch4 => UART2Tx

Цитата:
Сообщение от besogon Посмотреть сообщение
просто какой-то странный костыль, в который я не буду вникать.
Пусть читает даташит до... а не после...

Даже по поводу двух ДМА... насколько помню... там проблема была только с юзанием ЖПИО...
А так... да... Рекомендации по периферии носят общий характер... и не описывают всех случаев... Меня это тоже донимало... когда начинал... Потом понял... там просто невозможно расписать все случаи жизни... и всё это ложится на плечи разработчика... Даже порядок инита периферии... может давать различный результат в работе...
Поэтому... всегда рекомендую... юзать ЛА... во избежание...
__________________
"Я не даю готовых решений, я заставляю думать!"(С)
HHIMERA вне форума   Ответить с цитированием
Старый 04.08.2020, 10:01   #22
Марк
Senior Member
 
Аватар для Марк
 
Регистрация: 18.08.2007
Адрес: Московская область
Возраст: 61
Сообщений: 3,389
Вес репутации: 4234/124
Марк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond repute
По умолчанию Re: F051 цепочка TIM16_CH1 => DMAch4 => UART2Tx

Цитата:
Сообщение от HHIMERA Посмотреть сообщение
Рекомендации по периферии носят общий характер... и не описывают всех случаев...
Стас, ты несешь какой то апокалиптический бред...
Какие еще нах "рекомендации"? Рекомендации нужны начинающим, которые пользуются шаблонами и всякими сниппетсами.
Нормальному юзеру нужна СТРУКТУРА модуля, а лучше ключевые фрагменты схем, а так же четко расписанные алгоритмы функционирования.
Частное применение я как нибудь осилю сам, без примеров кода.
Что собственно и сделал, потеряв пару дней на понимание того, что могло быть расписано в рефмануале внятно и в конкретном месте.
Марк на форуме   Ответить с цитированием
Старый 04.08.2020, 10:50   #23
pal1222@yandex.ru
Senior Member
 
Регистрация: 30.09.2008
Сообщений: 1,611
Вес репутации: 3789/98
pal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond repute
По умолчанию Re: F051 цепочка TIM16_CH1 => DMAch4 => UART2Tx

Цитата:
Сообщение от Марк Посмотреть сообщение
Не так все просто. В СТМ32 прерывания конкурируют с реквестами ДМА.
И нужно на лету переобувать модуль. Оно надо?
Проще передать фиктивный байт или два.
Можно даже выключить и включить модуль, сбросив сдвиговый регистр после завершения строба драйвера.
"переобувать модуль" - в данном случае стандартный способ. Окончание трансфера ДМА не означает завершения передачи 485. Передача "фиктивных байт" закладывает вероятность появления трудно диагностируемых "косяков".
- многие 485-е приемопередатчики имеют "эхо" эта особенность нигде не документирована (при каждой замене пин-пин совместимой микросхемы придется проверять) и переключившись на прием ты эти "фиктивные" первыми и поймаешь.
- неиспользование фифо провоцирует появление пауз в передаче (имхо не критично)
- и... если приемник "писал не я" - вообще будут пальцами показывать

Кроме того, нарушается принцип "пишите понятнее", сам потом не вспомнишь как оно работает. В моем нынешнем STM32G0 на уарте есть аппаратное управление передачей 485, но я не использую эту фичу - человек севший на сопровождение готового изделия имеет право по началу, вообще ничего не знать об особенностях процессора
pal1222@yandex.ru вне форума   Ответить с цитированием
Старый 04.08.2020, 11:26   #24
HHIMERA
Senior Member
 
Регистрация: 10.06.2008
Возраст: 59
Сообщений: 2,942
Вес репутации: 4193/116
HHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond repute
По умолчанию Re: F051 цепочка TIM16_CH1 => DMAch4 => UART2Tx

Цитата:
Сообщение от Марк Посмотреть сообщение
Нормальному юзеру нужна СТРУКТУРА модуля, а лучше ключевые фрагменты схем, а так же четко расписанные алгоритмы функционирования.
Ну и кто из нас красивше бредит???
Имеем то, что имеем... вот и пользуйся... или не пользуйся...

Тут люди... стм32ж0 осваивают... на который даже сниппетсов нет... хорошо хоть периферия похожа... и не плачутся... И гугль про ейного... ваще знать не хочет...
И ничего... справляются... как-то...
__________________
"Я не даю готовых решений, я заставляю думать!"(С)
HHIMERA вне форума   Ответить с цитированием
Старый 04.08.2020, 12:39   #25
Марк
Senior Member
 
Аватар для Марк
 
Регистрация: 18.08.2007
Адрес: Московская область
Возраст: 61
Сообщений: 3,389
Вес репутации: 4234/124
Марк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond repute
По умолчанию Re: F051 цепочка TIM16_CH1 => DMAch4 => UART2Tx

Цитата:
Сообщение от HHIMERA Посмотреть сообщение
Имеем то, что имеем... вот и пользуйся... или не пользуйся...
И ничего... справляются... как-то...
И я, Стас, пользуюсь и справляюсь. И при этом высказываю свои впечатления от такого пользования.
Вот и все.
Марк на форуме   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +3, время: 21:04.


Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd. Перевод: zCarot