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

COKPOWEHEU

Members
  • Постов

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

  • Посещение

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

  1. Там, куда вы запишете SPH:SPL, наверное. Я с параллельной памятью не работал, но логика подсказывает, что если SPH:SPL указывают на память контроллера, то и стек будет там, и скорость доступа как к внутренней памяти, а не как к внешней.
  2. А что за устройство-то? Где схема, прошивка? Без кода stm32f103 по usb общаться не умеет, без обвязки тоже. А с кривой китайской обвязкой как на некоторых bluepill-ах может работать нестабильно. Там кто-то забыл глаза открыть, когда напаивал подтягивающий резистор, и вместо 1.5к воткнул 10к.
  3. Это достаточно безопасно. Современные контроллеры не дохнут от каждого чиха. По крайней мере ни один из тех, что паял я (без антистатического браслета и прочих предосторожностей, естественно) от этого не умер. А вот это проверить можно. Можно даже вообще их выпаять, чтобы уж точно исключить утечки. Кварц запустится и без них, хотя, возможно, будет работать менее стабильно или на немного другой частоте. Будете изучать написание кода для нее? Если вы говорите, что через UART прошивается, значит скорее живой.
  4. Не надо столь категорично. Я для теста специально коротил ножку кварца на землю, прекрасно после этого работало. Что там сломалось у вас в устройстве не знаю, но дело явно не просто в замыкании. Может, статикой пробило или еще чего.
  5. Это та гуёвая кривулька, которая с первого раза не всегда запускается и постоянно выставляет биты RDPR?
  6. ...и показываете скриншот от STM. Гениально. Ах да, чуть не забыл. Загрузчик ch32 не совместим со стандартными. Ни по UART, ни по USB. Мне пришлось для него свою программу-прошивальщик писать: https://github.com/COKPOWEHEU/wch-isp
  7. Точно? А даташит говорит, что не просто работать, а перепрошиваться через USB умеет. То есть достаточно boot0, boot1 в нужное состояние выставить, и без всякого юзерского кода в системе определится
  8. Вообще не горит и не мигает?! Он точно на PC13? Что-то очень странное
  9. Хотел сделать чтобы по usb подключалась независимо от кварца. Но, кажется, ST накосячили с тактированием, и от встроенного RC-генератора больше 64 МГц не выжать. Для usb достаточно, но для универсальной тестовой прошивки нет, поэтому и заморачиваться не буду. В общем, вот тестовая прошивка. Если с кварцем все в порядке, отображается как флешка и делает короткие импульсы диодом. Если не в порядке, мигает быстро и равномерно (длительность импульса равна длительности паузы). firmware.hex
  10. Хорошо А у вас прошивка 24 кБ занимает. Какая разница сколько незначащих байт хранится дальше.
  11. Тогда лучше поискать более проверенную конструкцию. Совсем хорошо, если у нее будут исходники и сообщество. Да. Контроллер стартует от встроенного RC-генератора на 8 МГц, а потом может переключиться на внешний кварц и подстроить делители - множители. Ну если хотите, могу набросать какую-нибудь тестовую прошивку. Но запустить ваш "осциллограф" это не особенно поможет.
  12. У меня была когда-то проблема с грязью на плате, которая обладала достаточной проводимостью чтобы мешать кварцу запуститься. Отмывка в ацетоне помогла. Была проблема со слишком долгим выходом в рабочий режим - инициализация кварца вылетала по таймауту. Решалось увеличением таймаута. В первую очередь стоит переключить ноги кварца на обычные GPIO и помигать ими чтобы проверить есть ли контакт. Еще, раз у вас несмотря на проблемы с кварцем, диоды все-таки мигают, есть шанс, что он в коде вообще не используется. Но поскольку прошивку вы не показываете, ничего сказать нельзя.
  13. А в результате куча умирающих от ожирения программ, веб-сайтов и тому подобного. Уже пары гигабайт для просмотра простейших сайтов становится недостаточно. Уже никого не удивляют требования гигагерцев чтобы отобразить простейшую информацию. А со стороны электроники - ардуинщики и ST-cube-овцы. Зачем учиться паять и программировать, когда можно тяп-ляп собрать этажерку из шилдов, обмазать термосоплями и выдать за законченное устройство.
  14. Параллельно: прочитал про какую-то периферию - проверил. Прочитал про какую-то особенность ядра - проверил. А теперь все-таки ответьте на вопрос. Ну, не так категорично. Изредка встречаются и люди, способные ардуинки именно программировать. Или и вовсе, страшно подумать, используют их по назначению - как отладочную плату. Это в лучше случае . Ну, пока оно даже на столе не работает, туда рандомно напихивается код и детальки пока не начинает делать вид, что работает. Не надо. Даже ассемблер не обязательно. Его и позже можно освоить. Что-то все больше кажется, что под словом "арихитектура" вы понимаете что-то свое, не то, что все остальные. Только если вы общаетесь голосом с иностранцами. По-русски все пишут и говорят "даташит". Да, слова при заимствовании меняют и написание, и звучание, и, иногда, даже смысл.
  15. А как вы предлагаете его изучать? Тупое чтение даташита от начала до конца? Так это не приблизит понимания. Увы, достаточно оглянуться вокруг. Поклонники Ардуины, ST_Cube и прочего. Самое печальное, что на столе-то у них все работает. На пару порядков медленнее чем должно, но все же. А вот когда такое поделие пытаются использовать, скажем, для управления лифтом...
  16. Первая же ссылка в гугле выдает правильный адрес: http://easyelectronics.ru/category/avr-uchebnyj-kurs А вторая - его же, но собранного в единый pdf. Особенно эпичные ардуинщики справляются и без этого... А если серьезно, может там не в непонимании архитектуры дело, а в каком-то мелком затыке. Ну там непонятно как Си-шный файл вообще перевести в прошивку, или как обращаться к периферии, или еще что-то. Понимание внутреннего устройства МК ведь само придет, если на нем активно что-то делать.
  17. Курс DiHalt-а уже освоен? А что именно не получается? У меня в свое время была проблема как описать прерывания, да и вообще как это все собрать. Но у вас скорее всего что-то другое. Еще могу посоветовать посматривать в дизасм - во что разворачиваются инструкции, что компилятор добавляет по умолчанию и т.д. Если с ассемблером знакомы, это может сделать "компиляторную магию" более прозрачной.
  18. Ну так берите блокнотик, в котором это есть. Я kwrite использую. Вроде в Notepad+ тоже с подсветкой все нормально. Скажем так: линукс можно использовать как одну сплошную IDE. И это прекрасно! Вот надо мне сейчас набросать код на Си, потом makefile, потом кусочек на асме и склейку на bash - да на здоровье, все делается одними и теми же инструментами, не надо запускать десяток IDE. Хотя и недостатки у такого подхода, конечно, есть. Если бы я хорошо умел пользоваться IDE-шками, наверное мог бы назвать кучу. А так только пара штук наберется. Недостаточно чтобы переучиваться. Уверен, вы и сами знаете, что с незнакомым инструментом оно всегда так. Поначалу приходится с ним бороться, зато потом наступает симбиоз и взаимопонимание... до очередного обновления, в котором сломают что-нибудь нужное и вкорячат ненужное.
  19. Две. Надо же определить конец ввода. Я буквально на НГ с ним развлекался. Хотя можно попробовать по времени, тогда и правда одна будет. Да нет, там же пауза между импульсами более-менее известна. Первый импульс пришел - начало ввода. Нет импульсов достаточно долгое время - конец ввода. Правда, если юзер будет елозить диском туда-сюда, будут ложные срабатывания. Но тут уж он ССЗБ. Только места это на плате займет больше, чем нормальный контроллер.
  20. На вольтметре 1000 делений не нарисуешь. Хотя есть же цифровые показометры. Вот только если хватает места для такого показометра, можно не мельчить с контроллером и поставить тот, у которого достаточно выводов.
  21. и длина 2 см. Больше похоже на саму плавкую волосинку в предохранителе, чем на прибор в целом. Хотя с таким диаметром "воловснка" амперы будет держать.
  22. У пингвинов можно и без IDE программировать почти без танцев с бубном. Разве что makefile написать непросто. Я вот с IDE так и не подружился, в блокнотике и консоли проще.
  23. АЦП, например. Вообще один контакт. Правда, непонятно как индицировать результат. Хотя мелкие OLED требуют всего 2 контактов. Или другая "крутилка", энкодер. Тоже не так много выводов требует. --- А то можно разделить короткое и длинное нажатие. Короткое - счет по единице на нажатие, длинное - смена разряда. Как в бытовой технике или часах. В общем, с выводом будет больше проблем, чем со вводом.
  24. COKPOWEHEU

    Systick

    Стоило указать, что systick это именно ядерный таймер, прописанный прямо в стандарте risc-v, а не периферия, специфичная для какого-то конкретного контроллера. Потому и адрес начала такой странный. Соответственно и возможностей у него куда меньше, чем у периферийных: всего один регистр сравнения, нет ШИМ и т.д. И область применение у него куда проще: это либо глобальный счет времени для задержек, либо таймер для операционной системы, точнее для ее переключалки задач. Разумеется, никто не запрещал объединять. Впрочем, для счета времени в risc-v есть и другие способы. Например, CSR-регистр mcycle, который считает такты ядра и доступен только для чтения: inline uint32_t read_mcycles(){ uint32_t res; asm volatile("csrr %0, mcycle" : "=r"(res) ); return res; } Если это ОС, то, естественно, код будет прямо в обработчике. Если счет глобального времени - тоже. А если это юзерский код, то его лучше расположить в периферийном таймере. Или использовать тот самый глобальный счет времени: void some_user_func(){ const uint32_t t_delay = 100500; static uint32_t t_prev = 0; uint32_t t_cur = read_mcycles(); if( (t_cur - t_prev) < t_delay )return; t_prev = t_cur; //some code } Опечатка: ядро называется QingKe RISC-V2A А вот этот момент хорошо бы уточнить. В другом risc-v контроллере gd32vf103, да и в ch32v307 пишут, что счетчик вообще 64-битный. Хотя у меня чего-то отложилось, что у gd-шки всего 24 бита. Но, может, я чего-то неправильно запомнил. Если это правда, он и без делителя вообще любые интервалы считать может, хоть столетия.
  25. COKPOWEHEU

    Как затактировать систему

    la t0, main csrw mepc, t0 mret Интересно зачем это сделано, почему было не обойтись обычным call (который jal) или вовсе безусловным переходом. Неужели для выхода из kernel-mode в user? Видать, их ST-шники покусали. Хорошо еще не до изобретения ST-HAL-а. Видать, даже трудолюбивым китайцам не захотелось такую кучу говнокода лопатить.
×
×
  • Создать...