Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Микроконтроллеры (MCU) и микропроцессоры (MPU) > Atmel AT89C52


Автор: falcon39 17.12.2005, 13:34
У меня есть программатор PicProg+ работает только под MS DOS из за этого приходится ставить виртуальную машину что есть не очень удобно. Есть ли программы под Windows?

Автор: PILOT 17.12.2005, 20:43
Есть утилиты, которые позволяют работать с портами напрямую DOS-программам.

СУВ.

Автор: falcon39 17.12.2005, 21:37
Воспользовался я одной такой.
После запуска произошел эфект кнопки RESET. Думал Винда коньки отбросит.
Может ты знаешь ссалки на подобные проги.
Спасибо за ответ.

Автор: scapig 17.12.2005, 21:42
сам напиши... проще всего... smile

Автор: falcon39 17.12.2005, 21:49
Цитата(scapig @ 17.12.2005, 21:42)
сам напиши... проще всего... smile

Если ты знаешь как. Помоги. Я не против сам написать. smile

Автор: scapig 17.12.2005, 22:15
Если знаешь С/С++ или Делфи... то проблем нету....
Еще надо знать сам "протокол " (алгоритм) прошивки МК (это все в доках
к МК есть)....

Могу кое-что посоветовать.... т.к. я имел такое удовольствие - написал прогу для WinNT/2k/xp , с пом-ю которой я прошиваю мк АТ89С 1051/2051/4051...

На большее меня не хватило... точнее не было необходимости... smile

Ну а программатор PICPROG - его логика реализована "аппаратно" на цифровых М/С или там МК стоит???

И еше... Он подкл. к ЛПТ или к СОМ ... ???

(я просто не помню .. давно уже не занимался этим... другие заботы... smile )

Автор: PILOT 18.12.2005, 02:16
Это раз.

СУВ.

Автор: PILOT 18.12.2005, 02:17
Это два

Автор: falcon39 18.12.2005, 18:31
На программаторе стоит ПЛИС. Подключен к LPT. Прошивается специальной прогой. Она же выбирает тип микросхемы. Где бы найти этот алгоритм.
Фирма разработчик этого программатора забила болт на него и софт не обновляет.

Автор: scapig 18.12.2005, 19:58
Да... тут дело пахнет керосином... smile

Еслиб не ПЛИС.... smile

А чо за плис ??? (или там они затерли надпись)

Автор: PILOT 18.12.2005, 21:12
ИМХО ты слишком далеко полез...
нужно придумывать что-то более простое...

СУВ.

Автор: falcon39 18.12.2005, 22:07
ПЛИС XILINX XC3030 PC84BKJ9725 A1027415A 70C Еслиб ALTERA была то ее можно было бы прочитать.
Я конечно нашел схему другого программатора. Но его собрать нужно к тому же там тоже контроллер.
Есть ли какой нибудь другой простой способ прошить AT89C52.
И какая у него минимальная тактовая частота. А то я 4метровый кварц ему воткнул. Мне сказали что будет работать. Да я и видел что работает. А у меня не получается даже бегущую строку. Такое чувство что он в определенный момент виснет.

Моя аська 264-630-095

Автор: falcon39 24.12.2005, 13:09
Никто низнает? smile

Автор: scapig 24.12.2005, 15:27
По ходу никто... А чем мс дос не устраивает???

Ставь тогда лихух и запускай свою прогу через эмулятор... smile

Вот еслиб программатор был не на МК,ПЛИС , а просто на цифровых мс
то ... да... можно б было быстро разобраться с ним...

А так... не... парева много... smile

А кварц вроде мин = 4 МГц... макс 24МГц Ты в доке глянь...
А в принципе какая разница .. можно и меньше.... будет тормознеее... smile


Автор: falcon39 24.12.2005, 23:42
А почему он тогда подвисает?
Вроде прога простейшая.

Автор: Dreamer_0x01 25.12.2005, 13:36
Уже три года прошиваю контроллеры At89c52, AT89S53 и AT89C55WD с помощью программатора ChipProg от Phyton. Проблем нет, он стоит тех денег. Софт к нему идет в комплекте с программатором, и что самое важное, постоянно обновляется.

Что касается подвисания. Это проверяется просто - осциллографом. Посмотри, что у тебя делается на Ресете - это раз. Сигнал должен быть устойчивым.
И попробуй для начала записать туда программу по проще - например, в цикле инвертируй один из выводов порта с небольшой задержкой. Тогда ты на осциллографе и увидишь, работает ли проц или нет. Кроме того, по хекс-коду программы ты тоже при некотором навыке увидишь ее содержание. Маленькую проргамму подобного рода вообще без компилятора можно написать, сразу в хекс-коде, но, правда, это уже для извращенцев =)

Ну а уж если совсем туго...Попробуй зайти вот в эту тематическую конференцию по Атмелу, там много людей с ним работает. Кроме того, по проргамматорам там тоже много материала есть...

http://fulcrum.ru/cgi-bin/bbs/start.pl

Удачи.

Автор: PILOT 25.12.2005, 22:13
В 51-ых есть сигнал ALE, который дергается с частотой Freq/12 примерно. Можно его контролировать, наверное...

СУВ.

Автор: DonPager 27.12.2005, 11:45
falcon39 поищи на фитоновском сайте - помоему чиппрог к пикпрогу подходит (сам не знаю у меня чип)

Автор: falcon39 1.1.2006, 18:44
Есть вопрос.
У меня пропадает тактовый сигнал.
Что может быть?

Автор: PILOT 1.1.2006, 23:44
Не тот кварц. Не те настройки под данный кварц. Конденсаторы на кварце не те висят. Сторожевой таймер настроен неправильно или неправильно будится. Линия ресета подключена неправильно (висит в единице).

СУВ.

Автор: falcon39 1.1.2006, 23:56
Линия RESET подключена правильно. Осцилом проверял = 0.
Я пробовал разные кварцы (на 4 МГц и на 12МГц).
Кондеры стоят - 47 пФ.
Про сторожевой таймер по подробней. Что это такое и как настраивается.
Пробовал с внешним генератором. Тоже самое. Сек 30 поработает и проподает.
На выводе XTAL1 нормальные импульсы, на выводе XTAL2 сначало импульсы а потом еденица.
В течении месяца мучаюсь, но понять в чем дело не могу. smile

Автор: PILOT 2.1.2006, 02:06
1) 47 пиков это оч. много, поставь 22-33.
2) другие кристаллы (экземпляры) пробовал?
3) Сторожевой таймер WDT, служит для того, чтобы восстановить работу системы если она подвисла (вечный цикл, стресс и т.п.), Этот таймер в принципе и не таймер а счетчик который нужно постоянно сбрасывать в ноль выполняя команду сброса WDT. Если команда не поступила (т.е. система подвисла, зациклилась), то WDT дергает ногу RST в единицу, после чего происходит перезапуск контроллера. Так вот возможно из-за такой офигительной емкости на XTAL после срабатывания WDT не запускается генерация. Хотя это пальцем в небо. Нужно проверять все.

СУВ.

Автор: falcon39 2.1.2006, 12:23
Попробую, а почему с внешним генератором таже ситуация. smile

Автор: PILOT 2.1.2006, 13:52
ХЗ. исследовать нужно...

СУВ.

Автор: falcon39 2.1.2006, 14:50
PILOT - ты меня извени но ты наверно ошибся. В 52 нет сторожевого таймера. Он есть в 55.

Автор: PILOT 3.1.2006, 00:00
Очень может быть... под руками документации нет smile Тем не менее остальные причины исключать не стоит.

СУВ.

Автор: falcon39 12.1.2006, 22:43
Код

        ORG        000h
        AJMP       START
        ORG        100H
START:
        MOV        IE,#00H
        MOV        TCON,#18H
        MOV        TMOD,#08H
        MOV        PSW,#00H
        MOV        PCON,00H
        MOV        IE,#82H
        MOV        P1,#00H
LOOP:
        MOV        P1,#0FFH
LOOP1:
        DEC        P1
        JNZ         LOOP1
        AJMP       LOOP
        END


Привел текст программы.
Где в ней ошибка, из за которой может проподать тактовый сигнал. Я перепробовал несколько номиналов конденцаторов (10,15,20 пФ). Но когда поставил чистый контроллер то тактовый сигнал не проподал. Я просто понять не могу, какое отношение имеет программа к тактовому сигналу.
Прошу помощи. Потому как с ноября 2005 года пытаюсь хоть что нибудь сделать. smile

Автор: PILOT 12.1.2006, 22:55
Код

        ORG        000h
        AJMP       START
        ORG        100H
START:
        MOV        P1,#00H
LOOP:

        MOV        P1,#0FFH
LOOP1:
        DEC        R0
        JNZ         LOOP1

        MOV        P1,#00H
LOOP2:
        DEC        R0
        JNZ         LOOP2

        AJMP       LOOP

        END


Этот код работает?

СУВ.

Автор: Гость_falcon39 13.1.2006, 11:24
Таже самая проблема. Может быть причина в том что я на макетной плате собираю?

Автор: PILOT 15.1.2006, 00:47
Кварц менял? Генератор ставил вместо кварца?

СУВ.

Автор: falcon39 29.1.2006, 23:47
С причиной остановки контроллера разобрался. Сигнал EA воткнул на прямую к питанию без резистора.
Первые программы, а их было около 5 работали отлично, но дальнейшие модернизации программ затруднено тем что в С52 есть таймер2 который использует новые регистры, а компилятор asm51 про них незнает. Есть конечно способ правки бинарного файла. Но в моем случае это немного геморно. Так как контроллер программирую под виртуальной машиной, потому что программа к PICPROG+ работает под досом, а XP как известно не любит пускать к портам просто так. Есть ли простенький компилятор для 52, чтоб знал про его новые регистры.

Автор: Dreamer_0x01 30.1.2006, 14:48
Цитата(falcon39 @ 29.1.2006, 23:47 Найти цитируемый пост)

Есть ли простенький компилятор для 52, чтоб знал про его новые регистры.

ну я пользуюсь keil.

Цитата(falcon39 @ 29.1.2006, 23:47 Найти цитируемый пост)

есть таймер2 который использует новые регистры, а компилятор asm51 про них незнает

Если не ошибаюсь, ему и не обязательно из знать. Хотя, спорить не буду, я программирую этот процессор на С.
но вот если для того же Кейла посотреть файл "at89x55.h", то там есть такие строки, относящиеся к таймеру 2:
Код

sfr T2CON  = 0xC8;
sfr T2MOD  = 0xC9;
sfr RCAP2H = 0xCB;
sfr RCAP2L = 0xCA;
sfr TH2    = 0xCD;
sfr TL2    = 0xCC;

То есть просто заданы адреса соответствующих регистров.
И все работает прекрасно.
Думаю, и для ассемблера проблема решается так же.

Автор: falcon39 17.2.2006, 14:42
Сделал я как ты говорил. Но нечего не получились.
Как правилино настроить таймер 2.

Автор: Dreamer_0x01 20.2.2006, 19:52

Смотря на что настраивать...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)