Перейти к содержанию

LiVit

Members
  • Постов

    170
  • Зарегистрирован

  • Посещение

Весь контент LiVit

  1. Здравствуйте, Варвара! Этот проц, в этом корпусе имеет два 16 битных порта - PA и PB На PA13 и PA14 выведены SWD и SWC линии, они нужны для отладки, поэтому вам остается только порт PB. Кроме дрыганья ногами, этот проц должен еще что-то делать? UART, SPI, I2C вам нужны? Для разработки вам нужна IDE. Лучший вариант - KEIL. Как начать с ним работать можно посмотреть в инете. У вас есть отладочная плата с этим процессором? Если нет - приобретите. И программатор тоже. Вот после того как соберете всё необходимое, можете смотреть как работают порты у этой STM. Кстати, если это имеет значение, - не все порты у STM толерантны к 5 вольтам. Прежде чем писать основную программу, вам необходимо будет настроить тактовый генератор, запустить тактирование выбранной периферии. Об этом тоже всё есть на просторах инета. Настройка направления ножки порта и прочая интересующая вас информация описана в Reference manual RM0008, в главе 9. Там вас научат наиболее быстрому способу.
  2. LiVit

    STM32+MFRC522

    А что у вас за библиотека? Самописная? Тоже сталкивался с подобным, использовал чужую библиотеку. Потом посмотрел более современные на гитхабе, поправил пару строк и всё заработало.
  3. А вот ваша идея мне нравится. Проверю - отпишусь.
  4. Да, видимо проще схему приложить. scheme.PDF Убрал со схемы всё, что не распаяно на плате. На счет дефолтного конфига ног я в курсе, друзья. Я имел в виду, что они по дефолту к земле не подтянуты. Остается только подозрение по поводу подключения LCD, но управляющие линии посажены на 5В толерантные ноги. Да и подтягивающие резисторы 10к - не тот ток, чтобы проц угробить.
  5. Приветствую, коллеги! Ситуация такая: есть серия устройств на STM32F030R8, на некоторых время от времени начинает греться микроконтроллер. Вся логика работает, всё вроде в порядке, кроме потребления в 250мА. И перегретого корпуса микроконтроллера. В прошивке изначально отсутствовала инициализация неиспользуемых ног, кроме того, проц сначала старается завести внешний кварц, и только потом переходит на внутренний генератор. Нога BOOT0 притянута к земле напрямую, без резистора. На проце который уже начал перегреваться, я сделал инициализацию всех ног на вход, с подтяжкой ног к земле. Сразу завожу внутренний тактовый генератор. К сожалению, ему уже ничего не помогает, - даже будучи стертым, он жрет 200 мА. Как я понимаю, тут мои полномочия всё. Хотелось бы услышать от коллег, что именно могло вызвать такую странную неисправность проца? Может кто сталкивался? В Errata ничего подобного не нашел.
  6. Охренеть. Вот сейчас сотни человек юзающих KEIL и посылающих не просто helloworld-ы по UART, а что-то более осмысленное, да и зачастую генерящееся "на лету", смотрят на всё это с недоумением... Граждане, завязывайте с кубами и кокосами. Берите SPL, кейл и пишите. И всё будет работать. Я с кокоса, к примеру, спрыгнул после полугода использования, о чем не жалею.
  7. Правильно! Вот, теперь видно человека, который читает и анализирует код ))
  8. В ячейках таблицы хранится адрес функции на которую будет переход. Например, у вас есть три функции, которые должны выполняться в зависимости от состояния переменной а. Если а == 0 - функция 1 если а== 1 - функция 2 если а == 2 - функция 3 В ячейку 0 записывается адрес функции 1, в ячейку 1 - адрес функции 2, в ячейку 2 - адрес функции 3. Далее, смотрите набор команд для вашего процессора - какие из них позволяют работать с такой таблицей. В адресный регистр загружается адрес перехода из соответствующей ячейки. А вообще - пишите на Си. И побольше комментариев.
  9. Угомонитесь, горячие финские пааарни. Вопрос был про залочивание семейства 030. Вопрос успешно решен. По поводу readout protection и его вскрытия - инфа в инете, желающие - найдут. По крайней мере, когда я искал решение проблемы с залочкой, первым делом выскакивали статьи по преодолению этой защиты ))) https://www.usenix.org/conference/woot17/workshop-program/presentation/obermaier - как пример. Не исключаю, что производитель пофиксил эту проблему. Но скорее всего -нет.
  10. Это естественно. Для разлочивания используйте FLASH_Unlock();
  11. Как следует из кода, включается Read Protection level 1 (OB_RDP_Level_1). Это означает, что считать код нельзя (ну, в STM так думают). Однако, чип можно стереть, установив при помощи программатора уровень защиты 0. Если нужна более продвинутая защита, следует установить уровень 2 (OB_RDP_Level_2), это должно привести к полной залочке программы - изменить или стереть её уже невозможно. Если вы хотите, чтобы при попытке прочитать программу она самоликвидировалась, вам следует прописать это в обработчике прерывания MemManage_Handler() или FLASH_IRQHandler() - надо уточнить в мануале.
  12. LiVit

    I2C в STM32F030

    После танцев с бубном с м/к STM32F103 - там I2C вылетал постоянно и беспричинно, перешел на библиотеку CPAL, тем паче, что STMовцы её сами и рекомендуют. Для STM32F0xxx STM32F3xx есть своя библиотека - CPAL v2. Очень рекомендую.
  13. Добрейшего всем времени суток! Случилось недавно моему заказчику захотеть защитить прошивку от считывания (да, я знаю, люди эту защиту сковыривают на раз, но это уже не моя беда). А так как делать это вручную, при прошивке каждого проца, довольно геморройно, было решено добавить в код "самозащиту". Почитав мануал на проц, погуглив, почитав комментарии в stm32F0xx_flash.h, я написал следующий код: #include "stm32F0xx_flash.h" if (RESET == FLASH_OB_GetRDP()) //checking protection status { FLASH_OB_Unlock(); //unblock the Option Byte if (FLASH_COMPLETE == FLASH_OB_RDPConfig(OB_RDP_Level_1)) FLASH_OB_Launch(); FLASH_OB_Lock(); } Казалось бы, всё сделано так, как рекомендовано. Тем не менее, этот код не работает. Гугль показал, что данная тема волнует не только меня, но и других камрадов. В общем, правильное решение выглядит так: #include "stm32F0xx_flash.h" if (RESET == FLASH_OB_GetRDP()) //checking protection status { FLASH_Unlock(); //unblock the FLASH (!!) FLASH_OB_Unlock(); //unblock the Option Byte if (FLASH_COMPLETE == FLASH_OB_RDPConfig(OB_RDP_Level_1)) FLASH_OB_Launch(); FLASH_OB_Lock(); FLASH_Lock(); } Обратите внимание, - перед тем, как разблокировать Option Byte, необходимо разблокировать саму флэшь.
  14. Топик стартеру: https://ru.aliexpress.com/item/New-USB-Logic-SCM-24MHz-8-Channel-Logic-Analyzer-Debugger-for-ARM-FPGA-High-Quality/32802668198.html?spm=a2g0v.10010108.1000014.2.1160156aP4fJlG&traffic_analysisId=recommend_3035_null_null_null&scm=1007.13338.99596.000000000000000&pvid=7d4d46e6-19a9-4283-9996-d677a79fe9cf&tpp=1 Дешево, сердито, для вашей задачи - более чем достаточно.
  15. LiVit

    Проблема с SPI

    Для начала, нужно хотя-бы семейство обозначить. Например, у STM32F030 и иже с ним, для того чтобы передать 8 битные данные через SPI, надо SPI_SendData8() использовать, а для 16 битных - SPI_I2S_SendData16(). У STM32F103 иначе. И да, осциллограф и логический анализатор просто необходимы. Тем более, логические анализаторы сейчас стоят копейки.
  16. Конечно. https://ru.aliexpress.com/item/2-9-inch-3-Color-EPD-display-eink-epaper-display-panel/32809158586.html?ws_ab_test=searchweb0_0,searchweb201602_5_10152_10151_10065_10344_10068_10342_10343_10340_10341_10543_10084_10083_10618_10307_10301_5711216_10313_10059_10534_100031_10103_10627_10626_10624_10623_10622_10621_10620_5711316_5722416_10125,searchweb201603_25,ppcSwitch_5&algo_expid=c6e91efd-3b04-4e2c-a404-266cbd4dc9e0-0&algo_pvid=c6e91efd-3b04-4e2c-a404-266cbd4dc9e0&priceBeautifyAB=0 Перед покупкой общаетесь с поставщиком. он высылает даташит на микросхему-драйвер.
  17. ИМХО, лучше делать не на светодиодном индикаторе, а на e-inc. Правда, конский ценник по сравнению с LED. Но работать без подзарядки должно дольше. Китайцы сейчас предлагают 3 цветные модули с интегрированной системой управления (что в разы уменьшает геморрой), небольшого размера, прям для вашего случая.
  18. Топикстартеру надо просто купить "умные часы" с кнопкой SOS. Оно там всё реализовано, ИМХО.
  19. Народ дело говорит. Это я как профессиональный разработчик говорю, а не любитель в выходные поковыряться. Нормальная разработка стоит дорого. А хреновая - трата денег клиента. Особенно порадовал Ваш дальнейший пассаж про ардуину и умельцев, ваяющих на ней. И кстати, ТЗ - это просто страшное словосочетание. А по факту - набор "хотелок". "Хочу, чтоб в автомобиле работало" - главный пункт в ТЗ. Для Вас это просто хотелка, а для разработчика - совместимость с бортовой сетью питания, защита от того трэша, что в этих сетях бывает (импульсы до 250В - каково? Это по ГОСТУ), устойчивость к вибрациям, температурный диапазон от -40 до +80, влагозащита. Потом, нормальный разработчик предусмотрит как и кто будет ставить, а также - где. Не везде GPS трекер можно расположить в автомобиле. Я еще и жгут для подключения разработал бы. Чтобы совсем хорошо было. Кстати, Вы писали, что такие трекеры, как Вам надо, стоят бешеных денег. Дак вот, они их стоят правильно. А разработка их стоила вообще адских денег. Я не набиваю цену, я рассказываю про реальную жизнь. А на ардуине.... ну ладно, пусть ребятишки поиграются. Только Вы потом с них не спрашивайте строго, - почему, мол, не работает? Потому что баловство.
  20. Набиваем цену? Интересно. Это как вызвать такси и не сказать куда ехать надо. А приехавшему таксисту потом заявить, что во Владивосток приспичило. Когда люди спрашивают ТЗ - это признак адекватности разработчика. А если разработчик еще и заботится о кармане заказчика, то это еще один жирный плюс разработчику. А у меня работа есть. И Вам я написал только для того, чтобы Вы имели представление, как делаются нормальные разработки. Вот пример адекватного заказчика: http://forum.cxem.net/index.php?/topic/171576-спроектировать-секторную-pcb-антенну/ Но видимо, зря я Вам это пишу. Не в коня корм.
  21. Уважаемый, Вас про требования спрашивали? Вот то что описано - это тоже технические требования. Температура, время работы без внешнего питания, установка в автомобиле (напряжения, скачки напряжения, вибрации). Правильно сформулированный вопрос - половина ответа. Так и тут, если не хочется прочитать кучу мусора, надо сразу писать что требуется разработать. Уверен, такие трекеры есть и продаются. Если вы хотите их использовать - дешевле купить. Если хотите производить и продавать, то разработка будет стоить от сотни тыр. Это если человек уже делал что-то подобное. Если не делал, то от двух сотен тыр. Плюс время - от месяца, если человек это уже делал, до года.
  22. Позвольте поинтересоваться, а источник (тот, который 3-4 вольта) сможет обеспечить 50А? Что за источник такой? LiIon аккумуляторы? А не проще их последовательно включить и получить требуемое напряжение? Зачем такая порнография?
  23. Автору (или авторам, не разберешь вас тут) темы: Прислушайтесь к людям, они дело говорят. 150 Вт светодиодного света - очень много. Даже 50 Вт светодиодного света это очень много. Прикиньте, - лампочки на 11Вт хватает, чтобы осветить комнату (!) на 12 квадратных метров. Вы собрались одним человеком осветить весь танцпол? Эти светодиоды, о которых вы пишете, я знаю, работал с ними. ЧУдная вещица. Просто ограничивайте яркость (программно), и контролируйте ток (шунт, АЦП). Если ток превышает 5А, значит программа дурит, сделаете групповой сброс для светодиодов. Блок питания на 5В/5А - штука несложная. И вообще, попробуйте запитать светодиоды напрямую от аккумуляторов. Помнится, они работали от 3,5 вольт.
×
×
  • Создать...