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

AVI-crak Home

Members
  • Постов

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

  • Посещение

Весь контент AVI-crak Home

  1. Решение есть, причём появилось оно ещё до создания микроконтроллеров как таковых. http://kazus.ru/shemes/showpage/0/883/1.html
  2. Вход захвата таймера имеет аппаратный фильтр от дребезга, его обязательно нужно настроить. Но как это сделать на хале - не подскажу. Вообще, хал использует 10% от всех возможностей периферии, и это требование обратной совместимости. Дело в том что в серии st есть откровенно дохлые чипы, которые тоже должны работать через хал. Вот так самое слабое звено гасит всё остальное. Чтоб было легче разобраться. https://arm-stm.blogspot.com/2016/01/stm32f-timer-diagramm.html
  3. Ну так это логично. Отладочные платы существуют для отладки и изучения периферии камня. Они не подходят для изготовления работающих девайсов, слишком хлипкое устройство получается. Количество и качество публикаций с участием досок - тоже имеет своё объяснение. Надеюсь вам знакомо чувство победы, оно настолько сильное что глушит все остатки разума, и заставляет хвастаться перед неудачниками. А поле боя там обширное, можно сказать даже необъятное. Самое простое что вам понятно на данный момент - мигание светодиодом, именно на эти публикации вы и обращаете внимание. Более сложные проекты воспринимаются как магия, и банально игнорируются - а они существуют!!! Этот уровень магии достаточно легко можно проследить на форумах, чатах и так далее. Когда отваливаются вчерашние активные собеседники, им просто нечего сказать. Отладка на готовом личном девайсе - как секс после свадьбы. Словом, не стоит этим заниматься на площади - советами за...
  4. Как правило - первая прошивка тестовая, даже для серийный девайсов. Тестовая прошивка выполняет тест пайки на залипание и обрыв, тест окружения, сокращённый тест переферии, и так далее. С подробным рапортом в линию отладки. И только потом заливается рабочая прошивка с локом бута, или всего чипа. Кроватка нужна только в одном случае, когда целостность девайса не позволяет рисковать установкой чипа без проверки. Вот тогда его ставят сначала в кроватку, тестируют в хвост и гриву, потом впаивают на пп, и снова тестируют. Например девайс должен работать в таких далёких краях - что командировка туда приравнивается к пыткам. Вот тогда начинаешь шевелиться. А то о чём вы думаете - фигня полная.
  5. Хорошая шутка. Ну посмотри ценники кроваток под lqfp с шагом 0,5мм, это тебя немного остудит. Например lqfp208 ~ 70к рубликов.
  6. Проблема в использовании указателя в сыром виде (*string). В этом случае читается всё что начинается с адреса string, это может быть один байт - если он старший, и все 4 байта - если он окажется младшим. Вместо этого нужно читать явно: while( string[0] ), data = string[0]. Второе: указатель принимает адрес константы, + этот адрес находится в параметре функции - операции c подобными переменными дурной тон. Необходимо создать новый указатель в самой функции, и менять его как хочется. Функция не должна менять внешний указатель в своём параметре. В противном случае повторное использование функции может дать весёлый результат.
  7. От начала таблицы, которая обязана располагаться сразу за командой табличного перехода.
  8. funs: // rx - регистр с номером строки таблицы tbh [pc, rx, lsl #1] Table: .hword ((__funs_1 - Table)/2) .hword ((__funs_2 - Table)/2) .hword ((__funs_3 - Table)/2) __funs_1: код __funs_2: код __funs_3: код Часть вопроса является ответом.
  9. AVI-crak Home

    I2C в STM32F030

    Думаю что эта информация не принесёт пользы. MPU9255, TSC2007, BME280, MCP3421, и ещё с десяток подобной мелочи. Далеко не все чипы будут работать в девайсе, но они все распаяны на макетке.
  10. AVI-crak Home

    I2C в STM32F030

    С активными датчиками: в которых есть собственные таймеры, буферы данных - которые обязательно нужно читать под кривым углом, регистры состояний - с чёткой последовательностью в алгоритме доступа. Это когда простой сбой на линии данных вызывает очевидный сбой в алгоритме работы датчика. И тогда уже он начинает куралесить в шину i2c. С пассивными компонентами проблем нет. Там обработку ошибок можно существенно сократить. Но если датчик умеет работать в режиме мастера - вот тогда начинаются пляски. Какие именно датчики? всё новое и связанное с авионикой.
  11. AVI-crak Home

    I2C в STM32F030

    Есть, но я всё-ещё считаю его сырым. На данный момент я просто сбрасываю состояние и прокачиваю шину с нулевым адресом. Однако это не совсем правильно. Там масса флагов под конкретные виды ошибок, все они должны обрабатываться по разному. И конечно-же любой сбой должен аннулировать предыдущую операцию на шине i2c. И вот тут возникает прикол, который я не могу побороть уже чёрт знает сколько времени. Внешнее ведомое устройство помнит о сбое. Естественно обработка ошибок в нём то-же есть, причём мне кажется обработка должна выполняться по всем правилам интерфейса i2c. Дык вот, алгоритмы не совпадают. И при этом непонятно - какой из чёрных ящиков работает не по стандарту. А сам стандарт я уже вдоль и поперёк перекопал. Даже полностью программным вариантом нагружал - ошибки разные и не повторяющиеся.
  12. AVI-crak Home

    I2C в STM32F030

    В случае i2c - нескольких строчек на CMSIS явно недостаточно. Там только один алгоритм обработки ошибок - целая портянка. А без него i2c будет работать до первого зелёного свистка, что явно не добавит надёжности девайсу. И ещё, i2c - крайне тормозная периферия. Здесь нет смысла ждать моментального отклика после прямой записи в регистры. Отчего сам алгоритм обмена начинает смахивать на магию - когда улучшенный и вычищенный от мусора код просто перестаёт работать. Это результат слишком быстрого всплытия, когда лёд ещё не успел растаять... (образное выражение) Причём размер портянки обработки ошибок - почти константа, без малейшей зависимости от версии чипа. Размер одинаковый, смысл сходный, а код разный. Аминь.
  13. Макеток тоже много? как у дурака махорки небось. Есть конкретная макетка, на ней есть конкретный проц с названием и документацией к нему на сайте st. Документация не меняет стиль, форму , и содержание - при смене языков программирования, и среды программирования. Придётся читать другую документацию на другой камень. А всё что на данный момент пытаешься изучать - лишь многократный слой абстракции на ту самую документацию. И это не азы, это всего-лишь описание внутренней структуры камня.
  14. Prominence Пока не поздно, документация на чип имеет строгую структуру - в первых главах самое важное, чем дальше - тем больше зависимость от написанного в первых главах. То-есть нельзя просто взять доку и сразу изучать кан например. Нужно читать по порядку, до полного просветления. Не обязательно зубрить содержимое регистров, это практически невозможно - но необходимо в обязательном порядке понять за что отвечает тот или иной блок регистров. И в какой-то мере уяснить их зависимость друг от друга. Первым там описывается структура памяти, потом работа флеш памяти. Без настройки таймингов флеша - повышать частоту не имеет смысла, всё встанет колом. Ну и сама настройка pll. Необходимо один раз прочитать эту главу целиком, хотя-бы с переводчиком от гугла. Смысл в том что запуск кварца, а так-же самого PLL - крайне тугой процесс. Его удачного завершения или облома необходимо дожидаться в цикле опроса соответствующих флагов. У каждого чипа собственная неповторимая настройка PLL, по этому единого стандарта просто не существует. Однако порядок настройки имеет стандарт. В этом можно убедиться читая чужие конфигурации.
  15. Чертовски нудный урок... Открытое видео осталось воспроизводиться фоном, и уже через час хотелось повеситься.
  16. AVI-crak Home

    STM32H7xx

    Я уже говорил, это работает иначе. Готовые модули теряют универсальность с такой-же скоростью как и желающих их купить. По этой причине и не продаются - потому как нет единого стандарта. Каждый лепит что-то своё уникальное, и почти у всех это получается. Но остаётся вопрос цены. При штучном изготовлении ценник получается откровенно конским. И тут на помощь приходят краудфандинговые площадки. Разработка модуля не представляет огромной сложности, гораздо важнее снизить ценник. Точнее - разработать модуль можно за один вечер. Потом вся документация по модулю размещается на площадке, на гите, и ещё на куче спец сайтов - и начинается поиск желающих присосаться к проекту. Если вас устраивает конфиг - то цена модуля будет равна сумме комплектующих, печатки и пайки. В условиях 10к и более штук заказа - ценник на 1 штук получается откровенно смешной. Забирать заказ через али, страница будет актуальной буквально несколько дней - по этому ссылки давать нет смысла. Тому кто подключился к проекту - прямая выгода. Дополнительный заказ хоть на 1 штук хоть на 1000 - можно разместить без предоплаты. На фабрике уже есть отлаженный тех_процесс, и с вас уже не сдерут лишнее за фотошаблоны, трафареты шелкографии, паяльной маски, и многое другое. Всё это уже изготовлено. Что-бы был понятен порядок цен. Самостоятельное изготовление аналога esp8266 обойдётся вам примерно в 6 тысяч за первый экземпляр. Тот-же модуль при массовом изготовлении имеет ценник меньше ста рублей. Интересно другое. В России халява приобретает причудливые формы садомазо. Например выросли как грибы после дождя фирмы предлагающие проектирование и изготовление таких модулей, естественно по космическому ценнику. То что садомазо фирмы остаются на плаву - означает что дураков у нас не убавилось. Моё задание оценили в полтора миллиона рублей, но мне удалось найти проект почти полностью подходящий к моим условиям(немного лишнего) - ценник получился 16 баксов за модуль(заказано пять штук). В результате получил модуль который буквально на скотч прилепил к жк на 7 дюймов + немного кодинга на один вечер, и отдал заказчику. Заказчик доволен ценой и сроком. Это вам не миллиарды на разработку от государства, тут за свои деньги заказывают.
  17. AVI-crak Home

    STM32H7xx

    H7 применяется иначе. Для этих чипов главное - компактность, что можно сделать только на многослойной пп. На али есть модули с H7 (чип+sdram 32b память+ 25-тая флеш память+разъём под экран+ кварцы и прочая мелочь). Оставшиеся контакты выведены на гребёнку, их не так уж и много чтобы запутаться или почувствовать сложность. Размеры модуля - чуть больше 208го корпуса той-же st. А цена в 6 раз меньше стоимости набора компонентов россыпью. Тут срабатывает принцип - готовое на плате дешевле отдельных элементов. Потому как производитель печатки может закупать компоненты по оптовым ценам у производителя, минуя посредников!!!.
  18. Возможно User_1 изобретает очередную ос. Там в реальности очень трудно сделать как-то иначе. Хотя можно завалить код тоннами строк условной компиляции, чтобы никто и никогда не смог разобраться. Все успешные ос имеют собранное ядро в одну библиотеку, естественно без возможности заглянуть в содержимое функций. Отчего на гитхабе, да и на других ресурсах - новые ос растут как грибы. Как уже сказано: сделать иначе практически невозможно, хотя можно добавить собственных ошибок, и по началу это даже будет круто. https://bitbucket.org/AVI-crak/rtos-cortex-m3-gcc/commits/branch/default Для stm32f105 применяется файл RtoS_cortex_m3.S. Строка 453 - выход в новую задачу, всё остальное - варианты сохранения и переключения контекста. То-же самое можно сделать на Си, да поначалу так оно и было - но к сожалению GCC выше 4,3 жутко чудит в этих вопросах, а двигаться дальше нужно...
×
×
  • Создать...