roboforum.ru

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

Модуль OR-USB-UART: USB-UART-адаптер

Правила форума
Правила раздела OpenRobotics

Модуль OR-USB-UART: USB-UART-адаптер

=DeaD= » 17 май 2010, 12:25

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

Подробная информация по модулю на странице: [[OR-USB-UART]]

Все вопросы дальнейшей доработки модуля и почему были выбраны те или иные технические решения - в теме forum73/topic7419.html.

Re: Модуль OR-USB-UART: USB-UART-адаптер

ALHIMIK » 11 июл 2010, 16:22

Правильно ли я понимая что к jp1 можно смело подключать 5В уарт и брать питание с USB ?

Re: Модуль OR-USB-UART: USB-UART-адаптер

=DeaD= » 11 июл 2010, 16:26

5В будут, а вот будет ли уарт работать - там какая-то фенька была помню с переходом уарта с 3.3В на 5В, я её так и не вкурил, так что может она тут тоже пагубную роль сыграет. Схемы все выложены - у меня переход с 3.3В на 5В обычными резисторными делителями сделан.

Re: Модуль OR-USB-UART: USB-UART-адаптер

jeka » 26 июл 2010, 14:46

Нужны ли какие-то специфические настройки программатора в avrdude для прошивки ORFA?

Пытаюсь прошить OR-AVR-M128-S. Вызываю avrdude вот например так -
-p m128 -c avr911 -P com3 -b 115200 -U flash:w:"C:\Users\Jeka\Desktop\Робототехника\ORFA\orfa_v0.8.2_or-avr-m128-s_master_bauto_pv1.1.hex":i -U signature:r:con:r -F -v

Получаю

avrdude.exe: error: buffered memory access not supported. Maybe it isn't
a butterfly/AVR109 but a AVR910 device?

Кто-нибудь сталкивался? Какие есть способы диагностики, чтобы определить почему неработает?

Re: Модуль OR-USB-UART: USB-UART-адаптер

Vooon » 30 июл 2010, 01:28

make program!

local_config.mk:
Код: Выделить всёРазвернуть
#--------------------------------------------------------------------
## Programmer
## ==========
## Avrdude programmer flags used by `make program`

##- AVR Dragon (default)
#PROGRAMMER = dragon_isp
#PROGRAMMER_PORT = usb

##- Bootloader
##  AVR910 compatible w/ 115200 baud rate
#PROGRAMMER = avr109 -b115200
#PROGRAMMER_PORT = /dev/ttyUSB0

Re: Модуль OR-USB-UART: USB-UART-адаптер

=DeaD= » 30 июл 2010, 08:01

Интересно, как я это сообщение проморгал :o

jeka писал(а):Пытаюсь прошить OR-AVR-M128-S. Вызываю avrdude вот например так -
-p m128 -c avr911 -P com3 -b 115200 -U flash:w:"C:\Users\Jeka\Desktop\Робототехника\ORFA\orfa_v0.8.2_or-avr-m128-s_master_bauto_pv1.1.hex":i -U signature:r:con:r -F -v

Получаю

avrdude.exe: error: buffered memory access not supported. Maybe it isn't
a butterfly/AVR109 but a AVR910 device?

Может быть RESET не нажали перед тем как программировать или COM-порт не тот указан?

Re: Модуль OR-USB-UART: USB-UART-адаптер

blindman » 30 июл 2010, 08:43

2DeaD - а бутлоадеры ты туда какие заливал?

Re: Модуль OR-USB-UART: USB-UART-адаптер

=DeaD= » 30 июл 2010, 08:51

Вот эти: post160299.html#p160299
Навскидку не могу найти ссылку на исходники, дома лежат, там гляну откуда я их взял.

Re: Модуль OR-USB-UART: USB-UART-адаптер

blindman » 30 июл 2010, 09:06

jeka писал(а):Кто-нибудь сталкивался? Какие есть способы диагностики, чтобы определить почему неработает?

Для начала показать полностью вывод avrdude

Re: Модуль OR-USB-UART: USB-UART-адаптер

jeka » 31 июл 2010, 00:25

Спасибо что отозвались :) На самом деле есть вероятность что я плохо обжал шлейф. Так что пока пытаюсь проверить что сигналы вообще доходят до avr-а.

Re: Модуль OR-USB-UART: USB-UART-адаптер

MaPTbIH » 15 авг 2011, 17:16

Итак, принимаю сообщения на компьютер с OR-AVR-M32-D через OR-USB-UART на компьютер. На компе принимаю с помощью прогой Terminal (в ней подцепляюсь, допустим к COM5 на скорости 115200). МК сообщения отправляет, Terminal на компе принимает, а вот МК принять сообщение от компа не хочет - останавливается до исполнения scanf ("%d",&TestInt);

Мой кусочек:
Код: Выделить всёРазвернуть
int TestInt=256;
   
  uart_init();
  stdout = stdin = &uart_str;
  printf("Linetracer ready 1!\n Ohh, yeah!\n");
  printf("This program created to test modified HXT900, you welcome!\nType me first int from which value I have to test:");
  scanf ("%d",&TestInt);
  printf("You choosed - %d\n",TestInt);


Соответственно сообщения "You choosed - что-там" не появляется. МК просто ждет далее. На терминале отправляю "50" и ничего, МК ждет и ждет.

Ломаю голову...

Re: Модуль OR-USB-UART: USB-UART-адаптер

=DeaD= » 15 авг 2011, 17:40

Еще бы библиотеку увидеть, которую вы используете...

Re: Модуль OR-USB-UART: USB-UART-адаптер

MaPTbIH » 15 авг 2011, 17:55

Вашу же, это исходный код с OR-LT-v2 или Linetracer-hxt900-src.zip, библиотека uart.c там же.

Re: Модуль OR-USB-UART: USB-UART-адаптер

=DeaD= » 15 авг 2011, 18:02

И еще хотелось бы тогда не кусочек, а всю программу, пусть урезанную, но тем не менее, может у вас там поток неверно объявлен.

Re: Модуль OR-USB-UART: USB-UART-адаптер

MaPTbIH » 15 авг 2011, 18:11

Пожалуйста

Код: Выделить всёРазвернуть
#include "defines.h"

#include <ctype.h>
#include <stdint.h>
#include <stdio.h>
#include <string.h>

#include <avr/interrupt.h>

#include <util/delay.h>

#include "uart.c"


FILE uart_str = FDEV_SETUP_STREAM(uart_putchar, uart_getchar, _FDEV_SETUP_RW);

int main(void)
{
  int TestInt=256;
   
  uart_init();
  stdout = stdin = &uart_str;
  printf("Linetracer ready 1!\n Ohh, yeah!\n");
  printf("This program created to test modified HXT900, you welcome!\nType me first int from which value I have to test:");
  scanf ("%d",&TestInt);
  printf("You choosed - %d\n",TestInt);


  DDRC=0x20;//0010 0000
  DDRD=0x30;//0011 0000

  _delay_ms(1000);
 


  //PWM, Phase and frequency correct, TOP=ICR1
  TCCR1A=0xA0; //clear on up-counting, set on down-counting 1010 0000
  TCCR1B=0x12; //Clock prescaler 1/8 0001 0010
  ICR1=9216;  //Set 50Hz frequency   
  //uint16_t baseA=(153*2+1)*23/10;
  //uint16_t baseB=(153*2+1)*23/10;
 

 
  ///* тест сервы
  uint16_t baseA=0;
  uint16_t baseB=0;
  OCR1A=baseA;
  OCR1B=baseB;
 
  DDRC=0xFF;
  PORTC=0xFF;
  int IsLED_C5_On=1;
  //1050 1200
 
   
      for (int i=200; i<500; i+=25)
      {
         baseA=i;
         _delay_ms(250);
         OCR1A=baseA;
         printf("i=%d\n",i);
         //OCR1B=baseA;
         
         if (IsLED_C5_On==1) {PORTC=0x00;IsLED_C5_On=0;}else{PORTC=0xFF;IsLED_C5_On=1;}
      }
      
   baseA=0;
   OCR1A=baseA;
   OCR1B=baseA;
   PORTC=0x00;
  while(1==1)
   {   
   } //Конец теста сервы*/
 
}



cron
Rambler\'s Top100 Mail.ru counter