查看: 21148|回复: 7

[求助] 树莓派的SPI接口怎样驱动才能冲上35MBit/s?

[复制链接]
  • TA的每日心情
    开心
    2012-12-16 23:38
  • 签到天数: 5 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    发表于 2012-12-3 00:07:51 | 显示全部楼层 |阅读模式
    分享到:
    本帖最后由 shamiao 于 2012-12-3 01:11 编辑

    123.jpg

    最近在折腾一个320x240 3.2寸TFT(SSD1289主控)液晶屏,16位并口的,无奈只能用两片74hc595spi转并行驱动
    但是很郁闷的是:SPI接口速度一直很慢。刷新整个一个屏幕需要几秒钟,只能勉强显示静态图片,完全无法作为实用的显示器。

    一帧的数据量是150KiBytes,刷新率30fps,那么我期待的SPI传输速率应该至少有35.2MBits/s。
    BCM2835的SPI时钟,最高支持到125MHz,所以我猜冲上这个速率应该是没有问题的。但是我就是写不出来。

    以下是我通过SPI接口发送一帧(150KiBytes)的测试代码。这个代码我不管SPI口上接了什么了,只期待1/30s内运行完就行。而现在需要两三秒种,差得很远啊。求高人指导:怎样写才能达到期待的传输速率?
    #include <stdlib.h>
    #include <unistd.h>
    #include <stdio.h>
    #include <bcm2835.h> //BCM2835 C Library: http://www.open.com.au/mikem/bcm2835/index.html

    int main()
    {
            int i;
            if (!bcm2835_init()) {
                    fprintf(stderr, "Unable to init BCM2835 library. Are you root? \n");
                    exit(1);
            }
            
            bcm2835_spi_begin();
        bcm2835_spi_setBitOrder(BCM2835_SPI_BIT_ORDER_MSBFIRST);
        bcm2835_spi_setDataMode(BCM2835_SPI_MODE3);
        bcm2835_spi_setClockDivider(BCM2835_SPI_CLOCK_DIVIDER_2);
        bcm2835_spi_chipSelect(BCM2835_SPI_CS0);
        bcm2835_spi_setChipSelectPolarity(BCM2835_SPI_CS0, LOW);
            
            for (i=0;i<153600;i++) bcm2835_spi_transfer(0x00);
            
            bcm2835_spi_end();
            bcm2835_close();
            return 0;
    }


    回复

    使用道具 举报

  • TA的每日心情
    开心
    2012-12-16 23:38
  • 签到天数: 5 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    发表于 2012-12-3 01:13:26 | 显示全部楼层
    powerdruy 发表于 2012-12-3 00:20
    时钟倍频的设置对了么,分配给SPI的频率设置了么

    bcm2835_spi_setClockDivider(BCM2835_SPI_CLOCK_DIVIDER_2);
    SPI分频器是设置了
    时钟倍频是什么?我记得数据表里说,SPI的时钟频率,只能从核心频率250MHz分频
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2014-6-9 07:09
  • 签到天数: 81 天

    连续签到: 1 天

    [LV.6]常住居民II

    发表于 2012-12-3 20:35:47 | 显示全部楼层
    ddddddddddddddd
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2012-12-16 23:38
  • 签到天数: 5 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    发表于 2012-12-4 23:34:45 | 显示全部楼层
    要沉了……求开发者帮忙,谢谢~
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2013-2-26 12:37
  • 签到天数: 45 天

    连续签到: 1 天

    [LV.5]常住居民I

    发表于 2012-12-6 11:01:16 | 显示全部楼层
    看起来很酷啊
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2013-3-4 18:23
  • 签到天数: 19 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    发表于 2012-12-7 09:58:12 | 显示全部楼层
    好高端啊,手机的屏幕应该都不是用SPI接口的吧
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2013-6-25 11:36
  • 签到天数: 76 天

    连续签到: 1 天

    [LV.6]常住居民II

    发表于 2012-12-7 10:30:59 来自手机 | 显示全部楼层
    高人看不懂。。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2014-4-27 13:53:18 | 显示全部楼层
    树莓派(Raspberry Pi) 是可以通过SPI和IO口驱动普通的TFT彩屏的

    并且可以实现让Raspbian系统在屏幕上显示

    附上显示效果地址
    http://item.taobao.com/item.htm? ... &id=37258572611

    已经有人把驱动做好



    你可以看这个

    http://item.taobao.com/item.htm? ... &id=37258572611

    可以买个回去试试,应该是超过你的预期的
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条



    手机版|小黑屋|与非网

    GMT+8, 2024-11-19 14:36 , Processed in 0.182725 second(s), 29 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.