Страница 2 из 2

Добавлено: Вс дек 27, 2009 10:01:19
dimon-790
читал, а что скажете по третьему моему сообщению.Как быть с портами ?
кот. уйдут на работу с внешней памятью.Или они будут заняты только для начальной загрузки?

Добавлено: Вс дек 27, 2009 10:03:38
Igor_67
В 89С55 хватает ног и для внешней памяти. Предыдущий пост отредактировал, прочтите еще раз.
А вообще-то, что за девайс? Или хотя бы логика работы?

Добавлено: Вс дек 27, 2009 10:47:18
dimon-790
Девайс вопщем-то на поминает калькулятор , только ещё управляет нагрузками и реагирует на внешние раздражители. Igor_67 Я бы и рад последовать вашему совету, по внешней пзу , но я ни как не пойму как мк , заставить выполнять программу с внешней пзу :oops: . Как считать или записать во внешнюю память мне ясно а вот выполнить..?..

Добавлено: Вс дек 27, 2009 10:55:36
ibiza11
тут по крайней мере 3 человека сказали про внешнюю память. неужели у микроконтроллера нет свободных портов?

по поводу вывода на кнопку:
может там уже используются кнопки? тогда можно использовать одну из них.

в общем:
если кнопку(1 вывод) и память(2 вывода) (кстати, если память с 1-wire , то 1 вывод) подключать к ногам, про которые заведомо известно, что они являются входами устройства, то влияния схемы "загрузчика" на первоначальную схему можно избежать.

Добавлено: Вс дек 27, 2009 10:56:51
ibiza11
dimon-790 писал(а):Девайс вопщем-то на поминает калькулятор
значит проблему с кнопкой уже решили.

Добавлено: Вс дек 27, 2009 11:05:17
dimon-790
ibiza11 писал(а):тут по крайней мере 3 человека сказали про внешнюю память. неужели у микроконтроллера нет свободных портов?
ага про внешнюю память то сказали только , по моему забыли что девайс не я разрабатываю и портов свободных нет ни одного. Как это всё будет работать , тоже не ясно ...

Добавлено: Вс дек 27, 2009 11:13:44
ibiza11
в самом начале программы (после инициализации стека), проверяете нажата ли кнопка.
если нажата, запускаете программу загрузчик, которая будет в цикле считывать данные из внешней памяти и записывать их в свою память программ (флеш память, для этого специальные команды есть). причем если в предыдущий раз начиналось с адреса, к примеру, 0х0000, то сейчас будет грузить начиная с адреса 0х8000, и наоборот.
если кнопка не нажата, то загрузчик не запускается и работает старая прошивка.

про свободные порты я писал выше.
если хотите чтобы вам все конкретно описали, дайте конкретную схему.

з.ы. У вас исходники программы есть или только .bin или .hex файл?

Добавлено: Вс дек 27, 2009 15:34:01
dimon-790
исходников нет только hex , схему чуть позже отсканю и выложу.

Добавлено: Вс дек 27, 2009 16:46:31
dimon-790
вот схема , когда я говорил что нет свободных портов , я соврал :oops: один всё таки есть !.ibiza11 подробнее про программу загрузчик можно ?

Добавлено: Пн дек 28, 2009 17:29:59
dimon-790
Аууу, люди !!! , вы где ? :tea:

Добавлено: Пн дек 28, 2009 20:09:15
DrWatson
Чего мудрить с портами, загрузчиками? ставишь внешнюю ПЗУ, допустим на 64кБ, с 0 адреса заливаешь 1ю прошивку, с адреса 8000h заливаешь 2ю прошивку, к МК старший адресный вывод ПЗУ (в данном случае А15) не подключаешь, а тупо ставишь на него тумблер, который будет на этот вывод подавать либо лог 0, либо 1. Переключил тумблер в положение "0", нажал сброс - работает первая прошивка, переключил тумблер в "1", нажал сброс - работает вторая. на использование внешней памяти нужно подать на вход МК "#EA" лог 0. Плюс подключение внешней ПЗУ к портам и доп. регистр младшего байта адреса (по даташиту)
Хотя можно обойтись одной внешней прошивкой (первая будет прошита в сам МК) и рулить входом "#EA".

Добавлено: Пн дек 28, 2009 22:55:06
dimon-790
Что-то сдаётся мне не там копаем :( . Просмотрел кучу схем на всех что я видел порты которые задействованны под внешнюю память больше ни на какую переферию не идут . Вот например : к порту Р2.0 подключена оптопара , которая в свою очередь , управляет насосом . В момент обращения к ПЗУ, на этом порте будет неизбежно менятся лог.уовень , нетрудно догадаться что будет твориться с бедным насосом и другими нагрузками . Отсюда напрашивается вывод: внешнее ПЗУ использовать в моём случае нельзя .. поправьте если не прав ... :oops:

Добавлено: Вт дек 29, 2009 09:29:29
Igor_67
Я тут немного поразмыслил и вот что решил. В вашем случае можно сделать все по максимуму аппаратно. Оставить два МК как есть, каждый со своей прошивкой, порты и управляющие сигналы обоих МК запараллелить, кроме кварца и цепи сброса. Переключаться между ними можно так: подаем питание на первый МК (+ и -), в это время + второго МК засаживаем на "землю", нажимаем кнопку сброс на первом МК и любуемся результатом. Далее, при необходимости перехода на второй МК, подаем питание на второй МК, но предварительно сняв питание с первого МК и засадив + первого МК на "землю". Выжидаем порядка 100 мс для завершения всех внутренних переходных процессов в кристалле первого МК (можно поставить таймер), жмем сброс на втором МК и любуемся результатом. С ПЗУ затея здесь не прокатит, т.к. у семейства MCS51 жесткая привязка к адресам и что-либо поменять в прошивке или написать свой загрузчик не выйдет, нужно знать конкретно к каким адресам что привязано... Здесь нужен исходник... Можно, конечно поизвращаться и путем дизассемблирования, получить исходник на АСМе, но это такой гемор, что ай-да-ну...
Попробуйте сделать, как я описал выше (вариант с передергиванием питания), должно получиться. В крайнем случае можно попробовать применить буфферные элементы для развязки портов один от другого, но это как опция... :tea:

Добавлено: Вт дек 29, 2009 12:23:35
dimon-790
Igor_67 , паралелить порты не получается :? правда сажать на землю +5 в неиспользуемого мк , не пробовал но попробую для чистоты эксперимента :beer: . Я тут тоже , поразмыслил на досуге и вот что получилось , не очень эстетично но работать вроде должно...

Добавлено: Вт дек 29, 2009 21:24:51
Igor_67
А микрухи 4096 в девайсе уже стоят или вы их хотите дополнительно поставить? Как я понял, это ключи с управлением логическими уровнями? Мне кажется это будет неоправданное усложнение конструкции, да к тому же потребляемый ток возрастет прилично, да ведь и этими ключами надо как-то управлять... Все же сначала попробуйте мой вариант, мне кажется, такое решение будет наиболее простым :idea:

Добавлено: Вт дек 29, 2009 21:31:03
DrWatson
Igor_67 писал(а):в это время + второго МК засаживаем на "землю"
Если на портах есть защитные диоды (те, которые анодом к выводу, катодом к + МК) то второй МК с посаженным на "землю" плюсом будет сажать этими диодами порты второго. (Но что-то подсказывает мне, что там они должны быть).
Зачем огород городить? ZIF-панелька - тоже вариант (правда не самый дешёвый).

Добавлено: Вт дек 29, 2009 21:35:03
Igor_67
Поэтому-то я и писал про буферы... :tea:

Добавлено: Ср дек 30, 2009 21:03:39
dimon-790
попробовал ваш вариант Igor_67 , но увы и ах , как и предполагалось чуда не произошло... :( потому вытравил платку с кт3-ими и двумя мк-ми. Наверное завтра-послезавтра буду пробовать. О результатах отпишусь обязательно. :) Всем удачных выходных!!! и с наступающииим!!! :beer:

Добавлено: Чт дек 31, 2009 10:56:44
dimon-790
Опробовал свой вариант на 561кт3 , такая же хрень! не запускается девайсина. Наверное слишком большое сопротивление , в открытом канале 561кт3 около 300 ом :roll:

Добавлено: Чт дек 31, 2009 14:24:47
dimon-790
И всётаки есть справедливость , заработал таки сабж. После долгих плясок с бубном заметил, что при замыкании вывода +5в, неиспользуемый мк сильнее подсаживал линии портов к земле. В итоге пришёл к выводу что питание отключать не нужно . Вспомнил так-же, гдето читал что при ресет = 1 все линии портов переходят в высокоимпедансное состояние КАК РАЗ ТО ЧТО НУЖНО. В итоге всё получилось более чем просто . Все ноги мк запаралелены кроме ресет его подтянул резюками на 10 к к +5в и через релюшку и передёргиваю . Девайс чувствует себя прекрасно всем откликнувшимся большое спасибо !