Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: как бы заменить 27c256 на avr?...
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
d71
есть автомобильный мозг. все настройки движка в памяти 27c256 UV стириаемой. само собой давно уже микросхема выпаяна и на её месте стоит кроватка, а на соревнования вожим с собой набор микрух с разными настройками.
---
но, блин, не есть это удобно. иногда надо подстроить совсем немного, а в поле программатор и чистые микрухи тащить совсем задница

думаю может заменть память на avr? всё бы ничего если бы не вопрос - а вдруг пимять опрашивается быстрее чем может avr?
как бы определить, возможна замена в моем случае, процессор в автомозгах какой-то nec, во всяком влучае именно в него ноги 27c256 идут. кварс около nec-а на 4 MHz стоит
klop
Вряд ли ппрокатит. Проще сделать некий эмулятор ROM на базе RAM(FLASH) + AVR.
Dog Pawlowa
Цитата(d71 @ May 12 2007, 07:18) *
но, блин, не есть это удобно. иногда надо подстроить совсем немного, а в поле программатор и чистые микрухи тащить совсем задница

А какая разница, что тащить? Все равно компьютер должен быть. Или как Вы себе это представляете?
Tcom
А почему бы не запаять несколько 27c256 на плату и перемычкой выбирать нужный кристал....
d71
ну хочется некоротые парамерты менять на ходу, прямо так сказать на простреле...
--
так я правильно понял несбыточность мечты - нехватит скорострельности avr-ки?
el34
>ну хочется некоротые парамерты менять на ходу, прямо так сказать на простреле...
--
>так я правильно понял несбыточность мечты - нехватит скорострельности avr-ки?

если сделать эмулятор пзу, а в нем, авр-ка будет заниматся загрузкой эмулятора (модификацией данных)то вполне хватит....
или вы себе это представляете как-нибудь по другому?
d71
если раскрывать техническое задание,
то надо что бы avr отвечал за запросы как обычный 27c256, но при наступлении некоторых событий (скорость, нажатая кнопка или еще чего) данные выдаваемые были просчитаны по некой формуле, а не выданы тупо из пямяти.
ну и приятное - после заезда смотрим логи (эта системы уже стоит) и не вынимая микросхемы просто цепляем ноутбук и заливаем несколько другие карты зажигания например.

поверьте я знаю что такое работа с мозгами в полевых условиях - программатор и правка хекса не для такого случая sad.gif
el34
>о надо что бы avr отвечал за запросы как обычный 27c256, но при наступлении некоторых событий (скорость, нажатая кнопка или еще чего) данные выдаваемые были просчитаны по некой формуле, а не выданы тупо из пямяти.

да, понятно, но реакция на нажитие кнопки и выглядеть снаружи как 27c256 - две большие разницы!
ну дык посчитайте формулу по событию в авр(он пусть занимается обработкой событий , расчетами) , запишите получ. расчетные данные из авр в память эмулятора и делов....
только надо понимать , что процессор автомобильного компутера не должен конфликтовать с загрузчиком данных из авр.....(нужно нечто вроде друхпортовости ) а если модифицируются стазу несколько байт, то можно попасть в совсем плохую ситуацию !!! (часть данных может быть считана до, а часть после модификации)
GetSmart
Если очень надо, то я бы посоветовал сразу поставить LPC-проц рублей за 150. Например LPC2132. У него есть 64К флэша. То есть можно держать одну основную прошивку 27с256 плюс программу для проца. У 27с256 всего 25 пинов управления/данных, а у этого проца их 47. Хотя проц питается от 3.3 вольт, но все его выходы можно смело подтянуть к 5 вольтам. Пороги срабатывания будут вполне рабочими. Остальные пины проца использовать для управления изменения данными в "эмулируемой прошивке". В проце есть АЦП и можно к нему подключить переменные резисторы для плавной регулировки каких-то параметров зажигания. Да и скоростьи 60 MIPS гарантированно хватит для эмуляции работы ПЗУхи на 4 МГц если входы OE и CS зацепить на прерывания FIQ. Вобщем AVR на фоне LPC в этом применении - полное г...
sensor_ua
Цитата
Проще сделать некий эмулятор ROM на базе RAM(FLASH) + AVR.

Самое правильное решение. хх29х010 - самое то. А загружать - хватит какого-нить ATmega8515. А впихивать в LPC (с макимальным откликом по FIQ 27 тактов) - бесполезная трата времени и сил.
GetSmart
Отклик по FIQ зависит только от программиста. Можно написать прогу чтоб отклик был не более 5-10 тактов. Это если не использовать длинные PUSH/POP, то есть не использовать другие прерывания вообще. Тока с процом я немного недодумал. Нужна серия LPC214x. Я вот только не знаю, у проца LPC214x быстрый вывод в порты, а ввод/чтение портов у него тоже быстрое?
sensor_ua
Цитата
а ввод/чтение портов у него тоже быстрое?

Да вроде FIO в обе стороны.
GetSmart
Тут правда маленький косячёк может быть в логике работы ПЗУ. Если во время работы CS и OE всегда находятся в нуле, то проц не узнает что адрес поменялся. У LPC нет прерываний по pin change. Даже у AVRок только у некоторых есть. С процом может оказаться вообще нерабочий вариант.
sensor_ua
Цитата
У LPC нет прерываний по pin change.
У LPC23xx уже есть
Сергей Борщ
Цитата(GetSmart @ May 13 2007, 09:02) *
С процом может оказаться вообще нерабочий вариант.
Тоже так думаю. Просится матрица, у которой организовано три параллельных шины и одна последовательная. Одна параллельная подключается вместо штатной ПЗУ, на две остальные вешаются две статические ОЗУ. Командами по последовательной шине одна из ОЗУ коммутируется на главную шину, при этом вторая ОЗУ доступна для модификаций через последовательную шину. Откоректировали информацию во втором ОЗУ, подали команду - ОЗУ перекоммутировались и теперь вторая читатется через главную шину а первая доступна для модификации.
zltigo
Цитата(Сергей Борщ @ May 13 2007, 09:26) *
Тоже так думаю.

Да. На контроллере такие вещи городить - жуть.
Цитата
Просится матрица....

Двухпортовое ЗУ. Элегантнее всего самодельное на FPGA c доступом к другой стороне через RS323.
GetSmart
Или можно LPCшка и внешняя схема pin change. Будет попроще чем 2 ОЗУ, коммутаторы и проц. И дешевле чем FPGA. Интересно, скока стоит самое дешёвое подходящее FPGA. Я так думаю, что RAM к нему придётся ставить внешнюю, т.к. 64К нет ни в одной FPGA.
el34
автор спрашивал о авр - наврно знаком с ним
освоить арм и разобратся с работой перефериии - хлопотно
програмир и отладка такого ус-ва не бедет тривиальной

можно сделать без CPLD-FPGA (с ним конечно красивее)
только всего и надо
- снаружи шесть 8 битовых шинников
- потом за каждой тройкой по корпусу RAM 61256
- потом еще 6 шинников (объединяем в шину авр)
- и за ними авр с довольно примитивной программой....
- простая логика синхронизации переключения банков

плюсы -
простота программы и разводки PCB
дешевизна компонентов и PCB
можно сделать на коленках за неск дней...
d71
спасибо всем : )
но всё очень как-то сложно для меня, извините, если можете, что отнимал ваше время.
я думал подцепить к меге64, прямотаки почти напрямую. и сэмулировать работу 27c256. только лишь с отличием что при сигнале на одну из ног МК выдавать не то что выдала бы память по определенному адресу, а некое другое значение.
zltigo
Цитата(GetSmart @ May 13 2007, 10:01) *
Интересно, скока стоит самое дешёвое подходящее FPGA.

Не дороже подходящей CPLD.
Цитата
Я так думаю, что RAM к нему придётся ставить внешнюю, т.к. 64К нет ни в одной FPGA.

Вы отстали от жизни. Ну и RAM только на изменяемую область данных нужна. Да и 256 килобит это 32K.
Tcom
А может проц в бортовом компе считывает настройки с ПЗУ только при инициализации системы....
То есть при включении двигателя... 07.gif
zltigo
Цитата(Tcom @ May 13 2007, 12:34) *
А может проц ...

Естественно может smile.gif Посему на данном этапе это все общие разговоры.
klop
Цитата(GetSmart @ May 13 2007, 11:01) *
т.к. 64К нет ни в одной FPGA.


Конечно есть. Вот только надо будет куда то рапихать миллион лишних вентелей.
lol.gif
Nanobyte
Есть ещё один вариант. Определить тип контроллера, найти даташит biggrin.gif и расковырять начальный участок программы. Вместо ПЗУ поставить ОЗУ. Сделать простейший начальный загрузчик данных из той-же AVR-ки, после чего разрешить выбор ОЗУ в качестве ПЗУ. По сути, получится эмулятор ПЗУ, но на собственном контроллере.
Но это, конечно, будет работать только в том случае, когда программа хранится в родном ПЗУ, а не внутри контроллера. Этот путь почти безнадёжный, но ...
PS. А ведь ещё и FRAM есть с интерфейсом обычного ROM, есть уже и большие объёмы. Правда, остаётся задача перезагрузки данных, но программатор для параллельной FRAM проще простого, по сути - внешнее ОЗУ для МК.
Dog Pawlowa
Цитата(Nanobyte @ May 13 2007, 17:33) *
Есть ещё один вариант. Определить тип контроллера, найти даташит biggrin.gif []

Все-таки это машина со всеми вытекающими и втекающими помехами и фирменным контроллером с защитами от этих помех. Любой большой довесок существенно снизит помехоустойчивость.
zltigo
Цитата(klop @ May 13 2007, 14:16) *
Конечно есть. Вот только надо будет куда то рапихать миллион лишних вентелей.
lol.gif

Ой миллион! В Циклонах даже на максимальные 256Kbit будет порядка 20-30 тысяч. Ну а поскольку все пихать в RAM явно незачем, то и мелкие с сотней килобит и несколькими тысячами вентилей баксов за 12 вполне подойдут.
d71
прикол в том что проц постоянно считывает значения которые ему нужны из 27с256. это проверенный факт и некоторым способом используемый.
вот еще вопрос, а можно повесить 2 по 256 и между ними переключаться? а 3, а 4 шт?
kv_addr
Цитата(d71 @ May 13 2007, 22:46) *
прикол в том что проц постоянно считывает значения которые ему нужны из 27с256. это проверенный факт и некоторым способом используемый.
вот еще вопрос, а можно повесить 2 по 256 и между ними переключаться? а 3, а 4 шт?

Прочел ветку, так и не понял, зачем нужно пытаться решить предельно простую задачу всякими экзотическими способами. Решение ведь лежит на поверхности.

Для этого нужно взять любую ЭППЗУ (Flash EEPROM) с объёмом более 256 кбит. Если хотите 2 набора, берите 512 кбит, если 4 - 1 Мбит, если 8 - 2 Мбит. Причем вполне пройдет чип BIOS с какой-нибудь старой материнской платы на 1 или 2 Мбит, с большой вероятностью такую в имеющемся хламе найти можно.

27c256 имеет 28 ног. Флешки имеют - 32 ноги. Сделайте переходную плату с панелькой DIP32 либо PLCC32 в зависимости от корпуса флешки, на которой будут разведены все соответствующие сигналы. Оставшиеся 1/2/3 линии адреса (512/1024/2048 кбит) либо на месте подключите к наборному переключателю, либо наружу можете вывести. От 2 до 8 вариантов обеспечено. Переключать хоть на ходу можно.

Проще некуда. wink.gif

PS: Посмотрел еще раз ветку. Если все же предложенный мною вариант из от 2 до 8 готовых наборов не устраивает и есть желание вносить изменения по месту или даже на ходу, то и такой вариант не так уж и сложно решается. В зависимости от того, как увязывается 27c256 с контроллером устройства, можна решить более простым или более сложным схемотехническим способом. Но это - эмулятор ПЗУ получится в любом случае.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.