Страница 19 из 53
Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..
Добавлено: Вт фев 03, 2015 23:45:17
Rtmip
Не думаю. Сначала надо бы проверить программатор USBASP и программу Progisp v1.72 на другом МК, желательно из серии AT89Sхххх.
Можно просто на АВР любом. Проверить все цепи на отладочной(макетной) плате, особенно сброс. Если все нормально, то...
После последней прошивки МК работает, выполняет программу какая была в нем?
Чтобы каждый раз не программировать МК может подумать о эмуляторе-мониторе в виде внешней памяти для МК?
Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..
Добавлено: Ср фев 04, 2015 10:45:34
BOB51
Мог и убить... Единственный вариант перепроверить на параллельном программаторе.
Имитатор штука хорошая - но то внешнее ПЗУ (естественно частота должна быть пониже).
Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..
Добавлено: Ср фев 04, 2015 14:33:48
Пока_без_кота
Rtmip писал(а):Сначала надо бы проверить программатор USBASP и программу Progisp v1.72 на другом МК
После последней прошивки МК работает, выполняет программу какая была в нем?
AVR видит и шьет нормально.
Последними операциями были стирание и чтение сигнатуры. Чип пустой. Программа пишет "Chip Enable Program Error". Точно такое-же сообщение выдает, если отключить микроконтроллер от программатора. Тоесть программа его просто не видит. Вообще. Никак.
Других AT89 в ДИПе нет, была только 1, на ней и планировал учиться((
BOB51 писал(а):Мог и убить...
Паралельный я наверное быстро сделать не смогу, опыта нет, чтоб такие сложные штуки собирать. СТК-200 имеет смысл делать и пробовать (другими программами)?
Вообще не нашел в даташите на AT89S52 раздел "errata", где про это (почему может так умереть контроллер) можно почитать. Я привык что это только у АВР проблемы с фьзами бывают, а тут на ровном месте такая проблема.
Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..
Добавлено: Ср фев 04, 2015 16:00:41
BOB51
Убиваются... весьма специфично - достаточно нарушения контакта (какого-нить) в процессе работы программатора...
Сам так "урыл" в прошлом AT89C2051.
Сбросились байты идентификации - по штатному протоколу МК перестал опознаваться (а значит и программироваться).
Однако поскольку у меня была самоделка - вычеркнул процедуру запрета программирования неопознанного кристалла (она обычно ставится первой в комплексе действий программатора) и спокохонько дальше тем МК пользовался. Зато скоко недоумения у народа сей "неопознаваемый" кристалл вызывал при попытке содержимое считать! Там ведь тоже штатная преамбула по байтам идентификации торчит...(signature bytes для AT89S52 включают atmel ID=0x1E, device ID=0x52, device ID=0x06).
Возможно и у Вас такой "фокус" получился...
Самое интересное методу как эти ID поменять Атмел не дает, да и мне, сколько потом не пытался повторить - такой фокус более не удалось воспроизвести, а весьма полезное действо - похлеще битов защиты памяти - на всех видах программаторов определяется сходу как "убитый"МК.

Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..
Добавлено: Ср фев 04, 2015 16:56:58
Пока_без_кота
BOB51 писал(а):Однако поскольку у меня была самоделка - вычеркнул процедуру запрета программирования неопознанного кристалла (она обычно ставится первой в комплексе действий программатора) и спокохонько дальше тем МК пользовался.
Возможно и у Вас такой "фокус" получился...

Вот это да, прочитал это, и возникло впечатление, что Вы какой-то нейрохурург в мире МК))
Так а "самоделка" Ваша, это аппаратно-програмный комплекс ? Или Вы сами писали только программу под существующее железную реализацию ? Можете дать скачать, потому что я не представляю, как можно отключить принудительную проверку сигнатуры кристала, в уже написаных программах. Сам я не х86 программист, написать свою не смогу.
Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..
Добавлено: Ср фев 04, 2015 18:06:04
BOB51
Самодельный аппаратный блочек в котором сидит самодельная программка + небольшой на бэйсике писаный мониторчик-оболочка под ДОС/винь(до 98 включительно). Делалось ооччень давно... При появлении ХР работать перестало - там некоторый нюанс по определению линий связи - хрюша ЛПТ-порт "напрямую" дергать не дает - а модифицировать было вллоооммушки, да и в полномасштабном комплексе уже особой надобности не имелось. Так и остались "до лучших времен" программатор и имитатор ПЗУ. Программные фрагменты писались по имеющимся даташитам.
Ежли интересно - скину архивчики на почту - там где-то под 12-14 мегабайт (все что осталось - разбираться сам будеш)...Главное, чтоб почтовик пропускал приложения до 16-20 мегабайт...

Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..
Добавлено: Ср фев 04, 2015 22:45:38
Rtmip
Пока_без_кота писал(а):...Других AT89 в ДИПе нет, была только 1, на ней и планировал учиться((...
Если уж действительно учиться, то данная ситуация относится к разряду "нет худа без добра"
Как минимум получите опыт и не будет таких ошибок в будущем. Как максимум придумаете как восстановить данный МК. Средний вариант -
можно подумать о том, что бы прицепить внешнее ПЗУ и ОЗУ (если МК жив, конечно), найти кого-нибудь с параллельным программатором,
зашить в ПЗУ "отладчик", а далее скидывать программы через преобразователь USB-UART или через com - порт и отлаживать их уже не боясь,
что-либо убить. В результате многому можно научиться, на самом деле это все просто, сложно только плату сделать или проводками на
макетке соединять ПЗУ-ОЗУ-МК-регистры... ну и найти человека с программатором под параллельные ПЗУ...
Но, пока, давайте посмотрим, что можно сделать проще: в PROGISP есть галочка Verify Signature, если ее снять, то программе плевать какой
id у МК, главное, чтобы отзывался. Поэтому, если Ваш МК еще жив, но забыл как его зовут, то для начала программа его увидит когда дадите
команду прочитать flash. А вообще,
кварц другой поставьте для проверки.
Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..
Добавлено: Ср фев 04, 2015 23:44:13
Пока_без_кота
Rtmip писал(а):
1. в PROGISP есть галочка Verify Signature
2. Поэтому, если Ваш МК еще жив
3. А вообще, кварц другой поставьте для проверки
1. Она и так была все время снята.
2. Не жилец((
3. Кварц другой первым делом пробовал ставить.
Пока отложу в надежде когда-то собрать парралельный программатор, а пока буду работать в симуляторе.
Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..
Добавлено: Чт фев 05, 2015 04:15:10
BOB51
С внешним ПЗУ всегда работать будет!
Только монтажа поболее. Можно и комбинированное ПЗУ/ОЗУ или вариации на ту тему внешнии подвесить. Для теста жизнеспособности достаточно "пустое" внешнее пзу поставить - будет выполняться "прогон адресов" по кольцу. (Или имитатор команды NOP).

Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..
Добавлено: Пн фев 09, 2015 18:20:41
Голимый
Микроконтроллер SyncMOS SM8958AC25PP (система MCS-51), язык - ассемблер.
Потребовался для проекта 16-битный логический сдвиг. Число в двух регистрах, задача - последователь выдвинуть его через ногу порта.
Как сделать 8-битный сдвиг - понятно. Как сделать 16-битный в общем тоже понятно - через бит переноса, за исключением того что сдвигать можно только аккумулятор. Число из него и в него потребуется неоднократно загружать - выгружать - перезагружать, и с этой последовательностью никак не могу разобраться.
Подскажите пожалуйста, что для этого надо сделать.
Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..
Добавлено: Пн фев 09, 2015 18:39:28
BOB51
Можно использовать косвенную адресацию для загрузки/выгрузки акумулятора или возможности поля прямоадресуемых бит в области регистров 0х20-0х2F...
Только вот в последовательном выводе как-то проблем не наблюдаю...
Пример глянь вывод в индикатор
http://radiokot.ru/forum/download/file.php?id=199966 программный исходник
http://radiokot.ru/forum/download/file.php?id=199968 в теме
http://radiokot.ru/forum/viewtopic.php? ... 1&start=40
Только вот 58-я это весьма солидная машинка, жалко матрицу счетчиков по пустякам портить...

Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..
Добавлено: Пн фев 09, 2015 19:09:00
Голимый
BOB51 писал(а):Можно использовать косвенную адресацию для загрузки/выгрузки акумулятора или возможности поля прямоадресуемых бит в области регистров 0х20-0х2F...
Бит-адресуемую память отверг, т.к невозможно адресовать через указатель отдельные биты.
Все гораздо хуже - я просто не понимаю какую последовательность действий надо предпринять, чтоб получить 16-битный сдвиг.
BOB51 писал(а):Пример глянь вывод в индикатор
Это слишком сложная для меня программа. Я в ней не смогу разобраться.
BOB51 писал(а):Только вот 58-я это весьма солидная машинка, жалко матрицу счетчиков по пустякам портить...
А чего ее беречь. В Китае ее много и дешево. Стоит дешевле безмозглого дешифратора для 7-сегментника.
Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..
Добавлено: Пн фев 09, 2015 19:14:43
petrenko
Голимый писал(а):..Бит-адресуемую память отверг, т.к невозможно адресовать через указатель отдельные биты.
Все гораздо хуже - я просто не понимаю какую последовательность действий надо предпринять, чтоб получить 16-битный сдвиг..
Вам именно сам 16-ьит сдвиг нужен или всё же конечный результат в виде появления на определенном выводе ИМС поочередно нужных битов ?
Уточните пожалуйста.
Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..
Добавлено: Пн фев 09, 2015 19:22:27
Голимый
petrenko писал(а):Вам именно сам 16-ьит сдвиг нужен или всё же конечный результат
Разумеется, интересует конечный результат. Только иначе как сдвигом, - не выходит. Причем выдвинуть надо 16-битное число последовательно, без джиттера, с одинаковыми интервалами между битами.
Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..
Добавлено: Пн фев 09, 2015 19:44:18
petrenko
Могу предложить вам вариант как "поразвлекаться" : сначала разкладываете все Ваши 16 битиков в младшие позиции каких-нибудь 16 байтиков (
остальные 7 позиций каждого байтика оставляете в "0" ) , а потом по прерываниям с таймера выводите байтики в (
например ) порт 1 - в результате на младшем выводе порта будут появляться нужные биты и как раз с ровненикими временными промежутками...

Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..
Добавлено: Пн фев 09, 2015 19:53:51
Голимый
petrenko писал(а):Могу предложить вам вариант как "поразвлекаться" : сначала разкладываете все Ваши 16 битиков в младшие позиции каких-нибудь 16 байтиков
Да, наверное так и придется сделать. Тем более что таймер уже задействовал, и это хорошо (хотя и несколько избыточно) вписывается в логику программы.
Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..
Добавлено: Вт фев 10, 2015 01:47:31
Пока_без_кота
Небольшое продолжение моей эпопеи с умершим AT89S52. Собрал я таки STK200. И перепробовав много разных программ, добрался до ispprog v1.2.0.56. Она с принудительным выбором типа МК определила пациента, но оно некорректно определяет, какой бы МК я не выбрал, оно соглашаеться, что это он. Но радость была недолгой, при считывании флеша, она не может создать хекс-файл, хотя прогрес-бар чтение добегает до конца. Аналогично не может совершить туда никакую запись. Возможно это происходит потому что у меня все время самустанавливаються галочки лок-битов. Если я подцеплю внешнюю память (как советовали выше), смогу ли я ее читать-писать через ISP (как раньше внутреннюю) ? Или она доступна только при парралельном программировании ? И распостраняються ли на нее установки сбесившихся лок-битов ?
Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..
Добавлено: Вт фев 10, 2015 08:07:59
BOB51
Панелька под МК обязательно должна быть оснащена кварцем 4МГц ( и он же указан в установках программы).
Насчет "просто пробегает" и не определяется тип МК - значит не видит сам МК...
Кроме того, частенько требуется пару раз тыцнуть перезапуск - определение. Несколько с заторможенностью срабатывает пару первых "тыц", затем "прихватывает" ккристалл. Файлы "куда" и "откуда" надо заранее в каталогах разместить. "Куда" вроде сама создает, а вот "откуда" - надо на готовый *.hex принудительно указать.
Пы.Сы.
это для
Голимый
Насчет сдвигов... Усапп в синхронном режиме (синхронный ведущий) как оптимальное решение.

Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..
Добавлено: Вт фев 10, 2015 11:17:01
Голимый
Пока_без_кота писал(а):Если я подцеплю внешнюю память (как советовали выше), смогу ли я ее читать-писать через ISP (как раньше внутреннюю) ?
Внешнее ПЗУ для МК надо программировать отдельно на параллельном программаторе. Сам контроллер это не умеет.
Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..
Добавлено: Вт фев 10, 2015 15:34:05
BOB51
В принципе... при наличии "бутлоадера" в РПП нет ничего невозможного - хош ISP, хош RS232, хош чего самодельного - как напишеш начальный загрузчик, так и будет работать.
