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

ATmega48 глючит

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

Поделиться сообщением


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

чаще всего всё же виновата программа, например позабытый в таблице векторов прерываний rjmp с последующим включением этого прерывания.

иногда ещё неотключенный вотчдог.

иногда несоблюдение режима работы камня, типа заставляют работать на 20 МГц при питании 3.3В.

иногда паразитное питание от другой части схемы (питание с которой Вы не отключаете).

короче говоря - включайте фантазию, не забывая про даташит :)

Поделиться сообщением


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

Контроллеры и схемы вообще никогда не глючат . Глючат программисты, а разработчики ошибаются.

Поделиться сообщением


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

Бывает, что и микросхемы глючат. Помню, был у меня экземпляр PIC16F84, у которого сползала одна ячейка программной памяти. Чип был свежий, не замученный программатором. Я увидел это, удивился, переписал - через неделю та же картина... На других экземплярах устройств с чипами той же партии - никаких проблем...

Поделиться сообщением


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

Глючный чип - это странно... Вот у меня ATmega48 получила 12 вольт питания однажды. Ну ничего, пережила, это устройство до сих пор на ходу, года 4 уже 24/7 работает...

Поделиться сообщением


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

да поторопился не в чипе дело.

 

Ну, так и скажите же в чем, не интригуйте нас. :)

 

Поделиться сообщением


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

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

Поделиться сообщением


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

Мораль истории такова инициализируйте все используемые регистры

А должны ли после сброса все РОН инициализироваться нулями?

DS что говорит?

Поделиться сообщением


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

А должны ли после сброса все РОН инициализироваться нулями?

DS что говорит?

Разумеется нет. И вообще, как вы себе эту иницализацию представляете с точки зрения аппаратуры?

Поделиться сообщением


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

Разумеется нет. И вообще, как вы себе эту иницализацию представляете с точки зрения аппаратуры?

Не имею ни малейшего представления.

Но ведь РВВ как то инициализируют, и не всегда нулями.

Почему бы и РОН не проинитить?

Поделиться сообщением


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

Не имею ни малейшего представления.

Но ведь РВВ как то инициализируют, и не всегда нулями.

Почему бы и РОН не проинитить?

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

Поделиться сообщением


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

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

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

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

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

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

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

×
×
  • Создать...