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

MPetrovich

Свой
  • Постов

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

  • Посещение

  • Победитель дней

    1

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


  1. Попробуйте найти в программе программатора только команду чтения ID.

    Это каким образом я вытащу из Impact команду чтения ID?

    По факту первая же команда при запуске JTAG это и есть чтение ID. Только после корректного прочтения продолжается выполнение других команд.

    Я осциллограмму привел больше для того, чтобы показать форму сигналов и то, что программатор их формирует. А вот ответа от м/сх кроме одиночного падения TDO в ноль нету.

  2. post-92691-1534943013_thumb.jpg

    Прикрепил фото сигналов JTAG на осциллографе. Сверху вниз: TCK; TDI; TDO; TMS

    Опробовал подключение различных сопротивлений последовательно с ТСК. Результат тот же - JTAG не видит м/сх.

    По осциллограмме видно, что ТСК вполне приличной формы с минимальными звонами. Да и остальные сигналы тоже.

     

    Как я понял Вы ID прочитать не можете.

    Да. И поскольку ID читается в начале каждой операции, то ни одной операции я не могу совершить через JTAG

    А что написано в bsdl-файле о максимальной частоте TCK?

    Честно сказать ни разу не пользовался данными из bsdl-файла. Да и ниже 750кГц я по любому не смогу опуститься.

    Как тут указывали, можно просто сделать небольшой переходник с согласующими резисторами.

    пробовал - пофиг...

    И еще. Как там с питанием. Может быть у древнего спартанца 5 вольт питание, а у бластера можно подавать только 3?

    Питание ядра 1,8 вольт, питание переферии 1,2...3,6 вольт. Я использую 3.3В

  3. в XAPP058 есть фраза:

    Есть))) Специально проверил. Только относится она по моему к случаю, представленному на рисунке чуть выше этой фразы. А изображена там схема прошивки цепочки ПЛИСов да еще с мультиплексором на пути ТСК. Возможно в этом случае "целостность цепи сигнала ТСК" будет действительно критичной.

    В моем случае я шью напрямую одну ПЛИС и вряд ли согласование по сопротивлению будут столь критичны.

    Безусловно, я опробую последовательное включение резистора по ТСК, благо это вовсе не сложно)))

    А есть ли еще какие-нибудь соображения у знатоков? Просто хотелось бы сразу опробовать разные варианты, могущие разрешить ситуацию.

  4. У Вас есть согласующий резистор на линии TCK? Если нет, то вполне возможно дело в нем. Можно попробовать его прилепить "на соплях" + снизить частоту JTAG.

    Резистора нет, но и никакого упоминания о нем ни разу не попадалось мне в документации. Не очень понимаю смысла в таком резисторе - по факту получится линия задержки: последовательный резистор и входная емкость контакта. Частота JTAG итак самая низкая из возможных - 750кГц

    может длинные провода JTAG до платы или по плате.

    А какая длина допустима по Вашему? Частота то уж итак низкая - 750кГц.

    Сигналы JTAG притянуты к питанию резисторами?

    Специально не притянуты, но (если мне не изменяет память) у этих выводов вроде бы должны быть внутренние подтяжки.

    а без клоков этот тип ПЛИС должен общаться по JTAG ?

    Это как? Там вроде бы наоборот нужно в настройках проекта сделать тактирование именно от ТСК при использовании JTAG.

  5. Контакты конфигурирования интерфейса программирования (M0 M1 M2) для JTAG?

    с PROGRAM и INIT всё хорошо?

    Да. Пробовал и 101 и 100. Да и вообще, если верить док-ции, то JTAG доступен всегда вне зависимости от состояния M0...M2. Просто когда включен именно режим JTAG, то остальные интерфейсы недоступны.

     

     

  6. Может действительно дело в "неконтакте" (JTAG контакты, земля/питание)?

    Сигналы от JTAG смотрел оссцилом на ногах оснастки. Все в наличии. Даже TDO дергается один раз к земле.

    Контактов земли и питания до фига и все они между собой звонятся(ну за исключением VCCIO конечно, там по банкам звонятся) и даже если есть неконтакт в одном соединении, то оно дублируется многократно.

    Только на одной микросхеме проявляется такой эффект?

    Нет на всех. Их у меня два десятка.

     

  7. Напишите хоть что он выдаёт когда не хочет шить? Так шанс на помощь сильно возрастёт.

    iMPACT:2130 - Boundary-scan chain test failed . Please check tdi->tdo connection between device:'1' ( 'xc2s300e') and the cable .

    A problem may exist in the hardware configuration.

    Check that the cable, scan chain, and power connections are intact,

    that the specified scan chain configuration matches the actual hardware, and

    that the power supply is adequate and delivering the correct voltage.

     

    Проверьте, что программатор имеет доступ к bsdl-файлу на данную микросхему.

    Попробуйте считать с микросхемы ID и убедитесь, что в файле ID соответствует тому, что считали из микросхемы.

    Программатор вообще не может произвести ни одной операции, поскольку не видит микросхемы ПЛИС

  8. Всем доброго времени суток. Не удается прошить XC2S300E по JTAG. Все время выскакивает ошибка - программатор Platform Cable USB2 не видит микросхему. Перерыл уже кучу доков - ничего не смог найти. Может кто поможет?

  9. Спасибо всем за поддержку и понимание. Я одолел, таки, этого зверя. Причем совершенно нелогичным (по-моему) способом. Я скачал силабовскую ИДЕ и там скомпилировал проект, сконфигурировав контроллер при помощи силабовского же конфигуратора. Да, да, все заработало именно после этих действий. Потом я уже перекомпилировал более расширенный вариант с использованием ШИМ - светодиод медленно загорается и медленно тухнет - тоже заработало сходу. Я просто припух от неожиданности. За пол дня я смог сделать то, над чем корпел 2 недели (с перерывами, правда) и даже больше. Я уже занялся сборкой проекта с управлением ШИМом по UART, но начальство сказало, что пора завязывать с этой темой, проверил работоспособность, подобрал инструменты разработки - всё, отдай игрушку другим поиграть.

    Ещё раз всем спасибо.

     

  10. Судя по всему, нет у него шнурка. Автор, если у вас нет отладчика, поищите сообщения Harbinger'а - не так давно он ссылочку давал на свой клон EC3 в этой ветке.

    Да, у меня нет шнурка. Вообще, всем вероятно покажется странным, но за те несколько лет, что я занимаюсь контроллерами, я не пользовался внутрисхемными отладчиками. Мне всегда было достаточно симуляторов в ИДЕ - если там работало, то и в железе всё, как правило, работало.

    Скомпилированный проект прицепляю.

    Большое спасибо. Если он заработает, то это наконец сдвинет меня с мертвой точки.

     

  11. Прикрепляю поправленный файл. startup.a51 из проекта исключить, start040.a51 подключить. Должно помочь. На эти грабли уже несколько раз наступал, при объёме XRAM где-то до килобайта оригинальный стартап успевает отработать до срабатывания сторожевого таймера, а выше - нет, и до main() просто дело не доходит.

    Попробовал прикрепить Ваш стартап. И снова ничего не изменилось. Я уже не знаю что и думать...

  12. Нужно сделать запись в соответствующий регистр. Тут либо в датащит надо смотреть (что всегда полезно), либо тем же конфигуратором выбрать режим формирования кода в ASM, затем настроить отключение WDT и посмотреть куда что пишется, этот кусок и использовать в startup.a51.

    Попробовал. Не помогло. Попробовал вообще выкинуть стартап - то же самое.

    У меня ко всем форумчанам просьба: может ли кто-нибудь пересобрать проект у себя на компе и выложить сюда получившийся .hеx-файл? Может у меня с Keil-ом то-то неладно? Я попробую залить Ваш .hеx в контроллер и будет понятно в чём причина.

  13. взглянул. В коде вот такой кусок есть:

     

    //-----------------------------------------------------------------------------
    // SYSCLK_CMOS_Init
    //-----------------------------------------------------------------------------
    // This routine initializes the system clock to the external oscillator in
    // CMOS clock mode. Assumes a CMOS clock generator is connected to XTAL1.
    //
    void SYSCLK_CMOS_Init (void)
    {
    char SFRPAGE_SAVE = SFRPAGE; // Save Current SFR page
    SFRPAGE = CONFIG_PAGE; // Set SFR Page
    OSCXCN = 0x20; // start external oscillator in CMOS clock mode.
    SFRPAGE = LEGACY_PAGE;
    RSTSRC = 0x04; // enable missing clock detector
    SFRPAGE = CONFIG_PAGE;
    CLKSEL = 0x01; // select external oscillator as SYSCLK source
    OSCICN = 0x00; // disable internal oscillator
    SFRPAGE = SFRPAGE_SAVE; // Restore SFR page
    }

     

    который плохо сочетается со сказанным вами ранее:

     

    Не пойму в чём несочетание? Ну описана процедура инициализации внешнего тактового генератора, но ведь эта процедура не вызывается в main(). Там вызывается SYSCLK_IntOsc_Init(); - инициализация ВНУТРЕННЕГО SYSCLK.

     

    Страница 166 датащита описывает процедуру сброса при вкл питания.

     

    Я пробовал и вариант подключения ноги MONEN к питаниюдля реализации режима Power-On Reset, и вариант внешнего ресета кнопкой с подтяжкой ноги RST к плюсу через 4,7к. Без разницы - ноль реакции.

     

    Настоятельно рекомендую скачать Configuration wizard для удобного конфигурирования МК, это лучше чем доверять исходникам, вырванным из разных мест.

    Судя по конфигуратору, кроссбар и порты настроены правильно. Но лучше если вы проверите.

    Уже скачал. Конфигуратор действительно удобный, но он мне не помог ничем. Код, выдаваемый им, соответствует тому, что я написал.

     

    Попробуйте отключить WDT в startup.a51. На обнуление 4 Кбайт XRAM требуется довольно много времени.

    Это необычный вариант. А куда вставить процедуру отключения в startup.a51? И потом, там ассемблер, а я им не владею :(

  14. Я же написал выше: вся процедура конфигурации позаимствована с сайтов Keil и SiLabs. Вряд ли там есть ошибки.

    Не вижу трудностей посмотреть всё в СИ-шном файле из прикрепленного архива с пректом. Не нужно даже иметь ИДЕ на компе, просто открыть файл blinc.c в блокноте и всё читается. Других сорсных файлов в проекте просто нет. Хедер тоже всего один. Не сочтите за труд, господа, взгляните.

  15. WDT отключен, внешний генератор не используется. Вся инициализация скопирована с примеров с сайтов Keil и SiLabs

    В архиве с проектом можно посмотреть СИ-шный файл - там несколько строк всего с комментариями.

    По косвенным признакам - потребление тока - можно предположить, что генератор всё же запускается. На не прошитой ток потребления меньше чем на прошитой м/сх. Кстати, сброс должен быть подтянут? Я пробовал и с подтяжкой и без - разницы нет, но интересно как правильно. По даташиту сброс осуществляется при подаче питания и вроде как можно не подтягивать ногу сброса.

  16. Всех приветствую.

    Собрал проектик на Keil uVision под контроллер SiLabs C8051F041. Проект компилируется, сообщений об ошибках нет, контроллер прошивается. Пробовал и отдельно залить программу на программаторе BeeProg+ и внутрисхемно через ISP - шьётся нормально, но при включении не работает. Программа простейшая - помигать светодиодом на ножке + выход Sys_Clk на ногу для проверки работы тактового генератора.

    Прошу помощи сведущих пользователей.

    В прикрепленном архиве проект.C8051F041.rar

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