Jump to content

    

Neznaika

Участник
  • Content Count

    110
  • Joined

  • Last visited

Everything posted by Neznaika


  1. В данном случае для моей ПЛИС сопротивление в 700 Ом - выглядит нормально) Рентген у нас, к сожалению, будет в новом году, посмотрим ее повнимательнее. Не думаю, что ПЛИС бракованная, первоначально она работала в нормальном режиме. Но после долгих отладок и тестов она испустила свой боевой дух, и я не заметил, когда это случилось, так как вся система продолжала функционировать. Думаю, что скоро будем собирать новую плату. Еще отправил свой вопрос в службу поддержки Intel, может чего ответят и тогда приму волевое решение...
  2. EP4CE55 в BGA-корпусах на 484 ноги... Стоят они не дешево(... Заменить такой наши специалисты не знают как.. Плата довольно большая и куча других компонентов, как они себя поведут при очередном перегреве не понятно, если только новую плату собирать. Смотрели на работу ПЛИС через тепловой визор, при включении начинает разогреваться ядро ПЛИС и область нагрева медленно расходится во все стороны. Думали на конденсаторы, но они все холодные. Было несколько случаев, когда 10мкФ 0805 пробивало и микрухи, запитанные через такой пробитый конденсатор также сильно грелись. Еще грешу на то, что рядом с ПЛИС сделан второй этаж платы, без необходимого фиксирования основной платы к корпусу. Частое снимание и надевание второго этажа приводило к несильной деформации платы, могло конечно что то отвалиться. Но тогда бы не было 6-омной "козы" по двум питаниям.
  3. Всем привет! Вот и я окунулся с головой в чан с такой же проблемой. 1 из 2 ПЛИС на одинаковых платах и с одинаковым проектом разогревается как утюг. Запитываю ПЛИС отдельными источниками питания. Там где не греется потребление 30мА по 3.3В, и 250мА по 1.2В. Там где раскаляется 800мА по 3.3В, по 1.2В не смотрел. Так же тестером глянул сопротивление между питанием и землей. В нормальном случае по 700 Ом на 3.3В и на 1.2В. Там где нагревается 5-6 Ом. При этом перегретая ПЛИС умудряется функционировать. Может кто что посоветует куда носом ткнуться?
  4. Да, попытался сбросить WDT... Результат тот же) Сброс приложения... Нет входа в загрузчик...
  5. Да, я сам думаю, что заход в загрузчик есть, но почему не реагирует на состояние ноги входа в него не понимаю. После включения питания и после внешнего ресета с кнопки я в него захожу, а после прыжка на 0х80000000 нет, странно. К сожалению нет проекта загрузчика, пробую его сейчас как то раздобыть в инете, но пока безуспешно. Я сам толком не понимаю, что это - { asm("icall r12");} , взял из примерочного проекта, стоял к нему комментарий о сохранении адреса в регистре R12. Визуально - преобразование команды ассемблера в С++, но это приводит к ресету приложения. В одной из веток видел, что перейти по адресу можно с помощью функции AppMain(), определенной как: APP_FLASH_ADR=0x80000000; void (*AppMain)(void)=((void(*)(void))APP_FLASH_ADR); Но результат аналогичен выше упомянутому способу - ресет приложения, без задержки в загрузчике.
  6. Всем привет! Пытаюсь разобраться с загрузчиком на at32uc3a0512. Получилось его прошить, даже удается с его помощью обновлять прошивку. Задался вопросом попадания в него из приложения. Воспользовался одним из примеров Atmel, где они лихо загружают прошивки по установленным адресам FLASH с помощью функции jumpAddress(BOOT_SECTION). Сделал аналогичную запись у себя в приложении и запускаю функцию по нажатию клавиши: #define BOOT_SECTION 0x80000000 void jumpAddress(unsigned int address); { asm("icall r12");} Компилирую проект в Atmel Studuo 7 и зашиваю прошивку через загрузчик. По нажатию клавиши получаю reset приложения. А казалось бы должен по указанному адресу попасть в загрузчик. Как я понял из документации загрузчик начинается с адреса 0х80000000, а приложение с 0x80002000. Вход в загрузчик при условии высокого уровня на одном из пинов. При нажатии клавиши, он у меня висит на питании. Объясните невежде, где я заблуждаюсь ив корне не прав?
  7. Bootloader

    Да... я как раз в поиске и копался, там много всего и много ничего... От загрузчика у меня только hex файл под мой контроллер и документация от Atmel по его конфигурированию. Доступа к тонким бинарным мирам у меня увы нет.. В ASF под Atmel Studio 7 есть проект примера USB-загрузчика, но не под мое семейство at32uc3a... Попробую с нем еще поплавать...
  8. Bootloader

    Ну в-принципе если только такую кнопку туда крепить... https://www.chipdip.ru/product/pbs-11a-green
  9. Bootloader

    Спасибо, за ответ) С кнопкой или перемычкой понятно) Но контроллер стоит в корпусе, а кнопка с перемычкой на плате... Выносить их на заднюю панель как то не эстетично. Видел раньше были энергонезависимые триггера, но их увы сняли с производства. Был еще вариант захода в загрузчик через USB_ID, только при подсоединении кабеля можно войти в загрузчик, но по USB у меня работает основное приложение. И каждый раз придется перед включением убеждаться, что USB-разьем пуст. Документов к сожалению не так много на эту тему(
  10. Bootloader

    Всем привет! Не нашел другой темы куда задать свой вопрос. Прошил в контроллер at32uc3a USB-загрузчик. Настроил пользовательскую страницу под отдельный пин. При 1 на нем после включения питания мы попадаем в загрузчик. Все прекрасно. Как можно сделать так, чтобы я мог контролировать этот пин? Если его подвесить к питанию, то мы все время будем нырять в загрузчик, если к земле, то мы в него не сможем никак попасть. Или как то можно использовать reset контролера в этом случае? Или возможно ли из приложения как то перепрошить слово конфигурации переключив пин захода в загрузчик?
  11. Увидел все-таки одну бяку... Получается перестраивать небольшие скорости.... 390 000, 156 000... А вот 800 000 не получается... Хотя, если изначально задавать 800 000, то UART работает с ней... Подсчёт коэффициентов выполняет одна и та же функция.. Чудеса, да и только..
  12. Ну хоть у кого то работает) В вашем коде все понятно.. Вот нужно ли только каждый раз объявлять прерывания? Я использую библиотечные функции примерочного проекта по работе с UART, но там если покопаться те же регистры и те же команды, и есть функции по вычислению коэффициентов любой скорости. Сейчас пробовал играться с функцией инициализации, сначала ставил под одну скорость, следом с задержкой та же функция, но с другой.. По отдельности они работают, а последовательно не выполняется вторая. Как только проходит 1-ая запись данных в регистры скорости, происходит какая то блокировка и ничего уже поменять не могу. Есть подозрения на то, что к UART подцеплен полудуплексный RS-485, но как он может повлиять ума не приложу..
  13. Всем привет! Очередной затык.. теперь с UART. Кому-нибудь удавалось менять скорость UART после его инициализации. В документации написано, что это возможно в том случае, когда передача и прием полностью завершены. Контролирую флаги в статусном регистре - на передачу (5 бит) в 1, на прием (7 бит) - 0. Пытаюсь сменить скорость и ничего не получается, UART работает со старой. Может кто ткнет носом, куда посмотреть?..
  14. C HEX файлами под этот загрузчик ничего толком у меня не вышло... Грузил разные... Работают они по разному, странно все это.. Переключился на другое приложение, называется AVRUBD. В контроллер залил единственно найденный загрузчик для xMega https://github.com/bandtank/Xmega_Bootloader, скорректировав его под работу по RS-485. Кроме как отдельных ответов на команды выжать из него ничего не получается. Может кто с ним уже успешно работал и подскажет где собака зарыта?
  15. Физически не получилось, поэтому и полез в документацию и на форум в надежде найти подтверждение, что и не должно работать.. Или у всех работает, а только у меня не работает. Обойти сложившийся казус через SPI собственного производства конечно же можно)
  16. Видимо мы не понимаем друг друга) Я имел в виду SCK, тут я опечатался, приношу свои извинения. Ещё раз повторю вопрос по другому - если я использую SPI для датчика температуры.. У меня задействованы только SCK, MISO и SS, так как мне нужно только считать код. Могу ли я объявить MOSI как выходной пин и зажигать им светодиод?
  17. MISO достаточно для датчика температуры, тут нужно лишь данные считывать по SCL, а для ЦАП достаточно MOSI, здесь только загрузка кода...
  18. Вот... Вопрос лишь в том, что можно ли не задействованные вывода инициализированного SPI использовать в своих целях. У меня не получилось, в других контроллерах как мне помнится такое возможно...
  19. Всем привет! Наткнулся на небольшую проблему. При инициализации SPI-порта не могу управлять в своих целях ни MISO, ни MOSI. Это нормально? Вроде в документации написано, что в режиме Master, 3 вывода порта (SS, MOSI, SCK) указаны как User Defined. Мне казалось, что их я могу задействовать в своих целях как угодно...
  20. Всем привет! Столкнулся с необходимостью прошивки xMega через UART-порт по интерфейсу RS-485. Нашел в инете приложение chip45boot2 на http://www.chip45.com/categories/chip45boo...ee_hexfiles.php. Все доступно написано и выложены загрузчики для огромного количества микросхем. Вроде бы все есть, но не работает. Загружаю через AtmelStudio HEX-файл загрузчика (моей микросхемы с моим подключенным UART-портом) с установленными FUSE-битами (как в документации). Запускаю chip45boot2, указываю мой СОМ-порт со скоростью 9600 (все перепробовал), и приложение связаться с загрузчиком не хочет. Если кто то возился с этой темой, подскажите, пожалуйста, в чем может быть ошибка?
  21. Владимир, спасибо за помощь) Взял начальный чистый проект, перед тем как добавлял и удалял компоненты, навел порядок в Component Link и плата начала обновляться без перемещения старых компонентов.
  22. Повозился, но тоже не помогает или я не туда нажимаю... Захожу я в Component Link, c левой стороны куча несогласованных связей.. Перетаскиваю в правое окно и нажимаю Update... Но они никуда из окна не пропадают.. Затем пытаюсь снова обновить плату из схемного редактора с добавленным новым резистором и резисторы на плате снова переезжают на новые места...
  23. Всем привет! Очень давно мучаюсь со следующей проблемой. Корректирую схему уже разведеной платы, вставляю или удаляю резистр, провожу заново переобозначения компонетов и пытаюсь эти изменения внести на плату. Altium берет и переставляет на плате компоненты на другие места. Было 100 резисторов, вставил 101-ый с номером 30.. и получил на плате разбросанные по разным местам 70 резисторов. Кроме как вручную возвращать их у меня не получается. Может кто знает эту волшебную настройку, чтобы в обновленной плате менялись только обозначения компонентов, а новые добавлялись рядом с платой. Спасибо)
  24. Всем спасибо) Может кому пригодится... Параметры кода CDM-600 для TPC, QPSK 3/4: 2D-код с коэффициентами (39/46)*(57/64), 20-битная метка x"f50b8".
  25. В очередной раз побеспокою кудесников блочного кодирования... Уткнулся в реализацию BTC при QPSK, 3/4, совместимую с CDM-600. Нашел 30-битную метку в кадре и вычислил длину самого кадра с меткой в 4444 бит. Попытка разложить 3333/4414 на элементарные коэффициенты не приводит к положительному успеху. Может кто то занимался этой реализацией и подскажет как коллегам из Америки удалось получить этот коэффициент?