Перейти к содержанию

Тайминги Pic16F1939 При Отладке Mplab X + Proteus


denkop

Рекомендуемые сообщения

Помогите разобраться с таймингами. В проекте протеуса кинул голый PIC16F1939, в настройках прописал 16Мгц частоту. В MPLABX простой проект:

#include "htc.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

__CONFIG(FOSC_INTOSC & WDTE_OFF & MCLRE_OFF & CLKOUTEN_OFF & FCMEN_OFF);
__CONFIG(PLLEN_OFF & STVREN_OFF);

#ifndef _XTAL_FREQ
#define _XTAL_FREQ 16000000
#endif
.....
int main(void) {
OSCCON|=0b01111000; // 16MHz
....
while(1)
{
NOP();
NOP();
......
}

Тайминги смотрю внизу в строке состояния протеуса.

Ставлю точку останова на первом nop(), смотрю в протеус:

Digital breakpoint at time 211us (250.00ns elapsed)

Нажимаю F8 (Step over), смотрю опять в протеус, вижу 212.5us в скобках все те же 250ns.

Как это понимать? Почему на выполнение nop() уходит 1.5us, вместо положенных 0.25us?

Спасибо!

Ссылка на комментарий
Поделиться на другие сайты

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

Выбираем схему BMS для корректной работы литий-железофосфатных (LiFePO4) аккумуляторов

 Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

2Alex:

в настройках прописал 16Мгц

Ой, не заметил :)

Это протеус тормозит. :)

Дык он же делает шаги. Протеус должен показывать правильные времена.

Или это - шутка юмора ? :)

Ссылка на комментарий
Поделиться на другие сайты

2Alex:

в настройках прописал 16Мгц

Это протеус тормозит. :)

Как так то :)? Я пошагово двигаюсь и не требую от него реалтайм симуляции и всё равно тормозит)?

Попробовал на 4мгц частоте, песня та же).. Пропорция во временных тормозах сохранилась. Мне всё таки кажется что где то руки кривоваты :) А где, не найду, все настройки перерыл ничего не вижу..

Ссылка на комментарий
Поделиться на другие сайты

Значит тщательно курим даташит, раздел осцилятора. Видимо, что-то не так настраиваете.

Судя по числам, частота в 6 раз ниже.

ЗЫ: Вы бы проект сюда весь выложили, вместе с проектом протеуса. Возможно, дело быстрее бы пошло.

Ссылка на комментарий
Поделиться на другие сайты

Кое что нарыл, в логах MPLAB VSMViewer:

....
Connecting
Connected
Error writing CONFIG_MEMORY
.....

Смотрю в MPLAB, Window -> PIC Memory -> Configuration bits

8007-CONFIG1-DFA4

Беру DFA4 несу в протеус, в настройках 16f1939 прописываю первое слово конфигурации DFA4, протеус ругается и говорит Value not in range (0 to 16383). Почему то он думает что конфиг слово неверное.

Вот такая непоняность...

Ещё интересный момент, когда запускаю дебаг не в мплаб а в протеусе (F12 и предварительно указав путь к .cof файлику), смотрю тайминги всё норм, один nop(); выполняется 0.25us как и ожидалось!

Но очень неудобно код править, когда надо носиться между окнами протеуса и мплаб, очень хочется дебаг в мплабе

В аттаче архив с проектом MPLAB X 1.85 и проектом для Proteus 7.9

tst_extime.X.zip

Ссылка на комментарий
Поделиться на другие сайты

А чем помочь то ? Протеус переделать под Вас ? Срать на него 3 кучи...

Заливайте прошивку в МК и всё должно работать. Если, конечно, Вы программу правильно пишите :)

Ссылка на комментарий
Поделиться на другие сайты

Здравствуйте все!

Поэксперементировал с таймингами на своих программах в PROTEUS. Если использовать pic16f676, PROTEUS реагирует на частоту, выставленную в свойствах модели (правда pic сконфигурирован на работу с кварцем). Ставлю 8мГц, nop выполняется за 0,5мкс, 4мГц - 1мкс.

На pic16f1823 (pic сконфигурирован на работу с внутренним генератором) PROTEUS не реагирует на частоту, выставленную в свойствах модели, а реагирует на частоту, заданную в конфигурации (регистр OSCCON).

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
  • Сообщения

    • Вот это фнч 2 порядок, его пересчитать на 150Гц и будет нормально
    • У вас питание всего и вся после стабилизатора, а у него есть защита по току и по температуре.
    • Вполне реально. В простейшем случае поставив на входы инвертор с парафазными выходами. Имея схему, можно даже попытаться "сколхозить" такую инверсию используя статную схему. Единственным "затыком" может оказаться то, что Ваш усилитель импульсный (D-класса), в котором выход каждого из каналов сам по себе мостовой. Но и тогда решение вполне возможно: генераторы обоих каналов (если они раздельные) синхронизируются и тогда выходы можно объединять. Но эта задача уже далеко за пределами Вашей компетенции.
    • Пока радости закончились .. МК зависает .. через енное время  нет реакци на кнопочки  
    • Только при активном охлаждении. С пассивом лучше распределять источники тепла равномерно по площади основания. При расположении как у вас температурный градиент в любом случае будет резким, но при обдуве кулером температура будет невысокой, и на резкий градиент можно подзабить... Например, на фото моя реализация охлаждения (усь правда другой (ЭА 2014) и расположение на радиаторах тоже, но это не важно). Туннель, актив, кулер 90 мм на минимальных оборотах, ни разу еще на повышенные не выходил, радиаторы чуть теплые даже летом (ТП ВК около 200 мА). Сейчас в планах немного (хотя почти полностью) перекроить защиту и управление питанием, платы готовы, только некоторые детальки дождаться осталось, и проверить на работоспособность. Если все будет норм, то напишу в соответствующей теме.  
    • @Ибрагим Николаевич Ну, то что нашлось: FirmwareV2-32-00.zip PICkit2_PCAppSource_V2_61.zip PICkit2_PK2CMD_WIN32_SourceV1-21_RC1.zip
    • Начнем с п.3. Потенциометры можно сажать на одну ось. Мне встречались и счетверенные. Тогда изменение из сопротивления будет сочетанным. Одну секцию можно использовать для индикации на дисплее. П.2 Либо учите язык, на котором написаны инструкции, либо отсканируйте их, преобразуйте в текст и переведите он-лайн переводчиком. Я так делал для ускорения перевода, хотя английским владею достаточно уверенно. П.1 исходит из двух выше рассмотренных. Если не устраивает "найденный" человек - ищите другого, более грамотного. 
×
×
  • Создать...