-
Постов
1 463 -
Зарегистрирован
-
Посещение
-
Победитель дней
2
Весь контент esaulenka
-
STM32F030F4 определить байт во Flash
esaulenka ответил Vlad_G тема в ARM, 32bit
У него синтаксис не очень удобный. Я и сам им пользовался, но разбираться через год-другой в скрипте довольно сложно... В итоге пользуюсь питоном с библиотекой intelhex - просто и наглядно. -
Switch и прием команд
esaulenka ответил Alex_Golubev тема в В помощь начинающему
Точнее, в C99, если я ничего не путаю. И должно заработать в C++20. Жалко, что даже в gcc в порядке личной инициативы раньше не внедрили... -
STM32. Перенастройка UART.
esaulenka ответил I_am_Lexx тема в ARM, 32bit
Включить-выключить прерывания в USARTx->CRx можно прямо на ходу (сам так делаю постоянно). Поставить бит DMAT в USARTx->CR3, подозреваю, тоже можно (не проверял). Проинициализировать DMA можно один раз, дальше просто запускать в нужный момент. Но в SPL всего этого нету, разумеется. Но это руками можно и нужно сделать, получится меньше и понятнее, чем волшебные SPL-функции. -
STM32. Перенастройка UART.
esaulenka ответил I_am_Lexx тема в ARM, 32bit
Что именно Вам надо перенастроить? И слово "нельзя" - это про идеологию. Если там идеология "использовать можно только HAL", то, боюсь, никакой готовый код товарищу не поможет... -
Что именно мы должны увидеть на картинке? (и на какой из двух?)
-
Ну я вот изучил. BOOT0 в нуле (так нам обещает Donker), main flash memory, как и должно быть. Настройки JLink'а тоже стандартно-обыкновенные. Мысль не раскроете? Для средних умов, таксказать. PS Donker, может, камень сдох? Не пробовали какой-нибудь другой экземпляр?
-
Наверное, не все эти мегабайты - в ОЗУ? :-) RAM - начиная с нуля и до 64к, флеш и прочие SFR - могут быть дальше. По факту, у младших камней они также укладываются в 64 к, но ядро, в теории, умеет работать и с бОльшими объемами памяти.
-
Как работает DMA в STM32?
esaulenka ответил di4zerus тема в ARM, 32bit
У меня прямо перед носом reference от STM32F4. И там слова "карусель" нет, есть раздел Arbiter. И там всё просто: у кого выше приоритет (или меньше номер стрима при равных приоритетах) - тот и первый. Другой вопрос, что я использую DMA с низкозагруженными каналами (UART на десятках-сотне кбит/с, SPI с сотней байт и т.д.), и о приоритетах даже не думаю - запас получается на порядки: пока DMA ждёт освобождения высокоприоритетной периферии, он может обслужить низкоприоритетную. Вот когда мне захочется затолкать что-то большое в периферию с собственным FIFO (что там у STM'ок есть? Только USB с ethernet'ом?) или использовать режим memory-to-memory, вот тогда придётся думать... -
Keil MDK-ARM ошибка: L6236E
esaulenka ответил tea1975 тема в ARM, 32bit
Варнинг был? Был. Следует считать любой (ну, почти любой) варнинг как предупредительный выстрел. -
Определение потребляемого тока STM32
esaulenka ответил faelle тема в ARM, 32bit
Таня, нарисуйте, пожалуйста, Вашу схему. Я не понимаю, как включить интегратор и как его обнулять. Ну то есть вот так: https://www.silabs.com/documents/public/user-guides/efm32gg-stk3700-ug.pdf (стр. 12). Таня не одобряет :-) А проект у Вас очень интересный, спасибо. Подробности публиковали? -
Определение потребляемого тока STM32
esaulenka ответил faelle тема в ARM, 32bit
Тут бы с требованиями определиться, какой ток и с какой точностью хочется измерять. Потому что счётчик заряда - это либо недешёвая battery management system (и фиг его знает, как оно заработает без собственно battery), либо не совсем простая аналоговая схемотехника (Подскажите, кстати, где обсуждалось. Я сходу не нашёл). А усилитель шунта есть готовый, за три копейки. Кстати, дурацкий вопрос. Если параллельно шунту повесить конденсатор, не получим ли мы эрзац-интегратор? При шунте в сотню Ом даже какие-то сносные значения емкости получаются... -
Если переводить более точно, то там сказано AFR0 и AFR1 ;-) По Вашей логике, требование "не включайте несколько ремапов для одного порта" должно касаться AFR0, AFR3, AFR7. И подобное требование вроде бы отсутствует в даташитах на другие камни, хотя организация ремапа там такая же. Я, во всяком случае, не нашёл. В общем, кажется мне, это косяк с копипастой (неизвестно откуда). :-)
-
Это косяк в обозначениях. Тут вход TDO используется как SWO (он находится на той же ноге разъема).
-
Keil MDK-ARM ошибка: L6236E
esaulenka ответил tea1975 тема в ARM, 32bit
Разговоры "вот раньше-то, молодёжь нынче не та" - это к семёнычу и его клонам, пожалуйста. То, что раньше человек с небольшими знаниями и достаточной мотивацией мог поморгать лампочкой на PIC'е, а сейчас запускает какой-то веб-сервер на распберри... Ну ок, это не хорошо, не плохо - это просто сейчас так есть. Библиотеки - это хорошо. Хорошие библиотеки - вообще замечательно! Писать LwIP, операционку с нуля - можно. Иногда даже нужно. Но далеко не каждый неначинающий сделает это хорошо. Я вот недавно начал ковыряться с блютус-стеком в Nordic (сейчас приоритеты задач поменялись, и оно опять отложилось). Написать подобное в какие-то разумные сроки в принципе невозможно. Остаётся только вариант брать и использовать, благо, в отличие от того же HAL'а, оно мелко порезано на отдельные модули с достаточно подробно описанным API, и никто не мешает подсовывать в нужные места свои модули. -
Keil MDK-ARM ошибка: L6236E
esaulenka ответил tea1975 тема в ARM, 32bit
Одна проблема - она не очень для начинающих. Т.е. знания "как работает ядро" нужны, когда делаешь (дорабатываешь) ОС или ловишь хитрый хардфолт. Но первоначальные вопросы - как поморгать диодиком или выплюнуть в UART "hello world" - там не освещаются. Точнее, в русском переводе есть приложение - описание периферии каких-то TI Luminary (никогда не читал эту часть), но толку от него в плане освоения STM немного... О-о, дело Мартина живёт :-) Я отлично помню, как изучал 32-битники по книжке https://perswww.kuleuven.be/~u0068190/ARM7/lpc-ARM-book_srn.pdf И имхо про ST-шные библиотеки. Да, они огромные, неоптимальные и не всегда удобные (точнее - почти всегда неудобные). Но для быстрого старта - проверить работоспособность какого-нибудь USB - вполне вариант. Опять же - это стало худо-бедным стандартом, лучше обращаться за помощью на форум не с просьбой "я тут написал 10 тыщ строк, найдите ошибку", а "вот стандартный пример, я его меняю вот в этом месте, и всё ломается так и вот так". Хотя о чём это я... обычно все сообщения "я что-то сделал (не скажу что), и оно само сломалось" :-) И да, надо быть всегда готовым, что где-то там в середине библиотеки закопана пакость, и она обязательно стрельнет в самый неподходящий момент. В продакшене у меня все драйвера написаны моими руками, и крайний - не безвестный MCD team, а лично я. Но для экспериментов - покатит... -
Да, очевидно, что это сумма. Хорошо видно при сравнении разницы (арифметической) между двумя похожими пакетами. Следите за руками: Пакет: 02 6c 31 30 30 30 30 03 39 45 Команда: l1 Параметры: 0x00 0x00 Контрольная сумма: 0x9E Считаем: ( 0x02 + 0x6c + 0x31 + 0x30 + 0x30 + 0x30 + 0x30 + 0x03 (весь пакет без контрольной суммы) + 0x9E (контролька) ) % 256 == 0 Что такое 0x55 в конце, не знаю. Это точно не подтверждение от второго блока (линия-то одно- или двупроводная?) ?
-
Keil MDK-ARM ошибка: L6236E
esaulenka ответил tea1975 тема в ARM, 32bit
Видимо, вариант cmsis для тех, кто не хочет использовать HAL. Почему эта менюшка не предупреждает "так всё сломается"... Ну, увы... В embedded есть очень много способов выстрелить в ногу... -
Справедливости ради, на большинстве STM (из того, что лично трогал - F1, F2, F4) запись во флеш останавливает всё выполнение из неё. Т.е., если не считать "подвисания" всего камня, никаких проблем нет. Функция записи, как и многочисленные вектора прерываний - во флеше. И про размер записи. На первых сериях было строго 16 бит за раз (откуда история про выравнивание источника? пофиг же). На F4 есть настройка, сколько писать - 1, 2, или 4 байта.
-
Как из - сделать + с помощью транзистора
esaulenka ответил scvirel тема в Схемотехника
Мне почему-то казалось, что у Вас есть опыт общения с автоэлектриками. Большинство - люди простые, на аккумуляторе написано "плюс" и "минус" - значит, так и есть. Ноль вольт - это когда всё выключено :-) Изменить это нельзя, только смириться... А проблема, кажется мне, решается не "полярными транзисторами", а банальным резистором подтяжки между +12 и входом. Осциллограмму входного сигнала в живой машине нагуглить не удалось, но по описанию на L497 искра формируется при переходе управляющего сигнала из единички в ноль.- 21 ответ
-
- транзистор
- реверс
-
(и ещё 2 )
C тегом:
-
Словоблудие - вся эта тема, к сожалению. Потому что hacker_fox только ближе к середине сказал, что у него не NAND, не FRAM и не SD, а NOR. Возможность записывать что угодно и куда угодно (только 1->0, разумеется), довольно мелкий размер стираемого сектора, гарантия от производителя, что данные не побьются - с одной стороны (в сравнении с NAND). Необходимость делать-таки FTL (или заметно урезать функционал) - с другой стороны (в сравнении с SD). Какие тут цифры могут быть, я не очень понимаю. Сначала определяемся с хотелками, потом начинаем сравнивать (с цифрами, да) хоть сколько-то похожие предметы. Единого списка "что должна делать ФС" тоже не существует. Читать должна. Возможно, писать. Возможно, форматировать под себя диск. Возможно, обеспечивать какие-то средства отказоустойчивости. Непосредственно процедурами обмена с носителем должен заниматься драйвер. Управлять динамической памятью должна ОС (если ФС нужна такая память). Кофе должна варить кофеварка. Но что-то я сомневаюсь, что выше написано хоть что-то новое. Опять словоблудие...
-
Тёплое с мягким сравнивать - не очень большой смысл. Это разные FS, и применяться должны в разных условиях. Сколько памяти будет потреблять FAT + FTL ? И про фразу "littlefs не имеет исправления ошибок" хотелось бы подробности услышать. Не обрабатывает ecc ? А что, это ФС должна делать, не драйвер?
-
Компаратор LPC4078
esaulenka ответил Artemius_tv тема в ARM, 32bit
Файлик из комплекта кейла: * $Id$ LPC407x_8x_177x_8x.h 2012-04-25 * @file LPC407x_8x_177x_8x.h * @brief CMSIS Cortex-M4 Cortex-M3 Peripheral Access Layer Header File for * NXP LPC407x_8x_177x_8x. * @version V0.7 * @date 20. June 2012 * @author NXP MCU SW Application Team * Copyright(C) 2012, NXP Semiconductor * All rights reserved. typedef enum IRQn { .... EEPROM_IRQn = 40, /*!< 40 EEPROM */ CMP0_IRQn = 41, /*!< 41 CMP0 */ CMP1_IRQn = 42 /*!< 42 CMP1 */ } IRQn_Type; -
Спасибо. После допиливания (я не очень понял, как оно работает изначально, без создания объекта, хотя бы временного) получилось следующее: struct CASTtoU16 { template <typename T> CASTtoU16(T *data) : bytes((uint8_t *)data) { } uint8_t * const bytes; operator uint16_t() const { return bytes[0] | (bytes[1] << 8); } CASTtoU16 & operator =(uint32_t val) { bytes[0] = val; bytes[1] = val >> 8; return *this; } }; // example uint8_t arr[32]; CASTtoU16 {&arr[3]} = u16; uint16_t u16 = CASTtoU16 {&arr[5]};
-
Защита от переполюсовки AA батарейки
esaulenka ответил esaulenka тема в Схемотехника
Не я это первый начал :-) Изделия, которые активно потребляют от бытовых или около-бытовых батареек/аккумуляторов, на рынке есть. Начиная от фотовспышек и заканчивая шуруповёртами. Я и сам когда-то делал термопринтер, который запитывался от 6 последовательных NiMH. Сколько тока там потреблялось, я уже забыл, но напряжение просаживалось процентов на 30 (пришлось городить даже динамическое задание скорости печати в зависимости от просадки в данный конкретный момент, чтоб оно хоть как-то работало). И вообще, батарейка - расходник. Мы ж о пользователе заботимся, чтоб ему и в эфир помощнее передавало, и лампочками поярче мигало, а то, что батарейка разрядится чуть быстрее - ну и чёрт с ним. Тем более, с точки зрения расхода батарейки куда интереснее оптимизировать ждущий режим, в котором устройство будет проводить бОльшую часть времени. Стыдно сознаться, но я неграмотный. В букваре ВАХ диода начинается от нуля. В характеристиках в даташите нулевой точки нет, а при токах в миллиампер падение уже порядка 0.6 вольта и есть. Что там в реальной жизни творится в районе нуля, толком не задумывался. Хотя... вот на BAT54 есть график в более-менее нужном масштабе. Ну да, при единицах-десятках мА падение не очень большое. В случае паразитного диода MOSFET'а лучше, видимо, смотреть на графики BAS16, там будет несколько хуже... В общем, спасибо за советы, завтра надо будет поэкспериментировать, благо основа есть, надо только транзистор добавить. Спасибо за советы. Если уж ставить литий, то плоский. Дизайнер и начальники, которые утверждают этот дизайн, будут в восторге. Останавливает только вопрос, что делать пользователю года через 2-3-4. Аккумулятор этот с ненулевой вероятностью банально снимут с производства... В остальном, для нашего применения - сплошные плюсы. -
Защита от переполюсовки AA батарейки
esaulenka ответил esaulenka тема в Схемотехника
Да у меня больше вопросов, как оно будет стартовать. Step-up'у нужно 0.7 вольта, на диоде 0.6 - и вот уже никакого запаса для щелочной батарейки, не говоря уж о NiMH... Внешний шоттки даёт небольшой шанс, что оно будет стартовать с аккумулятором...