Вопрос про загрузчики

b707_2

★★✩✩✩✩✩
22 Июл 2020
182
51
Имена эти взяты из диспетчера устройств, то есть от туда, как эти платы определяются под виндой.
имя устройства в диспетчере винды - задается одной строчкой в коде.
Точно так же, кстати. как частота ядра процессора. Так что код может быть одним и тем же, а имена в винде разными.
Ну и добавлю, для определенности - имя в винде может не иметь ничего общено с именем файла бутлоадера
в частности, поведение светодиодов разнится.
этому может быть очень простое обьяснение - на одной из ваших плат подписи у светиков перепутаны. Китайцы их путают сплошь и рядом
 
Изменено:

Propretor

✩✩✩✩✩✩✩
27 Авг 2020
26
0
мя устройства в диспетчере винды - задается одной строчкой в коде.
Видел код, знаю.
Точно так же, кстати. как частота ядра процессора.
Место покажите? Ну, например, на примере кода что прикрепил к данному сообщению
Так что код может быть одним и тем же, а имена в винде разными.
Понятно, что пользователи могут натворить все что угодно, но производители массового железа вряд ли будут этим баловаться.
на одной из ваших плат подписи у светиков перепутаны.
Перепутаны? Чушь какая. Уже 100 раз писал - без скетча, пустая плата и постоянно горят светодиоды, ОБА. Смена прошивки приводит плату в нормальное состояние.
 

Вложения

b707_2

★★✩✩✩✩✩
22 Июл 2020
182
51
Место покажите? Ну, например, на примере кода что прикрепил к данному сообщению
не там ищете. Частота МК, под которую компилируется программа - задается ключом F_CPU компилятора и указывается в Makefile. По вашей ссылке тоже есть Makefile, там можно посмотреть, как оно задается:
C++:
# enter the target CPU frequency
AVR_FREQ   = 8000000L
и как потом используется:
C++:
CFLAGS        = -g -Wall $(OPTIMIZE) -mmcu=$(MCU_TARGET) -DF_CPU=$(AVR_FREQ) $(DEFS)
Кстати. ровно так же задается частота и при сборке скетчей в Ардуино ИДЕ, только значение частоты берется не из Makefile, а из настроек платы в файле boards.txt, который мы с вами обсудали на первой странице темы

Понятно, что пользователи могут натворить все что угодно, но производители массового железа вряд ли будут этим баловаться.
тут опять у вас некое непонимание.
Судя по словам про "производителей". да и по вопросам ранее про "официальные исходники" - вы наверно думаете, что весь этот софт пишут производители ардуино? - ошибаетесь. почти все это - "народное творчество", как и 90% библиотек ардуино. Все это пишут такие же независимые авторы. как вы или я - и выкладывают на Гитхаб. Загрузчики - не исключение, каждый может написать свой бутлоадер :)))
 
Изменено:

Propretor

✩✩✩✩✩✩✩
27 Авг 2020
26
0
Частота МК, под которую компилируется программа - задается ключом F_CPU компилятора и указывается в Makefile.
При чем здесь компилятор? Если частота 8 или 16МГц задается не фьюзами, значит она прошита в загрузчике или коде программы. Я с крайним своим сообщением привел 2 загрузчика своих плат. И спросил - где в них прописана частота, а вы мне начинаете объяснять, как эти загрузчики официальным путем формируются и попадают в МК. Это не то, о чем я спрашивал.
По вашей ссылке тоже есть Makefile
По какой ссылке?
Все это пишут такие же независимые авторы.
Ну это, наверное, как посмотреть на вопрос, под каким углом. Я, например, считаю, что то, что находится "под крышей" IDE или написано итальянцами, которые, как я понимаю, и популяризировали МК ATMEGA, является своего рода стандартом. Это мое мнение и я на нем не настаиваю.
А вот в каком месте загрузчиков прошита частота, мне вот очень любопытно.
 

b707_2

★★✩✩✩✩✩
22 Июл 2020
182
51
И спросил - где в них прописана частота, а вы мне начинаете объяснять, как эти загрузчики официальным путем формируются и попадают в МК. Это не то, о чем я спрашивал.
Вы, простите, слишком мало знаете, чтоб правильно спрашивать. Временные интервалы в коде загрузчика вычисляются исходя из частоты МК. Но сама частота в коде не задана, она устанавливается в момент компиляции ключом -DF_CPU. Если вы не в курсе, ключ компилятора -D - это все равно что #define в исходнике. Таким образом, компиляция с ключом -DF_CPU=8000000 равносильно добавлению строчки
C++:
#define F_CPU = 8000000
в начале исходного кода. В итоге - исходный код загрузчика - одинаковый под любую частоту, а вот скомпилированный HEX - уже разный для 8 или 16 МГц.
Именно в этом вы могли убедится, когда пытались прошить Лиллипад бутлоадером от Про Микро (или наоборот)

Вообще-то, в некотором смысле Makefile - это тоже часть исходного кода. Вы спрашиваете "Где в исходном коде частота?" - ответ "в Makefile". Откройте папку исходника по ссылке что вам давал Wan-Derer и убедитесь сами
 
Изменено:

Propretor

✩✩✩✩✩✩✩
27 Авг 2020
26
0
Вы, простите, слишком мало знаете, чтоб правильно спрашивать.
Улыбнул, право! 🤣
Временные интервалы в коде загрузчика вычисляются исходя из частоты МК.
"Имя сестра, имя..." ©
В итоге - исходный код загрузчика - одинаковый под любую частоту, а вот скомпилированный HEX - уже разный для 8 или 16 МГц.
А вот это ценная мысль и логичная. Вот только я ее не оспаривал. Я в 101 раз спрашиваю где в конкретной реализации загрузчика, BIN файлы я уже публиковал ранее, зашита частота или тайминги?
Откройте папку исходника по ссылке что вам давал Wan-Derer и убедитесь сами
Вы меня не слышите. Я вас пытаю не про исходник, а про BIN.
 

Arhat109

★★★★✩✩✩
9 Июн 2019
473
203
есть 2 платы с одинаковым железом (Pro Micro 5В 16МГц), с практически одинаковым загрузчиком (Leonardo и Micro) - можете сами сравнить загрузчики между собой побайтно, но так сильно разнится пороговое напряжение Vbot, у одной 2-2.4В (Leonardo), а у другой Vbot 2.4-2.8В (Micro). Разница в 0.4В, хотя питающее, повторяю, одно и то же - 5В.
В тог же время у Pro Micro 3.3В 8МГц с загрузчиком LilyPad Vbot 1.8-2.2В, всего на 0,2В ниже чем у Leonardo, у которой питание 5В, то есть на 1.7В выше.
Да, забыл написать, что по умолчанию 011, то есть в Pro Micro ничего не меняли, фьюзы "с завода".
Логики не вижу. А у вас какие напряжения Vbot?
А что писано в даташите на этот камень? Никогда не парился какие значения прописаны в том или ином программаторе. Как-то всегда хватало того, что написано в даташите про тот или иной параметр и не только BotLevel ..
 

Старик Похабыч

★★★★★★★
14 Авг 2019
4,266
1,303
Москва
Есть такое определение F_CPU, его выставляют для каждой платы в какую то приемлемую для общих целей частоту. Относительно этой переменной рассчитываются все миллисы и микросы.
Частота процессора выставляется фьюзами и если эти 2 числа не будут совпадать, то мигать будет не верно. 1-ую можно переопределить в своем скетче. 2-ое перезаписав фьюзы.

Поиск в папке arduino с поиском F__CPU даст кучу файлов.
 

Propretor

✩✩✩✩✩✩✩
27 Авг 2020
26
0
Никогда не парился какие значения прописаны в том или ином программаторе.
Странный вопрос. Как выразился бы комрад @b707_2, вы не умеете спрашивать! Если программатор не "кривой", то при выборе чипа фьюзы должны быть в дефаултном состоянии чипа, то есть в соответствии с даташитом. Если это не так, то в топку этот программатор. А уж если он еще и считывать фьюзы не умеет с реального тела, то его вообще анафеме придать нужно. Вот только я комрадов спрашивал про то, что у них по факту стоит в купленных платах, в зависимости от чипа. Понятно, что предела человеческому рукоблудию нет предела и на прошивать фьюзов можно до чертиков, так что Reset или ISP отвалится.

Частота процессора выставляется фьюзами
Как говорит мой сын - "где пруфы?" Я на странице ранее показывал фьюзы, считанные с плат ProMicro на 8 и 16МГЦ. Различаются только фьюзы BODLEVEL.
 
Изменено:

Arhat109

★★★★✩✩✩
9 Июн 2019
473
203
@Propretor, видимо не так понял Ваш вопрос .. а что значит "Вот только я комрадов спрашивал про то, что у них по факту стоит в купленных платах, в зависимости от чипа."?

Что продаван поставил, то и стоит видимо. В целом а какая разница, если первая же прошивка через даже ИДЕ их переставит так как указано программатору в boards.txt .. или я не то понимаю или одно из двух.

Как говорит мой сын - "где пруфы?"
в boards.txt на каждую конкретную плату. Ну и ещё в даташитах. ;)

Тут есть тема, про расширенную внешнюю память для Мег2560 и 128А .. там есть мой, "самопальный" boards.txt для расширения параметров, в т.ч. и для прошивки разных тактовых частот и bodlevel в т.ч. ..
 

Старик Похабыч

★★★★★★★
14 Авг 2019
4,266
1,303
Москва
Вот тебе скрипт:
Serial.begin(9600);
Serial.println(F_CPU);

Выполни на обоих платах, сравни значения.

Что продаван поставил, то и стоит видимо.
Я бы сказал производитель. И у разных производителей для одного и того же процессора вполне могут различаться. А продавцу вообще пофиг. Он и слова то такого может не слышал )
 
  • Лойс +1
Реакции: Arhat109

Arhat109

★★★★✩✩✩
9 Июн 2019
473
203
@Старик Похабыч, можно и так, не это важно. Важно то, что при первой же прошивке они встанут так, как написано и что там приходит с платой .. оно кого "волнует"? Когда писал свой boards.txt, таки да, сидел и тщательно смотрел всё, что попалось под руку, дабы не накосячить .. а тут, вопрос-то в чем?

P.S. Кстати, а когда паяешь "свою плату" .. это разве кого-то интересовало? Меня - ни разу.. с чем там камень пришел. Прошился загрузчик, работает? Значит все правильно .. дальше "само встанет" как надо.
 

Propretor

✩✩✩✩✩✩✩
27 Авг 2020
26
0
Тут есть тема, про расширенную внешнюю память для Мег2560 и 128А .. там есть мой, "самопальный" boards.txt для расширения параметров, в т.ч. и для прошивки разных тактовых частот и bodlevel в т.ч. ..
Можно прямую ссылку дать для образования?
Вот тебе скрипт:
Serial.begin(9600);
Serial.println(F_CPU);
Спасибо, попробую, для поиграться. Но это все не то. Я надеялся с опытных бойцов стрясти "вот по таким данным адресам нужно поправить BIN и заменить А на В, а вот тут поправить CRC..." Ни кто не колется. Я один такой извращенец на форуме?
 

Arhat109

★★★★✩✩✩
9 Июн 2019
473
203
Спасибо, попробую, для поиграться. Но это все не то. Я надеялся с опытных бойцов стрясти "вот по таким данным адресам нужно поправить BIN и заменить А на В, а вот тут поправить CRC..." Ни кто не колется. Я один такой извращенец на форуме?
Так Вам 3 страницы разжевывают, что нет таких адресов и незачем вообще лазить в бин .. ибо "все не там"..

Прямая ссыль, держите если чем поможет (в чем сомневаюсь): https://community.alexgyver.ru/threads/dispetcher-vneshnej-sram-dlja-avr-mega2560-mega128a-etc.1416/
 

b707_2

★★✩✩✩✩✩
22 Июл 2020
182
51
Я надеялся с опытных бойцов стрясти "вот по таким данным адресам нужно поправить BIN и заменить А на В, а вот тут поправить CRC..." Ни кто не колется. Я один такой извращенец на форуме?
нафига. если у вас есть исходник? - компилируйте его под нужную частоту и все

Частота процессора выставляется фьюзами и если эти 2 числа не будут совпадать, то мигать будет не верно.
не совсем верно. Фьюзы частоту не устанавливают, они устанавливают только тактирование - внешнее или внутреннее и диапазон частоты, например выше 8 МГц и ниже. Например фьюзы атмеги328 на тактирование от внешнего кварца на 8, 12 и 16 МГц будут одинаковыми
 

Wan-Derer

★★★★★✩✩
Команда форума
31 Июл 2018
2,136
412
Москва
wan-derer.ru
.... Фьюзы частоту не устанавливают, они устанавливают только тактирование - внешнее или внутреннее ...
Есть ещё CKDIV8, он делит ч-ту ядра на 8 относительно генератора/кварца.

@Propretor, советую ознакомиться с курсом: http://easyelectronics.ru/category/avr-uchebnyj-kurs/page/5 (читать снизу вверх как блог. Там очень сжато и понятно про AVR, и по-русски.
 

Riddick

✩✩✩✩✩✩✩
23 Мар 2022
1
0
выложите ссылку, тогда поговорим :)
Я о таком использовании FT232RL ничего не слышал.
А зря. Вот Вам фото, вот Вам сылка. Программатор называется bitbang AVR ISP USB-FTDI адаптер . Данный программатор собирал и продавал А.Козин, программатор на американском FT232 , китайская копия работать не будит. Сам таким программатором пользуюсь более 15 лет. Программатор работает как с дудкой так и с ардуино ид. https://www.sites.google.com/site/hobbyarduino/production_main/product
 

Вложения