Обновить
72
Александр Козлов@alcotel

Инженер-электронщик

0,2
Рейтинг
46
Подписчики
Отправить сообщение

Как минимум нужно вскрыть упаковку, а то и сам девайс. Потом запихать всë, как было. Иногда это получается не дëшево.

Ещë я такой вариант встречал: прошивка на заводе работает, как тестовая. А потом по определëнному сигналу сама превращается в рабочую. Тогда вскрывать не обязательно.

Насяльника! У нас тут дядюшки Си по просьбам трудящихся ( Си++, Хацкеля и ещё некого 该党表示) интернета, того, этого, отклюсять. Да. Мы уже всё настроить, но простой нашей фабрики стоит 100500 юаней в час. Будим долларами оплакивать, или евро?

Логика мне подсказывает, что, например, сжатие речи в GSM должно умещаться в 50-100 МГц производительности с большим запасом. Из 64 кбит/c стандартной проводной телефонии (уже, кстати, чуть поджатой в 1,5 раза с помощью A-law) во что-то типа 10 кбит/с в радио-канале они там превращаются.

Вроде, и простой алгоритм должен быть, но в 10 раз, получается, жмёт в реальном времени.

Ну и простые гугление, алисомания, сириё..во и клодоискательство иногда помогают, да.

Конденсатор, чтоб 1/RC было меньше 60 Гц, сильно толще светодиода выходит. Особенно если под R подразумевать dV/di светодиода.

Вообще на STM32 можно привязать вывод в порт на DMA

Аналогично делаю. У ST давно это описано, охрененная штука. Местами FPGA заменяет.

Подтверждаю. Даже этот уроборос объясняется на уровне задержек в логике.

Я ж и не говорю, что что знать - это плохо. Скорее плохо - не понимать границы своего незнания - вот это да, реально может мешать.

А где я писал про проверку схемотехники?

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

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

Или, может, у вас просто много свободного времени? чтобы повторить его работу, и между делом смотреть вакансии:

Кстати, обратите внимание, что АБСОЛЮТНО все вакансии такого типа требуют навыка чтения принципиальных схем.

с требованиями, как для пилота СУ-35, и зарплатой учителя сельской школы. Список вакансий - это полнейший отрыв от реальности ИМХО. Но даже если вакансии актуальны, то

чтения принципиальных схем

Чтения, уважаемый кэп. Не синтеза, не расчёта, не проверки. просто чтения.

Был случай у меня, когда по схемотехнике на LED в мк было выведено только GPIO, таймеры заняты, или просто не на ту ногу LED одели, не помню. В прошивке было задействовано прерывание с частотой 1 кГц. А заказчик принципиально захотел "медленное мерцание".

Принцип PDM даже с такой частотой очень хорошо сработал. Крайние случаи, когда PDM опускалась ниже 60 Гц, пришлось программно ограничить, ибо начинало рябить в глазах. Но, блин, когда на руках проц со скоростью в 25 zx-спектрумов - это вообще не есть проблема.

Хуже с поставками, видимо, уже некуда было ещё тогда, когда @Kopcheniy писал этот пост. Так что теперь всё только улучшается. М - математика, экстремумы и всё такое.

Но, правда Г - сами знаете, что. "Генератор сюрпризов" я хотел сказать.

По своему опыту: из стерео-звука гораздо проще вычленить нужный источник в шумной записи. Даже если запись сжата в mp3, а стерео-разность там утрамбована по самое си-бемоль помидоры.

И ещё, конечно, писать на карту голые сэмплы WAV при наличии 32-битного современного мк - это какой-то отдельный вид извращения над пользователем. К вам, @aabzel, это тоже относится. Сжать в mp3 - да, наверное, не успеет этот проц, но есть же и другие методы сжатия.

Есть вообще-то и обычный SPI, можете попробовать.

С LED это работает, а вот с мотором - не очень. Если вы замените 8-разрядный PWM на такой-же PDM, то получите "бонус" х128 к потерям на переключения силовых ключей.

Голый PDM из мк в качестве ЦАП - тоже не сахар. Вы про PWM когда-то статью писали, помню. Если вы в расчёты добавите, что фронты сигналов хоть на пару наносекунд отличаются - у PDM будет тот же "бонус" х128 к нелинейности и смещению нуля по сравнению с PWM.

Это всё мне у схемотехника выяснять, или всё-таки это моя обязанность - программиста-железячника?

Думаю, лучше выяснять у схемотехника. Он узлы рассчитывал, и делать ещё раз его работу не вижу смысла. Мог бы на схеме подписать "делитель 1:5" или "усиление 3..30 дБ".

Но я не знаю, как у вас процессы настроены. Может, у вас среди служебных обязанностей есть проверка схемотехники. А может вы и зарплату за этого парня тоже получаете.

И вообще меня восхищает ваша самоуверенность - Я сказал - значит это ИСТИНА в последней инстанции

ОБЯЗАН знать

Я такого не говорил.

Я считаю, что железо программист в какой-то мере знать должен, да. Но основы для него - это не расчёт резисторов, а логика работы железа.

Точно также, как схемотехнику обычно по-барабану, из чего эти резисторы сделаны, или как именно достигнуты параметры мосфетов. В каких-то специальных случаях - да, приходится разбираться. Но это ни разу не основы, которые прям все обязаны знать.

Согласен, формально гарантий нет.

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

Просто надо сравнить цифру на удлиннителе и на утюге ;)

И цифры не совпадают, вот же засада. И те, кто учили математику за 2й класс, и даже позже, и инструкцию читали, возвращают в магазин адаптер на 10 Вт со словами: "на роутере же было написано 5 Вт, а вы мне чуть его не сожгли". И это реальные истории, даже приукрасить негде.

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

Вот @YuriPanchul пишет учебную программу. Мой сосед-депутат пишет программу партии. Некоторые пишут софт "для импортозамещения и внесения в реестр". Но большая часть народу здесь пишет программы для железа вообще-то.

Большому проценту из нас тут по роду деятельности приходится рассчитывать номиналы резисторов? Я думаю, что тут на пару порядков больше людей, которым нужно знать, как работает Ethernet, например. Обязаны знать, конечно, но обязанности у всех сильно разные.

Я встречал пару раз схемотехников, которые выдают железо программистам без каких либо описаний, структурной схемы. Только PDFы из альтиума, где всё соединено только именами цепей. И на конкретный вопрос: "А что надо подать на ЦАП, чтобы ...?" программист получает: "Схему посмотри, придурок! Посчитай делители, коэфф.усиления, задержку в фильтре, и ещё найди и припаяй нужные перемычки."

Я надеюсь, вы не так работаете?

Иногда гарантии есть. И это, кстати, код от производителя мк.

Мало кому надо менять код инициализации, туда редко кто заглядывает просто.

В данном случае

https://github.com/STMicroelectronics/cmsis-device-h7/blob/master/Source/Templates/system_stm32h7xx_singlecore.c :442

локальных переменных нет. Вложенных вызовов тоже нет. И по соглашению для вызов Си-функций есть целая пачка регистров ЦП, которую не нужно сохранять. Соглашение одинаково для всех компиляторов.

Понятно, что в общем случае гарантий не будет.

Закон Ома часто преподают точно также, к сожалению.

Самые шедевры
Да легко

Строго говоря, это не полевики. Но для жёсткой логики, про которую идёт речь в статье, проблемы подтяжки несущественны. И резисторы внутри - ну очень условно их можно резисторами назвать.

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

Только нафига это надо детям, которые будут писать на Verilog? Или что там ещё через 10-20 лет будет актуально.

Потребуется какой-нибудь I2C - ну прочитают, не обломятся. В любой доке на интерфейс или чип нарисовано, какие именно резисторы и куда ставить. И вместо 555го таймера эти ребятам скорее будет актуальнее изучить кольцевой генератор, например.

Который может и не содержать резисторов в явном виде
Который может и не содержать резисторов в явном виде

Это регистр периферийного устройства, не ядра. У ARM вся периферия отображается на память. И PWR это просто указатель, объявлен где-то там как

#define PWR ((PWR_TypeDef *) 0x58024800)

На макросах, но без магии, и не опускаясь до ассемблера.

Не инлайн, я специально код привëл.

Чтобы вызвать функцию - нужно же иметь возможность писать что то в стек.

В "процессоре здорового человека" - нужно, а в ARM - не нужно. Адрес возврата хранится в регистре проца, и есть соглашение, кому какие регистры нужно сохранять при вызове, а какие - нет. Поэтому использование стека можно чëтко предсказать.

1
23 ...

Информация

В рейтинге
3 042-й
Откуда
Санкт-Петербург, Санкт-Петербург и область, Россия
Дата рождения
Зарегистрирован
Активность

Специализация

Инженер встраиваемых систем, Разработчик электроники
Ведущий
От 280 000 ₽
Разработка электроники
Разработка печатных плат
FPGA
Программирование микроконтроллеров
Обработка звука