LGTSDK Builder update, support LGT8F88D/SSOP20L
本帖最后由 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模式选择的注释说明是反的。
更新了外部晶振配置以及针对IAR环境下的一些BUG (LGT8F88D/328D)
更新了IAR 6.x识别88D的问题,修改了PB3配置/SPI端口方向和SPI/SPSS配置的BUG
更新了X8D/SSOP20L封装引脚配置的错误, 更新了系统时钟切换部分的SDK
更新了X8D中WDT唤醒以及设置的相关错误。
LGT8FX8D编程手册更新:
ADC使能反了的那个bug已经修了吧 aytc100 发表于 2015-9-27 02:00
ADC使能反了的那个bug已经修了吧
多谢提醒, 已更新。 beta6.在自动生成的代码里面, 有个PMXCR寄存器,在编译的时候提示未定义,看了下头文件,应该是PMCR吧。{:lol:} 不是,这个头文件里加上了啊,奇怪,我检查下! mmiker 发表于 2015-9-28 11:16
beta6.在自动生成的代码里面, 有个PMXCR寄存器,在编译的时候提示未定义,看了下头文件,应该是PMCR吧。 ...
已经更新, 可能是程序打包时用了错误的问题, 已经加上。
非常感谢! 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
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);
}
duanll 发表于 2015-9-29 00:00
SPI 初始化部分的BUG还没解决啊?
UI上默认是SPI MASTER,但生成的代码默认模式是SPI SLAVE
多谢, 我们尽快更新。 duanll 发表于 2015-9-29 00:00
SPI 初始化部分的BUG还没解决啊?
UI上默认是SPI MASTER,但生成的代码默认模式是SPI SLAVE
已更新, 非常感谢! 不错,非常感谢 {:lol:}NB,一段时间没关注,这么先进了 软件更新, 请参考顶楼。 8AD+2DA,拿来做电源相当不错啊。两个DAC一个电压一个电流,ADC提供给显示。
PS:官方淘宝店里面的开发工具没了。 下载了楼主位的软件,pin设置页面,DAC无法选择(左键点击后没反映,无弹出框)。 fengxin32 发表于 2015-10-10 22:26
8AD+2DA,拿来做电源相当不错啊。两个DAC一个电压一个电流,ADC提供给显示。
PS:官方淘宝店里面的开发工具 ...
这个位大侠对电源在行呀,能用LGT8F88D 弄个电源不,开源给我们学习学习。 kation122 发表于 2015-10-10 23:00
这个位大侠对电源在行呀,能用LGT8F88D 弄个电源不,开源给我们学习学习。 ...
我是半罐水
春风电源啥。 LGT 发表于 2015-10-9 20:18
软件更新, 请参考顶楼。
pin设置页面,DAC无法选择(左键点击后没反映,无弹出框)。
另外,淘宝官方店的开发板下架了? 想问下LGTSDK Builder 建的工程,开始选的是WINAVR,后面想改成IAR的,怎么改,还是只能从新建一个工程? mmiker 发表于 2015-10-15 09:52
想问下LGTSDK Builder 建的工程,开始选的是WINAVR,后面想改成IAR的,怎么改,还是只能从新建一个工程? ...
嗯。。。。因为不同的编译环境, 编译配置和头文件都稍有不同。 LGT8P653A下载器 sample在哪里可以买到呢? 122402902 发表于 2015-10-15 14:00
LGT8P653A下载器 sample在哪里可以买到呢?
淘宝搜lgt8p653a Atmel Studio都7.0版了,这个工具却只支持4.0版,有点失望。 328D的SPI可以用了。不过SSOP20 的88D的问题貌似不小。
1.UI生成的引脚方向是反的?
2. 看DATASHEET(1.0.3版)里面的引脚 应该是 // SCK,MISO,MOSI,SS = PB 吧,但 生成的 DrvSPI_Init()里面却是 // SCK,MISO,MOSI,SS = PB , 到底哪个正确的?SPSS是PB0还是PB1我试着把SPSS引脚改成PB0,不过也不行。SPI不通。
相关的改动如下,不知道还漏了哪里。
void DrvSPI_Init(void)
{
// SS on PB1
PMXCR = 0x80;
PMXCR |= 0x04;
// SCK,MISO,MOSI,SS = PB
// SCK,MISO,MOSI,SS = PB // ????????????????????????????????????
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没法修改! 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也更新了。
非常感谢!! 软SPI已经调通,但硬SPI还是不行,搭上在DEMO板上搭上示波器跑了下,没有波形输出? 不知道是哪里出了问题?已经更新了beta11.{:dizzy:} mmiker 发表于 2015-10-18 15:42
软SPI已经调通,但硬SPI还是不行,搭上在DEMO板上搭上示波器跑了下,没有波形输出? 不知道是哪里出了问题 ...
这个周一上班我测试下, 尽快搞定更新。 請問 Buad Rate 不可自定? SPI模式选择时,引脚方向指示有误,主机是SPSS/MOSI/SCK变成了输入颜色,MISO成了输出颜色。
rainbow 发表于 2015-10-27 08:21
SPI模式选择时,引脚方向指示有误,主机是SPSS/MOSI/SCK变成了输入颜色,MISO成了输出颜色。
...
你用的是不是顶楼提供的最新beta11版本? 这个BUG应该是修改了。
不过之前有反应这个配置出来的SPI驱动有问题, 这个更新还没有发出来, 稍后发到这里。
LGT8F88D 编译出错
本帖最后由 liujinhan 于 2015-10-30 18:11 编辑:
LGT8F88D 的板子官方的下载工具,另外一个LGT8F88A的可以下载。 liujinhan 发表于 2015-10-30 18:04
:
LGT8F88D 的板子官方的下载工具,另外一个LGT8F88A的可以下载。
这个是程序下载报的错, 回头我检查下。 pinview 显示不全了
另外,有没有LGT8F88D 低功耗的demo, 7uA的效果?
我用lgt8f328d_pmu_demo 烧进去 还有几百微安,自己重新新建LGT8F88D build后烧录进去功耗也是一样大。
demo板的串口IC电源已经断开了,板子还有做什么修改吗?电流在V3.3 VCC V5.0跳线处测量得到。
有几个IO是浮空的,如果没有作为输出,板子上也没有处理,就需要把内部上拉打开。手册里有列出这些IO 最近没有更新吗? 版主,我在低功耗上遇到以下问题:请帮忙分析下!谢谢!
平台: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
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
本帖最后由 liujinhan 于 2015-11-3 17:15 编辑
LGT8F88D/SSOP20L低功耗和唤醒的问题基本解决了。
问题出在需要在UI中把IO PD2的勾勾全部去掉。中断中已经配置好了,所以不能重复配置。默认初始化时,gpio在exit后面。所以不起作用了。
实测数据:FLUKE 15BVCC 3.3V
DrvPWR_Sleep(E_SLEEP_POFFS0); //13.2ua
//DrvPWR_Sleep(E_SLEEP_POFFS1); //9.2ua
不知道还能不能更低。
附上代码: 希望能用更低的。
另外,PC6不知道怎么设置才能不低电平复位,我在UI 中 设置了,还是disable RESETN还是一样复位。 更新了SDKBuilder中部分已知错误。 328D的RTC功能可不可以用呀.
我用88A正常的程序放328D上RTC不动作. 版本更新到beta13, 更新了WDT设置以及唤醒P/F S0的错误。 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/ 这个的支持 Earthman 发表于 2015-11-17 12:46
88D,macros_auto.h缺乏GPIO_PDB0、GPIO_DDB0两个的宏定义
而且为啥不能选用比较器2
非常感谢提醒关于 GPIO_B0相关的错误!
另外非常感谢提供最新avr-gcc的信息,我们会尽尽快支持它! ADC引脚错误 也需要修改
页:
[1]