搜索
bottom↓
回复: 41
打印 上一主题 下一主题

LGTSDK Builder update, support LGT8F88D/SSOP20L

[复制链接]

出0入0汤圆

跳转到指定楼层
1
发表于 2015-9-25 18:40:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 LGT 于 2015-11-16 14:16 编辑

为了方便大家手上,以及进行功能测试,建议用SDKBuilder生成硬件配置。



更新ADC enable/disable宏定义的bug, 多谢aytc100的提醒:
已下载beta5,也可以直接在sdk/LGTxxxx/inc/DrvADC.h中自行修改#define enableADC()/disableADC()
这个宏定义函数在beta6之前的版本中反了。



更新增加了beta6中缺失的PMCXR寄存器定义,已下载beta6可以直接将PMXCR的定义加到
sdk/LGT8F88D/inc/lgt8f88d_spec.h中:
             #define PMXCR        (*((volatile unsigned char *)0xEE))



更新修改了SPI模式配置的bug, 之前SPI配置也,Slave/Master模式选择的注释说明是反的。


[2015-10-09]
更新了外部晶振配置以及针对IAR环境下的一些BUG (LGT8F88D/328D)


[2015-10-18]
更新了IAR 6.x识别88D的问题,修改了PB3配置/SPI端口方向和SPI/SPSS配置的BUG


[2015-11-13]
更新了X8D/SSOP20L封装引脚配置的错误, 更新了系统时钟切换部分的SDK


[2015-11-16]
更新了X8D中WDT唤醒以及设置的相关错误。


LGT8FX8D编程手册更新:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

2
发表于 2015-9-27 02:00:09 | 只看该作者
ADC使能反了的那个bug已经修了吧

出0入0汤圆

3
 楼主| 发表于 2015-9-27 07:54:26 | 只看该作者
aytc100 发表于 2015-9-27 02:00
ADC使能反了的那个bug已经修了吧

多谢提醒, 已更新。

出0入10汤圆

4
发表于 2015-9-28 11:16:59 | 只看该作者
beta6.  在自动生成的代码里面, 有个PMXCR寄存器,在编译的时候提示未定义,看了下头文件,应该是PMCR吧。

出0入0汤圆

5
 楼主| 发表于 2015-9-28 13:02:08 来自手机 | 只看该作者
不是,这个头文件里加上了啊,奇怪,我检查下!

出0入0汤圆

6
 楼主| 发表于 2015-9-28 15:58:30 | 只看该作者
mmiker 发表于 2015-9-28 11:16
beta6.  在自动生成的代码里面, 有个PMXCR寄存器,在编译的时候提示未定义,看了下头文件,应该是PMCR吧。 ...

已经更新, 可能是程序打包时用了错误的问题, 已经加上。
非常感谢!

出0入0汤圆

7
发表于 2015-9-29 00:00:07 | 只看该作者
SPI 初始化部分的BUG还没解决啊?

UI上默认是SPI MASTER,但生成的代码默认模式是SPI SLAVE

上次我就因为这个问题折腾了几天。。

enum emSpiMode
{
        E_SPI_SLAVE = 0x0,                  /**< Select SPI Master mode */
        E_SPI_MASTER                        /**< Select SPI Slave mode */
};



void DrvSPI_Init(void)
{
        // SCK,MISO,MOSI,SS = PB[5,4,3,2]
        if(SPI_SPIM == E_SPI_MASTER)
        {
                // SS = 1
                PORTB = (PORTB & 0xc3) | 0x4;
                // SCK,MISO,MOSI,SS = O,I,O,O
                DDRB = (DDRB & 0xc3) | 0x2c;
        }
        else
        {
                PORTB = (PORTB & 0xc3);
                // SCK,MISO,MOSI,SS = O,I,O,O
                DDRB = (DDRB & 0xc3) | 0x10;
        }
        //
        SPCR = (SPI_SPIIEN << SPIE) | (SPI_SPIDORD << DORD) | (SPI_SPITYPE << CPHA) | \
                        (SPI_SPIM << MSTR) | ((SPI_SPICLK & 0x3) << SPR0);
        //
        SPSR = (SPI_SPICLK >> 2) & 1;
        //
        SPCR |= (1 << SPE);
}


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

8
 楼主| 发表于 2015-9-29 13:15:28 | 只看该作者
duanll 发表于 2015-9-29 00:00
SPI 初始化部分的BUG还没解决啊?

UI上默认是SPI MASTER,但生成的代码默认模式是SPI SLAVE

多谢, 我们尽快更新。

出0入0汤圆

9
 楼主| 发表于 2015-9-29 14:26:47 | 只看该作者
duanll 发表于 2015-9-29 00:00
SPI 初始化部分的BUG还没解决啊?

UI上默认是SPI MASTER,但生成的代码默认模式是SPI SLAVE

已更新, 非常感谢!

出0入0汤圆

10
发表于 2015-9-30 09:03:33 | 只看该作者
不错,非常感谢

出0入4汤圆

11
发表于 2015-9-30 09:21:18 | 只看该作者
NB,一段时间没关注,这么先进了

出0入0汤圆

12
 楼主| 发表于 2015-10-9 20:18:48 | 只看该作者
软件更新, 请参考顶楼。

出0入0汤圆

13
发表于 2015-10-10 22:26:28 | 只看该作者
8AD+2DA,拿来做电源相当不错啊。两个DAC一个电压一个电流,ADC提供给显示。
PS:官方淘宝店里面的开发工具没了。

出0入0汤圆

14
发表于 2015-10-10 22:34:55 | 只看该作者
下载了楼主位的软件,pin设置页面,DAC无法选择(左键点击后没反映,无弹出框)。

出0入0汤圆

15
发表于 2015-10-10 23:00:37 | 只看该作者
fengxin32 发表于 2015-10-10 22:26
8AD+2DA,拿来做电源相当不错啊。两个DAC一个电压一个电流,ADC提供给显示。
PS:官方淘宝店里面的开发工具 ...

这个位大侠对电源在行呀,能用LGT8F88D 弄个电源不,开源给我们学习学习。

出0入0汤圆

16
发表于 2015-10-13 00:14:26 | 只看该作者
kation122 发表于 2015-10-10 23:00
这个位大侠对电源在行呀,能用LGT8F88D 弄个电源不,开源给我们学习学习。 ...

我是半罐水
春风电源啥。

出0入0汤圆

17
发表于 2015-10-13 00:17:04 | 只看该作者
LGT 发表于 2015-10-9 20:18
软件更新, 请参考顶楼。

pin设置页面,DAC无法选择(左键点击后没反映,无弹出框)。

另外,淘宝官方店的开发板下架了?

出0入10汤圆

18
发表于 2015-10-15 09:52:34 | 只看该作者
想问下LGTSDK Builder 建的工程,开始选的是WINAVR,后面想改成IAR的,怎么改,还是只能从新建一个工程?

出0入0汤圆

19
 楼主| 发表于 2015-10-15 10:21:31 | 只看该作者
mmiker 发表于 2015-10-15 09:52
想问下LGTSDK Builder 建的工程,开始选的是WINAVR,后面想改成IAR的,怎么改,还是只能从新建一个工程? ...

嗯。。。。因为不同的编译环境, 编译配置和头文件都稍有不同。

出0入0汤圆

20
发表于 2015-10-15 14:00:15 | 只看该作者
LGT8P653A  下载器 sample在哪里可以买到呢?

出0入0汤圆

21
 楼主| 发表于 2015-10-15 17:09:39 | 只看该作者
122402902 发表于 2015-10-15 14:00
LGT8P653A  下载器 sample在哪里可以买到呢?

淘宝搜lgt8p653a

出0入0汤圆

22
发表于 2015-10-16 15:41:44 | 只看该作者
Atmel Studio都7.0版了,这个工具却只支持4.0版,有点失望。

出0入10汤圆

23
发表于 2015-10-18 10:48:05 | 只看该作者
328D的SPI可以用了。不过SSOP20 的88D的问题貌似不小。
1.UI生成的引脚方向是反的?




2. 看DATASHEET(1.0.3版)里面的引脚 应该是         // SCK,MISO,MOSI,SS = PB[5,4,3,0] 吧,  但 生成的 DrvSPI_Init()里面却是   // SCK,MISO,MOSI,SS = PB[5,4,3,1]   , 到底哪个正确的?  SPSS是PB0还是PB1  我试着把SPSS引脚改成PB0,不过也不行。SPI不通。
相关的改动如下,不知道还漏了哪里。

void DrvSPI_Init(void)
{
        // SS on PB1
        PMXCR = 0x80;
        PMXCR |= 0x04;

        // SCK,MISO,MOSI,SS = PB[5,4,3,1]
    // SCK,MISO,MOSI,SS = PB[5,4,3,0]   // ????????????????????????????????????
        if(SPI_SPIM == E_SPI_MASTER)
        {
                // SS = 1
                //PORTB = (PORTB & 0xc5) | 0x2;
        PORTB = (PORTB & 0xc6) | 0x1;
                // SCK,MISO,MOSI,SS = O,I,O,O
                //DDRB = (DDRB & 0xc5) | 0x2a;
        DDRB = (DDRB & 0xc6) | 0x29;
        }
        else
        {
                //PORTB = (PORTB & 0xc5);
        PORTB = (PORTB & 0xc6);
                // SCK,MISO,MOSI,SS = O,I,O,O
                //DDRB = (DDRB & 0xc5) | 0x10;
        DDRB = (DDRB & 0xc6) | 0x10;
        }
        //
        SPCR = (SPI_SPIIEN << SPIE) | (SPI_SPIDORD << DORD) | (SPI_SPITYPE << CPHA) | \
                        (SPI_SPIM << MSTR) | ((SPI_SPICLK & 0x3) << SPR0);
        //
        SPSR = (SPI_SPICLK >> 2) & 1;
        //
        SPCR |= (1 << SPE);
}

/** SS=HIGH */
#define DrvSPI_SPSSOff()        do { __ASM("sbi 0x05, 0"); } while(0)
/** SS=LOW */
#define DRVSPI_SPSSOn()                do { __ASM("cbi 0x05, 0"); } while(0)

3.  硬件SPI不通,本想先改成软件SPI, 在UI界面配置引脚时发现PB3没法修改!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

24
 楼主| 发表于 2015-10-18 13:39:35 | 只看该作者
mmiker 发表于 2015-10-18 10:48
328D的SPI可以用了。不过SSOP20 的88D的问题貌似不小。
1.UI生成的引脚方向是反的?

SPSS在SSOP20封装上是被调整到了PB1上, 封装上标称了PB0, 其实应该是PB1.

之前生成的SDK中, SPI_ON/OFF宏定义有误, 需改成PB1,
/** SS=HIGH */
#define DrvSPI_SPSSOff()        do { __ASM("sbi 0x05, 1"); } while(0)
/** SS=LOW */
#define DRVSPI_SPSSOn()                do { __ASM("cbi 0x05, 1"); } while(0)

请下载顶楼更新的版本测试, 端口方向的BUG也更新了。

非常感谢!!

出0入10汤圆

25
发表于 2015-10-18 15:42:01 | 只看该作者
软SPI已经调通,但硬SPI还是不行,搭上在DEMO板上搭上示波器跑了下,没有波形输出? 不知道是哪里出了问题?  已经更新了beta11.

出0入0汤圆

26
 楼主| 发表于 2015-10-18 18:02:30 | 只看该作者
mmiker 发表于 2015-10-18 15:42
软SPI已经调通,但硬SPI还是不行,搭上在DEMO板上搭上示波器跑了下,没有波形输出? 不知道是哪里出了问题 ...

这个周一上班我测试下, 尽快搞定更新。

出0入0汤圆

27
发表于 2015-10-26 23:08:35 | 只看该作者
請問 Buad Rate 不可自定?

出10入210汤圆

28
发表于 2015-10-27 08:21:30 | 只看该作者
SPI模式选择时,引脚方向指示有误,主机是SPSS/MOSI/SCK变成了输入颜色,MISO成了输出颜色。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

29
 楼主| 发表于 2015-10-27 10:56:29 | 只看该作者
rainbow 发表于 2015-10-27 08:21
SPI模式选择时,引脚方向指示有误,主机是SPSS/MOSI/SCK变成了输入颜色,MISO成了输出颜色。

...

你用的是不是顶楼提供的最新beta11版本? 这个BUG应该是修改了。
不过之前有反应这个配置出来的SPI驱动有问题, 这个更新还没有发出来, 稍后发到这里。

出0入0汤圆

30
发表于 2015-10-30 18:04:25 | 只看该作者
本帖最后由 liujinhan 于 2015-10-30 18:11 编辑


LGT8F88D 的板子  官方的下载工具,另外一个LGT8F88A的可以下载。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

31
 楼主| 发表于 2015-10-30 19:14:21 | 只看该作者
liujinhan 发表于 2015-10-30 18:04

LGT8F88D 的板子  官方的下载工具,另外一个LGT8F88A的可以下载。

这个是程序下载报的错, 回头我检查下。

出0入0汤圆

32
发表于 2015-10-31 12:01:39 | 只看该作者
pinview 显示不全了


另外,有没有LGT8F88D 低功耗的demo, 7uA的效果?

我用lgt8f328d_pmu_demo 烧进去 还有几百微安,自己重新新建LGT8F88D build后烧录进去功耗也是一样大。
demo板的串口IC电源已经断开了,板子还有做什么修改吗?电流在V3.3 VCC V5.0跳线处测量得到。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

33
 楼主| 发表于 2015-10-31 12:14:44 来自手机 | 只看该作者
有几个IO是浮空的,如果没有作为输出,板子上也没有处理,就需要把内部上拉打开。手册里有列出这些IO

出0入10汤圆

34
发表于 2015-11-1 11:07:36 | 只看该作者
最近没有更新吗?

出0入0汤圆

35
发表于 2015-11-3 14:56:02 | 只看该作者
版主,我在低功耗上遇到以下问题:请帮忙分析下!谢谢!

平台:LGTSDK_Builder_1.5beta11
IC: LGT8F88D/SSOP20L   官方demo板

附件是代码。

低功耗中断唤醒问题:
1、外部中断单独调试:
        a. LOW level 可以中断,但是串口会有乱码
        b. falling edge 可以中断,串口除了乱码,其他都没有
2. 外部中断+SLEEP:
        LOW level falling edge 都不可以唤醒,但是串口会有乱码

具体可以查看附件的代码。       



////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

main.c
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


#include "allinone.h"

// Import external definitions
extern void init_modules(void);
u8 tt=0;
u16 cnt=0;
int main(void)
{
       
        // Device initialization
        init_modules();

        // Global interrupt enable
        SEI();

        DrvUSART_SendStr("\n system start...");
       
        // Add your code from here
        while(1)
        {
                if(tt==1)
                {
                        tt=0;
                        DrvUSART_SendStr("\n exit0 once...");
                }
               
                DrvMISC_Delayms(1);
               
                cnt++;
                if(cnt>=2000)
                {
                        cnt=0;
                        DrvUSART_SendStr("\n system sleep...");
                       
                        DrvPWR_Sleep(E_SLEEP_POFFS0); //增加SLEEP,但是不能唤醒
                       
                        DrvEXINT_DisableEXINT(0);
                        // 等待PD2回到高电平
                        while(!(PIND & (1 << PD2)));
                       
                        DrvUSART_SendStr("\n PD2 high...");
                       
                        DrvEXINT_EnableEXINT(0);
                       
                       
                }               
       
        }

        return 0;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

isr_auto.c
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

#include "allinone.h"

extern u8 tt;

// Enable external interrupter 0
#if (EXINT_INT0EN == 1)
LGT_VECTOR(IVN_EXINT0)
{
        DrvEXINT_DisableEXINT(0);
       
        /** Clear interupt flag */
        EIFR = (EXINT_INT0EN << INT0) | (EXINT_INT1EN << INT1);
       
        // TODO: Add your code here
        tt=1;
               
        DrvEXINT_EnableEXINT(0);
}
#endif

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

36
发表于 2015-11-3 16:45:30 | 只看该作者
本帖最后由 liujinhan 于 2015-11-3 17:15 编辑

LGT8F88D/SSOP20L  低功耗和唤醒的问题基本解决了。
问题出在需要在UI中把IO PD2的勾勾全部去掉。中断中已经配置好了,所以不能重复配置。默认初始化时,gpio在exit后面。所以不起作用了。

实测数据:FLUKE 15B  VCC 3.3V
DrvPWR_Sleep(E_SLEEP_POFFS0); //13.2ua
//DrvPWR_Sleep(E_SLEEP_POFFS1);        //9.2ua
不知道还能不能更低。

附上代码: 希望能用更低的。


另外,PC6不知道怎么设置才能不低电平复位,我在UI 中 设置了,还是disable RESETN还是一样复位。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

37
 楼主| 发表于 2015-11-13 16:28:26 | 只看该作者
更新了SDKBuilder中部分已知错误。

出0入0汤圆

38
发表于 2015-11-13 22:07:16 | 只看该作者
328D的RTC功能可不可以用呀.
我用88A正常的程序放328D上RTC不动作.

出0入0汤圆

39
 楼主| 发表于 2015-11-16 14:16:37 | 只看该作者
版本更新到beta13, 更新了WDT设置以及唤醒P/F S0的错误。

出0入0汤圆

40
发表于 2015-11-17 12:46:36 | 只看该作者
LGT 发表于 2015-11-16 14:16
版本更新到beta13, 更新了WDT设置以及唤醒P/F S0的错误。

88D,macros_auto.h缺乏GPIO_PDB0、GPIO_DDB0两个的宏定义
而且为啥不能选用比较器2

另外能否加入 http://andybrown.me.uk/2015/03/08/avr-gcc-492/ 这个的支持

出0入0汤圆

41
 楼主| 发表于 2015-11-18 00:00:19 来自手机 | 只看该作者
Earthman 发表于 2015-11-17 12:46
88D,macros_auto.h缺乏GPIO_PDB0、GPIO_DDB0两个的宏定义
而且为啥不能选用比较器2


非常感谢提醒关于 GPIO_B0相关的错误!
另外非常感谢提供最新avr-gcc的信息,我们会尽尽快支持它!

出0入0汤圆

42
发表于 2015-11-19 00:57:36 来自手机 | 只看该作者
ADC引脚错误 也需要修改
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-19 01:57

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表