Страница 1 из 1
Расширяю переферию на классике 8031
Добавлено: Пт авг 22, 2014 10:20:43
vbvb
Задача. Не меняя набор возможностей на плате с 8031 во главе и не слишком трогая плату, расширить доступ к 5- 6 дополнительным регистрам. Первоначальная программа уже расковырена и не вызывает проблем ее модернизации с учетом новых регистров ввода вывода. Выбор на расширение пал на рилтаймклок RTC VT82885(DS18887 и др) . На его место в панельку встанет модуль расширения с установленным туда же RTC. На RTC приходит шина данных,CS(83xxh),ALE, RD,WR.
Адресация внутренних регистров RTC, как помнится с 0 по 127 (8300...837f h) А все что выше 8380h хочу забрать для адресации дополнительных регистров.
Набросал схемку расширения адресации регистров.(буфер шины не указан и пока не знаю нужен ли)
Вопрос. Ничего не упустил?

Re: Расширяю переферию на классике 8031
Добавлено: Пт авг 22, 2014 17:43:37
BOB51
Это вроде решил в готовой схеме микруху выдернуть, на её место "отсебятику" поставить?

Re: Расширяю переферию на классике 8031
Добавлено: Пт авг 22, 2014 18:07:02
vbvb
BOB51
Как то так

,нужно расширить функциональность
Re: Расширяю переферию на классике 8031
Добавлено: Пт авг 22, 2014 20:22:26
BOB51
А не смущает, что у MCS51 существует 2 типа movx - с Ri и DPTR в качестве указателя адреса?

Ведь исходя из типа применяемых команд и работа дешифратора адреса/выборки кристалла отличаться будет... да и чем наборчик из сдвиговых регистров не устраивает - там всего-то 3 вывода надобно...

Re: Расширяю переферию на классике 8031
Добавлено: Пт авг 22, 2014 20:54:31
vbvb
Даже если и использовать movx c Ri, то это только на первые 256 байт , что никак не скажется на адресах 83хх. Поэтому доступ только c DPTR. Кстати не помню, что фиксируется в P2 при movx c Ri? То что было до команды movx? То есть достаточно mov P2,#83h до и movx @Ri,A сработает?
Переделка под другие типы, конечно, возможна, но приведет еще и к переделке модуля этих регистров. Честно говоря, этот модуль уже практически готов и переделка его не стоит планах.
Re: Расширяю переферию на классике 8031
Добавлено: Пт авг 22, 2014 21:20:30
BOB51
А надо бы помнить - при movx @ri,a\movx a,@ri - Р2 НЕ ИСПОЛЬЗУЕТСЯ! (сохраняются предыдущие значения)
Отсюда и возможные ошибки - при ВПД в 256 байт разработчик вероятнее всего воспользуется "короткими" командами, тем более, что там больше возможностей обмена с РПД.
А Р2 будет использован для максимум "хитрого выбора" (ибо все равно содержит адрес ВПП это ведь 8031, а не машина со встроенным флеш-блоком пограммной памяти).
Кстати, самой первой ступенью подобной "модернизации" была бы замена МК на AT89S52... или чего подобного с встроенной памятью программ.

Re: Расширяю переферию на классике 8031
Добавлено: Пт авг 22, 2014 21:25:10
vbvb
Ну это уже про детские ошибки
Когда, к примеру, в прерываниях начинают работать c Movx @Ri забыв про порт 2
спасибо что напомнили: повторение -мать учения

Re: Расширяю переферию на классике 8031
Добавлено: Пт авг 22, 2014 21:31:38
BOB51
Есть ошибки программиста, есть ошибки схемотехника не ведающего особенностей как самого МК, так и его периферийных модулей.
А есть и суммарный результат для любителя самоделок...

Re: Расширяю переферию на классике 8031
Добавлено: Пт авг 22, 2014 21:48:10
vbvb
А по моему у меня ошибка.
Что будет на шине данных при чтении из дополнительного регистра, если и RTC "подумает", что к нему обращение? Нужно посмотреть, что выдаст RTC на шину при адресации несуществующего регистра -выше 127.
Тогда уж придется формировать CS для RTC иначе
Re: Расширяю переферию на классике 8031
Добавлено: Пт авг 22, 2014 21:57:49
BOB51
Дак сначала хош с даташитом на RTC ознакомьтесь - там половина необходимой периферии ИНТЕГРИРОВАНА в самой ИС, а при замене/эквиваленте это все внешней "рассыпухой" городить прийдется.

Re: Расширяю переферию на классике 8031
Добавлено: Пт авг 22, 2014 22:08:33
vbvb
Все верно, просмотрю и даташит еще раз. Но CS он и в Африке CS.
Это по моему более надежно CS= CS(83xxh) +А7, если учесть сколько подобных версий RTC было сделано
Re: Расширяю переферию на классике 8031
Добавлено: Пт авг 22, 2014 22:22:03
BOB51
Одна и та же область адресов используется как дешифратором, так и RTC, при условии наличия раздельных шин адреса... а тут как посмотреть - кусочек схемы (и скорее быстронабросанный скан) - не показатель.

Re: Расширяю переферию на классике 8031
Добавлено: Пт авг 22, 2014 22:56:59
vbvb
CS= CS(83xxh) +А7 вычеркиваем, потому как работать не будет (или ставить 373 регистр)
Проще кинуть еще один адрес CS(84xxh)
Re: Расширяю переферию на классике 8031
Добавлено: Сб авг 23, 2014 06:45:22
BOB51
Проще сделать "комбик" - повесить на одном адресе сдвиговый регистр (или 3-4регистра), загоняя на них последовательно необходимые битовые комбинации. А те входы/выходы регистров уже использовать в собственных целях. Тихоходное конечно сооружение, зато надежно и с широкими возможностями - практически второй параллельный интерфейс для МК видимый как программный SPI.
