-
- Это выходит нельзя просто в конфиге поменять например UART1 на
UART3 , надо еще и код лопатить? - Andreas(28.04.2021 13:23)
- Смотря какой функционал от UART используется. Если нужно просто
115200-8-N-1 - то просто заполняешь пяток регистров за пять минут с
перекуром. Если нужно что-то специфическое (CTS/RST, RS485, LIN,
ИК-передатчик, смарт-карта, DMA) - то сначала по даташиту выбираешь
UART, на котором есть нужный функционал. Потом смотришь, не
пересекается ли он по ногам и по каналам DMA с чем другим нужным.
Утрясаешь это безобразие, если понадобится. Потом за десять минут
пишешь код напрямую на LightElf(80 знак., 28.04.2021 15:45)
- Это одна из причин, почему я люблю C8051F380 (efm8), там всего 3
регистра для Uart/spi - для управления, делителя и данных. А шина
позволяет двигать Spi и т.д по всем ногам почти. Win! - Costic(29.04.2021 12:42)
- Ну оно такое. Чем больше фич - тем больше битиков для конфигурации. Аппаратный flow-control вкл/выкл, аппаратное управление трансивером RS485 - вкл/выкл, аппаратный адрес - вкл/выкл и тыды. - LightElf(29.04.2021 15:36)
- так у любого 8-битника разве не так? У моего Z8 бит включения UART, количество стоповых бит и скорость. Всё. Тоже в 3-х регистрах. SPi - 2 регистра. - Лaгyнoв(29.04.2021 15:15)
- Сейчас тенденция однако, :) чтобы чего-то запустить из периферии надо освоить кучу страниц pdf-а и познать комбинации настроек разных регистров и тогда какой-то USART, SPI, CAN, оживет, а в старых 8-ми битниках хватало настроить несколько регистров и осилить 2-3 страницы Pdf-а - User_(29.04.2021 12:55)
- На регистрах я и сам знаю как, там все просто и в свои ф-ции я просто номер порта передаю, а уже в них по номеру из таблиц указатели на структуру, пины вкл клока, номера прерываний берутся. Интересно как болезненно такое в стшной либе. А доп функции(ооочень редко нужные) я обычно дефайнами вкл/выкл и тут уж если выбрал не тот уарт - лови исключение. - Andreas(28.04.2021 15:54)
- Это одна из причин, почему я люблю C8051F380 (efm8), там всего 3
регистра для Uart/spi - для управления, делителя и данных. А шина
позволяет двигать Spi и т.д по всем ногам почти. Win! - Costic(29.04.2021 12:42)
- в большинстве случаев можно. - User_(28.04.2021 13:30)
- Смотря какой функционал от UART используется. Если нужно просто
115200-8-N-1 - то просто заполняешь пяток регистров за пять минут с
перекуром. Если нужно что-то специфическое (CTS/RST, RS485, LIN,
ИК-передатчик, смарт-карта, DMA) - то сначала по даташиту выбираешь
UART, на котором есть нужный функционал. Потом смотришь, не
пересекается ли он по ногам и по каналам DMA с чем другим нужным.
Утрясаешь это безобразие, если понадобится. Потом за десять минут
пишешь код напрямую на LightElf(80 знак., 28.04.2021 15:45)
- в комплекте с std lib идут примеры. Если их брать за основу и
работать по аналогии, то проблем не обнаружено. Можно долго
рассуждать о количестве строк в инициализации и прочих "вкусах", но
оно там в большинстве рабочее. Всякие там таймеры, SPI, DMA, CAN,
USART, порты и т.д. все это работает в STD lib - User_(28.04.2021 13:12)
- Я, видимо, непонятно выразился. Зачем нужен уровень абстракции,
если он ничего не абстрагирует? Ну заменили при ините DMA
используемый макрос с LightElf(239 знак., 28.04.2021 13:21)
- то что оно все не идеально, это понятно. Но когда надо быстро
запустить, то открыв пример с работой данной периферии все
становится понятно. Если начать использовать std lib без примеров,
то в ней еще больше запутаешься. Там алгоритм действий простой: 1.
открыл пример. 2. повторил использование, слегка подправив под свою
задачу. Без примеров полезность std lib уменьшается, но не
отменяется. :) Можно до дыр зачитывать pdf чтобы настроить USART, а
можно просто по примеру User_(420 знак., 28.04.2021 13:40)
- Ну вот как-то так: LightElf(330 знак., 28.04.2021 15:58)
- Кстати, прерывания зачастую не нужны, подключаю DMA. На приём
закольцованный режим, если в главном цикле успевать выгребать, то
кольцевой буфер не переполнится. А на отправку бывает достаточно
каждую посылку делать одной пачкой DMA. SciFi(791 знак., 28.04.2021 16:45)
- Прием - так же, передачу - когда как, по потребности. - LightElf(28.04.2021 18:32)
- Нафиг CR2 и CR3 обнулять? Там и так нули. - SciFi(28.04.2021 16:33)
- UART мог уже использоваться ранее в другом режиме - LightElf(28.04.2021 16:45)
- А вот не надо пускать на территорию кого попало, тогда и не будет
использоваться непонятно когда и как :-) - SciFi(28.04.2021 16:46)
- А ежели системный бут порезвился? Или его тоже не пускаем? - Andreas(28.04.2021 16:53)
- А вдруг? :) - LightElf(28.04.2021 16:51)
- А вот не надо пускать на территорию кого попало, тогда и не будет
использоваться непонятно когда и как :-) - SciFi(28.04.2021 16:46)
- UART мог уже использоваться ранее в другом режиме - LightElf(28.04.2021 16:45)
- Кстати, прерывания зачастую не нужны, подключаю DMA. На приём
закольцованный режим, если в главном цикле успевать выгребать, то
кольцевой буфер не переполнится. А на отправку бывает достаточно
каждую посылку делать одной пачкой DMA. SciFi(791 знак., 28.04.2021 16:45)
- Другими словами, на чём примеры сделаны, на том и кодим. Хоть на
васике. Если бы примеры были на голых регистрах, нам тут даже не о
чем было бы спорить :-) - SciFi(28.04.2021 13:40)
- Коллеги, LL нашефсё! - dastun(28.04.2021 13:53)
- когда начинал, LL еще не было, в новых проектах попробую. - User_(28.04.2021 14:24)
- Вот в помощь для F4 и F0 dastun(4 знак., 28.04.2021 21:04, ссылка, ссылка)
- LL нормально, тупые обертки над битовыми операциями. Использую на G0. - michas(28.04.2021 18:08)
- когда начинал, LL еще не было, в новых проектах попробую. - User_(28.04.2021 14:24)
- истину глаголишь :) , но даташит читать приходиться, а учитывая их
качество примеры облегчают существенно процесс понимания. В итоге,
проверку в железе никто не отменял, хоть std используй, хоть всё
ручками перепиши, тут уже все глюки проверяются и исправляются. - User_(28.04.2021 13:43 - 13:45)
- А вот с этого момента поподробнее, пожалуйста. Что там с качеством
даташитов? И желательно с примерами. - SciFi(28.04.2021 13:44)
- Им можно их улучшать. Есть стиль оформления, когда описывается
периферия, потом идет краткое итого - как настроить по шагам,
буквально делай раз, делай два и т.д. Вот таким подходом STM
похвастаться не может. Такое у них встречается не всегда. - User_(28.04.2021 13:58)
- У F0 хороши примеры в конце Reference Manual - LightElf(28.04.2021 15:47)
- Им можно их улучшать. Есть стиль оформления, когда описывается
периферия, потом идет краткое итого - как настроить по шагам,
буквально делай раз, делай два и т.д. Вот таким подходом STM
похвастаться не может. Такое у них встречается не всегда. - User_(28.04.2021 13:58)
- А вот с этого момента поподробнее, пожалуйста. Что там с качеством
даташитов? И желательно с примерами. - SciFi(28.04.2021 13:44)
- Коллеги, LL нашефсё! - dastun(28.04.2021 13:53)
- Ну вот как-то так: LightElf(330 знак., 28.04.2021 15:58)
- то что оно все не идеально, это понятно. Но когда надо быстро
запустить, то открыв пример с работой данной периферии все
становится понятно. Если начать использовать std lib без примеров,
то в ней еще больше запутаешься. Там алгоритм действий простой: 1.
открыл пример. 2. повторил использование, слегка подправив под свою
задачу. Без примеров полезность std lib уменьшается, но не
отменяется. :) Можно до дыр зачитывать pdf чтобы настроить USART, а
можно просто по примеру User_(420 знак., 28.04.2021 13:40)
- Я, видимо, непонятно выразился. Зачем нужен уровень абстракции,
если он ничего не абстрагирует? Ну заменили при ините DMA
используемый макрос с LightElf(239 знак., 28.04.2021 13:21)
- Это выходит нельзя просто в конфиге поменять например UART1 на
UART3 , надо еще и код лопатить? - Andreas(28.04.2021 13:23)