|
|
  |
Нужна помощь, сломал голову! (Atmel AT91SAM7х256), после прошивки контроллера, компьютер не видит плату |
|
|
|
Sep 14 2017, 11:54
|
Участник

Группа: Участник
Сообщений: 29
Регистрация: 9-02-15
Пользователь №: 85 030

|
Цитата(0men @ Sep 14 2017, 14:34)  ээээ.. зачем там цикл while(1) то?? у вас там нужка РА7 дергается в 0-1 постоянно.
короче, нужно понять, переводится ножка РА7 на выход или нет. Напишите в самом начала мейна следующее:
AT91C_BASE_PMC->PMC_PCER = (1<<AT91C_ID_PIOA); AT91C_BASE_PIOA->PIO_PER = AT91C_PIO_PA7; AT91C_BASE_PIOA->PIO_OER = AT91C_PIO_PA7; AT91C_BASE_PIOA->PIO_SODR = AT91C_PIO_PA7; for(;;);
И измерьте напряжение на самой ножке РА7 и на D+ Сделал. Ничего не изменилось: РА7 - 2.3в, D+ - 2.2в при отключенном кабеле USB. После подключения кабеля, на D+ падает до 1.7в и плата не определяется. Посмотрите код, так надо было?
|
|
|
|
|
Sep 14 2017, 12:12
|
Частый гость
 
Группа: Участник
Сообщений: 84
Регистрация: 7-05-05
Пользователь №: 4 819

|
Цитата(alex7577 @ Sep 14 2017, 14:54)  Сделал. Ничего не изменилось: РА7 - 2.3в, D+ - 2.2в при отключенном кабеле USB. После подключения кабеля, на D+ падает до 1.7в и плата не определяется. Посмотрите код, так надо было? да, код правильный, но результат полная ерунда.. Ножка не переводится на выход, что абсолютно непонятно. А сделайте плис тоже самое на рабочей плате кстати, все таки важно, какой чип указан: 256 или 512. В функции LowLevelInit #if defined(at91sam7x512) AT91C_BASE_EFC0->EFC_FMR = AT91C_MC_FWS_1FWS; AT91C_BASE_EFC1->EFC_FMR = AT91C_MC_FWS_1FWS; #elif defined(at91sam7x128) || defined(at91sam7x256) AT91C_BASE_MC->MC_FMR = AT91C_MC_FWS_1FWS;
|
|
|
|
|
Sep 14 2017, 12:12
|
Участник

Группа: Участник
Сообщений: 29
Регистрация: 9-02-15
Пользователь №: 85 030

|
Цитата(0men @ Sep 14 2017, 14:59)  да, код правильный, но результат полная ерунда.. Ножка не переводится на выход, что абсолютно непонятно. А сделайте плис тоже самое на рабочей плате Сделал. Держит напряжение нормально, 3.3в на D+ при отключенном USB и 2.9 при подключенном. Определяется как неизвестное устройство, но это понятно, из-за изменения в коде.
|
|
|
|
|
Sep 14 2017, 12:20
|
Частый гость
 
Группа: Участник
Сообщений: 84
Регистрация: 7-05-05
Пользователь №: 4 819

|
Цитата(alex7577 @ Sep 14 2017, 15:12)  Сделал. Держит напряжение нормально, 3.3в на D+ при отключенном USB и 2.9 при подключенном. Определяется как неизвестное устройство, но это понятно, из-за изменения в коде. у AT91C_BASE_EFC0 AT91C_BASE_EFC1 AT91C_BASE_MC абсолютно разные базовые адреса. Выбирая 512 в яре и прошивая прошивку в 256 вы не правильно инициализируете работу флэш памяти
|
|
|
|
|
Sep 14 2017, 12:25
|
Участник

Группа: Участник
Сообщений: 29
Регистрация: 9-02-15
Пользователь №: 85 030

|
Цитата(0men @ Sep 14 2017, 15:20)  у AT91C_BASE_EFC0 AT91C_BASE_EFC1 AT91C_BASE_MC
абсолютно разные базовые адреса. Выбирая 512 в яре и прошивая прошивку в 256 вы не правильно инициализируете работу флэш памяти Мы паяли разные: 128, 256, 512 и всегда они работали и одной и той же прошивкой. Вроде разработчик что-то предусмотрел в коде, чтобы можно было ставить любые модификации. Сейчас и рабочие и нерабочие платы с вариантом 256, но вот старые работают, а новые нет.
|
|
|
|
|
Sep 14 2017, 12:42
|
Частый гость
 
Группа: Участник
Сообщений: 84
Регистрация: 7-05-05
Пользователь №: 4 819

|
Цитата(alex7577 @ Sep 14 2017, 15:25)  Мы паяли разные: 128, 256, 512 и всегда они работали и одной и той же прошивкой. Вроде разработчик что-то предусмотрел в коде, чтобы можно было ставить любые модификации. Сейчас и рабочие и нерабочие платы с вариантом 256, но вот старые работают, а новые нет. не упрямьтесь, а попробуйте )) В последних ревизиях атмел очень серьезно ухудшил характеристики флеш памяти, этот код отвечает за время доступа к ней. Ваш разработчик ничего не предусмотрел в этом плане
Сообщение отредактировал 0men - Sep 14 2017, 12:42
|
|
|
|
|
Sep 14 2017, 13:47
|
Участник

Группа: Участник
Сообщений: 29
Регистрация: 9-02-15
Пользователь №: 85 030

|
Цитата(0men @ Sep 14 2017, 15:42)  не упрямьтесь, а попробуйте )) В последних ревизиях атмел очень серьезно ухудшил характеристики флеш памяти, этот код отвечает за время доступа к ней. Ваш разработчик ничего не предусмотрел в этом плане Да я готов попробовать, подскажите, что именно нужно сделать? что-то не могу найти подходящие настройки в IAR
|
|
|
|
|
Sep 14 2017, 14:05
|
Частый гость
 
Группа: Участник
Сообщений: 84
Регистрация: 7-05-05
Пользователь №: 4 819

|
Цитата(alex7577 @ Sep 14 2017, 16:47)  Да я готов попробовать, подскажите, что именно нужно сделать? что-то не могу найти подходящие настройки в IAR мышкой ткнитесь в EIM-v3-Debug потом - Project->Options-General options-Device и там меняете Atmel AT91SAM7X512 на Atmel AT91SAM7X256 потом все перекомпилируйте И еще нужно исправить в настройках линкера: Project->Options-Linker-Config-Linker configuration file изменить на 256 и еще )) Project->Options-С/С++ Compiler->Preprocessor изменить AT91SAM7X512 на Atmel AT91SAM7X256
Сообщение отредактировал 0men - Sep 14 2017, 14:08
|
|
|
|
|
Sep 14 2017, 14:09
|
Участник

Группа: Участник
Сообщений: 29
Регистрация: 9-02-15
Пользователь №: 85 030

|
Цитата(0men @ Sep 14 2017, 17:05)  мышкой ткнитесь в EIM-v3-Debug
потом - Project->Options-General options-Device
и там меняете Atmel AT91SAM7X512 на Atmel AT91SAM7X256
потом все перекомпилируйте
И еще нужно исправить в настройках линкера:
Project->Options-Linker-Config-Linker configuration file
изменить на 256
и еще ))
Project->Options-С/С++ Compiler->Preprocessor
изменить AT91SAM7X512 на Atmel AT91SAM7X256 Сделал. Все тоже самое. Но это дефолтная прошивка. Если нужно внести изменения в код, которые вы рекомендовали, то какие именно?
|
|
|
|
|
Sep 14 2017, 14:10
|
Частый гость
 
Группа: Участник
Сообщений: 84
Регистрация: 7-05-05
Пользователь №: 4 819

|
Цитата(alex7577 @ Sep 14 2017, 17:09)  Сделал. Все тоже самое. Но это дефолтная прошивка. Если нужно внести изменения в код, которые вы рекомендовали, то какие именно? во всех 3х местах изменили на AT91SAM7X256? вот это в начале мейна вставьте и проверьте напряжение на D+ AT91C_BASE_PMC->PMC_PCER = (1<<AT91C_ID_PIOA); AT91C_BASE_PIOA->PIO_PER = AT91C_PIO_PA7; AT91C_BASE_PIOA->PIO_OER = AT91C_PIO_PA7; AT91C_BASE_PIOA->PIO_SODR = AT91C_PIO_PA7; for(;;);
Сообщение отредактировал 0men - Sep 14 2017, 14:11
|
|
|
|
|
Sep 14 2017, 14:29
|
Участник

Группа: Участник
Сообщений: 29
Регистрация: 9-02-15
Пользователь №: 85 030

|
Цитата(0men @ Sep 14 2017, 17:10)  во всех 3х местах изменили на AT91SAM7X256?
вот это в начале мейна вставьте и проверьте напряжение на D+
AT91C_BASE_PMC->PMC_PCER = (1<<AT91C_ID_PIOA); AT91C_BASE_PIOA->PIO_PER = AT91C_PIO_PA7; AT91C_BASE_PIOA->PIO_OER = AT91C_PIO_PA7; AT91C_BASE_PIOA->PIO_SODR = AT91C_PIO_PA7; for(;;); Все сделал как написали, в 3-х местах и код. Тоже самое ( В любом случае огромное спасибо за время и терпение, если получится, то с меня прочитается  Надеюсь на ваш опыт. Если вы в Москве, то я могу подвести все рабочую и нерабочую платы, исходники у вас есть.
|
|
|
|
|
Sep 14 2017, 14:35
|
Частый гость
 
Группа: Участник
Сообщений: 84
Регистрация: 7-05-05
Пользователь №: 4 819

|
Цитата(alex7577 @ Sep 14 2017, 17:29)  Все сделал как написали, в 3-х местах и код. Тоже самое ( В любом случае огромное спасибо за время и терпение, если получится, то с меня прочитается  Надеюсь на ваш опыт. Если вы в Москве, то я могу подвести все рабочую и нерабочую платы, исходники у вас есть. я Питере  пока идеи иссякли (( А процессор вообще работает? Другие ноги управляются?
|
|
|
|
|
Sep 14 2017, 14:39
|
Участник

Группа: Участник
Сообщений: 29
Регистрация: 9-02-15
Пользователь №: 85 030

|
Цитата(0men @ Sep 14 2017, 17:35)  я Питере  пока идеи иссякли (( А процессор вообще работает? Другие ноги управляются? Могу отправить DHL ) Если это вообще удобно для вас. А как понять управляются ли другие ноги? Мы результаты работы платы можем видеть только в программе на PC, а USB не работает.
|
|
|
|
|
Sep 14 2017, 14:46
|
Частый гость
 
Группа: Участник
Сообщений: 84
Регистрация: 7-05-05
Пользователь №: 4 819

|
Цитата(alex7577 @ Sep 14 2017, 17:39)  Могу отправить DHL ) Если это вообще удобно для вас. А как понять управляются ли другие ноги? Мы результаты работы платы можем видеть только в программе на PC, а USB не работает. Давайте так, если до понедельника ничего не решится, то я вам напишу, куда отправить  У вас в программе есть управление светодиодами, на плате они есть? Моргают?
Сообщение отредактировал 0men - Sep 14 2017, 14:46
|
|
|
|
|
Sep 14 2017, 14:52
|
Участник

Группа: Участник
Сообщений: 29
Регистрация: 9-02-15
Пользователь №: 85 030

|
Цитата(0men @ Sep 14 2017, 17:46)  Давайте так, если до понедельника ничего не решится, то я вам напишу, куда отправить  У вас в программе есть управление светодиодами, на плате они есть? Моргают? Ок! Раньше были светодиоды, но как только опытные образцы заработали стабильно от них отказались.
|
|
|
|
|
  |
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|