Миландр

Ключевым подразделением нашей компании
является Центр Проектирования интегральных микросхем
Текущее время: 2019-сен-15 10:27

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 42 ]  На страницу Пред.  1, 2, 3 Все
Автор Сообщение
 Заголовок сообщения: Re: К1986ВЕ92 не отправляет UART
СообщениеДобавлено: 2019-июн-19 14:07 
Не в сети

Зарегистрирован: 2009-май-22 09:01
Сообщения: 1297
Откуда: АО "ПКК Миландр"
prostoRoman писал(а):
-=Sergei=- писал(а):
Если это бракованный кристалл с таким поведением, то мы заинтересованы его получить обратно.
В замен дадим новый.

Вот это тяга к знаниям! Респект.


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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: К1986ВЕ92 не отправляет UART
СообщениеДобавлено: 2019-июн-22 18:32 
Не в сети

Зарегистрирован: 2014-сен-16 11:58
Сообщения: 106
Vasiliy писал(а):
UART_VE92.zip
Попробовал файл UART_VE92.zip и заработало! Прошил LinuxFanatic.hex и шлется 0xAA на скорости 9600!
Единственный кристалл который бракован - это моя ДНК (ДНК кстати кристаллом считается)
:lol: :D :?

Огромнейше благодарю за помощь!
Кстати, когда я работал с SPI оно как-то проще всё было, не так трудно было - по примерам я быстро тогда разобрался.

Я как только сравню и пойму в какой конкретно строчке моя ошибка - напишу дополнительное сообщение, а также отредактирую первый пост (если возможно).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: К1986ВЕ92 не отправляет UART
СообщениеДобавлено: 2019-июн-22 20:51 
Не в сети

Зарегистрирован: 2014-сен-16 11:58
Сообщения: 106
Я добавил те несколько строк, которые отличались в этом демо проекте - не помогло.

Заменил файл проекта на тот что из демо лишь свой главный си-файл поставил свое имя, оставил свои версии IDE и пакетов, первое что бросается в глаза, что используются некоторые компоненты (не знал про них), а они подставляют свои системные конфиг и настроечные файлы. Это не помогло.

Думал может нужно что-то модифицировать в system/startup файлах - оказалось нет, не помогло. Они идентичны у Вас и у меня при компиляции.

Закомментировал работу с LED и его инициализацию - не помогло.

Итак, есть проект UART_VE92.zip в котором всё работает. И есть мой, прилагаю его к этом сообщению
Вложение:
test_da20190622.zip [4.96 КБ]
Скачиваний: 17
В чем у них различие? Что их принципиально отличает? Что я не задал?

Конечно, я могу взять Ваш проект и просто продолжать работать с ним, наверное так и поступлю. Но хочется понять причину проблемы.

Еще я заметил, что версия библиотек немножечко отличается, версия Keil немножечко отличается. Если в коде ничего криминального не будет видно снова, тогда попробую обновить Keil и компоненты поддержки МК Milandr


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: К1986ВЕ92 не отправляет UART
СообщениеДобавлено: 2019-июн-24 10:29 
Не в сети

Зарегистрирован: 2017-май-31 15:10
Сообщения: 41
Откуда: АО "ПКК Миландр"
LinuxFanatic писал(а):
Я добавил те несколько строк, которые отличались в этом демо проекте - не помогло.

Заменил файл проекта на тот что из демо лишь свой главный си-файл поставил свое имя, оставил свои версии IDE и пакетов, первое что бросается в глаза, что используются некоторые компоненты (не знал про них), а они подставляют свои системные конфиг и настроечные файлы. Это не помогло.

Думал может нужно что-то модифицировать в system/startup файлах - оказалось нет, не помогло. Они идентичны у Вас и у меня при компиляции.

Закомментировал работу с LED и его инициализацию - не помогло.

Итак, есть проект UART_VE92.zip в котором всё работает. И есть мой, прилагаю его к этом сообщению
Вложение:
test_da20190622.zip
В чем у них различие? Что их принципиально отличает? Что я не задал?

Конечно, я могу взять Ваш проект и просто продолжать работать с ним, наверное так и поступлю. Но хочется понять причину проблемы.

Еще я заметил, что версия библиотек немножечко отличается, версия Keil немножечко отличается. Если в коде ничего криминального не будет видно снова, тогда попробую обновить Keil и компоненты поддержки МК Milandr


Возможно, при беглом просмотре кода, проблема в задании параметра:
uart.UART_HardwareFlowControl = UART_HardwareFlowControl_None;

В таком случае у Вас запрещена работа и приёмника и передатчика.

Попробуйте:
uart.UART_HardwareFlowControl = UART_HardwareFlowControl_RXE | UART_HardwareFlowControl_TXE;

Так Вы запишите "1" в 8 и 9 биты регистра CR, разрешив работу приёмника и передатчика.

_________________
Отдел технической поддержки support@milandr.ru


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: К1986ВЕ92 не отправляет UART
СообщениеДобавлено: 2019-июн-30 17:29 
Не в сети

Зарегистрирован: 2014-сен-16 11:58
Сообщения: 106
Artem1 писал(а):
Возможно, при беглом просмотре кода, проблема в задании параметра:
uart.UART_HardwareFlowControl = UART_HardwareFlowControl_None;
В таком случае у Вас запрещена работа и приёмника и передатчика.
Попробуйте:
uart.UART_HardwareFlowControl = UART_HardwareFlowControl_RXE | UART_HardwareFlowControl_TXE;
Так Вы запишите "1" в 8 и 9 биты регистра CR, разрешив работу приёмника и передатчика.

Это не помогло. Вообще да, в документации для CR регистра пишется что 8 и 9 биты разрешают работу приемника и передатчика. Но обычно под FlowControl подразумевается всякие RTS/CTS/DTR и тому подобные. Я бы добавил в заголовочники UART_TransmiterEnable и UART_ReceiverEnable с теми же смещениями, иначе это путает, ну ладно.

Следующее что я попробую - обновить компоненты, в примере который работает из HEX-файла там библиотеки новее. Еще что не пробовал - скомпилировать самостоятельно то что мне было прислано, ведь HEX рабочий, а что если скомпилировать его самостоятельно в той среде, что у меня есть сейчас? Попробую отпишусь


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: К1986ВЕ92 не отправляет UART
СообщениеДобавлено: 2019-июл-01 00:29 
Не в сети

Зарегистрирован: 2014-сен-16 11:58
Сообщения: 106
Проверил пересобрать демо проект, и... не работает! Значит, когда железо 100% рабочее, тогда софт проблемный. Пробую обновлять Keil с 5.25 до 5.28a

update:
Обновился до 5.28а, скачал последний пак заново с ic.milandr.ru, всё скомпилировалось (я только байт заменил с AA на A5, чтобы видеть отличие), но после прошивки так и не заработало.

Какое-то непонятное мне отличие, даже в проекте, hex от которого у меня заработало.

Можно ли связаться с техподдержкой, пусть ко мне на виртуалку зайдут через TeamViewer, проверят что не так, если это возможно. Могу в понедельник днем-вечером по московкому времени, не утром


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: К1986ВЕ92 не отправляет UART
СообщениеДобавлено: 2019-июл-01 10:33 
Не в сети

Зарегистрирован: 2009-июл-21 14:13
Сообщения: 1323
Откуда: Тула
LinuxFanatic писал(а):
.... Пробую обновлять Keil с 5.25 до 5.28a
... так и не заработало.

что логично. Думаю компилятор тут не при чём.
Предлагаю: повысить контроль над проектом.
Установите галочки "No Auto Include" в настройках компилятора и ассемблера среды, скопируйте необходимые библиотечные файлы в папку проекта, добавьте их в проект. Это довольно удобно, если требуется LTS проекта и/или требуется передача исходников заказчику или постановка их на учёт.
У меня это выглядит примерно так:
Вложение:
2019-07-01_09-14-39.png
2019-07-01_09-14-39.png [ 26.7 КБ | Просмотров: 651 ]

Примечание: в config.h вставлены определения как сугубо для проекта, так и редактированное содержимое файлов в таком порядке: MDR32F9Qx_board.h, MDR32F9Qx_lib.h, MDR32F9Qx_config.h.

После этого предлагаю ещё раз проверить содержимое файлов исходников (включая стандартные, определения JTAG и т.д.), сравнить их с демо-проектами, примерами, спецификацией. Проект урезать до минимума, что бы там ни казалось.

Скомпилировать, попробовать, если не пойдёт - выложить всё это, а то из архивов выше сделать какое-либо внятное заключение сложно...

_________________
сочувствующий…


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: К1986ВЕ92 не отправляет UART
СообщениеДобавлено: 2019-июл-01 12:48 
Не в сети

Зарегистрирован: 2014-сен-16 11:58
Сообщения: 106
prostoRoman писал(а):
Предлагаю: повысить контроль над проектом

У меня это уже всё было. Сотрудник Миландр-а прислал мне проект и к нему приложен HEX-файл. Прошил - работает. Скомпилировал тот же проект у себя - прошил не работает. Я надеялся что смогу использовать его проект в качестве стартовой точки для своего, но видимо не выйдет


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: К1986ВЕ92 не отправляет UART
СообщениеДобавлено: 2019-июл-01 15:27 
Не в сети

Зарегистрирован: 2009-июл-21 14:13
Сообщения: 1323
Откуда: Тула
LinuxFanatic писал(а):
Я надеялся что смогу использовать его проект в качестве стартовой точки для своего, но видимо не выйдет

Это то и хорошо - сужается область поиска. Если компиляция на Вашем компе ломает рабочий проект, значит дело не в проекте, а в некоторых общих файлах - стандартной библиотеке, *config.h, и т.д...
Если не ломает - пересоздать проекты, сравнить файлы .uvproj и т.д., но это уже, скорее, мистика какая-то...
UPD: Ещё всё ли в порядке с лицензией кейла и "прогнать" бы программу в это месте глядя в дизассемблер кода и в содержимое регистров, и на осцилл (терминал) в момент записи в UARTx->DR.

_________________
сочувствующий…


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: К1986ВЕ92 не отправляет UART
СообщениеДобавлено: 2019-июл-08 09:38 
Не в сети

Зарегистрирован: 2017-апр-26 14:51
Сообщения: 406
Откуда: ПКК "Миландр"
Могу предположить что файл MDR32F9Qx_config.h был скопирован в проект и в нем был закомментирован USE_JTAG_B. При сборке же подтягивается MDR32F9Qx_config.h из библиотеки с активным USE_JTAG_B. Вот пины и не работают. Либо все с точностью до наоборот, а проекте - не измененный, в библиотеке измененный. Однажды с подобным сталкивался.

Файл MDR32F9Qx_config.h из библиотеки защищен от записи, надо снять атрибут read-only с файла чтобы его менять. Проверьте что в дереве проекта, при сборке MDR32F9Qx_port.c (раскрыть дерево на этом файле) подключен файл с закоментированным USE_JTAG_B.

_________________
Отдел технической поддержки support@milandr.ru


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: К1986ВЕ92 не отправляет UART
СообщениеДобавлено: 2019-июл-14 23:39 
Не в сети

Зарегистрирован: 2014-сен-16 11:58
Сообщения: 106
Vasiliy писал(а):
Могу предположить что файл MDR32F9Qx_config.h был скопирован в проект и в нем был закомментирован USE_JTAG_B
Сегодня попробовал подпаяться к UART1 на PORTB (pin 50, 51). Исправил код для UART1 - работает!!!

Я тут подумал, ну что я морочу голову уважаемым людям. Нужно скальпелем перепилить дорожки M0/1/2, подпаяться, чтобы задавать нормальный рабочий режим МК без отладки, а не пытаться что-то комментировать или программно отключать, заниматься черти чем.

Это сложно сделать, но мне придется это сделать. Все равно в исправленной плате потом это будет учтено, разумеется.

Тему можно закрыть. Выяснили что я раньше на отладочных платах не спотыкался об это, а сейчас выбранный мной режим привел к конфликту выводов с JTAG. Поэтому линии не работали. Решение: просто выставлять режим "микропроцессор без отладки" схемотехнически или переключателями если на отладочной плате...

Программный способ отключения JTAG на нужных пинах и даже сброс по watch dog не помог, но не стоит над этим чахнуть. Ну зато с собачатиной разобрался :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: К1986ВЕ92 не отправляет UART
СообщениеДобавлено: 2019-июл-15 08:57 
Не в сети

Зарегистрирован: 2009-июл-21 14:13
Сообщения: 1323
Откуда: Тула
LinuxFanatic писал(а):
Я тут подумал, ну что я морочу голову уважаемым людям. Нужно скальпелем перепилить дорожки M0/1/2, подпаяться, чтобы задавать нормальный рабочий режим МК без отладки, а не пытаться что-то комментировать или программно отключать, заниматься черти чем.
... Выяснили что я раньше на отладочных платах не спотыкался об это, а сейчас выбранный мной режим привел к конфликту выводов с JTAG. Поэтому линии не работали. Решение: просто выставлять режим "микропроцессор без отладки" схемотехнически или переключателями если на отладочной плате...

Программный способ отключения JTAG на нужных пинах и даже сброс по watch dog не помог, но не стоит над этим чахнуть. Ну зато с собачатиной разобрался :)

Подождите-подождите! как LinuxFanatic Вы слишком легко сдаётесь!)))
Честно сказать я не уверен, что правильно понял в чём была причина, поэтому буду благодарен, если вы кратко распишите, что "я хотел сделать то-то в таких-то условиях, а не получилось потому-то". И тогда мы вместе "дожмём" тему - это баг в МК или ещё в чём баг.

_________________
сочувствующий…


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 42 ]  На страницу Пред.  1, 2, 3 Все

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB