feng_matrix 发表于 2008-6-3 09:36:57

为调试3轴陀螺仪新做了一个转接口【TWI转UART串口】

为了调试三轴陀螺仪/加速度计,新做了一个【TWI转UART串口】的转接口
将陀螺仪输出的TWI信号转换成PC机DB9就可以接收的串口信号
然后由上位机将6路数字采样值反应在PC屏幕上

还是用孔孔板焊,省点打样钱
http://cache.amobbs.com/bbs_upload782111/files_10/ourdev_299874.JPG
(原文件名:CIMG0008.JPG)

一片MAX232、一片M8、一个DB9母口
http://cache.amobbs.com/bbs_upload782111/files_10/ourdev_299875.JPG
(原文件名:CIMG0009.JPG)

焊好完成后,都是线难看了点
留了ISP接口方便修改程序,两个LED,一个做电源指示,一个做通信指示
http://cache.amobbs.com/bbs_upload782111/files_10/ourdev_299876.JPG
(原文件名:CIMG0010.JPG)

my_avr 发表于 2008-6-3 11:09:38

等待下文.................

feng_matrix 发表于 2008-6-3 11:16:49

原理图参考坛子里 eastboy 做的 “串口STK500”
./bbs_upload38916/files_5/armok01109106.gif

jimtien 发表于 2008-6-3 14:30:09

装修卖场有卖,但不是这个牌子。

feng_matrix 发表于 2008-6-3 14:35:43

to : 【3楼】 jimtien

装修卖场?

feng_matrix 发表于 2008-6-3 22:19:08

搞了一晚上,和PC的串口通信一直有问题,就在【数据寄存器空】中断中发送一个字符
除了0x00,和0xFF 发送到PC机是正确的,其它任何信息都是错误的
这次没用汇编,用WINAVR写的,真是郁闷啊!

串口初时化如下:

//############################################################################
// USART initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART Receiver: On
// USART Transmitter: On
// USART Mode: Asynchronous
// USART Baud rate: 9600
void ut_init (void)
//############################################################################
{
        //Enable TXEN im Register UCR TX-Data Enable & RX Enable
        UCSRB |= (1 << RXCIE)|(1 << TXCIE)|(1 << UDRIE)|(1 << RXEN)|(1 << TXEN);
        //UCSRB = 0XD8;

        UCSRC |= (1 << URSEL)|(1 << UCSZ1)|(1 << UCSZ0);
        //UCSRC = 0x86;
       
        //计算波特率(SYSCLK用外部晶振7.3728MHz)
        UBRRL= (SYSCLK / (BAUD_RATE * 8L) -1 );

}

love12345 发表于 2008-6-3 23:12:20

给你一个建议,安装cvavr,然后使用它的程序生成向导,可以帮你生成中断带缓冲的串口通信,TWI也如此。基本上生成的代码改改中断函数的定义方式就能在GCC上用,会很方便的。

feng_matrix 发表于 2008-6-4 09:13:01

呵呵,没用过程序生成向导啊
不过已经发现问题了:
波特率计算公式 UBRRL= (7.3728MHz / (9600 * 8L) -1 ) = 95
查DATASHEET表,95是需要两倍速标志置位,不置位时应该47
所以修改很简单,在初始化中加入即可:

// UART Double Speed (U2X)
UCSRA |= (1<<U2X);

http://cache.amobbs.com/bbs_upload782111/files_10/ourdev_300774.jpg
(原文件名:UART.jpg)

steamed410 发表于 2008-6-4 16:00:32

我反正比较推荐CVavr,我马上从云南出差回成都了,回来就跟着楼主一起做!

feng_matrix 发表于 2008-6-4 17:14:35

to : 【8楼】 steamed410 周炜

跟我做?你是说做这个转接口吗?

steamed410 发表于 2008-6-4 18:57:14

从3轴陀罗到电调到转接口,我就是5imx的“想飞的馒头”,哈哈,看了你做3轴陀罗的帖子追到5imx又再追回到ouravr,哈哈,我比较菜,觉得跟着大家走学习起来比较快

feng_matrix 发表于 2008-6-4 20:26:56

哦,原来是你呀!

steamed410 发表于 2008-6-6 08:05:47

就是我啦,已经在准备买东西的说啦,ADXL330还有ENC03,我接触单片机不久,也是在阿莫这里买的,本来也经常出差,用了很长的时间才学把M16的基本功能学了遍,现在能基本掌握M16,就是准备看很多东西要向你请教了,你的电调板和3轴陀罗板能不能给我套,我自己买其他的传感器和M8,这样就可以跟着你做了,程序我先写,写好了试试,再给你看看,你帮我指点下,你是实干的人,我愿意跟你学!就收下徒弟吧!

feng_matrix 发表于 2008-6-6 09:58:44

to :【12楼】 steamed410 周炜

呵呵,别说什么收徒,根本谈不上,我自己也是业余瞎搞单片机的,有兴趣大家一起玩就是了
只要你确实自己肯动手做的,电调板和陀螺仪板都可以给你的
不过建议你不要在电调板上花更多精力了,M8做的I2C电调全套软硬件我已经调试差不多了
可以直接应用在4轴或其它航模上了,详细可以看这个帖子:
TWI总线无刷电调PCB板

更专业的AT90PWM3无刷电调“ kingofkings 技术火腿(KoK)”在领导做
他是高人,大家只要跟着开源进程走就可以了
<font color=green>四轴飞行项目的第一个拆解部分: 无刷电机的驱动 (使用AT90PWM3芯片),请大家提供无刷电机型号
页: [1]
查看完整版本: 为调试3轴陀螺仪新做了一个转接口【TWI转UART串口】