Котуинко

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить
Друг Кота
Аватара пользователя
Сообщения: 15792
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

Гляжу в книгу вижу... белопушистого...
Ранее с последовательным протоколом прошивки не занимался - параллельного как-то хватало.
А тут решил поприглядеться и... обломс...
Три вопроса в даташите так и не нашел (что для АВРок, что для АТ89S)...:

1. максимальный интервал между передачей байтов в рамках пакета, который не будет засчитан как сбой обмена
2. минимальный интервал между пакетами, при котором следующий пакет будет воспринят как очередная команда
3. состояние вывода MOSI программатора при чтении данных из МК (единица или нулик или произвольное содержимое)

Под "пакетом" подразумевается последовательность их 4 байт данных включая команду, адрес и данные и 3+255 байт данных для постраничного режима у ат89s
:roll:
Придется видно опытным путем определять...
:(
Реклама
Друг Кота
Аватара пользователя
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Сообщение oleg110592 »

дык ардуино для прошивки решено:
будет использована самоделка из ардуино-нано
используем ардуиновский подход - просто берем готовый скетч
https://www.instructables.com/89S52-Pro ... duino-Uno/
там все как ардуинщики любят - ногодрыг с помощью digitalWrite
По взрослому - в даташите все есть, см.
24. Flash Programming and Verification Waveforms – Serial Mode
Table 24-1.Serial Programming Instruction Set
https://ww1.microchip.com/downloads/en/ ... oc1919.pdf
Реклама
Друг Кота
Аватара пользователя
Сообщения: 15792
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

Ну и где там ответы на мои вопросы?
:wink:
Я ж ее весьма пристально просмотрел - допустим чтение байта данных (не говоря уже о страничном блоке, где теоретически возможно повторение комбинации любого из командных пакетов)
по mosi идет команда, адрес старший, адрес младший а что потом, когда МК отправляет данные по miso, на линии mosi программатор выставлять должен? 1/0/Z??
Далее идет байт за байтом - каков интервал времени между байтами (а не между тактовыми импульсами SPI!!)?
Следующее - пересылка командного блока завершена - пускай те же 4 байта и режим чтения/задания режима работы...
Какой интервал необходимо выждать (и требуется ли таковой) перед посылкой следующего командного блока?
Ни диаграмм ни графики...
:evil:
Начинки ж того модуля обработки я не ведаю - может он считает байты после декодирования команды, а может и иной вариант - задержка более нормы = авария или послал блок ранее - сочли за "некорректное продолжение команды"...
Разве чуток больше про страничный пакет для АТ89S8253 имеется - там хоть обозначили в таблице команд "byte4 - byteN"
Вместо ранее жестко закрепленного в графе byte3=data0 и byte4=data1-255...
8)

Относительно копипаста - у меня к оному отношение отрицательное, тем более база будет с иными параметрами на основе уже готового наследства от STK200/SiProg (кварц 4МГц) и прошивайка с одной заранее установленной прошивкой-заготовкой, а не загружаемой из ПК.
8)
Друг Кота
Аватара пользователя
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Сообщение oleg110592 »

[uquote="BOB51",url="/forum/viewtopic.php?p=4020213#p4020213"]Ну и где там ответы на мои вопросы?
Далее идет байт за байтом - каков интервал времени между байтами (а не между тактовыми импульсами SPI!!)?[/uquote]
на е заканчивается (даташите) :)))
tSWC Serial Byte Write Cycle Time - 64 tCLCL + 400 μs
Реклама
Эиком - электронные компоненты и радиодетали
Друг Кота
Аватара пользователя
Сообщения: 15792
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

Опять не то - это о задержке после цикла записи, а не "стандартный" интервал между командными пакетами.
(И то... там надо поллингом завершения цикла записи пользоваться - то же вопрос читать последний байт с анализом D7 или просто смотреть содержимое текущего miso?)
8)
Допустим читаем три байта сигнатуры подряд - какой интервал между пакетами чтения?
:wink:

Кстати... контроль по времени ... это при записи одного байта - а при страничном режиме оный должен только в конце пакета из 3+255 байт делаться.
:roll:
Реклама
Друг Кота
Аватара пользователя
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Сообщение oleg110592 »

где там слово задержка
Serial Byte Write Cycle Time это Время Цикла Записи Последовательного Байта
какой интервал между пакетами чтения
мы о разных вещах говорим - какой такой интервал? Это ж SPI - там все зависит от длительности CLK. Он должен быть в рамках - тогда прошиваемый мк будет успевать реагировать.
Реклама
Друг Кота
Аватара пользователя
Сообщения: 15792
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

SPI с побайтовой пересылкой нескольких байт.
Длительность тактового сигнала оговорена, а интервалы между байтами и комплектами из нескольких байт - не оговорены.
Может быть как непрерывный поток, так и с некоторыми интервалами.

"Serial Byte Write Cycle Time это Время Цикла Записи Последовательного Байта"
после того, как он был принят - т.е. по завершении обмена на шинах SPI.
Это время процесса самой записи в ячейку(и) ПЗУ.
А один байт будет переслан или все байты страницы - не имеет значения.
Длительность пересылки определена минимальными значениями длительности тактового импульса SCK только "снизу" - не менее 8tCLC (параметры tSHSL и tSLSH). А более длительные - всегда пожалуйста. Собственно время пересылки одного байта будет не менее 8*8*8=512 tCLC (8 длительность 1, 8 длительность 0 и всего 8 таких импульсов на байт данных).
:roll:
Друг Кота
Аватара пользователя
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Сообщение oleg110592 »

[uquote="BOB51",url="/forum/viewtopic.php?p=4020312#p4020312"]а интервалы между байтами и комплектами из нескольких байт - не оговорены.
Может быть как непрерывный поток, так и с некоторыми интервалами[/uquote]
не оговорены - значит не нужны. Разработчики понимают, что нам надо принять/передать байт и положить/считать в/из буфера. На это надо время - SPI подождет, пока следующие CLK не начнутся.
Это время процесса самой записи в ячейку(и) ПЗУ.
Дык выше так было и написано(чучхэ - не читатель). Из даташита(перевод):

Код: Выделить всё

Алгоритм последовательного программирования
Чтобы запрограммировать и проверить AT89S52 в режиме последовательного программирования,
выполните следующие действия (рекомендуемые):
......
2. Включите последовательное программирование, отправив команду Programming Enable serial на ножку MOSI / P1.5.
  Частота тактовой частоты сдвига, подаваемой на вывод SCK / P1.7, должна быть меньше
  чем частота процессора на XTAL1, деленная на 16.
3. Кодовый массив программируется по одному байту за раз в байтовом или страничном режиме.
  Цикл записи является самосинхронным и обычно занимает менее 0,5 мс при 5 В.
......                                      
Друг Кота
Аватара пользователя
Сообщения: 15792
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

Меня интересуют значения параметров интервалов - минимальные и максимальные...
Вот как те, что на картинке:
https://img.radiokot.ru/files/20529/2hvv10s05y.GIF
верхний вариант - это непрерывная последовательность,
а нижний - реальный побайтовый обмен - это та картинка из даташита, только для полного командного пакета.
8)
Ну и чего таки выставлять на mosi при чтении данных....
:roll:
В страничном режиме программируется за раз ВСЯ страница из буфера обмена, куда ее загружают при отсылке пакета из двух байт команда/адрес и 256 байт данных за один заход.
8)

Возможно SPI и будет ждать следующего импульса - но только в случае, если это предусмотренно алгоритмом внутри МК.
Собственно по приему одного байта процесс считается завершенным - а как оценить следующий это уже задача встроенного устройства.
Может и "продолжить", а может и "послать подальше" ("превышено время ожидания" к примеру)...
По крайней мере данные об межбайтовых и межпакетных интервалах таки напрочь отсутствуют во всех описаниях.
:roll:
Друг Кота
Аватара пользователя
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Сообщение oleg110592 »

еще раз - хоть с интервалами (можно и час и более), хоть без. Читать инструкции и принимать/передавать байты блок программирования успевает даже если будет минимально допустимый зазор между CLK последнего бита и следующего первого бита нового байта (для того и времена CLK оговариваются 8 tCLC).
MOSI "0" наверное - нулевых инструкций вроде нет.
Друг Кота
Аватара пользователя
Сообщения: 15792
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

Дык ёжли б не тот "постраничный режим" особо и прицепиться не к чему - разве что разнобой в параметрах тактовой и кодировании команд для разных Ат89...
Да нехорошие воспоминания о работе с самодельно-любительскими программаторами - даже STk200 с ISP Programmer 1.2.0.56 и то... не всегда стабильно с первого раза отрабатывал.
Посему больше штатным параллельным режимом пользовался - тот всегда абсолютно стабилен - единственный минус - аппаратной обвязки там многовато.
Так что лучше все возможные варианты перешерстить, чем оставшиеся кристаллы позапороть. До профпрограмматора ехать далеко и то по рабочим дням... Это таки время теряется по каждому неудачному тесту - денек-другой...
8)
Друг Кота
Аватара пользователя
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Сообщение oleg110592 »

поначалу побайтный режим использовать. Да и фузов там нет, что запарывать то, разве сигнатуру - так и без оной прошить своим софтом можно.
Глянул в наш базарный магаз - полно разных AT89Cxxxx, если делать для народа - параллельный прог весьма нужен.
А для S народ оказывается уже давно решил, причем предлагаемым уже ранее самым простейшим способом(который был жестачайше отвергнут мявтором). У меня был подобный самодельный юсбасп, переделанный под STK500 - нормально шил, не порол ничего, только при корочении питания случайном приходилось передергивать юсб.
http://www.8051projects.info/resources/ ... rammer.23/
Друг Кота
Аватара пользователя
Сообщения: 15792
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

Я закладываю АТ89S52 (AT89S51) как основу КОТУИНКи - а уже на ее базе, учитывая скоростное ОЗУ-накопитель ВПД/ВПП и создав соответствующие "жгучие блоки" с прикладным программным обеспечением (оперативно заменяемые) творить прикладные программаторы. В том числе и для ПИКушек. Это (программаторы) рассматривается как только одно из возможных применений "расширителя портов"...
На данный момент ардуинка-нанка готовится как автономная прошивайка биоса B2B и всего-то...
Собственно схемка:
https://img.radiokot.ru/files/20529/2hx7ly4snr.GIF
Первичная часть протокола вроде успешно откаталась - вход в программирование, чтение сигнатуры и LOK битов (они таки в АТ89 присутствуют - в разных по-разному в отношении количества и качества/функционала/особенностей сброса).
Доконаю прошивайку биоса - тогда и до "жгуча блока" под параллельный режим для DIP40 можно будет продвинуться.
:write:
Основное отличие от предлагаемого - у меня нет специализированной софт-оболочки - загрузка дампа идет в виде сырца intel hex8 напрямую из терминала. Отсюда и некоторые особенности вида "один базовый блок - множество расширений".
8)
Друг Кота
Аватара пользователя
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Сообщение oleg110592 »

как ни... чего не понять, но не подать виду
Я закладываю АТ89S52 (AT89S51) как основу КОТУИНКи
а если у народа С51 - кина и вина не будет? Писал писал, что их полно - как об стенку горохом. Далеко такая котуинка будет от народа.
Да и в теме "истина в вине" написано
КОТУИНО.
Версия биос для AT89S52/AT89C52
это, как его - волюнтаризм(с), про биос дальше
как автономная прошивайка биоса
понимаю - компьютер в комплекс котуинки тоже входит (она ж котуинка предназначена для связи с ПК), но зачем компьютеру регулярно прошивать биос?
Слово БИОС (BIOS) может обозначать:
BIOS (от англ. basic input/output system) — базовая операционная система ввода-вывода, встроенное программное обеспечение компьютеров.
BIOS (фильм)
БИОС-1, БИОС-2 и БИОС-3 — лабораторные эксперименты красноярского Института биофизики по созданию замкнутых экосистем.
скоростное ОЗУ-накопитель ВПД/ВПП... творить прикладные программаторы
зачем это скоростное ПДД (что это такое ВПД/ВПП гугл не знает), если можно на голой меге, подключенной напрямую к юсб сделать практически любой программатор. Опять далеко от народа.
LOK битов (они таки в АТ89 присутствуют
LOCK (запереть) это не фузы - они много где присутствуют. Обычно снимаются простой командой стирания всего флэша.
у меня нет специализированной софт-оболочки
как это нет? Это в линуксе терминал из коробки. В виндовсе тоже был в составе (сейчас в сборке могут выпилить), но практически им никто не пользовался. Всегда качали сторонний специализированный софт терминал (выше обсуждали). И чем это лучше специализированной оболочки? В специализированной оболочке программатора намного удобнее кнопки жать. Ой далеко от народа.
Тем более уже все готовое есть.
:)
Друг Кота
Аватара пользователя
Сообщения: 15792
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

Специализированная софт-оболочка это не простая терминалка, а сделанная под конкретное устройство прожка (в принципе ни для чего иного не приспособленная).
Терминал - штука универсальная, но в то же время более примитивна в отношении удобства управления конкретным устройством.
Нету красивых и понятных картинок.
Касательно биос-прошивайки - именно под АТ89S52/51 с учетом простоты изготовления и минимума излишних затрат.
Собственно сам биос грузится не с компьютера а входит в состав скотча.
Операция однократная, так что сооружать более навороченное устройство для минимального старта смысла нету.
Дальше уже приставка к КОТУИНКе делается и все задачи на нее перекладываются.
Собственно оно для того изначально и задумывалось - снять проблему прошивки биос-бутлоадера для КОТУИНКо в ситуации с отсутствием LPT порта. А не как "универсальный программатор".
Можно конечно чего с прицелом на параллельный режим соорудить - но там или "нестандарт" (редкие АВРки/дорогие версии адуринки) или наворотов с гору... Ведь параллельную прошивайку надо будет делать с учетом как однократно-автономной прошивки биос, так и для универсального использования с базовым модулем котуинки (загрузка дампа в накопитель с последующей неспешной обработкой). Это и время и затраты.
В то же время ставить атмегу162 в DIP40 и проблем нету...
Но во-первых найди такую атмегу, во-вторых лишняя "безнажимка" в расход пойдет....
ЖАБКО...
8)
Друг Кота
Аватара пользователя
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Сообщение oleg110592 »

[uquote="BOB51",url="/forum/viewtopic.php?p=4021013#p4021013"]Специализированная софт-оболочка это не простая терминалка, а сделанная под конкретное устройство прожка (в принципе ни для чего иного не приспособленная).[/uquote]Слабая отмазка.
Там модифицированная avrdude для прошивки AT89S51 используется, что может быть проще. Для прошивания лучше использовать софт, предназначенный для прошивания - это очевидно. Дудкой еще можно чего много шить в том числе авры по TPI тем же юсбаспом. Народ делая такой юсбасп приобретает невиданные доселе возможности. А для чего иного можно и терминал приспособить - никто не мешает обе программы использовать.
з.ы. насчет биосов продолжаю не понимать - они ж на материнской плате ПК, неужто на Шекспира на нашего замахнулись.
Друг Кота
Аватара пользователя
Сообщения: 15792
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

У КОТУИНКи начальный загрузчик и первичный конфигуратор во флешке сидит - выполняет те же задачи, что и биос в старых компах.
8)
Касательно прошивайки - у меня ведь заготовка не только под АВРки - там для любого МК/ЕЕПРОМки и подобных можно устройства соорудить.
Пересылка из компа только собственно хекса идет. Остальное разделяется пополам - часть в прожке ядра котуинки, чать в прожке самого "жгучего модуля", что к платке ядра присоединяется.
Тем самым - что придумал и собрал - то и будет работать - хоть простой порт-расширитель, хоть программатор хоть чего еще.
:tea:
Друг Кота
Аватара пользователя
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Сообщение oleg110592 »

[uquote="BOB51",url="/forum/viewtopic.php?p=4021136#p4021136"]выполняет те же задачи, что и биос в старых компах.[/uquote]
та ну :shock:
Назначение BIOS:
проверка работоспособности оборудования;
загрузка операционной системы;
предоставление API для работы с оборудованием;
настройка оборудования.
После включения IBM PC-совместимого компьютера процессор, реализующий микроархитектуру x86, читает код BIOS из ПЗУ (с микросхемы EEPROM), записывает его в ОЗУ (оперативную память) и передаёт управление коду BIOS.
Затем код BIOS
выполняет тестирование оборудования компьютера (см. POST, англ. power-on self-test);
читает настройки из энергонезависимого ПЗУ;
применяет настройки;
ищет и загружает в оперативную память код загрузчика;
передаёт управление загрузчику.
Таким образом BIOS обеспечивает начальную загрузку IBM PC-совместимого компьютера.
В дальнейшем загрузчик ищет и загружает в память код операционной системы и передаёт ему управление.
BIOS реализует API для работы с внутренними и внешними устройствами компьютера. Загрузчик ОС и сама ОС используют это API для работы с оборудованием до тех пор, пока не загрузят собственные драйверы.
это все реализовано? На 51? Это гениально. Мои поздравления. :idea:
Тем самым - что придумал и собрал - то и будет работать
аналогично будет также работать если прошить AT89S юсбаспом, и как то все намного проще. Повторюсь - проблема прошить 89С у народа может возникнуть.
з.ы. юсбасп и биосы шить умеет...
Друг Кота
Аватара пользователя
Сообщения: 15792
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

Упорное желание навязать свою последовательность действий.
8)
Всему свое время - и до параллельного варианта очередь дойдет.
Только в том виде, который я себе представляю - дополнение к базовому ядру КОТУИНКи, и возможной автономной однократной прошивки АТ89С52 для работы в базовом блоке, а не как полностью самостоятельного изделия.
8)
Друг Кота
Аватара пользователя
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Сообщение oleg110592 »

[uquote="BOB51",url="/forum/viewtopic.php?p=4021358#p4021358"]Упорное желание навязать...[/uquote]
Где? В каком посте это "упорное желание"? Это просто высказывание своего мнения, для чего и форумы существуют. Это вам не блог (онлайн-дневник). Придется потерпеть чужое мнение.
Хотел просто подсказать как проще решить задачку, типа чтоб не стоя в гамаке и в противогазе. А тут опять наезд.
Только в том виде, который я себе представляю
Другим то нельзя представлять? Эгоизм. Некрасиво. :))
Ответить

Вернуться в «Разные вопросы по МК»