реклама на сайте
подробности

 
 
5 страниц V  < 1 2 3 4 5 >  
Reply to this topicStart new topic
> Нужна помощь, сломал голову! (Atmel AT91SAM7х256), после прошивки контроллера, компьютер не видит плату
0men
сообщение Sep 12 2017, 13:33
Сообщение #31


Участник
*

Группа: Участник
Сообщений: 42
Регистрация: 7-05-05
Пользователь №: 4 819



Цитата(alex7577 @ Sep 12 2017, 16:28) *
Конечно, только подскажите что скинуть. У меня в IAR, при открытом проекте вверху куча вкладок с исходниками, но я не знаю в какой ноги инициализируются. Как быстро найти?


если не хотите кидать весь проект, кидайте файл, где функция мейн, по ней пробежимся, скажем что кинуть дальше )

Кстати, а вы можете осциллографом посмотреть поведение при работе ноги 91 на обеих платах?

Сообщение отредактировал 0men - Sep 12 2017, 13:35
Go to the top of the page
 
+Quote Post
alex7577
сообщение Sep 13 2017, 07:21
Сообщение #32


Участник
*

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



Цитата(0men @ Sep 12 2017, 16:33) *
если не хотите кидать весь проект, кидайте файл, где функция мейн, по ней пробежимся, скажем что кинуть дальше )

Кстати, а вы можете осциллографом посмотреть поведение при работе ноги 91 на обеих платах?


Я готов скинуть и весь проект, там секретного ничего нет. Дайте контакты куда.
Осциллографа нет. Мы давно ничего не меняли в электронике, обновляли только софт для PC, с которым работает плата, не меняя протокол обмена с платой.
Соответственно нет ни специалистов ни оборудования, кроме тестера. Платы паялись и всегда работали, до этого момента sm.gif
Go to the top of the page
 
+Quote Post
jcxz
сообщение Sep 13 2017, 09:12
Сообщение #33


Гуру
******

Группа: Свой
Сообщений: 3 643
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(alex7577 @ Sep 13 2017, 14:21) *
Я готов скинуть и весь проект, там секретного ничего нет. Дайте контакты куда.

Не боитесь, что форум читают и китайцы? biggrin.gif
Go to the top of the page
 
+Quote Post
0men
сообщение Sep 13 2017, 09:34
Сообщение #34


Участник
*

Группа: Участник
Сообщений: 42
Регистрация: 7-05-05
Пользователь №: 4 819



Цитата(alex7577 @ Sep 13 2017, 10:21) *
Я готов скинуть и весь проект, там секретного ничего нет. Дайте контакты куда.
Осциллографа нет. Мы давно ничего не меняли в электронике, обновляли только софт для PC, с которым работает плата, не меняя протокол обмена с платой.
Соответственно нет ни специалистов ни оборудования, кроме тестера. Платы паялись и всегда работали, до этого момента sm.gif


кидайте весь проект, контакт отправил в личке
Go to the top of the page
 
+Quote Post
alex7577
сообщение Sep 13 2017, 09:44
Сообщение #35


Участник
*

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



Нашел такой код:

//USB VBUS
#define PIN_USB_VBUS {1 << 4, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_INPUT, PIO_DEFAULT}
//USB PULL_UP
#define BOARD_USB_PULLUP_EXTERNAL
#define PIN_USB_PULLUP {1 << 7, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_OUTPUT_1, PIO_DEFAULT}

//USB
#define USB_Vbus 1<<4
#define USB_BUS_POWERED
#define AT91C_VBUS AT91C_PIO_PA4
#define AT91C_PIO_VBUS AT91C_BASE_PIOA
#define AT91C_ID_VBUS AT91C_ID_PIOA

#define USB_PULLUP 1<<7
#define AT91C_PULLUP AT91C_PIO_PA7
#define AT91C_PIO_PULLUP AT91C_BASE_PIOA
#define AT91C_ID_PULLUP AT91C_ID_PIOA

#define USB_PULLUP_ON AT91C_PIO_PULLUP->PIO_SODR = USB_PULLUP;
#define USB_PULLUP_OFF AT91C_PIO_PULLUP->PIO_CODR = USB_PULLUP;
#define Cfg_Vbus_Detect AT91C_PIO_VBUS ->PIO_ODR = USB_Vbus;\
AT91C_PIO_VBUS ->PIO_PER = USB_Vbus;\
AT91C_PIO_VBUS ->PIO_IFER = USB_Vbus;

Цитата(0men @ Sep 13 2017, 12:34) *
кидайте весь проект, контакт отправил в личке


Скинул

Цитата(jcxz @ Sep 13 2017, 12:12) *
Не боитесь, что форум читают и китайцы? biggrin.gif


Не боюсь, у нас главная фишка не в платах, а в софте для PC sm.gif
Go to the top of the page
 
+Quote Post
0men
сообщение Sep 13 2017, 11:16
Сообщение #36


Участник
*

Группа: Участник
Сообщений: 42
Регистрация: 7-05-05
Пользователь №: 4 819



Цитата(alex7577 @ Sep 13 2017, 12:44) *
Нашел такой код:

//USB VBUS
#define PIN_USB_VBUS {1 << 4, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_INPUT, PIO_DEFAULT}
//USB PULL_UP
#define BOARD_USB_PULLUP_EXTERNAL
#define PIN_USB_PULLUP {1 << 7, AT91C_BASE_PIOA, AT91C_ID_PIOA, PIO_OUTPUT_1, PIO_DEFAULT}

//USB
#define USB_Vbus 1<<4
#define USB_BUS_POWERED
#define AT91C_VBUS AT91C_PIO_PA4
#define AT91C_PIO_VBUS AT91C_BASE_PIOA
#define AT91C_ID_VBUS AT91C_ID_PIOA

#define USB_PULLUP 1<<7
#define AT91C_PULLUP AT91C_PIO_PA7
#define AT91C_PIO_PULLUP AT91C_BASE_PIOA
#define AT91C_ID_PULLUP AT91C_ID_PIOA

#define USB_PULLUP_ON AT91C_PIO_PULLUP->PIO_SODR = USB_PULLUP;
#define USB_PULLUP_OFF AT91C_PIO_PULLUP->PIO_CODR = USB_PULLUP;
#define Cfg_Vbus_Detect AT91C_PIO_VBUS ->PIO_ODR = USB_Vbus;\
AT91C_PIO_VBUS ->PIO_PER = USB_Vbus;\
AT91C_PIO_VBUS ->PIO_IFER = USB_Vbus;



Скинул



Не боюсь, у нас главная фишка не в платах, а в софте для PC sm.gif


чего то я нигде не увидел перевод ножки 91 (PA7) на выход (в мейне)
Точнее, там есть настройка портов, но достаточно специфическая sm.gif

чтобы не разбираться долго, попробуйте в MAIN
сразу после первой строчки

PIO_Configure(pins, PIO_LISTSIZE(pins));

написать так:
AT91C_BASE_PIOA->PIO_PER = AT91C_PIO_PA7;
AT91C_BASE_PIOA->PIO_OER = AT91C_PIO_PA7;

скомпилировать и проверить



Цитата(alex7577 @ Sep 13 2017, 12:44) *
Нашел такой код:



И еще у вас есть непонятный момент. В мейне есть такой код

// connect if needed
VBus_Configure();
Cfg_Vbus_Detect;
USB_PULLUP_ON;
ISR_Vbus(&pinVbus);

Так вот Vbus это PA4 судя по этому коду:
#define USB_Vbus 1<<4
#define USB_BUS_POWERED
#define AT91C_VBUS AT91C_PIO_PA4
#define AT91C_PIO_VBUS AT91C_BASE_PIOA
#define AT91C_ID_VBUS AT91C_ID_PIOA

PA4 это 88 нога, а на вашей схеме она тупо через резистор притянута к земле... зачем, почему..

И еще: попробуйте закомментировать строчку

#define BOARD_USB_PULLUP_EXTERNAL

в board.h

Кстати, в проекте выбран чип at91sam7x512, а впаян at91sam7x256


Сообщение отредактировал 0men - Sep 13 2017, 10:26
Go to the top of the page
 
+Quote Post
alex7577
сообщение Sep 13 2017, 11:48
Сообщение #37


Участник
*

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



Цитата(0men @ Sep 13 2017, 14:16) *
чего то я нигде не увидел перевод ножки 91 (PA7) на выход (в мейне)
Точнее, там есть настройка портов, но достаточно специфическая sm.gif

чтобы не разбираться долго, попробуйте в MAIN
сразу после первой строчки

PIO_Configure(pins, PIO_LISTSIZE(pins));

написать так:
AT91C_BASE_PIOA->PIO_PER = AT91C_PIO_PA7;
AT91C_BASE_PIOA->PIO_OER = AT91C_PIO_PA7;

скомпилировать и проверить


Сделал, к сожалению ничего не изменилось, так же падает напряжение на D+ до 1.7 и плата не определяется. После стирания прошивки, определяется. Два повторил, результата нет (

И еще у вас есть непонятный момент. В мейне есть такой код

// connect if needed
VBus_Configure();
Cfg_Vbus_Detect;
USB_PULLUP_ON;
ISR_Vbus(&pinVbus);

Так вот Vbus это PA4 судя по этому коду:
#define USB_Vbus 1<<4
#define USB_BUS_POWERED
#define AT91C_VBUS AT91C_PIO_PA4
#define AT91C_PIO_VBUS AT91C_BASE_PIOA
#define AT91C_ID_VBUS AT91C_ID_PIOA

PA4 это 88 нога, а на вашей схеме она тупо через резистор притянута к земле... зачем, почему..


Вот начальная схема




но по факту, диод никогда не паяли, поэтому цепь VBUS была разомкнута и получается, что ножка на землю только через 15к. Зачем это было сделано не знаю, разработчик давно не работает у нас.



Цитата(0men @ Sep 13 2017, 14:16) *
Кстати, в проекте выбран чип at91sam7x512, а впаян at91sam7x256


Это не влияет, я так понимаю, что просто разный объем паммяти.
Мы ставили 128, 256, 512, всегда работали.

Цитата(0men @ Sep 13 2017, 14:16) *
И еще: попробуйте закомментировать строчку

#define BOARD_USB_PULLUP_EXTERNAL

в board.h


Тоже не помогло. После прошивки напряжение на D+ 2.2в без подключения к компу (со стертой прошивкой 3.3в), а при подключении кабеля usb падает до 1.7, ну то есть все как раньше.
Go to the top of the page
 
+Quote Post
0men
сообщение Sep 13 2017, 12:11
Сообщение #38


Участник
*

Группа: Участник
Сообщений: 42
Регистрация: 7-05-05
Пользователь №: 4 819



Цитата(alex7577 @ Sep 13 2017, 14:48) *
Тоже не помогло. После прошивки напряжение на D+ 2.2в без подключения к компу (со стертой прошивкой 3.3в), а при подключении кабеля usb падает до 1.7, ну то есть все как раньше.


Давайте от простого пойдем, посмотрим, переводится вообще РА7 на выход 1.
Для этого в мейне после

PIO_Configure(pins, PIO_LISTSIZE(pins));
USB_PULLUP_OFF;
wait(100000);
USB_PULLUP_ON;

напишите

for(;;);

то есть дальше код исполняться не будет. Подключите к компу и измерьте напряжение на D+

Go to the top of the page
 
+Quote Post
alex7577
сообщение Sep 13 2017, 13:04
Сообщение #39


Участник
*

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



Цитата(0men @ Sep 13 2017, 15:11) *
Давайте от простого пойдем, посмотрим, переводится вообще РА7 на выход 1.
Для этого в мейне после

PIO_Configure(pins, PIO_LISTSIZE(pins));
USB_PULLUP_OFF;
wait(100000);
USB_PULLUP_ON;

напишите

for(;;);

то есть дальше код исполняться не будет. Подключите к компу и измерьте напряжение на D+


Ничего не изменилось.
На всякий случай вот скрин результатов компиляции

Go to the top of the page
 
+Quote Post
0men
сообщение Sep 13 2017, 13:16
Сообщение #40


Участник
*

Группа: Участник
Сообщений: 42
Регистрация: 7-05-05
Пользователь №: 4 819



Цитата(alex7577 @ Sep 13 2017, 16:04) *
Ничего не изменилось.
На всякий случай вот скрин результатов компиляции


ничего не изменилось это что означает? какое напряжение на D+? 1.7?
Go to the top of the page
 
+Quote Post
alex7577
сообщение Sep 13 2017, 13:22
Сообщение #41


Участник
*

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



Цитата(0men @ Sep 13 2017, 16:16) *
ничего не изменилось это что означает? какое напряжение на D+? 1.7?


Да. 1.7 при подключенном usb, 2.2 при отключенном.
Go to the top of the page
 
+Quote Post
0men
сообщение Sep 13 2017, 14:05
Сообщение #42


Участник
*

Группа: Участник
Сообщений: 42
Регистрация: 7-05-05
Пользователь №: 4 819



Цитата(alex7577 @ Sep 13 2017, 16:22) *
Да. 1.7 при подключенном usb, 2.2 при отключенном.


это означает, что нога на выход не работает..

перед
PIO_Configure(pins, PIO_LISTSIZE(pins));

вставьте вот такую строчку:
AT91C_BASE_PMC->PMC_PCER = (1<<AT91C_ID_PIOA);
это включение клока

да, похоже проблема именно в этом )) Клоки на порты у вас включаются в функции
PIO_InitializeInterrupts(0);

а она находится значительно ниже

перенесите функцию
PIO_InitializeInterrupts(0);

перед
PIO_Configure(pins, PIO_LISTSIZE(pins));



Сообщение отредактировал 0men - Sep 13 2017, 14:24
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Sep 13 2017, 14:32
Сообщение #43


Гуру
******

Группа: Свой
Сообщений: 10 173
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(0men @ Sep 13 2017, 17:05) *
да, похоже проблема именно в этом )) Клоки на порты у вас включаются в функции
PIO_InitializeInterrupts(0);

а она находится значительно ниже

Для работы пинов на выход в серии SAM7 клоки не нужны.
Go to the top of the page
 
+Quote Post
alex7577
сообщение Sep 14 2017, 10:46
Сообщение #44


Участник
*

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



Цитата(0men @ Sep 13 2017, 17:05) *
это означает, что нога на выход не работает..

перед
PIO_Configure(pins, PIO_LISTSIZE(pins));

вставьте вот такую строчку:
AT91C_BASE_PMC->PMC_PCER = (1<<AT91C_ID_PIOA);
это включение клока

да, похоже проблема именно в этом )) Клоки на порты у вас включаются в функции
PIO_InitializeInterrupts(0);

а она находится значительно ниже

перенесите функцию
PIO_InitializeInterrupts(0);

перед
PIO_Configure(pins, PIO_LISTSIZE(pins));


К сожалению, опять не помогло, ситуация ровно таже 1.7в, на D+.
вот скрин кода, посмотрите, пожалуйста, все ли правильно.




Раскопали в хламе старые паянные МК. Запаяли вместо новых на эти же платы, все работает, блин!
Но три нам к сожалению мало, а хлам закончился.
Проблема по-прежнему актуальна.
Готов выставить хороший коньяк или иное вознаграждение по Вашему выбору за конструктивную помощь )
Go to the top of the page
 
+Quote Post
0men
сообщение Sep 14 2017, 11:34
Сообщение #45


Участник
*

Группа: Участник
Сообщений: 42
Регистрация: 7-05-05
Пользователь №: 4 819



Цитата(alex7577 @ Sep 14 2017, 13:46) *
Проблема по-прежнему актуальна.
Готов выставить хороший коньяк или иное вознаграждение по Вашему выбору за конструктивную помощь )


ээээ.. зачем там цикл 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+



Go to the top of the page
 
+Quote Post

5 страниц V  < 1 2 3 4 5 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd September 2017 - 18:21
Рейтинг@Mail.ru


Страница сгенерированна за 0.12497 секунд с 7
ELECTRONIX ©2004-2016