Jump to content
Vas pit

Прошивка работает в Proteus, но не в реальной схеме

Recommended Posts

Есть вот такой код работы с TWI

#include <mega32.h>
#include <delay.h>
#include <stdio.h>
#include <stdint.h>
//#include <myeeprom.c>
#include <mytwi.c>

void main(void)
{
DDRA |= (1<<DDA0);
DDRB = 0xFF;

I2C_Init();
I2C_StartCondition();

if (TWSR == 0b00001000) PORTB.1 = 1; //если в TWSR 0х08, то установить

while (1)
      {
      PORTA.0 = ~PORTA.0; //просто мигаем лампочками
      PORTB.3 = ~PORTB.3; //просто мигаем лампочками 
      delay_ms(300);

      }


}



где:

void I2C_Init(void)
{
TWBR=0x20; //скорость передачи (при 8 мГц получается 100 кГц)
}

void I2C_StartCondition(void)
{
TWCR = (1<<TWINT)|(1<<TWSTA)|(1<<TWEN);
while(!(TWCR&(1<<TWINT)));//подождем пока установится TWIN
}

Суть проблемы: код отлично работает в протеусе, но не работает в схеме (использую отладочную плату EasyAvr v.7). Врятли проблема в отладочной плате. Все другие прошивки работают нормально и на отладочной и в протеусе. Первый раз столкнулся с такой проблемой. Подскажите пожалуйста в чем тут дело?

Share this post


Link to post
Share on other sites
2 часа назад, Vas pit сказал:

не работает в схеме

"Не работает" - программа не стартует, что ли?  :D

Опишите подробно, как "выглядит" это "не работает".  И возможно, пока будете описывать, сами сообразите, в чём дело.

Share this post


Link to post
Share on other sites
2 hours ago, Vas pit said:

в чем тут дело?

Кроме программы, есть еще настройки и условия работы МК: тактирование, сброс, питание... Для начала фьюзы проверьте.

Share this post


Link to post
Share on other sites

Руководство для разработчика приложений на базе STM32WB55

Представив двухъядерные беспроводные микроконтроллеры STM32WB для IoT-приложений, компания STMicroelectronics предлагает разработчикам экосистему, включающую в себя отладочные платы, примеры кода для микроконтроллера, готовое ПО всех уровней и большой массив документации.

Читать статью

Цитата

"Не работает" - программа не стартует, что ли?  

Опишите подробно, как "выглядит" это "не работает".  И возможно, пока будете описывать, сами сообразите, в чём дело.

Светодиоды не мигают, на PORTB.1 нет 5 вольт.

Цитата

Кроме программы, есть еще настройки и условия работы МК: тактирование, сброс, питание... Для начала фьюзы проверьте.

С фьюзами вроде все нормально. По крайней мере на этих же настройках все остальные прошики работают нормально.

 

Скрытый текст

1.png.d6d1bd8e97bf22eea3f6642346744140.png

 

 

Edited by Vas pit
Перенос картинки в скрытый текст

Share this post


Link to post
Share on other sites
                     

DC/DC-преобразователи: принципы работы и уникальные решения Maxim Integrated

Что нового можно сказать про DC/DC? Написаны десятки статей, а самостоятельное изготовление преобразователя мощностью от единиц Вт до нескольких кВт даже в домашних условиях не составляет большого труда. Тем не менее, когда речь идет о микро-, или даже нано-ваттах, проектировщик может столкнуться с рядом трудностей. Разработка устройства с батарейным питанием весьма малой мощности – одна из наиболее актуальных и интересных задач во время всепроникающего интернета вещей. А грамотная схемотехника системы питания не возможна без знания основ работы DC/DC преобразователей. Освежить базовые знания и узнать об особенностях проектирования узлов питания мобильного устройства с оптимальным энергопотреблением можно из следующей статьи

Подробнее

11 часов назад, snn_krs сказал:

Прерывания разрешить не забыли ?

Но у меня вроде нет прерываний. Да и в протеусе бы тогда прошивка не работала

Share this post


Link to post
Share on other sites

Извиняюсь, похоже вчера был пьян.

У вас скорее всего висит на ожидании флага

On 11/30/2019 at 10:18 AM, Vas pit said:

while(!(TWCR&(1<<TWINT)));

Закоментируйте оба вызова функций, затем по одной. Узнаете точнее на какой функции висит.

Share this post


Link to post
Share on other sites

Функцию вызывал один раз в "main". Действительно висит на "I2C_StartCondition". Но почему? "TWINT" же должен сброситься в "0".

Share this post


Link to post
Share on other sites
51 минуту назад, Vas pit сказал:

Но почему? "TWINT" же должен сброситься в "0".

Бит TWINT очищается программно

Share this post


Link to post
Share on other sites

В цикле ожидается установка флага TWINT. Устанавливается он аппаратно. Возможно на вашей плате выходы SDA или SCL используются для других целей. Посмотрите какие на них напряжения при запущенной программе.

Share this post


Link to post
Share on other sites

Всем спасибо за ответы! Разобрался в чем проблема. Работа с шиной I2C требует подтяжки на ножках SDA и SCL.

Share this post


Link to post
Share on other sites

нужно сразу искать свои ошибки, а не морочить людям головы на форуме.

Share this post


Link to post
Share on other sites

Не надо "умничать", уважаемый. Ошибку я обнаружил экспериментальным путем. А на форум люди приходят для того, чтобы не тратить время на непродуктивные и замедляющие прогресс эксперименты над тем, что уже давно изучено, а для того чтобы быстрее разобраться в чем ошибка при помощи более опытных коллег

Share this post


Link to post
Share on other sites

на форуме нет ясновидцев, чтобы через экран своего компьютера видеть твои ошибки.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Сообщения

    • Жадная она, мальков не жалеет. Детоубийца.
    • Совершенно верно. На это я и хотел обратить ваше внимание, чтобы вы подумали, чем дальше будете обрабатывать ваш "меандр" 100 МГц. Ну, это вы немного преувеличили... Из LVC and LV Low-voltage CMOS Logic Data Book:  typical propagation delays of 3.8 ns
    • Ты опять выплюнул таблетки, которые тебе санитар дал ? Президент Российские Федерации Владимир Путин во время визита в Израиль насмешил сеть новой выходкой. Так, российского лидера решили защитить пуленепробиваемым трапом, к которому подогнали лимузин. "Это же надо так бояться, даже если за безопасность отвечают израильские спецслужбы. Никто из глав государств в мире не пользуется подобным трапом"   Пользователи социальной сети бурно отреагировали на излишнюю осторожность Путина: "То, чтоб не догадались какая версия хла приехала", "Ну знает, что ему есть кого бояться и за что", "Вот это трус! Как не термос свой, так трап", "Очкует", "Дедушка в доспехах еле ходит", "Осталась только старая добрая табакерка", "Понты в России – это все", "А памперсы", "Пути-и-ин ссыкло-о-о! Уо-уо", "Значит, что-то знает и чувствует… хорошо, что боится", "Так, он и боится израильские спецслужбы", "Параноик номер один в мире. Скоро буде боятся собственной тени. Скорее б, может с перепугу конечности отбросит", "Тю, трап разве проблема? Да сбить нах Боинг при посадке или поцелить из РПГ в трап нельзя что-ли?", "К*онченное ссылко", "Надо новое поганяло *уйлу – очкун", "Сцыкло плешивое...Ему о белых тапках думать надо, а он все от кого-то прячется...", "Трусливый Пу…", "Очкует сонцеясный", "Все равно всю жизнь прятаться не будет. Жить в страхе, создал репутацию. Сгноить давно пора маразматика" и другие.
    • Из дискретной логики серия 74LVC* до 400MHz.
    • @Igor84 Так, но это уже паника для меня! Смотрите - закрытый переход похож на конденсатор, где роль диэлектрика выполняет запирающий слой. Так вот, его деградация будет зависть от энергии основных и не основных носителей зарядов. Обратите внимание - энергии, а не кол.во носителей. Дальше аналогию стройте сами. Очень похоже на пробой конденсатора завышенным напряжением (я сказал "Очень похоже", а не полное соответствие). По второй части - нет учёта падения напряжения на самом светике. А оно может быть от 1,5-3 вольт!  
    • Программируемый блок питатания flatpack2 2000w 48V Выходной ток 37,4А Выходное напряжение 53,5В При переделке возможна регулировка. Находится в г. Раменском, отправлю хоть куда. 4500р.
×
×
  • Create New...