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

AT29C256 и atmega. Или эмулятор ПЗУ на Atmeg-а

Добавлено: Сб янв 31, 2015 15:30:04
ScRp
Всем котам - Привет!

Прежде всего извиняюсь если залез не в тот раздел.

Сразу объясню - программированием МК занялся недавно (очень недавно) и толком еще не разобрался. А тут еще очень и очень захотелось сделать чип тюнинг ECU своего автомобиля. Полез на профильные форумы, нашел что нужно с одним но - невозможность "онлайн" прошивки. На дочерней плате, что ставится в ECU имеются две flash-ки AT29C256 и чтоб залить в них прогу, естественно нужно их вытащить с постелек и воткнуть в программатор.
А теперь к сути - идея реализации "онлайности" (т.е при работающем движке корректировать параметры работы) состоит в том, чтоб разработать схему с памятью подключаемой через буфера, которые блокируются при перешивке, все это под управлением например атмеги 128. Или же сделать эмулятор этой самой памяти на какой нибудь атмеге.

Не прошу делать за меня работу, а покидаться ссылками по тому или другому варианту. Хотя, если есть готовые примеры, буду только рад)))
Ну или сказать что это не стоит свеч и послать меня гулять)))

Заранее благодарю Вас за терпение и ответы)

Принципиалка дочерней платы:
138171572.jpg
(163.06 КБ) 1227 скачиваний

Re: AT29C256 и atmega. Или эмулятор ПЗУ на Atmeg-а

Добавлено: Сб янв 31, 2015 16:43:58
mas123
ScRp писал(а):две flash-ки AT29C256 и чтоб залить в них прогу
Т.е. прошивка занимает 64 Кб.
У 128-й Атмеги FLASH-памяти 128 Кб - в теории, можно половину отдать под "прошивку" и половину под имитацию FLASH. Ножек тоже хватает - в принципе, есть шанс такое сделать.
Остаются вопросы:
- на какой частоте работает контроллер ECU, в смысле какое время считывания из FLASH он требует? Справится ли "эмулятор" по скорости?

- где в "эмуляторе" хранить прошивку? Если во внутренней FLASH - то какая же тут "онлайновость"? Можно, конечно, на лету менять содержимое FLASH, но успеет ли и шить и работать как FLASH?
Хранить "прошивку" в SDRAM - никак, у Атмеги всего 4 КБ. Там можно, разве что, хранить одну-две "таблицы" и выдавать из при запросе с определённого адреса.
Хотя, как вариант использовать Атмегу как FLASH - можно. И перепрошивать можно без вынимания её - через внутрисхемное программирование (ессно, выключив ECU вначале)
ScRp писал(а):при работающем движке корректировать параметры работы
Возникают сильные сомнения. Если ты будешь "на лету" менять саму программу выполнения - получишь зависание контроллера с вероятностью 146%.
Исправлять некие "таблицы" - в теории можно. На практике - есть немалая вероятность, что ECU при запуске копирует эти таблицы себе в SDRAM и работает оттуда.

Re: AT29C256 и atmega. Или эмулятор ПЗУ на Atmeg-а

Добавлено: Сб янв 31, 2015 17:04:08
ScRp
Mas123. Благодарю за столь быстрый ответ!
Скорость считывания - на пределе At29c256 - 70нс. Частота получается 14.7 МГц.
Нет, в ECU при запуске не копирует ничего, он командует работой движка опираясь на данные считываемые с flash дочерки. В ECU ставится перемычка, и все, он работает только от внешней памяти.
На счет зависаний МК во время прошивки на раб. движке, согласен, думаю что загнул я) Ну по крайней мере, хотелось бы организовать почти онлайность))Т.е. заглушились, зашились, завелись и поехали проверяться)

Кстати, забыл сказать что две флешки стоят что бы была возможность реализации двухрежимности (овощь-городская прошивка и аля спорт режим).

Что-бы было понятно зачем мне это. У нас в Казахстане паршивый бензин, а двигатель у меня со степенью сжатия 10.3:1. Из-за этого на 95-98 бензине детонация такая, что аж за движок страшно. Движок чистокровный япошка 190 поней. Он очень быстро придет в негодность из-за такого детона. Хочется залить прош для ECU с так называемой "низкооктановой" топливной картой, познакомить движок с говенным бензином. И вторая прош - для отжига на хорошем Российском бензине (он реально лучше нашего) :))

И это объем программы не 64кб, может быть и больше, зависит от кол-ва новых параметров которые мы прописываем ECU. Может и впритык к памяти флешки - 256кб. Хотя и могу ошибаться. Новичек жеш)

Re: AT29C256 и atmega. Или эмулятор ПЗУ на Atmeg-а

Добавлено: Сб янв 31, 2015 17:58:32
mas123
ScRp писал(а):Частота получается 14.7 МГц.
Атмега-128 - максимально 16 МГц. Может быть она на 20 заведётся, и то не факт. Не потянет она "эмулятор" на таких скоростях.
А с фигали частота такая получается? Какая тактовая в контроллера ECU?
ScRp писал(а):Нет, в ECU при запуске не копирует ничего,
Отнюдь не факт! Скорость чтения из SDRAM выше , чем из FLASH "на порядок, т.е. в два раза" :))
Многие движки умеют адаптироваться к стилю езды - это тоже оптимально в SDRAM хранить.
ScRp писал(а):Может и впритык к памяти флешки - 256кб.
AT29C256 - 32 КилоБайт! Или 256 килоБит, что тоже самое.
ScRp писал(а):Т.е. заглушились, зашились, завелись и поехали проверяться
Это можно придумать. Собрать схему такого плана:
Атмега плюс FLASH'ки (хоть одна, хоть три) и буфер между платой и ECU.
С возможностью подавать питание только на эту платку. В атмегу зашить программку, которая умеет принимать извне прошивку (например - UART) и программировать FLASH.
Т.е. у тебя "из-под капота" будут "торчать" 2 провода. К ним подключаешь ноут через COM-порт, заливаешь прошивку, и едешь на заправку. :))

Re: AT29C256 и atmega. Или эмулятор ПЗУ на Atmeg-а

Добавлено: Чт ноя 19, 2015 08:31:05
radteh
Что тут, попытка собрать клон Hondata?

Re: AT29C256 и atmega. Или эмулятор ПЗУ на Atmeg-а

Добавлено: Пт окт 14, 2016 08:14:26
ScRp
radteh писал(а):Что тут, попытка собрать клон Hondata?
Ох как пауза у меня затянулась) Нет, не хондата. Нистюноподобную платку. Хотя в принципе одно и тоже. только с хондатой проще.

Re: AT29C256 и atmega. Или эмулятор ПЗУ на Atmeg-а

Добавлено: Пт окт 14, 2016 09:30:52
BOB51
АВР микроконтроллеры под управлением программ, считываемых из внешней памяти напрямую не работают.
Для них существует только внешняя память данных.
Как вариант или в самом МК должна стоять какая-либо операционная система симулятора МК с выполнением команд, считываемых из внешнего ОЗУ, либо применение другого вида МК - к примеру банальну MCS51...
:roll:
Другое дело загрузчик имитационного кристалла - так для того любой МК с достаточным количеством ног и возможностью перевода выводов в Z-состояние пройдет.
Другое дело что в качестве имитационного носителя применить... Весьма полезны вот такие:
SST39SF0x0.pdf
(364.42 КБ) 281 скачивание
Вариант "на поиграться"
http://img.radiokot.ru/files/20529/kfszm0vku.gif собственно схемка основы
и дополнение для "полного фаршу"
http://img.radiokot.ru/files/20529/kfszmruku.gif
Сейчас можно и понавороченнее соорудить...
:sleep:

Re: AT29C256 и atmega. Или эмулятор ПЗУ на Atmeg-а

Добавлено: Пт окт 14, 2016 13:08:32
uk8amk
Судя по схеме платы процессор может только читать из флеш.
Так как шина параллельная, то либо сам контроллер старый без своей флеш, либо программа тоже сидит в этих чипах. Скорее второе поскольку шина похожа на 16-разрядную.
Смена программы налету чревата зависанием процессора поскольку на перепрограммирование требуется значительное время.
Для онлайнового варианта лучше использовать микросхемы памяти SRAM типа 62256. Организуем 2 банка по 2 микросхемы. Перед запуском блока загружаем первый банк памяти. Потом имеем неограниченно много времени для загрузки второго банка. Когда второй банк готов переключаем их буферами. Так имеем некоторую вероятность что процессор не повиснет. Чтобы далее снизить вероятность зависания переключание банков следует выполнять только при нахождении процессора в определённом диапазоне адресов где всегда находятся константные данные. Это зависит от программы.
Впрочем сотворить систему можно и на ваших 29С256. Я думаю что ресурса в 10000 перезаписей хватит чтоб как-то настроить мотор под ваш бензин.

Re: AT29C256 и atmega. Или эмулятор ПЗУ на Atmeg-а

Добавлено: Пт окт 14, 2016 13:17:15
BOB51
В старой практике симуляторов/имитаторов применялась генерация сигнала сброса и/или останова для целевой схемы во время обмена/загрузки имитационного массива.
:)

Re: AT29C256 и atmega. Или эмулятор ПЗУ на Atmeg-а

Добавлено: Пт окт 14, 2016 13:28:28
Smen
BOB51 писал(а):применялась генерация сигнала сброса и/или останова
Для этого надо влезать в схему самого процессорного блока. :)

Re: AT29C256 и atmega. Или эмулятор ПЗУ на Atmeg-а

Добавлено: Пт окт 14, 2016 13:36:23
BOB51
А иначе "на лету" данные не обновить без возможного риска их ошибочного чтения основным (тестируемым) блоком.
:(

Re: AT29C256 и atmega. Или эмулятор ПЗУ на Atmeg-а

Добавлено: Вс окт 16, 2016 09:16:08
radteh
Просто что-бы показать что дело не столь просто покажу проект от одного хорошего разработчика, это эмулятор памяти 27C и 29C построенный на микросхемах энергозависимой памяти http://www.ej9.ru/art/sofrom-1v15-emulator/ Иначе скорости обмена не хватало.

Re: AT29C256 и atmega. Или эмулятор ПЗУ на Atmeg-а

Добавлено: Вс окт 16, 2016 16:16:17
BOB51
Принцип абсолютно одинаков - наличие микросхемы ОЗУ при каком-либо устройстве загрузки имитационного массива (из ПК и/или из базы данных накопителя в самом имитаторе).
Плюс, при необходимости, драйвера дополнительного барьера управления.
Отличие в оболочках управления и качестве изготовления печатной платки.
Ежли уж вести речь о логгере с вариацией начальной настройки, то и ПК может быть излишним - достаточно иметь хороший интерфейс пользователя (экран, клавиатура) на базе МК самого модуля имитации.
Возможные тонкости в быстродействии подавляются подбором соответствующей элементной базы (и уж никак не еепромками).
8)