Информация
- В рейтинге
- 3 042-й
- Откуда
- Санкт-Петербург, Санкт-Петербург и область, Россия
- Дата рождения
- Зарегистрирован
- Активность
Специализация
Инженер встраиваемых систем, Разработчик электроники
Ведущий
От 280 000 ₽
Разработка электроники
Разработка печатных плат
FPGA
Программирование микроконтроллеров
Обработка звука
Как минимум нужно вскрыть упаковку, а то и сам девайс. Потом запихать всë, как было. Иногда это получается не дëшево.
Ещë я такой вариант встречал: прошивка на заводе работает, как тестовая. А потом по определëнному сигналу сама превращается в рабочую. Тогда вскрывать не обязательно.
Насяльника! У нас тут дядюшки Си по просьбам трудящихся ( Си++, Хацкеля и ещё некого 该党表示) интернета, того, этого, отклюсять. Да. Мы уже всё настроить, но простой нашей фабрики стоит 100500 юаней в час. Будим долларами оплакивать, или евро?
Логика мне подсказывает, что, например, сжатие речи в GSM должно умещаться в 50-100 МГц производительности с большим запасом. Из 64 кбит/c стандартной проводной телефонии (уже, кстати, чуть поджатой в 1,5 раза с помощью A-law) во что-то типа 10 кбит/с в радио-канале они там превращаются.
Вроде, и простой алгоритм должен быть, но в 10 раз, получается, жмёт в реальном времени.
Ну и простые гугление, алисомания, сириё..во и клодоискательство иногда помогают, да.
Конденсатор, чтоб 1/RC было меньше 60 Гц, сильно толще светодиода выходит. Особенно если под R подразумевать dV/di светодиода.
Аналогично делаю. У 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 - не нужно. Адрес возврата хранится в регистре проца, и есть соглашение, кому какие регистры нужно сохранять при вызове, а какие - нет. Поэтому использование стека можно чëтко предсказать.