Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Непонятная природа генерации
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
Dopler
На рисунках представлены две осцилогармы.

Компилирую проект, запускаю через RDI и виглер в RAM. Проект примитивный, вот код функции Main:

Код
for (;;)
    {      
      unsigned int waiting_time;
      
      AT91C_BASE_PIOB->PIO_SODR    = 1 << 22;  
      for(waiting_time = 0; waiting_time < 2000; waiting_time++);
    
      AT91C_BASE_PIOB->PIO_CODR    = 1 << 22;  
      for(waiting_time = 0; waiting_time < 2000; waiting_time++);
    }


В результате вижу первую осцилограму.

Нажимаю в IAR кнопку остановить отладку, прямоугольные импульсы пропадают, а на прямой линии появляется синусоидальная генерация. Нажимаю кнопку начать отладку - и вижу вторую картинку, т.е. отчетливо видна генерация на полочках импульса. Генерация проподает только при хардварном ресете или передергивании питания. Думал, может быть у меня линии IO не объявлены выходами. Припаял резистор 2кОм с линии на землю, картинка не изменилась (это картинки с резистора).

Вопрос, что это такое?
Плата от олимекса, sam7X256.
Dopler
Короче, руки товарищам из олимекса поотбивать за такую разводку, хорошо хоть плата двухсторонняя.
Тоже самое сделать и с их программистами.

Такой вопрос, работоспособен ли данный код:

Код
  //Enable RESET
  m_pRSTC->RSTC_RCR = 0xA5000008;
  m_pRSTC->RSTC_RMR = 0xA5000001;


Мне кажется, что процессор будет находится в непрерывном сбросе, или нет?
nameless
Цитата(Dopler @ Feb 25 2007, 00:51) *
Короче, руки товарищам из олимекса поотбивать за такую разводку, хорошо хоть плата двухсторонняя.
Тоже самое сделать и с их программистами.

Такой вопрос, работоспособен ли данный код:

Код
  //Enable RESET
  m_pRSTC->RSTC_RCR = 0xA5000008;
  m_pRSTC->RSTC_RMR = 0xA5000001;


Мне кажется, что процессор будет находится в непрерывном сбросе, или нет?


Нет. Сам делаю сброс проца и периферии после перепрошивки флеши так:

AT91C_BASE_RSTC->RSTC_RMR = 0xA5000001; // Enable Reset by NRST
AT91C_BASE_RSTC->RSTC_RCR = 0xA500000D; // Reset CPU;PERIPHERAL;NRST

проходит безболезненно.
Dopler
Цитата(nameless @ Feb 25 2007, 15:00) *
Нет. Сам делаю сброс проца и периферии после перепрошивки флеши так:

AT91C_BASE_RSTC->RSTC_RMR = 0xA5000001; // Enable Reset by NRST
AT91C_BASE_RSTC->RSTC_RCR = 0xA500000D; // Reset CPU;PERIPHERAL;NRST

проходит безболезненно.


Я не совсем корректно написал. В примере Олимекс код такой:

Код
int main()
{


  //Enable RESET
  m_pRSTC->RSTC_RCR = 0xA5000008;
  m_pRSTC->RSTC_RMR = 0xA5000001;
  Delay(1000);
slog
Цитата(Dopler @ Feb 24 2007, 22:32) *
Вопрос, что это такое?
Плата от олимекса, sam7X256.


Пульсации с питания. Я бы еще на питании посмотрел. Вполне возможно что на земляном проводе наводится. Землю осциллографа надо правильно цеплять. В принципе не смертельно. Может конденсаторы по питанию помогут, у стабилизатора например.
Dopler
Цитата(slog @ Feb 25 2007, 23:09) *
Пульсации с питания. Я бы еще на питании посмотрел. Вполне возможно что на земляном проводе наводится. Землю осциллографа надо правильно цеплять. В принципе не смертельно. Может конденсаторы по питанию помогут, у стабилизатора например.


Эти пульсации странным образом связаны с линией сброса. Т.е. они появляются не после перезагрузки микросхемы (как я думал вначале), а после сброса (нажатия на кнопку сброса на плате). Наводки действительно идут по земле, причем питание чистое (сразу после стабилизатора) а в районе арма уже творится указанное шоу. Я линию сброса всю поизрезал вдоль и поперек, наводки пропали при отрезании ее от микросхемы PHY. Я сильно плотно разбираться не стал, но судя по всему плохая разводка платы, местами земляной полигон тонюсенькими ниточками соединен. Просто интересно, у кого такая же плата, данные генерации наблюдаются?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.