Jump to content

    

Neznaika

Участник
  • Content Count

    107
  • Joined

  • Last visited

Community Reputation

0 Обычный

About Neznaika

  • Rank
    Частый гость

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. EVK1100 + bootloader

    Да, попытался сбросить WDT... Результат тот же) Сброс приложения... Нет входа в загрузчик...
  2. EVK1100 + bootloader

    Да, я сам думаю, что заход в загрузчик есть, но почему не реагирует на состояние ноги входа в него не понимаю. После включения питания и после внешнего ресета с кнопки я в него захожу, а после прыжка на 0х80000000 нет, странно. К сожалению нет проекта загрузчика, пробую его сейчас как то раздобыть в инете, но пока безуспешно. Я сам толком не понимаю, что это - { asm("icall r12");} , взял из примерочного проекта, стоял к нему комментарий о сохранении адреса в регистре R12. Визуально - преобразование команды ассемблера в С++, но это приводит к ресету приложения. В одной из веток видел, что перейти по адресу можно с помощью функции AppMain(), определенной как: APP_FLASH_ADR=0x80000000; void (*AppMain)(void)=((void(*)(void))APP_FLASH_ADR); Но результат аналогичен выше упомянутому способу - ресет приложения, без задержки в загрузчике.
  3. EVK1100 + bootloader

    Всем привет! Пытаюсь разобраться с загрузчиком на 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. Вход в загрузчик при условии высокого уровня на одном из пинов. При нажатии клавиши, он у меня висит на питании. Объясните невежде, где я заблуждаюсь ив корне не прав?
  4. Bootloader

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

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

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

    Всем привет! Не нашел другой темы куда задать свой вопрос. Прошил в контроллер at32uc3a USB-загрузчик. Настроил пользовательскую страницу под отдельный пин. При 1 на нем после включения питания мы попадаем в загрузчик. Все прекрасно. Как можно сделать так, чтобы я мог контролировать этот пин? Если его подвесить к питанию, то мы все время будем нырять в загрузчик, если к земле, то мы в него не сможем никак попасть. Или как то можно использовать reset контролера в этом случае? Или возможно ли из приложения как то перепрошить слово конфигурации переключив пин захода в загрузчик?
  8. XMEGA еще жива?

    Увидел все-таки одну бяку... Получается перестраивать небольшие скорости.... 390 000, 156 000... А вот 800 000 не получается... Хотя, если изначально задавать 800 000, то UART работает с ней... Подсчёт коэффициентов выполняет одна и та же функция.. Чудеса, да и только..
  9. XMEGA еще жива?

    Ну хоть у кого то работает) В вашем коде все понятно.. Вот нужно ли только каждый раз объявлять прерывания? Я использую библиотечные функции примерочного проекта по работе с UART, но там если покопаться те же регистры и те же команды, и есть функции по вычислению коэффициентов любой скорости. Сейчас пробовал играться с функцией инициализации, сначала ставил под одну скорость, следом с задержкой та же функция, но с другой.. По отдельности они работают, а последовательно не выполняется вторая. Как только проходит 1-ая запись данных в регистры скорости, происходит какая то блокировка и ничего уже поменять не могу. Есть подозрения на то, что к UART подцеплен полудуплексный RS-485, но как он может повлиять ума не приложу..
  10. XMEGA еще жива?

    Всем привет! Очередной затык.. теперь с UART. Кому-нибудь удавалось менять скорость UART после его инициализации. В документации написано, что это возможно в том случае, когда передача и прием полностью завершены. Контролирую флаги в статусном регистре - на передачу (5 бит) в 1, на прием (7 бит) - 0. Пытаюсь сменить скорость и ничего не получается, UART работает со старой. Может кто ткнет носом, куда посмотреть?..
  11. AVR ATmega Xmega Bootloader - chip45boot2

    C HEX файлами под этот загрузчик ничего толком у меня не вышло... Грузил разные... Работают они по разному, странно все это.. Переключился на другое приложение, называется AVRUBD. В контроллер залил единственно найденный загрузчик для xMega https://github.com/bandtank/Xmega_Bootloader, скорректировав его под работу по RS-485. Кроме как отдельных ответов на команды выжать из него ничего не получается. Может кто с ним уже успешно работал и подскажет где собака зарыта?
  12. XMEGA еще жива?

    Физически не получилось, поэтому и полез в документацию и на форум в надежде найти подтверждение, что и не должно работать.. Или у всех работает, а только у меня не работает. Обойти сложившийся казус через SPI собственного производства конечно же можно)
  13. XMEGA еще жива?

    Видимо мы не понимаем друг друга) Я имел в виду SCK, тут я опечатался, приношу свои извинения. Ещё раз повторю вопрос по другому - если я использую SPI для датчика температуры.. У меня задействованы только SCK, MISO и SS, так как мне нужно только считать код. Могу ли я объявить MOSI как выходной пин и зажигать им светодиод?
  14. XMEGA еще жива?

    MISO достаточно для датчика температуры, тут нужно лишь данные считывать по SCL, а для ЦАП достаточно MOSI, здесь только загрузка кода...
  15. XMEGA еще жива?

    Вот... Вопрос лишь в том, что можно ли не задействованные вывода инициализированного SPI использовать в своих целях. У меня не получилось, в других контроллерах как мне помнится такое возможно...