Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Помощь проекту


 
Опции темы

Протеус и система зажигания после симуляции не сохраняет настройки

Непрочитано 06.01.2012, 00:41  
cfif11
Прохожий
 
Регистрация: 27.12.2011
Сообщений: 9
Сказал спасибо: 3
Сказали Спасибо 6 раз(а) в 6 сообщении(ях)
cfif11 на пути к лучшему
По умолчанию Re: Протеус и система зажигания после симуляции не сохраняет настройки

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

Сообщение от Bumbarra Посмотреть сообщение
Так же, не забудь прочитать тут на форуме особенности работы с контроллерами в протеусе, дабы не путаться, что такое прошивка, исходники и обвес контроллера.
Пока была только одна проблемма не компилировался файл исходника который дизасемблировали Вы, уже собирался писать но решил сам. Я стараюсь сам все делать, но база знаний не идеальная у меня, поэтом когда захожу в тупик, обращаюсь за помощью к людям.

Сообщение от Bumbarra Посмотреть сообщение
Этот непонятный "манагер", если я правильно понимаю, вписывает в текст прошивки свой блок в виде некоей таблицы данных? Так?
Очень похоже на правду, если эти таблицы не возможно править на ходу. Я в железе еще не пробовал, в Протеусе блок данных из EEPROM не меняется после записи графиков, я это сразу попробовал исключить на сколько мне позволяют это сделать мои знания. Сборисов ездит на девайсе, я спрошу у него.

Сообщение от Bumbarra Посмотреть сообщение
Есть специальная строчка в свойствах для подключения двоичного файла с данными EEPROM.
С этим разобрался. Подлючать нечего.

Сообщение от Bumbarra Посмотреть сообщение
По-хорошему, енти данные вписывать бы в EEPROM, если предполагается быстрая перенастройка.
--- Ааа, походу, так и должно быть - прием через последовательный интерфейс и запись в EEPROM некоей таблицы и из программы она вызывается и читается. А вот память программ перезаписываться не должна ни в коем случае.
Полностью согласен, по идее работы контроллера. Всего четыре таблицы, по предворительным подсчетам объема EEPROM должно хватить. Почему такая реализация непонятно мне, возможно я ошибся в расчетах объема EEPROM.
Реклама:

Последний раз редактировалось cfif11; 06.01.2012 в 02:01.
cfif11 вне форума  
Непрочитано 07.01.2012, 13:55  
Bumbarra
Вид на жительство
 
Регистрация: 16.09.2011
Сообщений: 342
Сказал спасибо: 10
Сказали Спасибо 170 раз(а) в 103 сообщении(ях)
Bumbarra на пути к лучшему
По умолчанию Re: Протеус и система зажигания после симуляции не сохраняет настройки

В принципе, эта схема симулируется нормально - если посмотреть на график VSM Oscilloscope и покрутить частоту в генераторе "датчика холла", то можно увидеть изменения на графике - фронты импульсов сдвигаются относительно друг друга, меняется скважность.

Я, конечно, подробно то не копался в исходнике - многа букав. Но. В твоей схеме ошибка - порт RC7/RX контроллера не подключен к контакту RDX COM-порта, а ведь RC7 настроен на вход - регистр TRISC='10000000'. Поэтому нет приема информации с COM-порта. Это ж приемник USART.

В окне PIC CPU EEPROM Memory первые 5 и посление 2 регистра изменены (по умолчанию содержится FF), это и есть настройки. Чето только мало их.
В тексте дизассемблированного исходника нигде не встречается обращение к регистрам EEDATA и EEADR - именно через эти регистры идет чтение-запись EEPROM. Есть только в комментах предупреждение дизассемблера о проблемах при выборе банков. И в строчке постоянно указываются регистры PIR1 и PIE1 - регистры флагов и разрешений прерываний от перефирийных модулей. А они находятся в одинаковом месте, только в соседних банках. Вот это именно та фишка, что разрядность адреса памяти данных равна 7 бит, а два старших бита адреса - это биты выборы банка, задаваемые через специальныйй регистр STATUS.

ХА! Ошибка дизассемблера при декодировании гекс-файла! При переходах по строкам программы дизассемблер не учел биты RP0 и RP1.
В режиме пошаговой анимации можно уловить момент первого изменения содержимого регистров EEADR и EEDATA (адресa 10Dh и 10Ch). В строчке программы 11E0 (это адрес регистра памяти программ) - инициализуется первое чтение EEPROM!!! - инструкция "bsf EECON1, RD" в окне PIC CPU Registers, а в исходном коде значится операция с регистром PIR1. на скрение 1.jpg как раз указано.
С адреса 0х08 EEPROM (число в регистре EEADR) читается значение FF, затем оно передается в регистр 0х134 (строчка программы 11E5) - скрин 2.jpg.
Далее (11E7) - инкремент на 1 регистра EEADR (incf EEADR,F), читается следующий регистр EEPROM с адресом 0х09 и содержимое (опять FF) передается в регистр данных 0x135. Через некоторое время опять происходит чтение EEPROM.
movf EEDATA, W - это чтение в аккумулятор из регистра EEDATA. В дизассемблированном тексте стоит регистр PIR1.

Но читаются, в основном, "пустые" данные - значение FF - это по умолчанию.
Скорее всего, данные в EEPROM просто были некорректно записаны. (я уже писал про неподключенный порт RC7 приемо-передатчика).

Вобщем, это нужно "построчно" разгребать всю эту фигню, ибо дизассемблер много ерунды понаписал. Перепроверить все предупреждения о выборе банков - от этого меняется суть регистров. Я не смотрел дальше, куда там переправляются прочитанные данные из EEPROM-а и как они вообще в него попадают.

Логично, что порт RC7 работает как приемник USART (универсальный последовательный синхронный/асинхронный приемник-передатчик) Причем, асинхронный, поскольку по регистр TXSTA ( 0х98 ) содержит число 24h, то есть бит SYNC = 0.
Скорость порта 9600 бит/с - значение регистра скорости SPRG (0x99) = 103 при установленном бите BRGH - high speed.
Прием разрешен, переполнения буфера нет - регистр RCSTA ( 0x18 ) = 90h, биты разрешения установлены.
Поэтому в протеусе скорость COM порта тоже выставляем в 9600 бит/с - иначе менеджер не подключается.

И если какие-то проблемы с записью EEPROM-а, вначале проверяем блок USART-а, правильно ли он работает.
Хотя, прочитать данные из контроллера получается! Но график УОЗ совершенно не похож на то, что должно быть. Смотрим картинку 3.jpg

Идем дальше. Пробуем записать теперь график. О чудо - пишется! Данные в EEPROM изменяются аж до адреса 0x23 и последних два адреса тоже. Так что, все пучком. И он-лайн графики вычерчиваются. Смотри скрин 4.jpg

Вот теперь, учитывая твою первоначальную схему, можно точно сказать, что проблема с записью была именно в отсутствии связи приемника USART с COM-портом.

Правда, я не знаю, чего там за ошибки в самом менеджере - это для спецов по двигателям. Возможно, просто изначально неправильные параметры в менеджере.
При считывании параметров PIC-а из менеджера правильно считываются записанные в него параметры, а вот при считывании записанного графика УОЗ - ерунда получается.
Я еще без понятия, что такое ДАД (? датчик детонации? или че?) и какой там должен быть сигнал.

Цитата:
по предворительным подсчетам объема EEPROM должно хватить. Почему такая реализация непонятно мне, возможно я ошибся в расчетах объема EEPROM.
Данный контроллер PIC16F876A имеет 256 байт EEPROM - а это максимально возможный объем в контроллерах данной серии. Связано это с разрядностью адресации EEPROM - только 8 бит, поскольку адресация идет косвенная, через регистры данных.

Вообще, если уж и интересоваться работой EEPROM, то реализация этого в контроллера такая:
регистры EEPROM не имеют отображения в адресное пространство данных. По-простому говоря, у них нет собственных адресов. Поэтому запись и чтение EEPROM выполняется через регистры специального назначения, реализованные физически в памяти данных. Это регистры EEADR и EEDATA. Адреса в памяти данных - 10Dh и 10Ch соответственно. (буква h говорит о том, что число записано в 16-ричной системе, если ты еще не в курсе. Так же может встретиться запись 0x10D - это одно и то же)

Через регистр EEADR (адрес 10Dh) выбирается адрес регистра EEPROM, с которым будем производить операции чтения или записи. То есть, например, двоичное число 00000011 в регистре EEDATA будет указывать на внутренний адрес 03h в блоке регистров EEPROM. В окне PIC CPU EEPROM Memory можно увидеть содержимое всех регистров EEPROM.

Регистр EEDATA (адрес 10Ch) будет содержать данные, подлежащие записи в регистр EEPROM, либо прочитанные из регистра EEPROM. Сами операции чтения или записи будут совершаться посредством специальной команды инициализации. Попросту говоря, есть еще один управляющий регистр специального назначения EECON1 (адрес 18Ch). Установка "1" в битах RD и RW будет запускать операцию чтения или записи соответственно.

То есть, операция чтения EEPROM будет состоять из нескольких шагов - записываем в EEADR число, соответствующее нужному нам адресу регистра EEPROM, затем устанавливаем в "1" бит RD в регистре EECON1 и после читаем регистр EEDATA. При обращении к регистру EECON1 не забываем, что он находится в четвертом банке, а EEADR и EEDATA - в третьем, следовательно, необходимо своевременно устанавливать и сбрасывать биты RP0 и RP1 в регистре STATUS.

Запись в EEPROM выполняется почти так же - в EEADR заносится адрес регистра EEPROM, в EEDATA - то, что нужно записать. А вот дальше есть ряд обязательных команд - сначала разрешить вообще запись в EEPROM (если она ранее не была разрешена) установкой бита WREN в регистре EECON1, затем проделать последовательно операции записи чисел 55h и AAh в регистр EECON2 - это не физический регистр (не имеет адреса), но используется для программной защиты от случайной перезаписи EEPROM. Типа как "вы точно уверены, что хотите удалить папку Windows?" - "Да!" - "А почему?" - "Покачану!"
Так же, желательно глобально запрещать прерывания (если они используются в проге) перед началом операци записи.

Вооот, все это должно присутствовать в программе, если ведется работа с EEPROM.
И как видно, размера EEPROM этого контроллера хватает с лихвой.

Последний раз редактировалось Bumbarra; 07.01.2012 в 14:54.
Bumbarra вне форума  
Непрочитано 07.01.2012, 14:02  
Bumbarra
Вид на жительство
 
Регистрация: 16.09.2011
Сообщений: 342
Сказал спасибо: 10
Сказали Спасибо 170 раз(а) в 103 сообщении(ях)
Bumbarra на пути к лучшему
По умолчанию Re: Протеус и система зажигания после симуляции не сохраняет настройки

Вот блин, а че картинки то не прикрепились то? Или тут ограничения по размерам в пикселях шлоль?
Еще раз:
Миниатюры:
Нажмите на изображение для увеличения
Название: 1b.jpg
Просмотров: 121
Размер:	161.0 Кб
ID:	30143   Нажмите на изображение для увеличения
Название: 2b.jpg
Просмотров: 157
Размер:	156.2 Кб
ID:	30145   Нажмите на изображение для увеличения
Название: 3b.jpg
Просмотров: 136
Размер:	95.9 Кб
ID:	30146  

Нажмите на изображение для увеличения
Название: 4.jpg
Просмотров: 150
Размер:	200.1 Кб
ID:	30147  

Последний раз редактировалось Bumbarra; 07.01.2012 в 14:09.
Bumbarra вне форума  
Сказали "Спасибо" Bumbarra
cfif11 (03.02.2012)
Непрочитано 01.02.2012, 01:33  
Сборисов
Прописка
 
Регистрация: 21.11.2010
Адрес: Донецк
Сообщений: 236
Сказал спасибо: 37
Сказали Спасибо 40 раз(а) в 28 сообщении(ях)
Сборисов на пути к лучшему
По умолчанию Re: Протеус и система зажигания после симуляции не сохраняет настройки

И таблицы и параметры править на ходу можно, и записать их тоже можно.
Процедуру описываю по тому что у меня эта модель стоит на авто: когда, ДВС работает можно нажать кнопку например "считать параметры с блока", чуть ниже кнопки есть бегущая линия загрузки, линия пробежала параметры занеслись в менеджер, поменял параметры, нажал кнопку "записать параметры", линейка пробежала параметры изменились, точно так же и с кривыми.
Попробуйте вот это: кривые и настройки.
Вложения:
Тип файла: rar t5.rar (402 байт, 83 просмотров)
Сборисов вне форума  
Непрочитано 01.02.2012, 17:32  
valeriy-lukinov
Прописка
 
Регистрация: 08.04.2007
Сообщений: 204
Сказал спасибо: 25
Сказали Спасибо 42 раз(а) в 31 сообщении(ях)
valeriy-lukinov на пути к лучшему
По умолчанию Re: Протеус и система зажигания после симуляции не сохраняет настройки

Можно ссылку на сайт где обсуждают это зажигание.
valeriy-lukinov вне форума  
Непрочитано 01.02.2012, 23:28  
paratruper
Прохожий
 
Регистрация: 09.07.2004
Сообщений: 3
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
paratruper на пути к лучшему
По умолчанию Re: Протеус и система зажигания после симуляции не сохраняет настройки.

Сообщение от cfif11 Посмотреть сообщение
Исправляю ошибку. Менеджер это программа для ПК, с помощью которой настраиваестя система зажигания (контроллер), опции, настройки и графики УОЗ, через COM порт.
Уберите менеджер из аттача,и неплохо было бы привести ссылку на первоисточники, где все что вы приаттачили есть.
paratruper вне форума  
Непрочитано 02.02.2012, 01:33  
hydrogen
Прохожий
 
Регистрация: 13.06.2008
Сообщений: 1
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
hydrogen на пути к лучшему
По умолчанию Re: Протеус и система зажигания после симуляции не сохраняет настройки

Закрыли б эту тему, данная прошивка и менеджер это прошлое из проекта Майя, в прошлом это был проет МПСЗ-фри, после тестирования проект был реализован в виде коммерческого. А то, что приаттачено это пробная прошивка, причем неполная и далеко не финальная - там еще работать и работать. Мой совет - купите готовое устройство и не парьтесь.....

Последний раз редактировалось hydrogen; 02.02.2012 в 01:36.
hydrogen вне форума  
Непрочитано 02.02.2012, 06:32  
valeriy-lukinov
Прописка
 
Регистрация: 08.04.2007
Сообщений: 204
Сказал спасибо: 25
Сказали Спасибо 42 раз(а) в 31 сообщении(ях)
valeriy-lukinov на пути к лучшему
По умолчанию Re: Протеус и система зажигания после симуляции не сохраняет настройки

Если даже проект и коммерческий неплохо дать ссылку может кто и приобретет. Вроде нашел http://mpsz.ru/forum/index.php

Последний раз редактировалось valeriy-lukinov; 02.02.2012 в 07:57.
valeriy-lukinov вне форума  
Непрочитано 02.02.2012, 09:21  
Bumbarra
Вид на жительство
 
Регистрация: 16.09.2011
Сообщений: 342
Сказал спасибо: 10
Сказали Спасибо 170 раз(а) в 103 сообщении(ях)
Bumbarra на пути к лучшему
По умолчанию Re: Протеус и система зажигания после симуляции не сохраняет настройки

... Микропроцессорная система зажигания на карбюраторном двигателе. Ога. Наверняка еще и контроллер с коммерческим, а не хотябы с промышленным температурным диапазоном.

МПСЗ - игрушка для взрослых мальчиков. (Отчет) Первая попавшаяся тема на том форуме - и сразу вот.

Сообщение от hydrogen Посмотреть сообщение
А то, что приаттачено это пробная прошивка, причем неполная и далеко не финальная - там еще работать и работать
Аха, то-то я смотрю, что лажа полная. В смысле "кривых двигателя". Либо менеджер косячно генерит последовательный код, либо кривой текст прошивки контроллера - не может правильно принять код и записать в EEPROM.
Bumbarra вне форума  
Непрочитано 02.02.2012, 20:39  
paratruper
Прохожий
 
Регистрация: 09.07.2004
Сообщений: 3
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
paratruper на пути к лучшему
По умолчанию Re: Протеус и система зажигания после симуляции не сохраняет настройки

Сообщение от Bumbarra Посмотреть сообщение
Аха, то-то я смотрю, что лажа полная. В смысле "кривых двигателя". Либо менеджер косячно генерит последовательный код, либо кривой текст прошивки контроллера - не может правильно принять код и записать в EEPROM.
Менеджер генерит все правильно, контроллер тоже принимает и записывает все верно, попробуете в железо прошить, и залить данные.
Данный проект свободный для личного некоммерческого использования, все материалы есть на нашем сайте, если интересно можете ознакомиться .

Сообщение от valeriy-lukinov Посмотреть сообщение
Если даже проект и коммерческий неплохо дать ссылку может кто и приобретет. Вроде нашел http://mpsz.ru/forum/index.php
Неправильно вы нашли, то что было выложено топикстартером, к вашей ссылке не имеет никакого отношения. Если интересует поищите "MaYa-auto".

Последний раз редактировалось paratruper; 02.02.2012 в 20:43.
paratruper вне форума  
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Proteus не сохраняет изменённый EEPROM Developer_ Proteus 28 22.06.2021 17:41
Проблема симуляции схемы в Протеусе Dtolok Proteus 5 22.01.2013 21:48
Запрет\Разрешение симуляции? woroba Proteus 3 20.09.2011 06:56
Программа симуляции датчиков Холла KirikLebedev Микроконтроллеры, АЦП, память и т.д 1 25.08.2011 11:16
AVRStudio скорость симуляции 7Fantomas7 Микроконтроллеры, АЦП, память и т.д 9 29.01.2011 19:14


Часовой пояс GMT +4, время: 20:27.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.