roboforum.ru

Технический форум по робототехнике.

Elmot - профессия - дилетант

Блоги посетителей.
Правила форума
В данном разделе каждый может иметь не более одной темы. Тема должна начинаться с логина (ника) робофорума.

Re: Elmot - профессия - дилетант

Сообщение elmot » 29 дек 2013, 12:38

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


Сделано еще проще - перекинул питание вентилятора на линию +5В. Он еле шевелится, конечно, но БП реально холодный.


Теперь другая проблема - UART на STM32F0-Discovery упорно теряет данные.
Если отправляю через Putty, то все ОК, если в винде
Код: Выделить всёРазвернуть
copy /b a.txt \\.\com22

или в линуксе
Код: Выделить всёРазвернуть
cat a.txt > /dev/ttyUSB0

То теряется примерно треть байтов. Причем и на 9600, и на 230400.
Прерываний по overrun не получаю, флагов ошибок нет.
Код такой:
Код: Выделить всёРазвернуть
void UART_Config(void)
{
  USART_InitTypeDef usartInit;
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);
  usartInit.USART_BaudRate = 9600;
  usartInit.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
  usartInit.USART_Mode = USART_Mode_Rx;
  usartInit.USART_Parity = USART_Parity_No;
  usartInit.USART_StopBits = USART_StopBits_1;
  usartInit.USART_WordLength = USART_WordLength_8b;
  USART_Init(USART1, &usartInit);

  USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);
  USART_ITConfig(USART1, USART_IT_ORE, ENABLE);
  USART_ITConfig(USART1, USART_IT_NE, ENABLE);
  USART_ITConfig(USART1, USART_IT_FE, ENABLE);
  USART_ITConfig(USART1, USART_IT_ERR, ENABLE);

  USART_AutoBaudRateCmd(USART1, DISABLE);
  USART_OverrunDetectionConfig(USART1,ENABLE);
  USART_Cmd(USART1, ENABLE);
}

void USART1_IRQHandler()
{
   if(USART1->ISR & (USART_FLAG_ORE | USART_FLAG_NE | USART_FLAG_FE)) {
      USART_ClearFlag(USART1, USART_FLAG_RXNE |  USART_FLAG_ORE | USART_FLAG_NE | USART_FLAG_FE);
      resetPointers();
      return;
   }

   uint32_t c;
   while(USART1->ISR & USART_FLAG_RXNE)
   {
      c = USART1->RDR;

      framePointer++;

   }
   return;
}


Есть идеи, как это вылечить?
Аватара пользователя
elmot
 
Сообщения: 5691
Зарегистрирован: 10 ноя 2011, 12:02
Откуда: Turku, Finland
Skype: elmot73
прог. языки: Java и все-все=все
ФИО: Илья

Re: Elmot - профессия - дилетант

Сообщение elmot » 31 дек 2013, 00:20

Вот это номер! Оказывается чип silicon labs cp210x - тупо глючный. на длинных передачах теряет байты. Шарман просто! Заменил на пролифик - тут же проблема исчезла
Аватара пользователя
elmot
 
Сообщения: 5691
Зарегистрирован: 10 ноя 2011, 12:02
Откуда: Turku, Finland
Skype: elmot73
прог. языки: Java и все-все=все
ФИО: Илья

Re: Elmot - профессия - дилетант

Сообщение dccharacter » 02 янв 2014, 22:17

ээээ
А вот это что такое:
uint32_t c;
....
c = USART1->RDR;

Это ты фигачишь в переменную пришедшие символы (причем в прерывании). А кто их потом оттуда забирает и когда?

Чо ты кольцевой буффер-то не используешь? Или вообще ДМА?
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.
Аватара пользователя
dccharacter
 
Сообщения: 4995
Зарегистрирован: 10 дек 2010, 13:16
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей

Re: Elmot - профессия - дилетант

Сообщение elmot » 02 янв 2014, 23:57

Это отладочный вариант программы. Я просто читал регистр данных для очистки флагов uart - данные никуда не шли, я просто не мог понять, почему теряются байты. теперь, когда понял, что глючит usb-uart, заменил-поправил и там уже нормальный код. Буфера тама нет, сразу в прерывании байт разламываю на биты и распихиваю куда надо. Байты на скорости 230400 не теряются, оверранов нет. Надо бы еще скорость поднять, но уже наверное будут потери.
Аватара пользователя
elmot
 
Сообщения: 5691
Зарегистрирован: 10 ноя 2011, 12:02
Откуда: Turku, Finland
Skype: elmot73
прог. языки: Java и все-все=все
ФИО: Илья

Re: Elmot - профессия - дилетант

Сообщение dccharacter » 03 янв 2014, 07:33

Тут какая-то лажа. Замкни на цп210х выход на вход и отправь опять туда данные. И посмотри что придет. Без всяких СТМ32
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.
Аватара пользователя
dccharacter
 
Сообщения: 4995
Зарегистрирован: 10 дек 2010, 13:16
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей

Re: Elmot - профессия - дилетант

Сообщение elmot » 03 янв 2014, 08:27

Примерно так и сделал. Только что замкнул cp210x на другой usb-uart. И получил потерянные байты. Вот и вся лажа. Вот только я не знаю, где лажа - конкретный экземпляр чипа кривой, все они кривые или драйвера дурят.
Аватара пользователя
elmot
 
Сообщения: 5691
Зарегистрирован: 10 ноя 2011, 12:02
Откуда: Turku, Finland
Skype: elmot73
прог. языки: Java и все-все=все
ФИО: Илья

Re: Elmot - профессия - дилетант

Сообщение elmot » 25 янв 2014, 19:48

CoIDE только у меня безбожно виснет или это общая проблема?
Аватара пользователя
elmot
 
Сообщения: 5691
Зарегистрирован: 10 ноя 2011, 12:02
Откуда: Turku, Finland
Skype: elmot73
прог. языки: Java и все-все=все
ФИО: Илья

Re: Elmot - профессия - дилетант

Сообщение Angel71 » 25 янв 2014, 22:10

вроде не висла, хотя я её быстро стёр :) кейл в общем поприятней
Аватара пользователя
Angel71
 
Сообщения: 10668
Зарегистрирован: 18 апр 2009, 22:18
Предупреждения: -1

Re: Elmot - профессия - дилетант

Сообщение elmot » 25 янв 2014, 22:21

Все хлам. Напроситься чтоле в JetBrains, чтоб быстрее напилили свою среду...
Аватара пользователя
elmot
 
Сообщения: 5691
Зарегистрирован: 10 ноя 2011, 12:02
Откуда: Turku, Finland
Skype: elmot73
прог. языки: Java и все-все=все
ФИО: Илья

Re: Elmot - профессия - дилетант

Сообщение elmot » 01 фев 2014, 11:54

Переключился на тариф для "почетных абонентов" - 3 года на одном и том же провайдере. 50мбит за 10 баксов в месяц - и мне все нравится!
Изображение
Аватара пользователя
elmot
 
Сообщения: 5691
Зарегистрирован: 10 ноя 2011, 12:02
Откуда: Turku, Finland
Skype: elmot73
прог. языки: Java и все-все=все
ФИО: Илья

Re: Elmot - профессия - дилетант

Сообщение Angel71 » 01 фев 2014, 16:02

на пару десятков км по оптике. :D не не не, так не пойдёт. :) пинг хороший, совсем без роутера или что-то из нормального на подобии linksys?
Аватара пользователя
Angel71
 
Сообщения: 10668
Зарегистрирован: 18 апр 2009, 22:18
Предупреждения: -1

Re: Elmot - профессия - дилетант

Сообщение elmot » 01 фев 2014, 17:10

Заурядный netgear
Аватара пользователя
elmot
 
Сообщения: 5691
Зарегистрирован: 10 ноя 2011, 12:02
Откуда: Turku, Finland
Skype: elmot73
прог. языки: Java и все-все=все
ФИО: Илья

Re: Elmot - профессия - дилетант

Сообщение elmot » 23 апр 2014, 17:00

Аватара пользователя
elmot
 
Сообщения: 5691
Зарегистрирован: 10 ноя 2011, 12:02
Откуда: Turku, Finland
Skype: elmot73
прог. языки: Java и все-все=все
ФИО: Илья

Re: Elmot - профессия - дилетант

Сообщение Myp » 23 апр 2014, 17:43

а зачем вы шар до упора надували?
чем сильнее надут тем ниже поднимется.

вон как матёрые запускатели делают.
Изображение
чуть чуть газу чтоб тока тока оторвался, остальное запас для расширения.
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!
Аватара пользователя
Myp
скрытый хозяин вселенной :)
 
Сообщения: 18018
Зарегистрирован: 18 сен 2006, 12:26
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич

Re: Elmot - профессия - дилетант

Сообщение elmot » 24 апр 2014, 09:27

Зависит от материала. Латексные метеозонды _обычно_ прекрасно тянутся, поэтому их нормально надувают. А вот большие стратостаты - из прорезиненной тряпки, не тянутся.
Аватара пользователя
elmot
 
Сообщения: 5691
Зарегистрирован: 10 ноя 2011, 12:02
Откуда: Turku, Finland
Skype: elmot73
прог. языки: Java и все-все=все
ФИО: Илья

Пред.След.

Вернуться в Блоги

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

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