89c52 с внешним ПЗУ

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Superbear
Первый раз сказал Мяу!
Сообщения: 33
Зарегистрирован: Сб апр 16, 2011 15:20:59

89c52 с внешним ПЗУ

Сообщение Superbear »

Хочу сделать тестер микросхем 74 серии на микроконтроллере 89с52. Так как памяти у него мало, то думаю применить внешнее пзу типа 27с512. Отсюда у меня вытекает несколько вопросов:
1) Основная программа будет выполнятся во внутреннем ПЗУ микроконтроллера (опрос клавиатуры, вывод результата на символьный индикатор и отправка к базе элементов), а вот поиск по базе и необходимые действия с двумя портами (к ним цепляется проверяемая микросхема) должны выполняться из внешнего ПЗУ. Как мне это записать в ассемблере, чтобы транслятор основную программу записал во внутреннем ПЗУ, а необходимые мне подпрограммы во внешнем ?
2) После окончания выполнения подпрограмм из внешнего ПЗУ и возвращении во внутреннее ПЗУ какие настроики буду портов Р0 и Р2 (которые управляют внешним ПЗУ)- то что было до обращения к внешнему ПЗУ или что то другое ?
Реклама
Аватара пользователя
Леонид Иванович
Друг Кота
Сообщения: 4779
Зарегистрирован: Сб апр 02, 2011 12:40:46
Откуда: Минск
Контактная информация:

Re: 89c52 с внешним ПЗУ

Сообщение Леонид Иванович »

Это невозможно. Да и зачем? Возмите внешнее ПЗУ побольше и разместите в нем всю программу целиком. Для работы с внешним ПЗУ нужно заземлить ножку EA. Кроме ПЗУ понадобится еще и регистр - защелка адреса.
Реклама
Аватара пользователя
ChipKiller
Сверлит текстолит когтями
Сообщения: 1163
Зарегистрирован: Ср янв 05, 2011 16:25:15

Re: 89c52 с внешним ПЗУ

Сообщение ChipKiller »

Superbear писал(а):а вот поиск по базе и необходимые действия...
... смотря что будет храниться во внешнем ПЗУ. Если там будут только данные, то можно использовать EEPROM 24сХХХ.
ЗЫ. Вообще топикстартеру неплохо вначале изучить такую вещь, как карта памяти и дешифрация адреса. Думаю многие вопросы тогда сами отпадут.
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15575
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: 89c52 с внешним ПЗУ

Сообщение BOB51 »

похоже на вариации на тему начального загрузчика и исполнительной системы...
Superbear, скинь адрес e-mail мне в личку - отправлю вариант схемы и программ (делал в прошлом программатор по подобному схеме)
:beer:
Последний раз редактировалось BOB51 Пн апр 30, 2012 02:36:45, всего редактировалось 1 раз.
Реклама
Эиком - электронные компоненты и радиодетали
Superbear
Первый раз сказал Мяу!
Сообщения: 33
Зарегистрирован: Сб апр 16, 2011 15:20:59

Re: 89c52 с внешним ПЗУ

Сообщение Superbear »

Ну если нельзя , то значит придется покупать ATmega 32 Или 128. Спасибо всем за помощь.
Реклама
petrenko
Друг Кота
Сообщения: 5326
Зарегистрирован: Вт фев 21, 2012 13:51:55
Откуда: Начинающий
Контактная информация:

Re: 89c52 с внешним ПЗУ

Сообщение petrenko »

Superbear писал(а):Хочу сделать тестер микросхем 74 серии на микроконтроллере 89с52. Так как памяти у него мало, то думаю применить внешнее пзу типа 27с512. Отсюда у меня вытекает несколько вопросов:
1) Основная программа будет выполнятся во внутреннем ПЗУ микроконтроллера (опрос клавиатуры, вывод результата на символьный индикатор и отправка к базе элементов), а вот поиск по базе и необходимые действия с двумя портами (к ним цепляется проверяемая микросхема) должны выполняться из внешнего ПЗУ. Как мне это записать в ассемблере, чтобы транслятор основную программу записал во внутреннем ПЗУ, а необходимые мне подпрограммы во внешнем ?
2) После окончания выполнения подпрограмм из внешнего ПЗУ и возвращении во внутреннее ПЗУ какие настроики буду портов Р0 и Р2 (которые управляют внешним ПЗУ)- то что было до обращения к внешнему ПЗУ или что то другое ?
Приветствую Вас !
Во - первых, в ассемблере есть мнемоника (не путайте с командой) ORG . Поставте свою внешнюю ПЗУ на адрес например 02000hex ну и если что неясно, спросите, поможем. Однако не торопитесь прошивать как внутреннюю ПЗУ, так и внешнюю. Лучше на отладочке занесите полученный после ассемблирования код В ОЗУ кросс-а и посмотрите, что получается.
Во - вторых, у меня есть почти отладка на 80с31 , и могу посоветовать, где что найти также.
В - третьих очень не советую вешать проверяемые ИМС прямо на порты , зачем рисковать сжечь их. Советую развязку и даже раздельное питание проверяемой ИМС.
Насчёт P0 P2 - это не всегда порты - у этих выводов микросхемы два режима : собственно портов ввода-вывода и шины адреса/данных внешних устройств (не только ПЗУ ! ). Кто как, но я P0 как порт никогда не использую вообще, а P2 очень редко и только на ввод. Если не хватает линий надо использовать 580вр43 (обычно ставлю две) - схему подключения подскажу.
Последний раз редактировалось petrenko Пн апр 30, 2012 00:40:49, всего редактировалось 1 раз.
< виртуальная "кнопочка" >--( WWW ) <- Убедительная просьба интересующимся старыми компьютерами типа РК86 - не пишите в теме в барахолке, пишите Ваши вопросы в ( лс ) пожалуйста
Реклама
Аватара пользователя
paskal
Нашел транзистор. Понюхал.
Сообщения: 160
Зарегистрирован: Пн сен 05, 2011 10:03:06
Откуда: Тула

Re: 89c52 с внешним ПЗУ

Сообщение paskal »

Пункты 1) и 2) выполнить элементарно.
Подключаете внешнее ПЗУ как штатное для 8051.
Вывод EA сажаете на лог.1, т.е. работа от внутреннего ПЗУ.
Теперь при обращении к первым 8 Кбайт процессор будет работать от внутреннего ПЗУ, при обращении выше 8 Кбайт - к внешнему. Естественно что для этого во внешнее ПЗУ программа пишется с адреса 2000h.
Если бы на станции "Мир" стояли Винды, она бы еще висела и висела...
Аватара пользователя
Леонид Иванович
Друг Кота
Сообщения: 4779
Зарегистрирован: Сб апр 02, 2011 12:40:46
Откуда: Минск
Контактная информация:

Re: 89c52 с внешним ПЗУ

Сообщение Леонид Иванович »

Да, верно, при EA = 1 при выходе за пределы внутренней памяти будет обращение к внешней.
Вот только не видно смысла разбивать программу на два куска. Проще всё разместить во внешней памяти. Если, конечно, засекречивать часть программы не нужно.
petrenko
Друг Кота
Сообщения: 5326
Зарегистрирован: Вт фев 21, 2012 13:51:55
Откуда: Начинающий
Контактная информация:

Re: 89c52 с внешним ПЗУ

Сообщение petrenko »

А куда делся TopickStarter ? Спугнули в начале темы что ли ?
to : "paskal" А у него там именно 8КБ ? Я то написал 01000hex , полагая, что 4КБ (подправил)
to : "Леонид Иванович" Вот за что Вы "Фахiвец" выбросили ? Всё, скажу всем продавцам, чтоб сало никогда не продавали Вам ! :)
TopickStarter наверное имел в виду, что программа во внутренннем ПЗУ, а "база данных" во внешнем. Хотя кто его знает - надо переспросить.
< виртуальная "кнопочка" >--( WWW ) <- Убедительная просьба интересующимся старыми компьютерами типа РК86 - не пишите в теме в барахолке, пишите Ваши вопросы в ( лс ) пожалуйста
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15575
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: 89c52 с внешним ПЗУ

Сообщение BOB51 »

вот это подобное по схемотехнике монстро -ежли интересно, расскажу подробнее :tea:
Вложения
карта памяти.pdf
(13.15 КБ) 390 скачиваний
prog_at89s_vol1a.pdf
(37.7 КБ) 472 скачивания
petrenko
Друг Кота
Сообщения: 5326
Зарегистрирован: Вт фев 21, 2012 13:51:55
Откуда: Начинающий
Контактная информация:

Re: 89c52 с внешним ПЗУ

Сообщение petrenko »

Это вроде 89xxx52 программирует своего "родственника" и умеет связываться с неким компьютером. Такого устройства схемка ? Интересно в общем, но TopickStarter-у разве надо ? Да и убежал он куда-то.
< виртуальная "кнопочка" >--( WWW ) <- Убедительная просьба интересующимся старыми компьютерами типа РК86 - не пишите в теме в барахолке, пишите Ваши вопросы в ( лс ) пожалуйста
Аватара пользователя
paskal
Нашел транзистор. Понюхал.
Сообщения: 160
Зарегистрирован: Пн сен 05, 2011 10:03:06
Откуда: Тула

Re: 89c52 с внешним ПЗУ

Сообщение paskal »

petrenko писал(а):to : "paskal" А у него там именно 8КБ ? Я то написал 01000hex , полагая, что 4КБ (подправил)
У 8051 серии, ПЗУ 4 КБ, у 8052 обычно 8 КБ. Во всяком случае вопрос был про 89с52, где однозначно 8 КБ.
to:BOB51
Что за странная карта памяти? К 8051 она не имеет отношения.
Если бы на станции "Мир" стояли Винды, она бы еще висела и висела...
Аватара пользователя
Леонид Иванович
Друг Кота
Сообщения: 4779
Зарегистрирован: Сб апр 02, 2011 12:40:46
Откуда: Минск
Контактная информация:

Re: 89c52 с внешним ПЗУ

Сообщение Леонид Иванович »

petrenko писал(а):Вот за что Вы "Фахiвец" выбросили ?
А что это?
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15575
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: 89c52 с внешним ПЗУ

Сообщение BOB51 »

to paskal
как это "не имеет отношения" ? :)
это ведь карта памяти к ниже ( там же ) выложенной схеме, а она вроде как MCS51 8)
принцип схемки-работа по загруженной из базового блока (ПК в частности) программе
см. внимательно схемку и карту 8)
to petrenko
Не только "родственников", но и любое другое, на что есть документация по протоколу загрузки и самошкрябные оболочки, подгружаемые по потребности. Возможна и прямая работа в качестве "платы прототипа" - на панельку навесить соответствующую обвязку (дисплейчик, кнопушки/датчики)... протокол обмена был примитивнейший, но подключение внешних линий с запасом на применение УСАПП... хороша была штука , да сейчас пока "в коробочке" лежит надо бы подучить чего новенького из basicов для ПК, но пока "вломушки" этим заниматься :sleep:
petrenko
Друг Кота
Сообщения: 5326
Зарегистрирован: Вт фев 21, 2012 13:51:55
Откуда: Начинающий
Контактная информация:

Re: 89c52 с внешним ПЗУ

Сообщение petrenko »

1.) "Фахiвец" на мове означает "Спяцыалист"
2.) Можно Форт - машинку сделать из MSC51 - для 51-ых есть неплохой Форт, говорят, вот сам ищу, где скачать или записать. У 52-го вообще вроде, помнится два последовательных, можно один для RS-232 , другой для PS/2 клавиатуры. А контролер дисплея на шину, только вот драйвера придётся самому, никуда не деться...
< виртуальная "кнопочка" >--( WWW ) <- Убедительная просьба интересующимся старыми компьютерами типа РК86 - не пишите в теме в барахолке, пишите Ваши вопросы в ( лс ) пожалуйста
Аватара пользователя
IM1
Грызет канифоль
Сообщения: 268
Зарегистрирован: Вт фев 16, 2010 12:10:38
Откуда: Воронеж, Россия

Re: 89c52 с внешним ПЗУ

Сообщение IM1 »

petrenko писал(а):У 52-го вообще вроде, помнится два последовательных, можно один для RS-232 , другой для PS/2 клавиатуры.
По моему, там их три, а если посмотреть вооруженным глазом, то будет..., будет..., вспомнил: точно четыре!
Можно еще добавить мышь и токовую петлю :) .
С ПРАЗДНИКОМ! :beer:
petrenko
Друг Кота
Сообщения: 5326
Зарегистрирован: Вт фев 21, 2012 13:51:55
Откуда: Начинающий
Контактная информация:

Re: 89c52 с внешним ПЗУ

Сообщение petrenko »

Вы правы. Тогда ещё и мышь !
А кто-то в других темах ещё говорил, что из микроконтроллера полноценный комп не сделать. :wink:
Вот только OS-51/52 напишем и всё ! :beer:
_______________________
"А где же начальник транспортного цеха ? " :)
< виртуальная "кнопочка" >--( WWW ) <- Убедительная просьба интересующимся старыми компьютерами типа РК86 - не пишите в теме в барахолке, пишите Ваши вопросы в ( лс ) пожалуйста
Superbear
Первый раз сказал Мяу!
Сообщения: 33
Зарегистрирован: Сб апр 16, 2011 15:20:59

Re: 89c52 с внешним ПЗУ

Сообщение Superbear »

Я вернулся :)) . Хотелось бы уточнить несколько моментов.
1)Подключаете внешнее ПЗУ как штатное для 8051.
Вывод EA сажаете на лог.1, т.е. работа от внутреннего ПЗУ.
Теперь при обращении к первым 8 Кбайт процессор будет работать от внутреннего ПЗУ, при обращении выше 8 Кбайт - к внешнему. Естественно что для этого во внешнее ПЗУ программа пишется с адреса 2000h.


Как я понял , если вывод EA на землю , то только внешнее ПЗУ, а если к 5V , то внутреннее, а при превышении продолжаем во внешнем ПЗУ ?

2) Поясню чем мне подходит записать всю программу во внешнее ПЗУ- 2 порта мне нужны для подключения испытуемой микросхемы , еще нужно подключить матричную клавиатуру 3*4(это еще 6 выводов с порта), также 6 выводов займет символьный индикатор, а оставшиеся 3 вывода - это комутация питания испытуемой микросхемы.
Логика работы моей программы такова- вводим номер микросхемы, например 7403, микроконтроллер обрабатывает данные с клавиатуры и далее переходим на подпрограмму во внешнем ПЗУ. В этой подпрограмме записаны все необходимые действия с портами , к тором подключена испытуемая микросхема. Во время тестирования микросхемы мне нужны только два порта , остальные два порта (к ним подключен индикатор и клавиатура- можно использовать для внешнего ПЗУ, три пина управления питанием подключаем к регистру , чтоб они не изменяли свое значение на время работы внешнего ПЗУ). после прохождения теста возвращаемся во нутреннее ПЗУ и у нас снова 4-е пота в нашем распоряжении.
Все это нужно для того , чтоб использовать микросхемы, которые есть у меня в наличии. в случае использовании только внешнего ПЗУ , мне придется к клавиатуре и индикатору обращатся , как к внешнему ОЗУ - но мне это не под силам , как начинающему и проще купить другой микроконтроллер , где достаточно внутренней памяти.

3) Мне так и не понятным остался вопрос с двумя портами, к которым подключаем внешнее ПЗУ по стандартной схеме. Какое значение они примут после перекращения обслуживания внешнего ПЗУ - то что было до обращения к внешнему ПЗУ или то что осталось после (надо ли их при возващении программы во внутреннее ПЗУ снова настраивать ?)
Аватара пользователя
ChipKiller
Сверлит текстолит когтями
Сообщения: 1163
Зарегистрирован: Ср янв 05, 2011 16:25:15

Re: 89c52 с внешним ПЗУ

Сообщение ChipKiller »

Superbear писал(а):В этой подпрограмме записаны все необходимые действия с портами , к тором подключена испытуемая микросхема. Во время тестирования микросхемы мне нужны только два порта , остальные два порта (к ним подключен индикатор и клавиатура- можно использовать для внешнего ПЗУ, три пина управления питанием подключаем к регистру , чтоб они не изменяли свое значение на время работы внешнего ПЗУ). после прохождения теста возвращаемся во внутреннее ПЗУ и у нас снова 4-е пота в нашем распоряжении.
... если P0 и P2 используются для подключения внешней памяти, то как о портах В/В о них можно забыть. (для получения доп. линий управления, как вариант повесить на P0 регистры, 555ир23 например, но придется городить дешифратор )
Superbear писал(а):... проще купить другой микроконтроллер , где достаточно внутренней памяти.
здравая мысль :)
Аватара пользователя
Леонид Иванович
Друг Кота
Сообщения: 4779
Зарегистрирован: Сб апр 02, 2011 12:40:46
Откуда: Минск
Контактная информация:

Re: 89c52 с внешним ПЗУ

Сообщение Леонид Иванович »

Superbear писал(а):Как я понял , если вывод EA на землю , то только внешнее ПЗУ, а если к 5V , то внутреннее, а при превышении продолжаем во внешнем ПЗУ ?
Да.
Superbear писал(а):в случае использовании только внешнего ПЗУ , мне придется к клавиатуре и индикатору обращатся , как к внешнему ОЗУ - но мне это не под силам
В этом нет ничего сложного, подключаете регистры на шину данных и адресуете их как внешнюю память данных. Во всяком случае, это проще, чем разделять программу на два куска, а шину делить между памятью и устройствами ввода-вывода.
Superbear писал(а):Мне так и не понятным остался вопрос с двумя портами, к которым подключаем внешнее ПЗУ по стандартной схеме. Какое значение они примут после перекращения обслуживания внешнего ПЗУ - то что было до обращения к внешнему ПЗУ или то что осталось после
Порт 2 восстановит свое состояние, а в в порт 0 будет загружены нули.
Superbear писал(а):проще купить другой микроконтроллер , где достаточно внутренней памяти
Вот это единственная здравая мысль во всей ветке.
petrenko писал(а):1.) "Фахiвец" на мове означает "Спяцыалист"
Да, был у меня такой. Массу всего полезного на нем сделал. Например, был сделан программно-апаратный комплекс для снятия АЧХ. Как схем, так и акустики. Даже теперь нет таких возможностей, но уже и не надо. Конечно, пользоваться компьютером было крайне неудобно. Одна загрузка программы с кассет чего стоит. Вот и разобрал, как ненужный хлам.
Вложения
PC-1500_in.jpg
(226.94 КБ) 744 скачивания
s-90.gif
(27.87 КБ) 723 скачивания
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»