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

Gryphus

Участник
  • Постов

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

  • Посещение

Репутация

0 Обычный

Информация о Gryphus

  • Звание
    Участник
    Участник
  • День рождения 30.09.1966

Контакты

  • Сайт
    Array
  1. В DIP-корпусе всего одно питание VCC. Наверное остальные две точки подачи питания уже разведены в корпусе?
  2. Лучше бы это сделать прямо на плате резистором на постоянной основе, а не только на время прошивки. Не забывайте, что при подаче питания на МК до программной установки портов все выходы находятся в выключенном состоянии и подключенные к ним входы других компонентов в это время просто висят в воздухе, а это не фэн-шуй. Разве что, в самом радиомодуле уже есть подтяжка. А может вы перепутали вход с выходом последовательных данных у радиомодуля? По приведённой вами схеме это понять нельзя, поскольку у радиомодуля отсутствует нумерация выводов, а по рисунку платы тоже понять ничего нельзя. Ещё такой момент: по даташиту модуль находится в состоянии POWER DOWN, если на соответствующем входе присутствует 1. Нужно подать 0 на RESET контроллера, тем самым отключив его выходы, и посмотреть напряжения на выводах SPI модуля при SDN=1 и при SDN=0. По идее, если при этом nSEL=1, то выход SDO модуля должен быть отключен, т.е. висеть в воздухе, но всякое может быть.
  3. По идее, сигнал выборки радиомодуля (цепь SS на схеме) должен иметь активное состояние в нуле (хотя, по вашей схеме это явно не видно), тогда, если на этом входе будет единица, то выход последовательных данных радиомодуля должен находиться в третьем (High-Z) состоянии и не должен ни на что влиять при прошивке. Говорите, он у вас подтянут к плюсу? Может, радиомодуль неисправен и и садит линии на землю? А последовательные резисторы в данном случае могут ухудшить фронты и привести к трудно обнаруживаемым ошибкам при передаче данных. Ещё вопрос: зачем у вас SS выведен на разъём программирования? Для прошивки МК он не нужен. МК может не отзываться по причине установки фьюза, который отвечает за тактирование кристалла, на внешний источник.
  4. Всё верно. Я перепутал с 24-ой серией, где эта цифра на порядок больше, но тоже мало на самом деле. Ещё есть вариант потавить отдельную ПЗУшку от Ramtron для хранения адреса. У них неограниченное число перезаписей
  5. Ну там ресурс же не 100000 стираний... :bb-offtopic: Сейчас хотел посмотреть у Атмела и обнаружил, что в их номенклатуре больше нет позиции DataFlash® Я что-то пропустил? Как дальше жить?! :crying:
  6. Вылетают ATMega 8

    2. Я в таких схемах делал опторазвязку на PC817 или подобных оптопарах. Тем более, насколько понимаю, быстродействия там не надо.
  7. Работа с Watchdog в IAR.

    Точно! У меня так и было. Мучился, пока не догадался посмотреть генерируемый код. Переписал функции для собаки на ассемблере и всё пашет согласно дэйташиту.
  8. ATmega164A - есть аппаратный TWI и 32 линии ввода-вывода. Легко увеличить память, поставив 324, 644 или 1284
  9. Согласен, такой подход выгоден для удалённых и/или недоступных устройств (марсоход :)) в таких случаях на доп. флэш-памяти нельзя экономить Ну, не совсем. Не нужно вскрывать корпус, пользователи, как правило, ничего не знают ни о каких программаторах. Максимум, что они могут - это запустить утилитку на компе, который и так всегда подсоединён к устройству. Если файл зашифрован, то сильно снижается вероятность кражи прошивки. Если прошивка не удалась, в моём варианте, означает, что либо слетел бутлодер, либо само железо, но тут уже "по телефону" ничем не помочь.
  10. Это где же столько оперативки взять, чтоб всю флэш туда вместить? Я, например, делаю так. hex-файл при помощи специально разработанной утилиты для PC компилируется в загрузочный файл с разбивкой на страницы с шифрованием (если требуется), туда добавляем информацию о принадлежности к устройству, CRC всей флэши и т.д. Затем, опять же при помощи спец утилиты, которая связывается с бутлодером контроллера и делает все необходимые проверки соответствия, содержимое флэши передаётся в контроллер постранично. Каждая страница идёт со своей собственной CRC16, проверяется бутлодером, им же расшифровывается и пишется во флэш. Другими словами, hex разбирается на большом компе, а пользователю отправляем только файл образа прошивки и маленькую утилитку.
  11. Если флэш-память контроллера больше 64К, то в hex-файле будут включены специальные записи адреса сегмента памяти. Под сегментом здесь понимается кусок памяти в 64КБ. Это сделано потому, что в стандартных записях хекса адрес только двухбайтный. А порядок следования записей хекса есть следствие работы линкера и вполне может быть так, что записи не всегда могут идти подряд. Поэтому, лучше следовать букве стандарта, если хотите, чтоб бутлодер понимал любые файлы, сгенерированные любым линковщиком
  12. И снова про CRC

    Только сейчас решил этот вопрос -J2,crc=8005,m,,,,#0xFFFF=(CODE)0-(_..X_FLASH_END-2) Обратите внимание на решёточку (#) перед начальным значением. Без неё считает не так В документации на линкер этот момент как-то завуалирован: долго пытался понять, но безуспешно
  13. А так не пробовали? __farflash char str[]="Hello, world!" указатель на строку должен иметь длину более двух байт
  14. USB-avr309-rs485

    Лучше сразу сделать на FT232R там и сигнал соответствующий есть и драйвер готовый и, главное, не требует софта и работает сразу. Даташит тут (см. с 28 по теме)
  15. Как обычно, никто не в состоянии здесь сказать что-либо по моей проблеме :( Поэтому всё приходится делать самому. Короче, поставил в tiny25 фуз, отвечающий за деление тактовой частоты на 8 и всё встало на свои места. теперь работают на 90 кГц мастера и часы и тинька. Однако, хотя формально проблема решена, осадочек остался. ПОчему USI при тактовой частоте кристалла 8МГц допускает какие-то выверты на шине (видно по осциллоскопу), а при 1МГц - нет ??? Кто-нибудь с таким сталкивался?
×
×
  • Создать...