Easyelectronics.ru

Электроника для всех
Текущее время: 19 ноя 2018, 10:25

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



    • JLCPCB - Прототипы 10 PCBs всего за 2$ (100*100mm, 2-layer)
    • Как мы делаем платы, смотрите на YouTube
    • Крупнейшая китайская фабрика прототипов. 300000+ заказчиков и 10000+ заказов в день!
    • LCSC - Крупнейший китайский онлайн магазин комплектующих.

Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
 Заголовок сообщения: ADuC 845
СообщениеДобавлено: 30 мар 2016, 15:15 
Только пришел

Зарегистрирован: 26 фев 2016, 17:26
Сообщения: 22
Здравствуйте. Пытаюсь прошить ADuc 845 программой WSD. Через программу терминал видно, что данные через COM-порт доходят до микросхемы MAX232 пин R1in, с пина R1out доходят до RxD ADuC'а. То есть связь с компьютером есть. Но прошить через WSD не получается. Пишет Failed to connect to the ADuC8xx after 2 attempts. Частота кристалла в WSD выставлена стандартная, если к плате припаять кварц на 32.768 КГц, то частота на кварце есть, если припаять 11.0592 Мгц, то частоты нет. Вывод PSEN через джампер и подключен к земле. В чем может быть дело?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ADuC 845
СообщениеДобавлено: 30 мар 2016, 15:27 
Старожил
Аватара пользователя

Зарегистрирован: 27 апр 2011, 07:50
Сообщения: 404
Для программирования вывод PSEN должен быть закорочен на землю перед подачей питания. Кварц должен быть на 32.768 КГц. Схема подключения ADuC845 должна быть правильной. В конфигурации WSD должен быть выбран правильный ком-порт. После сброса через кнопку в WSD должна установиться связь с ADuC.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ADuC 845
СообщениеДобавлено: 30 мар 2016, 15:45 
Только пришел

Зарегистрирован: 26 фев 2016, 17:26
Сообщения: 22
вывод PSEN должен быть закорочен на землю перед подачей питания +
кварц должен быть на 32.768 КГц +
схема подключения ADuC845 должна быть правильной +
в конфигурации WSD должен быть выбран правильный ком-порт +
после сброса через кнопку в WSD должна установиться связь с ADuC -


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ADuC 845
СообщениеДобавлено: 30 мар 2016, 16:05 
Старожил
Аватара пользователя

Зарегистрирован: 27 апр 2011, 07:50
Сообщения: 404
retterberg писал(а):
в конфигурации WSD должен быть выбран правильный ком-порт +

Как было определено правильность этого пункта?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ADuC 845
СообщениеДобавлено: 30 мар 2016, 16:09 
Только пришел

Зарегистрирован: 26 фев 2016, 17:26
Сообщения: 22
У меня 2 COM-порта. Если выбрать COM-порт отличный от 1 или 2. То пишет в Status: Failed. Если 1 или 2, то пишет Failed to connect to the ADuC8xx after 2 attempts. Значит порт или 1 или 2. В терминале когда связываюсь с MAX232, вижу, что COM-порт номер 1.

Сигналы на RxD поступают.
С TxD не выходят.
Не прошивается все равно.
Download failed whit error code 4.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ADuC 845
СообщениеДобавлено: 24 июн 2016, 11:40 
Только пришел

Зарегистрирован: 26 фев 2016, 17:26
Сообщения: 22
Дабы не создавать новую тему, отпишу здесь.
Не получается корректно собрать из 2 char 1 int.

1) unsigned char one = 253;
unsigned char two = 123;
unsigned int result;
unsigned char p[8];

result = ( one << 8 ) + two;

// ну или так
result = ( one * 256 ) + two;

sprintf( p, "%d", result);

write_string(p); // на экране появилось "-645"

// чтооо? отрицательный unsigned???

2) unsigned char p[8];
union Data
{
unsigned int result;
unsigned char cData[2];
}un;

un.cData[0] = 253;
un.cData[1] = 123;

sprintf( p, "%d", un.result);

write_string(p);
// результат аналогичный "-645"


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ADuC 845
СообщениеДобавлено: 24 июн 2016, 11:47 
Старожил
Аватара пользователя

Зарегистрирован: 27 апр 2011, 07:50
Сообщения: 404
sprintf( p, "%u", result);


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ADuC 845
СообщениеДобавлено: 24 июн 2016, 11:59 
Только пришел

Зарегистрирован: 26 фев 2016, 17:26
Сообщения: 22
ой, вот я дурак
спасибо)

но все равно странно
две unsigned переменные
а sprintf из за "%d" делает все что ей вздумается

кстати в прошлой проблеме оказался горелый контроллер)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ADuC 845
СообщениеДобавлено: 22 дек 2017, 20:01 
Только пришел

Зарегистрирован: 08 июл 2013, 17:00
Сообщения: 24
Была в Кейле такая особенность... Попробую объяснить. Если функция объявлена как принимающая разное число параметров, то компилятор при вызове такой функции передаёт ей char как висьмибитную переменную. А вот _printf ждёт, что за "%d" будет шестнадцатибитное значение. Поэтому, или укажите в опциях компилятора использовать совместимость с int (есть там чё-то такое), или пишите так:

char byte;
....
sprintf( str, "%d", (int)byte );

То есть сделайте явное приведение типа. И все странности как рукой снимет!


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 9 ] 

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


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

Сейчас этот форум просматривают: sdv_cyborg


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

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB