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

VladimirYU

Свой
  • Постов

    426
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные VladimirYU


  1. Что бы это может быть ? У кого-то было подобное ? Уже загубил несколько контроллеров, заказал новых в надежде, что "партия бракованная попалась".

     

    Спасибо

     

    Была похожая ситуация, попались бракованные кварцы. По умолчанию МК работает от внутреннего RC генератора, как только перешивали фузы на работу с внешним кварцем происходил кирдык, так как кварц не запускался.

  2. В опциях проекта выходной формат стоит ubrof8. установка intel-extended не влияет.

    Повлияет, если есть инициализируемые переменные в ЕЕПРОМ, тогда на выходе будет два HEX файла. Прошивка для флэш и для ЕЕПРОМ.

     

    Например:

     

    int __eeprom val = 0x1234;

  3. Я предложила перейти на новую версию, главным образом, потому, что она "сертифицирована" на работу под Windows 7. И такой подход вполне разумен, когда переходишь на новую операционную систему.

     

    Вот, положим, вы лично написали прогу для какого-то МК. Готовы ли вы гарантировать, что она заработает на тех МК, которые выйдут спустя полтора года, с даташитами, которых вы никогда не видели?

    Нет, к сожалению, ничего вечного. С Ксенией полностью согласен

  4. Тактовая частота должна быть кратна скорости обмена по UART.

    Есть в ДШ табличка с ошибками.

    U2X = 0 и UBRR=0 должно ровняться скорости 1М

     

    А если включить перемычку TX + RX в USB to UART Bridge с поддержкой USB 2.0 то нормально работает?

    Приммер инициализации USART1 для м128 на 1МГц, работает без ошибок, кварц 16МГц

    //------------ Инициализация USART1 -----------------------
    
    void MonitorUART :: InitUSART1 (ULONG baudrate, char frame, char stopbits )
    {
      UCSR1B = (1<<RXEN1)|(1<<TXEN1);
      // Количество стоп битов
      if ( stopbits == 1) UCSR1C &= ~(1<<USBS1);  // 1 bit
      else UCSR1C |= (1<<USBS1);                  //2 bit
      
      //Устанавливаем фрэйм
      UCSR1B &= ~(1<<UCSZ12); 
      char tmp = 0;
      switch (frame)
      {
      case 5: tmp = ~(1<<UCSZ10); tmp &= ~(1<<UCSZ11);
              UCSR1C = tmp;
        break;
      case 6: tmp |= (1<<UCSZ10); tmp &= ~(1<<UCSZ11); 
              UCSR1C = tmp;
        break;
      case 7: tmp |= (1<<UCSZ11); tmp &= ~(1<<UCSZ10); 
              UCSR1C = tmp; 
        break;
      case 8: UCSR1C |= (1<<UCSZ10)|(1<<UCSZ11);
        break;
      default: UCSR1C |= (1<<UCSZ10)|(1<<UCSZ11);
        break;    
      }
      
      // Скорость обмена
      UINT ubrr = CPU_F_Hz/ ( 16UL*baudrate) -1; 
      UBRR1L = (char) ubrr; UBRR1H = ubrr>>8; 
      
      // Разрешаем прерывания
      RxcIntEnable ();
      TxcIntEnable ();  
    }

  5. только один файл?а все осталные?

    В папке firmware лежат исходные тексты проекта, состоящего из нескольких файлов на ассемблере, для Вашей тиньки и загружаемый файл ldp.hex. Прошивать следует именно его.

  6. another_one

    А почему нельзя сразу частоту таймера поделить на 1.66 при измерении?

    Значение таймера будет уже готовое для использования.

    Начнем с того, что тем способом, о котором Вы писали, Вы измеряете не частоту, а период.

    А относительно того, как действовать дальше Вам достаточно подробно ответили. Ибо других

    подробностей Вашей задачи нам неизвестно.

  7. Тогда получается "магическое" число 39480 (39480/65536=0,602417). Исходное 16-и разрядное число умножаем на 39480, а затем делаем сдвиг результата умножения вправо на 16 разрядов.

    Кстати тема "магических" чисел уже, кажется, звучала на сахаре. Может автору топика будет полезно там покопаться

  8. Дохлый номер. JTAGICE (клоном которого и является Olimex) не поддерживает ATmega644P. Отладчик IAR ругается, говорит не поддерживаемое устройство.

    В общем это и ожидалось, совет defunct единственный в Вашем случае выход.

  9. Olimex по незнанию :( JTAG выбирал чтобы была возможность отладки. При работе с IAR+ARM+JLINK всё прекрасно получалось. Захотелось и с AVR чего-то похожего, но поспешил. И, по незнанию, взял Olimex. Видимо, всё же куплю JTAGICE MkII, но это процесс долгий, пока закажу, пока пришлют. А начинать пробовать нужно уже сейчас.

     

    Локбиты читаются как 0xFF, т.е. не залочены. Да и вряд-ли чистая микросхема с завода будет залоченной. Пробовал другой чип, правда, из той же партии - ведет себя аналогично.

    Попробуйте из отладчика EWAVR IAR только врсия должна поддерживать м644.

  10. Кстати, да. Что по умолчанию во FLASH зашито? Из EEPROM читаются FF а из FLASH 00 (или это оно так не читается).

    Из флэш тоже должно из чистого кристалла 0xFF читаться. А почему на Olimex потянуло, отлаживать все равно не сможете? Любой AVR-программатор решит Ваши проблемы. Второе, не залочен ли случаем Ваш МК?

  11. Есть в наличии клон JTAGICE (Olimex AVR USB JTAG) и чип ATmega644P (20PU). То, что отлаживать не получится я уже понял :( Но у меня не получается и прошить.

    Сигнатура, фьюзы, локбиты читаются и пишутся. EEPROM читается и пишется. А вот FLASH не получается.

    Пытаюсь использовать AVRStudio 4.18 Build 692. Файл прожовывает, пишет что записало OK, но при верификации читает из FLASH нули, кторые там до этого и были.

     

    Что я упустил, куда копать?

     

    Странно, что нули, а не 0xFF. У меня а м64 проблем не было.

  12. имхо - проверить питание да ресет, ну если на линиях спи что еще висит, то и их ессно...

    Спасибо всем, проблема была в том что цепь питания 5В на STK200 была реализована через самовостанавливающийся предохранитель, который через определенное время подогревался у увеличивал сопроттивление. Этого хватало чтобы режим программирования сбивался. Закоротил его и все стало на место.

  13. Сталкивался кто-нибудь с таким эффектом. Имеется прибор на основе меги 128. Включаю питание пытаюсь зашить фузы и рабочую программу. Нескоько секунд мега откликается на программатор, а потом отькликаться перестает. Выключаю питание, вклаю снова то же самое. Программатор STK200 программа PONYPROG и Avreal эффект один и тот же. Прибор отлаженный, серийный.

  14. сори, просто я с украины и общаюсь на укр языке. А с чего именно видно что у меня такой акцент?

    Сейчас не видно :biggrin: а апноуты все же посмотрите, там был вариант лоадера под мегу 16, если память мне не изменяет.

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

    Включите фузы отвечающие за BOD или/и поставьте внешний супервизор.

  16. Дык а что мешает измерить это смещение при замкнутых входах и вычесть при нормальном измерении?

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

    Только это придется делать при каждом измерении, т.к. если я правильно понял смещение плавает.

  17. Помогите пожалуйста! С чего начать?Нужен синхронный преобразователь величины тока в ШИМ.

    А что Вы вкладываете в понятие синхронный, какой ток? Постоянный или переменный, какой диапазон величин. Слишком эмоционально, но конкретики не достаточно.

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