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

Schtirlitz

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

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

  • Посещение

Репутация

0 Обычный

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

  • Звание
    Участник
    Участник

Контакты

  • Сайт
    Array

Информация

  • Город
    Array

Посетители профиля

876 просмотров профиля
  • AlexG

  1. У меня порт дергается с частотой 4 мГц при 16 тактирования. Похоже всётаки с настройкой GCLK что-то не так. Проц для меня новый, буду дальше разбираться..
  2. Стало в 2 раза быстрее щелкать.. теперь на 2 такта 1 смена уровня порта. В документации где-то увидел "single cycle GPIO access", вот и решил проверить)
  3. в асме все нормально, одна С команда- одна инструкция: 0x23a: 0x61ac STR R4, [R5, #0x18] 0x23c: 0x61ac STR R4, [R5, #0x18] 0x23e: 0x61ac STR R4, [R5, #0x18] 0x240: 0x61ac STR R4, [R5, #0x18] 0x242: 0x61ac STR R4, [R5, #0x18] 0x244: 0x61ac STR R4, [R5, #0x18] 0x246: 0x61ac STR R4, [R5, #0x18] 0x248: 0x61ac STR R4, [R5, #0x18] 0x24a: 0x61ac STR R4, [R5, #0x18] 0x24c: 0x61ac STR R4, [R5, #0x18] 0x24e: 0xe7f4 B.N 0x23a по шагам щелкал - никаких вылетов из цикла в какие-либо прерывания нету. такое ощущение, что где-то такт делится на 4, но где- понять не могу.
  4. впервые запускаю плату на этом чудесном проце. Тактирование от внешнего генератора 16мГц. инициализация тактирования такая: SYSCTRL->XOSC.reg=SYSCTRL_XOSC_STARTUP(0x04) | SYSCTRL_XOSC_ENABLE | SYSCTRL_XOSC_GAIN(0x4) | SYSCTRL_XOSC_AMPGC | SYSCTRL_XOSC_RUNSTDBY; //XCLK ON while (!(SYSCTRL->PCLKSR.reg & SYSCTRL_PCLKSR_XOSCRDY)){}; GCLK->CTRL.reg = GCLK_CTRL_SWRST ; while ( (GCLK->CTRL.reg & GCLK_CTRL_SWRST) && (GCLK->STATUS.reg & GCLK_STATUS_SYNCBUSY) ); /* Wait for reset to complete */ // wait states = 0 NVMCTRL->CTRLB.reg= NVMCTRL_CTRLB_CACHEDIS; GCLK->GENCTRL.reg = GCLK_GENCTRL_ID_GCLK0 | GCLK_GENCTRL_SRC_XOSC | GCLK_GENCTRL_GENEN; //SWITCH XCLK TO GCLK0 GCLK->GENCTRL.reg = GCLK_GENCTRL_ID_GCLK1 | GCLK_GENCTRL_SRC_XOSC | GCLK_GENCTRL_GENEN | GCLK_GENCTRL_OE; //EXT_ADC_CLK GCLK->GENDIV.reg = GCLK_GENDIV_ID_GCLK0 | GCLK_GENDIV_DIV(1);//DIV=1 GCLK->GENDIV.reg = GCLK_GENDIV_ID_GCLK1 | GCLK_GENDIV_DIV(2);//DIV=2 (EXT_ADC) PM->CPUSEL.reg = 0;//DIV=1 PM->APBASEL.reg = 0 ; PM->APBBSEL.reg = 0 ; PM->APBCSEL.reg = 0 ; далее в цикле делаю такую хрень: CYCLE: PORTA.OUTTGL.reg = LED_RED; PORTA.OUTTGL.reg = LED_RED; PORTA.OUTTGL.reg = LED_RED; PORTA.OUTTGL.reg = LED_RED; PORTA.OUTTGL.reg = LED_RED; PORTA.OUTTGL.reg = LED_RED; PORTA.OUTTGL.reg = LED_RED; PORTA.OUTTGL.reg = LED_RED; PORTA.OUTTGL.reg = LED_RED; PORTA.OUTTGL.reg = LED_RED; goto CYCLE; смотрю на такт и на порт LED_RED и вижу, что порт дергается синхронно с тактом и ровно в 4 раза медленнее, хотя по инструкции по идее должен дрыгаться за 1 такт. При этом внешние такты на АЦП и на SPI выдаются такие как я и задал. Что я делаю не так?
  5. Требуется монтажник (не посредник, а реальный исполнитель) на выполнение разовых заказов по монтажу печатных плат. Опытные образцы (1-2) и мелкие серии (20-30плат). Для серий готовы предоставлять трафарет. Компоненты применяются в основном SMD (0603) Москва и ближайшее Подмосковье. Ваши предложения на zalex3d со6aka rambler . ru
  6. Там весь код по начальной инициализации был спёрт из атмеловского эвалюшена с минимальными доработками. И работает как часы. Проблема решена, спасибо aaarrr за подсказку. на входе клока был слишком высокий уровень. уровень понизили и все заработало как и должно. Похоже в более новые процы атмеловцы что-то добавили и они с таким уровнем работают нормально, а старые отказываются. Это и ввело нас в заблуждение.
  7. Настройка PLL думаю тут непричем, тк этот код на множестве плат проверен и работает нормально, а вот с уровенем могут быть проблемы. Генератор FXO- AH вроде 3,3В выдает через резистор на вход. Сколько на самом входе не запомнил. Завтра посмотрю. Спасибо за наводку. Правда непонятно как тогда оно на других платах с такими генераторами работает?? И на всех прежних платах у заказчика:-)))
  8. Есть некие уточнения: IARом все таки проц хоть медленно, но программируется и даже стартует, но в 4 раза медленнее чем должен. Рабочая частота внутри множится на встроенном PLL, на вход такт подается с внешнего генератора (такт нормальный). Соответственно подозрение на него. В рабочих платах на выводе PLL_RC стоит около 0,5В даже в стертом проце, в нерабочих - 0В как в стертом, так и в прошитом и запущенном. Удвоенная частота для тактирования внеших чипов на вывод PCK не выводится, а на рабочих платах выводится сразу-же(в стартапе все конфигурации). Платы абсолютно одинаковы и собраны правильно. Все процы от 2011 года выпуска работают нормально, все процы 2010 года выпуска работают как описано выше. Что это? Брак? Или мы что-то не так делаем?
  9. Ситуация такая: собрали нам 10 плат с AT91SAM7x128 на борту. Платы уже отработанные, собираем не в первый раз. Ровно половина прошилась без проблем и запустилась, вторая половина категорически отказывается программироваться. Из тулзов у нас JFlash и IAR, программатор Атмеловский Segger SAM-ICE. Версии самые последние или почти самые:-) Происходит все следующим образом: JFlash c процом коннектится, сигнатуру читает, но при попытке прошить пишет - Can't halt Target Читает и стирает без ошибок. В IAR вроде как даже загружается все через отладчик в проц, без ошибок, но в 3 раза дольше чем обычно и программа не выполняется. При пристальном рассмотрении выяснилось что первая половина процов из партии 2011 года, а вторая из партии 2010года. Покупали в Терре.. Кто нибудь сталкивался с таким? Куда копать?
  10. На SDFE4 работает, а на EFM не работает PAM128. прошивка IDC: 1.5.0, DFE: 158_002
  11. У нас есть готовое решение на EFM чипе, скорость до 11384кБит по каждому линку (больше к сожалениею EFM с нынешней прошивкой не позволяет) Поддерживается агрегация линков с пропорциональным увеличением общей скорости. Поддерживается до 8 регенераторов для увеличения дальности. Если интересно- пишите в личку
  12. Если вы ставите задачу - передрать серийно выпускаемое устройство, и "разработать" документацию для производства здесь, то с этим справится студент. Если же вы хотите разработать аналог с лучшими параметрами, или меньшей себестоимостью (иной причины вложения в разработку я не вижу) то придется основательно раскошелится, поскольку работа грамотного СВЧ инженера стоит ой как дорого.
  13. Какие чипы на STU-C и STU-R концах? Если SDFE, то все действительно работает по диаграмме. Если EFM (SOC4E) то репитер не работает, причем на самом начальном этапе диаграммы начанает вязаться без перехода в IDLE (кто виноват-непонятно пока). Пока что решение проблемы- репитер из 2-х оконечек STU-R<->STU-C
  14. А как быть с вероятностью сбоя программы обнаружения сбоев? Не нужно изобретать велосипед: если нужна вероятность отказа устройства 10 в минус 9-й степени - применяйте резервирование, мажоритарные схемы итд.
  15. Надо отделить мух от котлет. Ибо проблема надежности устройства не ограничивается только ПО микроконтроллера. Если у вас программные сбои происходят от разряда пьезозажигалки, то программа тут совершенно не причем- все проблемы решаются правильной трассировкой. Для этого и существуют испытания на ЭМС и разные группы жесткости устройств. ИМХО для программиста достаточно встроенного WDT (правда некоторые спецы по надежности советуют использовать внешний) и грамотно написанной программы. Вероятность отказа устройства 10 в минус 9 степени - это попахивает авиацией, резервированием и прочими усложнениями:-)) Для "гражданских" устройств 10 в минус 5 степени уже хорошо.
×
×
  • Создать...