Кто сам изучил програмирование мк?

Флейм в чистом виде - все что угодно...
Но - в рамках закона :)
Аватара пользователя
Леонид Иванович
Друг Кота
Сообщения: 4779
Зарегистрирован: Сб апр 02, 2011 12:40:46
Откуда: Минск
Контактная информация:

Re: Кто сам изучил програмирование мк?

Сообщение Леонид Иванович »

dosikus писал(а):В большинстве реализаций нужна только одна скорость . С этим надеюсь спорить не будете ?


Спорить не буду.

dosikus писал(а):Физически нет, только исправленным описанием в Referense manual.


Тогда, наверное, для F1 и F4 тоже Reference исправили - там я вижу то же самое.

dosikus писал(а):STM32F0- STM32F3-


Понятно, спасибо. Пока с этими семействами дела не имел. Вижу, у них полно отличий.
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Re: Кто сам изучил програмирование мк?

Сообщение dosikus »

Леонид Иванович писал(а):
Тогда, наверное, для F1 и F4 тоже Reference исправили - там я вижу то же самое.


Я понимаю что у Вас кредо - "яйца курицу не учат" , но вот попробовать живьем не судьба?
Как говорится УМВР , и не только у меня ...
a5021
Друг Кота
Сообщения: 6452
Зарегистрирован: Пт сен 13, 2013 13:11:31

Re: Кто сам изучил програмирование мк?

Сообщение a5021 »

Леонид Иванович писал(а):С передачей будет все нормально - делитель частоты USART имеет дробный коэффициент деления. Размерность дробной части случайно (почти :) совпадает с оверсемплингом на приеме.

Мы об одном и том же говорим? Оверсемплинг это число проб взятых приемником за время приема одного бита. На основании этих проб делается вывод о наличие помехи в сигнале. Еще он, например, не используется в синхронных режимах. Я сейчас специально помусолил RM0008 и не обнаружил никаких упоминаний участия оверсемплинга в автоподстройке скорости, как, собственно, и самой автоподстройки. В таблицах 192 и 193 приведены значения для суммарных отклонений, верхняя граница которых не может превышать значений 3.03% -- 4.475% в зависимости от режима. Суммарные отклонения это сумма всех отклонений от заданной величины в канале приема-передачи. Так, если для 921600 бод ошибка скорости составляет 18%, то она считается, как 18% + 18% = 36% ввиду того, что существует и в канале приема и в канале передачи.
Аватара пользователя
Леонид Иванович
Друг Кота
Сообщения: 4779
Зарегистрирован: Сб апр 02, 2011 12:40:46
Откуда: Минск
Контактная информация:

Re: Кто сам изучил програмирование мк?

Сообщение Леонид Иванович »

dosikus писал(а):но вот попробовать живьем не судьба?


Что именно попробовать? Пробовал - никаких расхождений Reference с действительностью для F4 не обнаружил. Что за ошибки в документации - так и осталось загадкой.

a5021 писал(а):Мы об одном и том же говорим?


Получается, о разном. Система тактирования USART следующая: тактовая частота F_PCLK1(2) поступает на делитель USARTDIV, затем делится на 16 (или на 8 ) и получается Baud Rate. Делитель USARTDIV имеет дробный коэффициент деления (шаг делителя составляет 1/16 или 1/8). Например, из 24 МГц хотим получить 921600 бод:

24000000 / n / 16 = 921600, отсюда n = 1.6276. Округляем до 1/16 (которые обеспечивает делитель), получаем 1.625. Реальная скорость будет 24000000 / 1.625 / 16 = 923076.9, отклонение примерно 0.16%.

Коэффициент деления может быть представлен целой и дробной частью, как и написано в Reference. Но по той причине, что количество квантов дробной части равно 2^N, можно такое разбиение не делать, а просто умножить дробный коэффициент на 16 и загрузить как целое число.

Подобный делитель используется в качестве Baud Rate Generator в микросхеме FT232RL, там шаг 1/8.
a5021
Друг Кота
Сообщения: 6452
Зарегистрирован: Пт сен 13, 2013 13:11:31

Re: Кто сам изучил програмирование мк?

Сообщение a5021 »

dosikus писал(а):А теперь уеб..ок потрудись открыть даташит на F3 или F0, и найти там процедуру расчета .

Уважаемый, dosikus, поясните пожалуйста, какое мне может быть дело до даташитов F3 и F0, если под приведенной по вашей просьбе копипастой из SPL STM32F1xx вы привели вашу замечательную, не могу не повториться, замечательнейшую формулу, вычисляющую столь умопомрачительную белиберду ? Вы же никак не оговорили особо, что это формула совсем для других случаев, что она совсем не отсюда и приводите вы ее только потому, что ощущаете, как она всем улыбается, что вы видите исходящий от нее свет доброты, любви и ласки. Ведь вы же хотели этим сказать здесь на форуме, что вы вовсе не такой, каким вас обстоятельства заставляют тут выглядеть, что вы умнее, профессиональнее, честнее и лучше во всем?

Очень печально, dosikus, что вместо того, чтобы начать исправляться под мои руководством (как я вам любезно предлагал), вы все глубже и глубже насаживаете себя (а заодно и своих сподвижников) на этот позорный крюк профессионального невежества, судорожно пытаясь своими неуклюжими метаниями навести тень на плетень, лишь усугубляя свою незавидную участь. Это уже третий ваш фейл подряд за последние два дня. Одумайтесь.


To obtain 921.6 Kbaud with fCK= 48 MHz.
• In case of oversampling by 16:
USARTDIV = 48 000 000/921 600
BRR = USARTDIV = 52d = 0x34

И сравнить с тем что я выложил.

Я б сравнил лучше с тем расчетом, что вы срезали. Он в референсе идет сразу за вышеприведенным. Так, как, говорите, ваша формула учитывает использование восьмибитного семплирования? Мне показалось или она и в правду никак это не учитывает, а выдает ахинею в таком случае? Это простой вопрос и я могу ошибаться, вы же ошибаетесь (постоянно)... Я надеюсь вы сможете посвятить его выяснению денек-другой и прольете свет своей лучезарной просвещенности, а я в знак благодарности вам тоже что-нибудь потом объясню.

STM вовремя поняли свои ляпы и исправили, в отличии от тебя.

Противопоставить себя программерам ST и огромному комьюнити -- поступок фантастического мужества. Чего-чего, а мужества у вас не отнять.

Уеб..ок , расчет не мой , мне чужие лавры не нужны . Я просто умею и читать и осознавать прочитанное .

Осознавать? Вы уже осознали, что чужие лавры плотно затягиваются вокруг вашей шеи? Поразборчивее бы на надо, с чужими лаврами-то.
nahimovv
Нашел транзистор. Понюхал.
Сообщения: 180
Зарегистрирован: Чт янв 23, 2014 01:51:35

Re: Кто сам изучил програмирование мк?

Сообщение nahimovv »

Вот это словодиарея! Для Петросяна ты тексты пишешь? :kill:
a5021
Друг Кота
Сообщения: 6452
Зарегистрирован: Пт сен 13, 2013 13:11:31

Re: Кто сам изучил програмирование мк?

Сообщение a5021 »

Не подкатывайте. Для вас не буду.
a5021
Друг Кота
Сообщения: 6452
Зарегистрирован: Пт сен 13, 2013 13:11:31

Re: Кто сам изучил програмирование мк?

Сообщение a5021 »

Леонид Иванович писал(а):Система тактирования USART следующая

У самих армов этот вопрос наглядно разжеван. Правда там у них для хранения знаков после запятой шесть бит отведено.
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Re: Кто сам изучил програмирование мк?

Сообщение dosikus »

Леонид Иванович писал(а):
dosikus писал(а):но вот попробовать живьем не судьба?


Что именно попробовать? Пробовал - никаких расхождений Reference с действительностью для F4 не обнаружил. Что за ошибки в документации - так и осталось загадкой.



Собственно ляпы - это не всегда ошибки . :))) Говнокод так же может давать верный результат.
Странно что и это Вам приходится разжевывать .
А попробовать - выкладку что я привел , вот ее и попробовать вживую, и убедиться что все работает .
Сие так же не помешает клоуну-теоретику, в руках не державшего STM32. :)))
А заодно, если уж так радеете за SPL- просто, тупо сравнить результаты вычислений и SPL и того что я привел.
Хотя весьма странно - совсем недавно вы были против говнокодов.
И будет весьма печально , если ЛИ при освоении STM32 будет пользоваться SPL.


А балбес А5021 даже не в курсе что UART STM32 к ARM никакого отношения не имеет, хорошо что хоть похож оказался ... :)))
Аватара пользователя
Леонид Иванович
Друг Кота
Сообщения: 4779
Зарегистрирован: Сб апр 02, 2011 12:40:46
Откуда: Минск
Контактная информация:

Re: Кто сам изучил програмирование мк?

Сообщение Леонид Иванович »

a5021 писал(а):этот вопрос наглядно разжеван.


Принцип построения дробного baud rate generator описан, например, в патенте US6392455 (присоединил).

dosikus писал(а):А попробовать - выкладку что я привел , вот ее и попробовать вживую, и убедиться что все работает .


Так я и не спорю, что результат будет тем же для x16 oversampling. Вот только с этой строчкой легче нарваться на проблемы, чем при использовании SPL.

dosikus писал(а):И будет весьма печально , если ЛИ при освоении STM32 будет пользоваться SPL.


Категоричность очень редко бывает конструктивной. У всего есть свои плюсы и минусы. С использованием SPL проект делается намного быстрее, как говорят, ниже уровень вхождения. А в случае возникновения проблем придется на уровне регистров разобраться с каким-то одним модулем, но про остальные даташит можно даже не открывать. Такой подход вполне сейчас в тренде, ведь конкурировать приходится с таким же говнокодом, поэтому шансы весьма велики. Без SPL можно писать только под действием перфекционизма (сомнительное качество), например, проект для себя ради удовольствия, не имея ограничения во времени. Сейчас очень трудно доказать высокое качество своего продукта (а часто и некому), всем правит time-to-market. Короче говоря, оба подхода имеют право на жизнь.
Вложения
US6392455.pdf
(673.39 КБ) 388 скачиваний
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Re: Кто сам изучил програмирование мк?

Сообщение dosikus »

Леонид Иванович писал(а): Вот только с этой строчкой легче нарваться на проблемы, чем при использовании SPL.



Чушь.
А собственно у Вас все еще впереди .
Желаете наступать на пройденные другими грабли ,это Ваше право, но с Вами уже скучно... :)))
Аватара пользователя
Леонид Иванович
Друг Кота
Сообщения: 4779
Зарегистрирован: Сб апр 02, 2011 12:40:46
Откуда: Минск
Контактная информация:

Re: Кто сам изучил програмирование мк?

Сообщение Леонид Иванович »

Проблемы с Вашей строчкой - это не чушь, а реальность. Как только захотите перейти на другой USART или переключить режим оверсемплинга - вычисления могут стать неверными. Нужно синхронно пересчитывать константы, об этом нужно помнить. Зачем? Лучше я вызову функцию SPL, которая сделает всё, как надо. Вообще, основная цель применения в проектах STM32 - это получение избытка ресурсов, чтобы иметь возможность более небрежного программирования. Что значительно эффективней с точки зрения затрат времени. Например, программируя под Windows, никому и в голову не придет писать свои функции, которые уже есть в библиотеке. Хоть библиотеки там еще те, похлеще SPL порой. Но они работают, за что им можно простить всё.
nahimovv
Нашел транзистор. Понюхал.
Сообщения: 180
Зарегистрирован: Чт янв 23, 2014 01:51:35

Re: Кто сам изучил програмирование мк?

Сообщение nahimovv »

Леонид Иванович писал(а):Вообще, основная цель применения в проектах STM32 - это получение избытка ресурсов, чтобы иметь возможность более небрежного программирования.

А, ну тогда удачи в говнокодировании и говноэмбедде!
Аватара пользователя
menzoda
Вымогатель припоя
Сообщения: 535
Зарегистрирован: Вт авг 28, 2012 22:21:33

Re: Кто сам изучил програмирование мк?

Сообщение menzoda »

Леонид Иванович писал(а):С использованием SPL проект делается намного быстрее.

Хороший специалист сделает это без разного рода библиотек так же быстро как и новичок с библиотеками, получив при этом более простой, эффективный, гибкий и понятный код, который в дальнейшем может быть легко поддержан другим специалистом и/или перенесен на другую платформу.

Отсюда делаем вывод: есть любители и специалисты. У них разные подходы к решению задач и разная область применения. Любителю, привыкшему к библиотекам, будет не так уж легко разобраться в коде специалиста, и уж точно он не сможет написать такой же код даже за значительно больший промежуток времени, который затратил специалист. С другой стороны, специалиста просто стошнит от любительского говнокода и говноподхода, он не сможет с ним работать и будет вынужден все переделывать заново, потратив гораздо больше времени, чем ушло у любителя чтобы склепать эту поделку.

Если мы хотим быстро и недорого сделать не очень сложное устройство, то лучший вариант - любитель поднаторевший на библиотеках. Если имеются жесткие требования по надежности, эффективности, производительности, если нужно решить неординарные задачи, то бесспорно специалист - единственно верный вариант. Конечно, в реальном мире невозможно поддерживать такую четкую границу между любителями и специалистами, поэтому очень часто одни выполняют работу других. Если они заходят далеко на чужую территорию, то возникают такие вот споры, или что еще хуже - ужасный код, эдакие чудовища Франкенштейна мира программирования.

В области настольных приложений любители не просто зашли на чужую территорию, они там сожгли деревни, изнасиловали всех женщин и съели всех домашних животных. Поэтому расширение Chrome, представляющее собой кнопочку для быстрого перехода к моей почте, занимает в памяти 50 мегабайт, а каждая вкладка еще под сотню. Битва за встраиваемое ПО пока только начинается.
Аватара пользователя
Леонид Иванович
Друг Кота
Сообщения: 4779
Зарегистрирован: Сб апр 02, 2011 12:40:46
Откуда: Минск
Контактная информация:

Re: Кто сам изучил програмирование мк?

Сообщение Леонид Иванович »

menzoda писал(а):Битва за встраиваемое ПО пока только начинается.


Она уже давно проиграна. Встроенные контроллеры набирают вычислительную мощность не по дням, а по часам. Давно уже специалисты не копаются в мелочах, а размашисто пишут код библиотечными функциями. Вы застряли внутри собственных устаревших представлений.
a5021
Друг Кота
Сообщения: 6452
Зарегистрирован: Пт сен 13, 2013 13:11:31

Re: Кто сам изучил програмирование мк?

Сообщение a5021 »

dosikus писал(а): Собственно ляпы - это не всегда ошибки . :))) Говнокод так же может давать верный результат.
Странно что и это Вам приходится разжевывать .

"Не понимаете, спросите у ЛИ, чем хренов быдлокод..." (с) dosicus
Что, dosikus, быдлокод теперь делится на два вида, -- хороший быдлокод, который пишете вы и плохой, который пишут все остальные?

А попробовать - выкладку что я привел , вот ее и попробовать вживую, и убедиться что все работает .
Сие так же не помешает клоуну-теоретику, в руках не державшего STM32. :)))

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

А заодно, если уж так радеете за SPL- просто, тупо сравнить результаты вычислений и SPL и того что я привел.

У SPL максимальная ошибка 0.16% в задании скорости, у вас 18%. Разница больше чем на два порядка. Больше ничего не надо тупо посравнивать?

Хотя весьма странно - совсем недавно вы были против говнокодов.

Совсем недавно и вы были против говнокодов, но когда говнокод вдруг оказывается вашим, то вы начинаете испытывать к нему самые теплые симпатии.

А балбес А5021 даже не в курсе что UART STM32 к ARM никакого отношения не имеет, хорошо что хоть похож оказался ... :)))

Вообще-то мы про дробные делители разговор вели, которые считаются по схожей схеме для UART-ов в составе самых разнообразных чипов. Не хотите видеть ничего кроме STM32 -- ваше право. Только не надо тогда везде вопить, что за пределами STM32 жизни нет. На вас люди оборачиваться начнут.
Аватара пользователя
menzoda
Вымогатель припоя
Сообщения: 535
Зарегистрирован: Вт авг 28, 2012 22:21:33

Re: Кто сам изучил програмирование мк?

Сообщение menzoda »

Она уже давно проиграна.


Тогда я могу сделать только так
Изображение

и так
Изображение
Аватара пользователя
Леонид Иванович
Друг Кота
Сообщения: 4779
Зарегистрирован: Сб апр 02, 2011 12:40:46
Откуда: Минск
Контактная информация:

Re: Кто сам изучил програмирование мк?

Сообщение Леонид Иванович »

menzoda писал(а):Тогда я могу сделать только так


Совершенно неблагодарное дело - бороться с нормальным ходом вещей. Ваш подход я понимаю, и сам часто его применяю, когда речь идет не о работе, а о поделке для себя. Тогда можно тратить месяцы, вылизывая всё до совершенства. Но когда вопрос касается профессиональной деятельности, я сделаю всё тяп-ляп (никакой отсебятины, ровно так, как того требует время), напишу проект на библиотеках и продам его, а потом долгими зимними вечерами буду потягивать вискарик, удобно устроившись в кресле и накрывшись теплым пледом.
Аватара пользователя
BCluster
Собутыльник Кота
Сообщения: 2512
Зарегистрирован: Пн апр 06, 2009 19:33:29
Откуда: Молдова, Кишинев
Контактная информация:

Re: Кто сам изучил програмирование мк?

Сообщение BCluster »

menzoda писал(а):Хороший специалист сделает это без разного рода библиотек так же быстро как и новичок с библиотеками, получив при этом более простой, эффективный, гибкий и понятный код, который в дальнейшем может быть легко поддержан другим специалистом и/или перенесен на другую платформу.


Бред чистой воды. Переписывать по 100500 раз то, что уже написано или отлажено, не станет ни один здравомыслящий человек. Бывает что библиотека дает какие-то элементарные функции, которые проще написать, чем искать ту самую библеотеку, но это единицы. Допустим TCP/IP стек тоже проще с нуля написать чем взять готовый? И куча других примеров...
Можно еще глубже копнуть, операционные системы тоже дают массу абстракций, предлагаете и их не использовать? Даже не рассматривая настольные системы, для примера можно взять ту же FreeRTOS. Проще свою написать? Чем использовать написанную и отлаженную кучей грамотных специалистов?
Аватара пользователя
menzoda
Вымогатель припоя
Сообщения: 535
Зарегистрирован: Вт авг 28, 2012 22:21:33

Re: Кто сам изучил програмирование мк?

Сообщение menzoda »

Леонид Иванович писал(а):я сделаю всё тяп-ляп

Ну вот, дожили. Я бы взашей гнал таких людей. Ты сам бы хотел, чтобы тебе все делали тяп-ляп? Пойдешь к хирургу, а он такой - "Да не очкуй, я тут прочел справочник для чайников, ща побырому тебя заштопаем по видеоуроку, должен протянуть, зато дешево и быстро". Дом будешь строить, а тебе - "Насяльнике не бойся-мана, всё знаю, все умею, плитка клал, унитаза-мана ставил, поколотника-мана, писдес!". А потом у нас спутники падают, дороги даже одного сезона не переживают и к врачам ходить боятся.

Нельзя везде использовать этот тяп-ляп! Нельзя и все! Будку собачью можно тяп-ляп построить, сарай можно, дом - нельзя. Прыщ можно выдавить тяп-ляп, царапину йодом замазать, сердце пересадить - нельзя.

BCluster
Библиотеки уместны в меру.
Ответить

Вернуться в «МЯЯЯУ!»