In vino veritas
Re: In vino veritas
[uquote="BOB51",url="/forum/viewtopic.php?p=3109060#p3109060"]Помнится когда самопальный программатор для AT89C2051 делал там также нюянс был - задержка при начале обработки (уже подзабылось конкретика) - в даташитах похоже до сих пор не отмечено
[/uquote]на стр.52 второй абзац снизу- оно? На след. стр. код приведен
Re: In vino veritas
Имелась ввиду некоторая задержка при начальном этапе прошивки из внешнего программатора - вспоминать надо конкретику... Когда те 2051 появились еще программаторов готовых дешевых не имелось - воть и делалась управляюшша прожка по даташиту, а про задержку опыт да "народна молва" подсказали.
Базовые алгоритмы и по сей день "в запасниках" лежат (под тот же вышевыложенный в качестве примера садомазохизма "монструозо" с опторазвязкой изготовленные - кстати это последняя версия была, его прототипы где-то еще в середине 90-х помогали в работе, только схемки и прожки были на простобумаге - перечерчивать и влом и не слишком актуально).

Базовые алгоритмы и по сей день "в запасниках" лежат (под тот же вышевыложенный в качестве примера садомазохизма "монструозо" с опторазвязкой изготовленные - кстати это последняя версия была, его прототипы где-то еще в середине 90-х помогали в работе, только схемки и прожки были на простобумаге - перечерчивать и влом и не слишком актуально).
- Zhuk72
- Сверлит текстолит когтями
- Сообщения: 1231
- Зарегистрирован: Ср янв 29, 2014 08:41:31
- Откуда: Баку
- Контактная информация:
Re: In vino veritas
Бегло прошелся по вашим вопросам, вряд ли смогу что-то путное написать, т.к. разбирался с STC, не особо вгрызаясь в их нутро.
Потом отпишусь подробнее, сейчас напряг со временем.
Вот сюда гляньте пока.
Потом отпишусь подробнее, сейчас напряг со временем.
Вот сюда гляньте пока.
Каждый имеет право на свое личное ошибочное мнение.
У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.
У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.
Re: In vino veritas
Там народ СИ баловался, а я давить их (STCшки) на ассемблере буду.
Пока займуся сооружением макетного "кубика" в уже ранее проработанном окружении дополнительных платок.

Пока займуся сооружением макетного "кубика" в уже ранее проработанном окружении дополнительных платок.

- Zhuk72
- Сверлит текстолит когтями
- Сообщения: 1231
- Зарегистрирован: Ср янв 29, 2014 08:41:31
- Откуда: Баку
- Контактная информация:
Re: In vino veritas
Я только первый пост тот темы имел в виду, как бы протокол ISP.
Каждый имеет право на свое личное ошибочное мнение.
У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.
У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.
Re: In vino veritas
Меня более режимы самопрограммирования беспокоят...
Все же не использовать ЕЕПРОМку грех, а затереть по случаю загрузочную область - еще большая досада.
Протокол загрузки лишь косвенно - с точки зрения наличия минимального аварийного уровня для восстановления порушенной загрузочной записи. У АВРовских моделей для такого случая общее стирание и/или параллельный высоковольтный вариант имеется...
А у STC вроде ничего подобного официально не наблюдается...
Или же начальный загрузчик "пустышки" в виде примитива без особого обращения внимания у пользователя.

Все же не использовать ЕЕПРОМку грех, а затереть по случаю загрузочную область - еще большая досада.
Протокол загрузки лишь косвенно - с точки зрения наличия минимального аварийного уровня для восстановления порушенной загрузочной записи. У АВРовских моделей для такого случая общее стирание и/или параллельный высоковольтный вариант имеется...
А у STC вроде ничего подобного официально не наблюдается...
Или же начальный загрузчик "пустышки" в виде примитива без особого обращения внимания у пользователя.

- musor
- Друг Кота
- Сообщения: 39197
- Зарегистрирован: Сб сен 13, 2014 16:27:32
- Откуда: СпиртоГонск созвездия Омега
Re: In vino veritas
помоему парится насчет этого не стоитну затрете бут случайно - прошьете потом в паралелном режиме скока биосоав убитых в 27 28 29 49чипах так перешито
ZМудрость(Опыт и выдержка) приходит с годами.
Все Ваши беды и проблемы, от недостатка знаний.
Умный и у дурака научится, а дураку и ..
Алберт Ейнштейн не поможет и ВВП не спасет.и МЧС опаздает
Все Ваши беды и проблемы, от недостатка знаний.
Умный и у дурака научится, а дураку и ..
Алберт Ейнштейн не поможет и ВВП не спасет.и МЧС опаздает
- Zhuk72
- Сверлит текстолит когтями
- Сообщения: 1231
- Зарегистрирован: Ср янв 29, 2014 08:41:31
- Откуда: Баку
- Контактная информация:
Re: In vino veritas
Я в программе часов (потом отказался) и паяльной станции использовал ЕЕПРОМ для хранения данных. Затереть что-то критичное ни разу не получалось.
По сути это не ЕЕПРОМ, а флэш, она перед использованием должна стираться блоками по 500 байт, коих в 204ЕА 2 штуки, т.е. всего 1к. В другую область из своей программы вы не влезете. Да и в ДШ есть типовые листинги стирания, чтения и записи, запутаться, особенно опытному кодеру, невозможно.
По сути это не ЕЕПРОМ, а флэш, она перед использованием должна стираться блоками по 500 байт, коих в 204ЕА 2 штуки, т.е. всего 1к. В другую область из своей программы вы не влезете. Да и в ДШ есть типовые листинги стирания, чтения и записи, запутаться, особенно опытному кодеру, невозможно.
Каждый имеет право на свое личное ошибочное мнение.
У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.
У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.
Re: In vino veritas
[uquote="musor",url="/forum/viewtopic.php?p=3109294#p3109294"]помоему парится насчет этого не стоитну затрете бут случайно - прошьете потом в паралелном режиме скока биосоав убитых в 27 28 29 49чипах так перешито[/uquote]сейчас таких нет, а современные UEFI программируются в 2 этапа с перезагрузкой и не всегда удачно
Re: In vino veritas
Флаг iap_contr.iapen открывает доступ к обеим областям isp/iap т.е. результат зависит только от адреса в iap_addrh:iap_addrl.
Имея заявленные 4к памяти программ и 1к еепром из всего 6к ПЗУ теоретически в оставшееся пространство влезть вполне можно.
Тем более, что где-то в текстах мельком заметил образец бутлоадера для загрузки... (или обшибся/промерешшилося?).
Другое дело ежли блокировка в настройках компилятора (файл указаний линковки на запрет выхода из диапазона допустимых адресов) или еще лучше внутренними битами защиты в самом МК.
В отличии от СИ ассемблер штука жестокая, ежли сам себя не ограничиш - выполнится все, чего поначирикал...
Вобщемсс... практика покажет...

Имея заявленные 4к памяти программ и 1к еепром из всего 6к ПЗУ теоретически в оставшееся пространство влезть вполне можно.
Тем более, что где-то в текстах мельком заметил образец бутлоадера для загрузки... (или обшибся/промерешшилося?).
Другое дело ежли блокировка в настройках компилятора (файл указаний линковки на запрет выхода из диапазона допустимых адресов) или еще лучше внутренними битами защиты в самом МК.
В отличии от СИ ассемблер штука жестокая, ежли сам себя не ограничиш - выполнится все, чего поначирикал...
Вобщемсс... практика покажет...
Re: In vino veritas
в описании большего МК на стр.486 и далее стр.683 и далее приведено описание. Видимо, для работы с ISP разница только в объеме памяти. Еще описание, С реализация ISP, сниффер участника этого сайта, программирование с помощью одинакового МК, реверс с известного сайта, мелкий проект
Re: In vino veritas
Есть у мня предположения... Да формулировка еще сырая...
Намудрствовали китайцы весьма сильно...
Ежли общее непрерывное пространство ПЗУ, то просто ограничения на доступ командой
movc a,@dptr для защиты от чтения кода достаточно (да и чтение еепром проще), ежли нельзя перезаписывать область ISP, то к чему режим запуска на исполнение прожки из ISP области после программного ресета?...
И на кой вообще включать режим работы с ISP/IAP для и без того автономно существующего аппаратного блока, обслуживающего обмен с обастью еепром - ежли доступ только с помощью блока IAP - то само его использование уж есть разграничение области доступа...
Или все ж таки заводской бутлоадер где-то в отдельной области памяти закопан без права перезаписи, а режим прерзагрузки со стартом из области ISP кода просто дает возможность полного доступа ко всем областям ПЗУ?...
Вобшшемсс... ПОКА отложу на некоторо время "на отлежку"...
Да еще нюёнс - в перечнях обычно всегда есть кристалл с префиксом IAPxxxxxxxx - вот то вроде как "отладочный вариант"...

Намудрствовали китайцы весьма сильно...
Ежли общее непрерывное пространство ПЗУ, то просто ограничения на доступ командой
movc a,@dptr для защиты от чтения кода достаточно (да и чтение еепром проще), ежли нельзя перезаписывать область ISP, то к чему режим запуска на исполнение прожки из ISP области после программного ресета?...
И на кой вообще включать режим работы с ISP/IAP для и без того автономно существующего аппаратного блока, обслуживающего обмен с обастью еепром - ежли доступ только с помощью блока IAP - то само его использование уж есть разграничение области доступа...
Или все ж таки заводской бутлоадер где-то в отдельной области памяти закопан без права перезаписи, а режим прерзагрузки со стартом из области ISP кода просто дает возможность полного доступа ко всем областям ПЗУ?...
Вобшшемсс... ПОКА отложу на некоторо время "на отлежку"...
Да еще нюёнс - в перечнях обычно всегда есть кристалл с префиксом IAPxxxxxxxx - вот то вроде как "отладочный вариант"...

Re: In vino veritas
c маркировкой IAP- не отладочный кристалл, а весь объем EEPROM объединен с flash, т.е. последний больше аналогичного без маркировки IAP и вместо объема EEPROM доступен весь flash. Стр.632 и дальше.
В приложенном архиве есть описание в Word (которое копируется) и в т.ч. упомянутый в нем iapisp.hex
Еще попалось совсем немного ПО и плата
В приложенном архиве есть описание в Word (которое копируется) и в т.ч. упомянутый в нем iapisp.hex
Еще попалось совсем немного ПО и плата
- Вложения
-
- STC-USER-IAP-ISP-DEMO.rar
- (107.43 КБ) 271 скачивание
Re: In vino veritas
Именно потому я и назвал его отладочным - пользовательский код доступен для перезаписи из программы пользователя без мудрствования с ISP.
Скорее всего по логике ЕЕПРОМка должна записываться, читаться и стираться с помощью регистров ISP/IAP без установки IAP_CONTR.IAPEN = 1, а при единичке - открывать доступ к области ISP...
а доступ к перезаписи области AP выполняться из запущенной на исполнение ISP ( с IAP_CONTR.IAPEN = 1 или 0???)
НО... То глядеть надо...
Пока платка моя консолькой опозналась...
Чуток попозже выложу полученны материал и схемки.

Скорее всего по логике ЕЕПРОМка должна записываться, читаться и стираться с помощью регистров ISP/IAP без установки IAP_CONTR.IAPEN = 1, а при единичке - открывать доступ к области ISP...
а доступ к перезаписи области AP выполняться из запущенной на исполнение ISP ( с IAP_CONTR.IAPEN = 1 или 0???)
НО... То глядеть надо...
Пока платка моя консолькой опозналась...
Чуток попозже выложу полученны материал и схемки.
Re: In vino veritas
в архиве есть примеры на С и asm. Почему их не использовать?
Re: In vino veritas
Дык... мне ж не примеры нужны, а принцип правильной работы аппаратной части.
Прожку и сам нашкарябаю!
А с примерами у STC даже в даташите "полный СУСАНИН"...
Похоже таки логика работы модуля ISP/IAP ближе к моим умозаключениям, чем к тому даташиту, представляющему перевод на англицкий со китаяского.
Надо будет тест-прожку нашкарябать и проверить "кит правее"...
Пока только один вопроса гложеть...
Область ISP это одно и то же , что и системный загрузчик изготовителя, или все же системный загрузчик изготовителя - это отдельный модуль, а "область ISP" все же спецкусманчик для пользователя?

Прожку и сам нашкарябаю!
А с примерами у STC даже в даташите "полный СУСАНИН"...
Похоже таки логика работы модуля ISP/IAP ближе к моим умозаключениям, чем к тому даташиту, представляющему перевод на англицкий со китаяского.
Надо будет тест-прожку нашкарябать и проверить "кит правее"...
Пока только один вопроса гложеть...
Область ISP это одно и то же , что и системный загрузчик изготовителя, или все же системный загрузчик изготовителя - это отдельный модуль, а "область ISP" все же спецкусманчик для пользователя?

Re: In vino veritas
для ответа на эти вопросы и есть примеры- надо просто повторить в базовом варианте, перезаписать и снова попробовать. Если не поможет- то написать по указанным адресам письмо.
Зачем изобретать, то, что уже есть и работает? Достаточно декомплилятором найти способ русификации программы, переделать интерфейс и проверить работу с готовыми платами. Даже эта работа с заранее исправным железом и работающими программами займет кучу времени и сил. В случае со своим вариантом затраты всего на порядок больше (даже при получении полож. результата)
Зачем изобретать, то, что уже есть и работает? Достаточно декомплилятором найти способ русификации программы, переделать интерфейс и проверить работу с готовыми платами. Даже эта работа с заранее исправным железом и работающими программами займет кучу времени и сил. В случае со своим вариантом затраты всего на порядок больше (даже при получении полож. результата)
Re: In vino veritas
Мне проще свой тест по документации написать, да и самоделка - прожка автору значительно понятнее и всегда для соответствующей коррекции в нужном направлении доступна. В тех примерах также разночтение реала и теории:
"...
..."
Так что же в вышеприведенном в адрес-регистр записывается 0x00 или 0xFF?
Ну да то по мере "пережевывания" потреблять будемссшшшсс...
Пока же отчет по платке - программатору и "по совместительству" простейше тест-макетке.
За основу интерфейса связи с ПК выбрана "стандартная" платка USB-TTL на основе PL2303 от PROLIFIK.
http://img.radiokot.ru/files/20529/x83zlfcbc.jpg
Драйвера на нее весьма успешно на разные компы и разные виндовсы ставятся, да и в наличии таковых платок в достатке.
Схемка собственно макетки самая примитивная, единственное отличие - добавлен разъём для внешнего питания при автономной работе (при прошивке кормится от платки USB-TTL):
http://img.radiokot.ru/files/20529/1a2xy8jtds.GIF
воть так внешне выглядит
http://img.radiokot.ru/files/20529/1a2xzomum5.jpg
и в стыковке с платкой USB-TTL
http://img.radiokot.ru/files/20529/1a2xzpqgn3.jpg
и собственно прототип печатно-дырчатой платки
http://img.radiokot.ru/files/20529/1a2y1h329k.GIF
а вот тут архивчик в сплане/лэйоуте:

Попробовал я его подключить к оболочке STC-ISP V6.86...
К сожалению "в лоб" доступен только режим
check mcu...
с воть таковым ответом:
"
"
На том пока и остановился дабы "передохнуть и осмотреться"

"...
Код: Выделить всё
;/*Disable ISP/IAP/EEPROM function, make MCU in a safe state*/
MOV IAP_CONTR, #00000000B ;Close ISP/IAP/EEPROM function
MOV IAP_CMD, #00000000B ;Clear ISP/IAP/EEPROM command
;MOV IAP_TRIG, #00000000B ;Clear trigger register to prevent mistrigger
;MOV IAP_ADDRH, #0FFH ;Move 00 into address high-byte unit,
;Data ptr point to non-EEPROM area
;MOV IAP_ADDRL, #0FFH ;Move 00 into address low-byte unit,
;prevent misuse..."
Так что же в вышеприведенном в адрес-регистр записывается 0x00 или 0xFF?
Ну да то по мере "пережевывания" потреблять будемссшшшсс...
Пока же отчет по платке - программатору и "по совместительству" простейше тест-макетке.
За основу интерфейса связи с ПК выбрана "стандартная" платка USB-TTL на основе PL2303 от PROLIFIK.
http://img.radiokot.ru/files/20529/x83zlfcbc.jpg
Драйвера на нее весьма успешно на разные компы и разные виндовсы ставятся, да и в наличии таковых платок в достатке.
Схемка собственно макетки самая примитивная, единственное отличие - добавлен разъём для внешнего питания при автономной работе (при прошивке кормится от платки USB-TTL):
http://img.radiokot.ru/files/20529/1a2xy8jtds.GIF
воть так внешне выглядит
http://img.radiokot.ru/files/20529/1a2xzomum5.jpg
и в стыковке с платкой USB-TTL
http://img.radiokot.ru/files/20529/1a2xzpqgn3.jpg
и собственно прототип печатно-дырчатой платки
http://img.radiokot.ru/files/20529/1a2y1h329k.GIF
а вот тут архивчик в сплане/лэйоуте:
Попробовал я его подключить к оболочке STC-ISP V6.86...
К сожалению "в лоб" доступен только режим
check mcu...
с воть таковым ответом:
"
Код: Выделить всё
Checking target MCU ...
MCU type: STC15F204EA
F/W version: 6.7R
Current H/W Option:
. Do not detect the level of P3.2 and P3.3 next download
. Power-on reset, use the general power-on delay
. RESET pin behaves as I/O pin
. Interrupt while detect a Low-Voltage
. Thresh voltage level of the built-in LVD : 3.61 V
. Permit EEPROM operation under Low-Voltag
. Hardware do not enable Watch-Dog-Timer
. Watch-Dog-Timer pre-scalar : 64
. Watch-Dog-Timer stop count in idle mode
. Program can modify the Watch-Dog-Timer scalar
. Do not erase user EEPROM area at next download
. MCU type: STC15F204EA
F/W version: 6.7R
Complete !(2017-05-21 11:25:55)"
На том пока и остановился дабы "передохнуть и осмотреться"
- Zhuk72
- Сверлит текстолит когтями
- Сообщения: 1231
- Зарегистрирован: Ср янв 29, 2014 08:41:31
- Откуда: Баку
- Контактная информация:
Re: In vino veritas
[uquote="BOB51",url="/forum/viewtopic.php?p=3110946#p3110946"]В тех примерах также разночтение реала и теории:
"...
..."
Так что же в вышеприведенном в адрес-регистр записывается 0x00 или 0xFF?
[/uquote]
В примере на С для работы с еепром написано так:
Так что IAP_ADDRH = 0x80;
"...
Код: Выделить всё
;Data ptr point to non-EEPROM area
;MOV IAP_ADDRL, #0FFH
..."
Так что же в вышеприведенном в адрес-регистр записывается 0x00 или 0xFF?
В примере на С для работы с еепром написано так:
Код: Выделить всё
void ee_idle(void)/* Используется во всех процедурах с EEPROM (чтение, стирание, запись) */
{
IAP_CONTR = 0; // Close IAP function
IAP_CMD = 0; // Standby mode
IAP_TRIG = 0; // Flush command trigger register
IAP_ADDRH = 0x80; // Datasheet recommends to use wrong (non-EEPROM) address 0x80.
IAP_ADDRL = 0; // Empty address low
}
Так что IAP_ADDRH = 0x80;
Каждый имеет право на свое личное ошибочное мнение.
У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.
У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.