-
- Когда я этим занимался то узрел драму, в хал отсутствует функционал
одновременной работы уарта на прием и передачу, только полудуплекс. - кaлян(18.05.2020 10:57, )
- в жизни такого у меня нигде не было (одновременно прием/передача) - Лaгyнoв(18.05.2020 12:34)
- Значит жизнь ваша - блеклая и однообразная :) Куча протоколов связи, на двунаправленных каналах связи -
инициатором обмена может быть любая сторона соединения. Немного
непривычно, по структуре драйвера, но ниче-такова. - Cкpипaч(20.05.2020 09:17)
- Признаю, однообразная. :-) Всё колонки да контроллеры. Уровнемеры,
да частотники с Модбасами. :-) - Лaгyнoв(20.05.2020 09:45)
- Дык добавьте в систему KNX-диммеры, свет в торговом зале регулировать :) - Cкpипaч(20.05.2020 10:18)
- Признаю, однообразная. :-) Всё колонки да контроллеры. Уровнемеры,
да частотники с Модбасами. :-) - Лaгyнoв(20.05.2020 09:45)
- реализация онвире через уарт, там tx rx замыкается гвоздем и все что с девайса принимается только эхом. кaлян(192 знак., 19.05.2020 10:59, )
- При работе с модемом это именно так. От него что-то прилететь может
в любой момент времени. - fk0(18.05.2020 12:46)
- а оно мне зачем? Мне нужно только то, что я спросил. - Лaгyнoв(18.05.2020 16:52)
- Мне кажется, если ты не понимаешь, то этот тот самый Данинг-Крюгер. - fk0(18.05.2020 16:57)
- Прознали, бляь, модное, теперича лепят куда угодно, к месту и не к месту. Беда только в том что каждый считает что его-то уж точно обошло, он не такой. Ан нет! Все не дискретно, а аналогово, континуально. К каждому применимо. Не стыдно Данингом родиться, стыдно Крюгером умереть =) - RxTx(18.05.2020 20:10)
- это кто? Я вероятно повторюсь. Зачем мне знать то, что мне
поступило на Rx, если я этого не спрашивал? Как-то я в последние 25
лет привык к тому, что я спрашиваю - мне отвечают. Меня спрашивают
- я отвечаю. Все известные мне протоколы обмена так устроены. - Лaгyнoв(18.05.2020 18:49)
- Затем, что если ты не будешь принимать "незапрошенные сообщения",
то во-первых не сможешь построить протокол работы с модемом
корректно, во-вторых слать он не перестанет и тебя если не будешь
вычитывать сформируется признак ошибки переполнения UART и в
следующий раз когда начнёшь вычитывать какой-то ответ, то получишь
обрывок предыдущего непринятого сообщения который тебе всё испортит
(парсинг принимаемого тобой сообщения). - fk0(19.05.2020 14:29)
- ну это если с модемом не уложиться в тайм-аут. И он сильно поздно
ответит. Тогда может сбойнуть следующее обращение. - Лaгyнoв(19.05.2020 14:58)
- Вот я и говорю, Данинг-Крюгер в чистом виде. - fk0(21.05.2020 08:44)
- RING? ^) - Cкpипaч(20.05.2020 09:22)
- вот еще, на всяких там реагировать. :-) Пришли СМС, я потом спрошу. - Лaгyнoв(20.05.2020 09:46)
- ну это если с модемом не уложиться в тайм-аут. И он сильно поздно
ответит. Тогда может сбойнуть следующее обращение. - Лaгyнoв(19.05.2020 14:58)
- Ты делаешь так: RxTx(1771 знак., 18.05.2020 20:06)
- это красиво, да. Но МОЕМУ МК это зачем? У него задача - отпускать
топливо по картам. Т.е. опрашивать считыватель, обмениваться с
колонкой по RS485. По другому UARTу опрашивать контроллер
уровнемера. По третьему UARTу чего-то слать в GSM. Или спрашивать
оттуда - есть чего? Т.е НЕ НАДО ничего параллелить. Всё по кругу. И
моему МК решать - кто за кем и почему. Тем более нет нигде таких
процессов, что не укладываются в быстродействие МК. - Лaгyнoв(18.05.2020 20:26)
- Согласен. Разумеется, построение систем должно отвечать задачам. - RxTx(18.05.2020 20:37)
- это красиво, да. Но МОЕМУ МК это зачем? У него задача - отпускать
топливо по картам. Т.е. опрашивать считыватель, обмениваться с
колонкой по RS485. По другому UARTу опрашивать контроллер
уровнемера. По третьему UARTу чего-то слать в GSM. Или спрашивать
оттуда - есть чего? Т.е НЕ НАДО ничего параллелить. Всё по кругу. И
моему МК решать - кто за кем и почему. Тем более нет нигде таких
процессов, что не укладываются в быстродействие МК. - Лaгyнoв(18.05.2020 20:26)
- А ведомых устройств вы никогда не делали? - AlexG(18.05.2020 18:57)
- Затем, что если ты не будешь принимать "незапрошенные сообщения",
то во-первых не сможешь построить протокол работы с модемом
корректно, во-вторых слать он не перестанет и тебя если не будешь
вычитывать сформируется признак ошибки переполнения UART и в
следующий раз когда начнёшь вычитывать какой-то ответ, то получишь
обрывок предыдущего непринятого сообщения который тебе всё испортит
(парсинг принимаемого тобой сообщения). - fk0(19.05.2020 14:29)
- Мне кажется, если ты не понимаешь, то этот тот самый Данинг-Крюгер. - fk0(18.05.2020 16:57)
- а оно мне зачем? Мне нужно только то, что я спросил. - Лaгyнoв(18.05.2020 16:52)
- Значит жизнь ваша - блеклая и однообразная :) Куча протоколов связи, на двунаправленных каналах связи -
инициатором обмена может быть любая сторона соединения. Немного
непривычно, по структуре драйвера, но ниче-такова. - Cкpипaч(20.05.2020 09:17)
- в жизни такого у меня нигде не было (одновременно прием/передача) - Лaгyнoв(18.05.2020 12:34)
- в L476, HAL. Без разницы - есть эхо от модема, или нет. Всё нормально. Просто ты должен помнить, что осмысленные символы поступят через N байт. - Лагунов(01.12.2019 14:25)
- встречал похожее, но не на F0. флаг ORE чистится не автоматом, а ручками - записью ORECF в USART_ICR. если возник при разрешенном приеме, то, пока не прочистишь, висишь в обработчике приёма - Vit(01.12.2019 10:25)
- Можно мне кратко изложить суть проблемы? RxTx(21 знак., 17.05.2020 11:48)
- в одних камнях флаги ошибок приема сбрасываются автоматически при
чтении регистра данных, в других нет - нужно сбрасывать программно Vit(658 знак., 17.05.2020 12:32)
- Нужно ли обобщать? Это придумали гениальные индусы из STM, чтобы
отладка с включенным окошком с регистрами была более увлекательной. - SciFi(17.05.2020 12:55)
- В доке на cc1352 прямо написано, что смотреть регистры uart'а при
отладке нельзя ))) - evgeniy1294(17.05.2020 13:06)
- Помнится в LPC, кажись 2388, флаги прерывания после чтения улетают, т.е. в обработчике читаешь в копию, а потом разгребаешь. Ещё веселее в MSP430FR, но не в UART, а таймерах - там встроен аппаратный переключатель подвекторов, который ещё и включается какими-то магическими заклинаниями, а без него можно "потерять" прерывание (флаг от запроса). - Vit(17.05.2020 13:44)
- не обижай индусов. это тунисцы. насчет гениальности - тут уж никуда не деться:) - Vit(17.05.2020 13:03)
- В доке на cc1352 прямо написано, что смотреть регистры uart'а при
отладке нельзя ))) - evgeniy1294(17.05.2020 13:06)
- Нужно ли обобщать? Это придумали гениальные индусы из STM, чтобы
отладка с включенным окошком с регистрами была более увлекательной. - SciFi(17.05.2020 12:55)
- в одних камнях флаги ошибок приема сбрасываются автоматически при
чтении регистра данных, в других нет - нужно сбрасывать программно Vit(658 знак., 17.05.2020 12:32)
- Спасибо, да, именно ORE и нашел. Но у меня еще и глобальная проблема, которую я пролопушил. VLLV(796 знак., 01.12.2019 12:13)
- Есть третий способ, хороший. Выкинуть HAL и написать по-человечески. :) - LightElf(01.12.2019 12:57)
- Кто не берет HAL, использует LL. Пробовали? - Constantin21(02.12.2019 07:23)
- да дело не в HAL уже - VLLV(01.12.2019 13:07)
- В этом говно-хале сплошь и рядом ошибки в инициализации периферии. Неверные последовательности записи в регистры, приводящие к установке флагов запросов на прерывания в NVIC. И вытекающие от этого проблемы "первого блина". Некоторые из тамошних il-2(181 знак., 01.12.2019 14:12)
- Разработку средств разработки, традиционно, отдали на аутсорс в Индию. Где зряплаты даже ниже чем в РФ, но очень развита система подготовки "специалистов" (войти в айти). - fk0(17.05.2020 14:23)
- Приведи конкретный пример. - bnb62(01.12.2019 19:23)
- Относительно свежий пример: il-2(1019 знак., 02.12.2019 08:02 - 08:05)
- я, как любитель HAL-а, могу признать, что настройка DMA там приводит зачем-то к появлению прерывания. Причем для DMA, где отсчеты АЦП пишутся в кольцевой буфер непрерывно. Что убивает насмерть саму идею. Но я перетерпел. :-) - Лагунов(02.12.2019 06:47)
- А я взял HAL, сплющил его код на одну страницу, избавившись от
абстракций. Посмотрел на код. И удалил. Взял Reference Manual и
настроил АЦП и DMA руками с нуля. Заняло два вечера, заработало
изумительно. - Nikolay_Po(17.05.2020 18:48)
- есть изумительно, а есть изумительно-изумительно. :-) То есть если
мне не мешает работа HAL-а в исходном виде, то чего уродоваться?
Там у меня температурный сенсор только неспеша опрашивается.
Никогда я не был перфекционистом. :-) - Лaгyнoв(18.05.2020 08:36)
- В общем согласен. У меня текущий проект, для экономии времени,
вообще на Arduino, не стыдно признаться. Очень быстро, не нужно
тратить рабочие дни на мигание светодиодом. Nikolay_Po(1010 знак., 18.05.2020 11:24)
- Как будто в той ATmega328 есть чего разбирать. Она без Arduino простая как два пальца. - AlexG(18.05.2020 17:11)
- Любое обобщение ведет либо к увеличению сложности, либо к
сокращению функционала. Полного функционала у HAL не будет никогда - evgeniy1294(18.05.2020 10:31)
- Меня другое смущает. Как там разработка устроена? Мануал на МК
совсем не востребован? Там же пишут про богомерзкие регистры. То
есть пошариться по форумам и скопипастить кусочки кода
адурина-стайл? И откуда сведения, что желаемый функционал вообще
реализуем, если мануал не читан? - SciFi(18.05.2020 11:02)
- как бы я правил после HAL-а если б не читал мануал? Для меня всё это просто рыба. Неужели никогда рыбу не брали и не правили? - Лaгyнoв(18.05.2020 12:36)
- А что непонятно? Есть специальный человек, который решает - это поддерживаем, это нет, получим 84% функциональности. Программеры пишут. Никто не читает, все надеются (как я, кстати), что функциональность 100%. А потом оказывается, что нет. Виноватых нет, это объективная реальность. - VLLV(18.05.2020 11:28)
- Меня другое смущает. Как там разработка устроена? Мануал на МК
совсем не востребован? Там же пишут про богомерзкие регистры. То
есть пошариться по форумам и скопипастить кусочки кода
адурина-стайл? И откуда сведения, что желаемый функционал вообще
реализуем, если мануал не читан? - SciFi(18.05.2020 11:02)
- В общем согласен. У меня текущий проект, для экономии времени,
вообще на Arduino, не стыдно признаться. Очень быстро, не нужно
тратить рабочие дни на мигание светодиодом. Nikolay_Po(1010 знак., 18.05.2020 11:24)
- наш человек! - SciFi(17.05.2020 20:12)
- есть изумительно, а есть изумительно-изумительно. :-) То есть если
мне не мешает работа HAL-а в исходном виде, то чего уродоваться?
Там у меня температурный сенсор только неспеша опрашивается.
Никогда я не был перфекционистом. :-) - Лaгyнoв(18.05.2020 08:36)
- А я взял HAL, сплющил его код на одну страницу, избавившись от
абстракций. Посмотрел на код. И удалил. Взял Reference Manual и
настроил АЦП и DMA руками с нуля. Заняло два вечера, заработало
изумительно. - Nikolay_Po(17.05.2020 18:48)
- Да, именно, дело не в
НахHAL, а в специфике устройства вообще = ARM. Надо, или полностью воспользоваться функциями HAL (работа с буфером данных), или быть монстром(sci-fi) в контроле и управлении множеством флагов и регистров. У меня bnb62(341 знак., 01.12.2019 13:50 - 13:52)- IMNHO, для USART из HAL можно использовать (после прочтения) аж инициализацию. остальное по USARTтам - просто "трэш, угар и содомия"(C) - Vit(01.12.2019 18:59)
- В LPC17 никаких проблем с UART-ами, прерываниями, DMA и пр. Ибо все сделано по-человечески - практически вся периферия имеет настраиваемые FIFO. STM32 для гиков ;) - Гудвин(01.12.2019 15:12)
- Дорого nxp для серии, и два года назад были проблемы с поставками, больше полугода задержки. - VLLV(01.12.2019 18:21)
- А в чем проблема на приеме выкидывать эхо-символы? - LightElf(01.12.2019 13:16)
- В этом говно-хале сплошь и рядом ошибки в инициализации периферии. Неверные последовательности записи в регистры, приводящие к установке флагов запросов на прерывания в NVIC. И вытекающие от этого проблемы "первого блина". Некоторые из тамошних il-2(181 знак., 01.12.2019 14:12)
- Есть третий способ, хороший. Выкинуть HAL и написать по-человечески. :) - LightElf(01.12.2019 12:57)
- Можно мне кратко изложить суть проблемы? RxTx(21 знак., 17.05.2020 11:48)
- Когда я этим занимался то узрел драму, в хал отсутствует функционал
одновременной работы уарта на прием и передачу, только полудуплекс. - кaлян(18.05.2020 10:57, )