Forums

LPC1114 I2C问题

开始于 r_goncalves2000 2012年5月29日
我还使用UART并通过SystemCoreClock和
一切正常。
我通过UART发送SystemCoreClock的值,并且为50MHz(我使用
10MHz晶体和PLL)。
我在打电话时打电话给SystemCoreClockUpdate(),但是没有
mg。
Thanks

Citando Daniel Widyanto:
>
>
>
> Hi,
>
>如果您使用SystemCoreClock(如LPC_I2C->SCLH =
>(SystemCoreClock / 400000UL)),请确保已调用
>theSystemCoreClockUpdate()之前。否则,
>即使您的MCU时钟是,SystemCoreClock也会显示12Mhz
>已经配置为以48Mhz运行。
>
> Regards,
> -daniel
>________________________________
>来自:M. Manca
> To: l乐橙云app[2]
>发送:2012年5月31日,星期四,2:33 AM
>主题:回复:[lpc2000] LPC1114 I2C问题
>
>Il 30/05/2012 19:15,r 乐橙云app @ iol.pt [3] ha scritto:
> >
> >
> > Still doesn't work.
> > Thanks.
> >
>您的硬件是专有的还是使用评估板?可能 you
>有兴趣在标准板上有一个可行的例子吗?
>您正在使用哪个IDE /编译器?
> >
> >
> > Citando Phil Young > > >:
> > >
> > >
> > >
> > >尝试对PIO控制引脚使用此设置,我会用它
> works fine.
> > >
> > > LPC_IOCON->PIO0_4 = 0xC1U; / * P0.4 = SCL * /
> > > LPC_IOCON->PIO0_5 = 0xC1U; / * P0.5 = SDA * /
> > >
> > > Regards
> > >
> > > Phil.
> > >
> > > From: l乐橙云app[2]
> [1]
> > > [mailto:l乐橙云app[2]
> > [1]] On Behalf Of
> > > r_goncalves2000
> > >发送:2012年5月29日18:14
> > > To: l乐橙云app[2]
> [1]
> > >主题:[lpc2000] LPC1114 I2C问题
> > >
> > >(我已将此消息发布到LP1100组,但这是我的
> > > intention to post
> > > anly here. Sorry)
> > >
> > > Hello All
> > >我在尝试与24LC16 E2PROM通信时遇到了麻烦。
> > >我以前使用LPC2000和LPC17xx micros做到了
> > > problem, and
> > > it
> > > was no big deal.
> > >经过几天的这个问题,我快要精疲力尽了
> > > ideas on how to
> > >解决问题,不知道它是软件还是
> > > hardware problem.
> > >
> > >我的硬件如下:
> > >-LPC1114引脚16(SDA)连接到24LC16引脚5(SDA)
> > >-LPC1114引脚15(SCL)连接到24LC16引脚6(SCL)
> > >-每条线作为2K7上拉电阻至3V3
> > >-该板是4层板,距离24LC16 1cm
> from the MCU.
> > >
> > >我的400KHz I2C初始化例程如下:
> > >NVIC_DisableIRQ(I2C_IRQn); / *禁用I2C总线中断* /
> > >g_ui32I2C_Flags = 0;
> > > LPC_SYSCON->PRESETCTRL | = 0x02U; / *取消激活重置* /
> > > LPC_SYSCON->SYSAHBCLKCTRL | =(0x01U<<5); / *启用I2C时钟* /
> > > LPC_IOCON->PIO0_4 = 0x01U; / * P0.4 = SCL * /
> > > LPC_IOCON->PIO0_5 = 0x01U; / * P0.5 = SDA * /
> > > LPC_I2C->CONCLR = 0x6CU; / *清除所有I2C操作位* /
> > > LPC_I2C->SCLH =(SystemCoreClock / 400000UL);
> > > LPC_I2C->SCLH >>= 1U; / *将值除以2(占空比为50%)* /
> > > if( LPC_I2C->SCLH < 4U )
> > > {
> > > LPC_I2C->SCLH = 4U; / *值必须大于或等于4 * /
> > > }
> > > LPC_I2C->SCLL = LPC_I2C->SCLH; / *占空比为50%* /
> > >NVIC_EnableIRQ(I2C_IRQn); / *启用I2C总线接口
> interrupts */
> > > LPC_I2C->CONSET = 0x40U; / *启用I2C接口* /
> > >
> > >在400KHz的频率下我无法读写。
> > >我已经尝试了10KHz,大多数时候我都可以阅读,但是大多数
> > > the times I
> > > can't
> > > write.
> > >我知道I2C ISR正在被触发。
> > >我为每个中断增加计数器,我可以看到一些
> > > interruptions
> > > are beeing fired.
> > >
> > >有什么想法可以找到问题所在吗?
> > >
> > > Thanks.
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> >
> > Ligaes:
> > ---------
> >[1] mailto:lpc2000%40yahoogroups.com
> > [2]
> >mailto:p 乐橙云app @ dsl.pipex.com [4]
> >
> ?subject = RE%3A%20%5Blpc2000%5D%20LPC1114%20I2C%20问题
> > [3]
> > mailto:l乐橙云app[2]
> >
> ?subject = RE%3A%20%5Blpc2000%5D%20LPC1114%20I2C%20问题
> > [4]
> >
> http://groups.yahoo.com/group/lpc2000/post;_ylc=X3oDMTJybTdpNzlhBF9TAzk3MzU5NzE0BGdycElkAzExNDUzMTY2BGdycHNwSWQDMTcwNjU1NDIwNQRtc2dJZAM1NzQxOARzZWMDZnRyBHNsawNycGx5BHN0aW1lAzEzMzgzMTU0NjI-?act=reply&messageNum=57418
> >
>
> > [5]
> >
> http://groups.yahoo.com/group/lpc2000/post;_ylc=X3oDMTJmdXJxYjUyBF9TAzk3MzU5NzE0BGdycElkAzExNDUzMTY2BGdycHNwSWQDMTcwNjU1NDIwNQRzZWMDZnRyBHNsawNudHBjBHN0aW1lAzEzMzgzMTU0NjI-
> > [6]
> >
> http://groups.yahoo.com/group/lpc2000/message/57416;_ylc=X3oDMTM3djU2Nm0xBF9TAzk3MzU5NzE0BGdycElkAzExNDUzMTY2BGdycHNwSWQDMTcwNjU1NDIwNQRtc2dJZAM1NzQxOARzZWMDZnRyBHNsawN2dHBjBHN0aW1lAzEzMzgzMTU0NjIEdHBjSWQDNTc0MTY-
> > [7]
> >
> http://groups.yahoo.com/group/lpc2000/members;_ylc=X3oDMTJnbWdzcTc5BF9TAzk3MzU5NzE0BGdycElkAzExNDUzMTY2BGdycHNwSWQDMTcwNjU1NDIwNQRzZWMDdnRsBHNsawN2bWJycwRzdGltZQMxMzM4MzE1NDYy?o=6
> > [8]
> >
> http://groups.yahoo.com/group/lpc2000;_ylc=X3oDMTJmZjlqajhvBF9TAzk3MzU5NzE0BGdycElkAzExNDUzMTY2BGdycHNwSWQDMTcwNjU1NDIwNQRzZWMDdnRsBHNsawN2Z2hwBHN0aW1lAzEzMzgzMTU0NjI-
> > [9]
> >
> http://groups.yahoo.com/;_ylc=X3oDMTJlMHQxODBoBF9TAzk3MzU5NzE0BGdycElkAzExNDUzMTY2BGdycHNwSWQDMTcwNjU1NDIwNQRzZWMDZnRyBHNsawNnZnAEc3RpbWUDMTMzODMxNTQ2Mg--
> > [10]
> > mailto:l乐橙云app[5]
> >
> ?subject = Change%20Delivery%20Format:%20Traditional
> > [11] mailto:l乐橙云app[6]
> >
> ?subject =电子邮件%20投递:%20Digest
> > [12] mailto:l乐橙云app[7]
> >?subject =退订
> > [13] http://docs.yahoo.com/info/terms/
> >
> >
> >
> >
>
>
>
>


LPC2100系列工程师指南

那不是问题。
但是,非常感谢您将此问题引起我的注意。
这是发生时可能需要花费时间才能发现的事物的类型。
在将来写给寄存器时,我会格外小心。

Citando bigft_id :
>我查看了您的代码,并不感到惊讶乐橙云app :-) Your tidbit
>下面可能会将各种内容写入LPC_I2C->SCLH. Using a
>外设寄存器作为通用变量是错误的格式乐橙云app有时
>书写不良价值挂在整个外围设备上。尝试:
>
>unsigned long CookingTheClock = SystemCoreClock / 8000000;
>如果(CookingTheClock< 4 )
>CookingTheClock = 4;
>
> LPC_I2C->SCLH = CookingTheClock;
> LPC_I2C->SCLH = CookingTheClock;
>
>看看是否可行乐橙云app
>> LPC_I2C->SCLH =(SystemCoreClock / 400000UL);
>> LPC_I2C->SCLH >>= 1U; / *将值除以2(占空比为50%)* /
>> if( LPC_I2C->SCLH < 4U )
>> {
>> LPC_I2C->SCLH = 4U; / *值必须大于或等于4 * /
>> }
>> LPC_I2C->SCLL = LPC_I2C->SCLH; / *占空比为50%* /
>---在乐橙云app中,丹尼尔·维迪安托(Daniel Widyanto)
> wrote: > Hi,
>>
>>如果您使用SystemCoreClock(如LPC_I2C->SCLH =
>>(SystemCoreClock / 400000UL)),请确保已调用
>>theSystemCoreClockUpdate()之前。否则,
>>即使您的MCU,SystemCoreClock也会显示12Mhz
>>时钟已经配置为以48Mhz运行。
>>
>> Regards,
>> -daniel
>>________________________________
>> From: M. Manca
>> To: l乐橙云app
>>发送:2012年5月31日,星期四,2:33 AM
>>主题:回复:[lpc2000] LPC1114 I2C问题
>>
>>Il 30/05/2012 19:15,rpsgoncalves @ 乐橙云app ha scritto:
>>
>>
>>仍然不起作用。
>> Thanks.
>>
>>您的硬件是专有的还是使用评估板?愿你
>>有兴趣在标准板上有一个可行的例子吗?
>>您正在使用哪个IDE /编译器?
>>Citando Phil Young >> >:
>> >
>> >
>> >
>> >尝试对PIO控制引脚使用此设置,我可以使用它并且可以正常工作 fine.
>> >
>> > LPC_IOCON->PIO0_4 = 0xC1U; / * P0.4 = SCL * /
>> > LPC_IOCON->PIO0_5 = 0xC1U; / * P0.5 = SDA * /
>> >
>> > Regards
>> >
>> > Phil.
>> >
>> > From: l乐橙云app [1]
>> > [mailto:l乐橙云app
>>[1]代表
>> > r_goncalves2000
>> >发送:2012年5月29日18:14
>> > To: l乐橙云app [1]
>> >主题:[lpc2000] LPC1114 I2C问题
>> >
>> >(我已将此消息发布到LP1100组,但这是我的
>> > intention to post
>> > anly here. Sorry)
>> >
>> > Hello All
>> >我在尝试与24LC16 E2PROM通信时遇到了麻烦。
>> >我以前使用LPC2000和LPC17xx micros做到了
>> > problem, and
>> > it
>> > was no big deal.
>> >经过几天的这个问题,我快要精疲力尽了
>> > ideas on how to
>> >解决问题,不知道它是软件还是
>> > hardware problem.
>> >
>> >我的硬件如下:
>> >-LPC1114引脚16(SDA)连接到24LC16引脚5(SDA)
>> >-LPC1114引脚15(SCL)连接到24LC16引脚6(SCL)
>> >-每条线作为2K7上拉电阻至3V3
>> >-该板是4层板,24LC16距板1cm。 MCU.
>> >
>> >我的400KHz I2C初始化例程如下:
>> >NVIC_DisableIRQ(I2C_IRQn); / *禁用I2C总线中断* /
>> >g_ui32I2C_Flags = 0;
>> > LPC_SYSCON->PRESETCTRL | = 0x02U; / *取消激活重置* /
>> > LPC_SYSCON->SYSAHBCLKCTRL | =(0x01U<<5); / *启用I2C时钟* /
>> > LPC_IOCON->PIO0_4 = 0x01U; / * P0.4 = SCL * /
>> > LPC_IOCON->PIO0_5 = 0x01U; / * P0.5 = SDA * /
>> > LPC_I2C->CONCLR = 0x6CU; / *清除所有I2C操作位* /
>> > LPC_I2C->SCLH =(SystemCoreClock / 400000UL);
>> > LPC_I2C->SCLH >>= 1U; / *将值除以2(占空比为50%)* /
>> > if( LPC_I2C->SCLH < 4U )
>> > {
>> > LPC_I2C->SCLH = 4U; / *值必须大于或等于4 * /
>> > }
>> > LPC_I2C->SCLL = LPC_I2C->SCLH; / *占空比为50%* /
>> >NVIC_EnableIRQ(I2C_IRQn); / *启用I2C总线接口中断* /
>> > LPC_I2C->CONSET = 0x40U; / *启用I2C接口* /
>> >
>> >在400KHz的频率下我无法读写。
>> >我已经尝试了10KHz,大多数时候我都可以阅读,但是大多数
>> > the times I
>> > can't
>> > write.
>> >我知道I2C ISR正在被触发。
>> >我为每个中断增加计数器,我可以看到一些
>> > interruptions
>> > are beeing fired.
>> >
>> >有什么想法可以找到问题所在吗?
>> >
>> > Thanks.
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>>
>> Ligaes:
>> ---------
>>[1] mailto:lpc2000%40yahoogroups.com
>> [2]
>>mailto:philipjyoung @ 乐橙云app
>>
>> ?subject = RE%3A%20%5Blpc2000%5D%20LPC1114%20I2C%20问题
>> [3]
>> mailto:l乐橙云app
>>
>> ?subject = RE%3A%20%5Blpc2000%5D%20LPC1114%20I2C%20问题
>> [4]
>> http://groups.yahoo.com/group/lpc2000/post;_ylc=X3oDMTJybTdpNzlhBF9TAzk3MzU5NzE0BGdycElkAzExNDUzMTY2BGdycHNwSWQDMTcwNjU1NDIwNQRtc2dJZAM1NzQxOARzZWMDZnRyBHNsawNycGx5BHN0aW1lAzEzMzgzMTU0NjI-?act=reply&messageNum=57418
>>
>>
>> [5]
>> http://groups.yahoo.com/group/lpc2000/post;_ylc=X3oDMTJmdXJxYjUyBF9TAzk3MzU5NzE0BGdycElkAzExNDUzMTY2BGdycHNwSWQDMTcwNjU1NDIwNQRzZWMDZnRyBHNsawNudHBjBHN0aW1lAzEzMzgzMTU0NjI-
>> [6]
>> http://groups.yahoo.com/group/lpc2000/message/57416;_ylc=X3oDMTM3djU2Nm0xBF9TAzk3MzU5NzE0BGdycElkAzExNDUzMTY2BGdycHNwSWQDMTcwNjU1NDIwNQRtc2dJZAM1NzQxOARzZWMDZnRyBHNsawN2dHBjBHN0aW1lAzEzMzgzMTU0NjIEdHBjSWQDNTc0MTY-
>> [7]
>> http://groups.yahoo.com/group/lpc2000/members;_ylc=X3oDMTJnbWdzcTc5BF9TAzk3MzU5NzE0BGdycElkAzExNDUzMTY2BGdycHNwSWQDMTcwNjU1NDIwNQRzZWMDdnRsBHNsawN2bWJycwRzdGltZQMxMzM4MzE1NDYy?o=6
>> [8]
>> http://groups.yahoo.com/group/lpc2000;_ylc=X3oDMTJmZjlqajhvBF9TAzk3MzU5NzE0BGdycElkAzExNDUzMTY2BGdycHNwSWQDMTcwNjU1NDIwNQRzZWMDdnRsBHNsawN2Z2hwBHN0aW1lAzEzMzgzMTU0NjI-
>> [9]
>> http://groups.yahoo.com/;_ylc=X3oDMTJlMHQxODBoBF9TAzk3MzU5NzE0BGdycElkAzExNDUzMTY2BGdycHNwSWQDMTcwNjU1NDIwNQRzZWMDZnRyBHNsawNnZnAEc3RpbWUDMTMzODMxNTQ2Mg--
>> [10]
>> mailto:l乐橙云app
>>
>> ?subject = Change%20Delivery%20Format:%20Traditional
>> [11] mailto:l乐橙云app
>>
>> ?subject =电子邮件%20投递:%20Digest
>> [12] mailto:l乐橙云app
>>?subject =退订
>> [13] http://docs.yahoo.com/info/terms/
>>
>>
>>
>>
>>
>>
>>
>>
谢谢菲尔

This is good advise.

我解决了问题。
显然,它不是软件而是硬件。
我当时在一块板上开发软件,显然那块板不好。
然后,我在第二块板上尝试了该软件,但该软件是
改变了,没有用,所以我认为问题出在软件上。
我决定从新板上重新安装不变的软件,然后
它开始按预期工作。

也感谢Manca和Alexan_e的支持。

Rui

Citando Phil Young:
>
>
>
>最简单的事情是下载Keil工具,您可以
>受代码大小限制但足够大的免费许可证
> for any LPC1114
> project.
>
>然后编译您的代码并在模拟器中运行它,这将
> let you single
>步进并将所有外围设备视为仿真块,并且
> also give you
>它们的详细状态显示,包括时钟频率等。
>
>然后应该立即清楚您在做什么错。
>
> Regards
>
> Phil.
>
> - - -原始信息 - - -
> From: l乐橙云app[1]
>[mailto:l 乐橙云app [1]]代表
> r乐橙云app@iol.pt[2]
>发送:2012年5月30日18:21
> To: l乐橙云app[1]
>主题:回复:[lpc2000]回复:LPC1114 I2C问题
>
>我无法确定,因为我看不到时钟。
>
>我尝试将P0.4和P0.5定义为输出,但是无法在它们之间切换 a
> timer!
>但是将它们设置为输出后可以将它们设置为高或低,但是 no
>切换计时器,但我可以切换led丝毫没有问题!
>这星期真是一场灾难!
>
>可能与编译有关吗?
>我用LPC11C14尝试了另一块板,但行为不同
>但这不是没有用。
>
>Citando Kevin:
> >
> >
> >
> >您是否已确定比特率是否合适,可以通过
> >逻辑分析仪或示波器。
> >检查时钟脉冲的速率和大小是否合适。
> >
> >---在l 乐橙云app [1] [1]中,“ r_goncalves2000”
> > wrote:
> > >
> > >(我已将此消息发布到LP1100组,但这是我的
> >有意在此发表评论。对不起)
> > >
> > > Hello All
> > >我在尝试与24LC16 E2PROM通信时遇到了麻烦。
> > >我以前使用LPC2000和LPC17xx micros做到了
> > problem, and it
> > > was no big deal.
> > >经过几天的这个问题,我快要精疲力尽了
> > ideas on how to
> > >解决问题,不知道它是软件还是
> > hardware problem.
> > >
> > >我的硬件如下:
> > >-LPC1114引脚16(SDA)连接到24LC16引脚5(SDA)
> > >-LPC1114引脚15(SCL)连接到24LC16引脚6(SCL)
> > >-每条线作为2K7上拉电阻至3V3
> > >-该板是4层板,距离24LC16 1cm
> > the MCU.
> > >
> > >我的400KHz I2C初始化例程如下:
> > >NVIC_DisableIRQ(I2C_IRQn); / *禁用I2C总线中断* /
> > >g_ui32I2C_Flags = 0;
> > > LPC_SYSCON->PRESETCTRL | = 0x02U; / *取消激活重置* /
> > > LPC_SYSCON->SYSAHBCLKCTRL | =(0x01U<<5); / *启用I2C时钟* /
> > > LPC_IOCON->PIO0_4 = 0x01U; / * P0.4 = SCL * /
> > > LPC_IOCON->PIO0_5 = 0x01U; / * P0.5 = SDA * /
> > > LPC_I2C->CONCLR = 0x6CU; / *清除所有I2C操作位* /
> > > LPC_I2C->SCLH =(SystemCoreClock / 400000UL);
> > > LPC_I2C->SCLH >>= 1U; / *将值除以2(占空比为50%)* /
> > > if( LPC_I2C->SCLH < 4U )
> > > {
> > > LPC_I2C->SCLH = 4U; / *值必须大于或等于4 * /
> > > }
> > > LPC_I2C->SCLL = LPC_I2C->SCLH; / *占空比为50%* /
> > >NVIC_EnableIRQ(I2C_IRQn); / *启用I2C总线接口 interrupts
> */
> > > LPC_I2C->CONSET = 0x40U; / *启用I2C接口* /
> > >
> > >在400KHz的频率下我无法读写。
> > >我已经尝试了10KHz,大多数时候我都可以阅读,但是大多数
> > the times I can't
> > > write.
> > >我知道I2C ISR正在被触发。
> > >我为每个中断增加计数器,我可以看到
> > some interruptions
> > > are beeing fired.
> > >
> > >有什么想法可以找到问题所在吗?
> > >
> > > Thanks.
> > >
> >
> >
> >
> >
> > Ligações:
> ---------
>[1] mailto:lpc2000%40yahoogroups.com
> [2]
>mailto:l 乐橙云app @ slomotion.nl [3]?subject = Re%3A%20LPC1114%20I2C%20问题
> [3]
>mailto:l 乐橙云app [1]?subject = Re%3A%20LPC1114%20I2C%20问题
> [4]
> http://groups.yahoo.com/group/lpc2000/post;_ylc=X3oDMTJybnYxMzU5BF9TAzk3MzU5
>
> NzE0BGdycElkAzExNDUzMTY2BGdycHNwSWQDMTcwNjU1NDIwNQRtc2dJZAM1NzQxNwRzZWMDZnRy
>BHNsawNycGx5BHN0aW1lAzEzMzgzMTI1MTY-act = reply&messageNum=57417
> [5]
> http://groups.yahoo.com/group/lpc2000/post;_ylc=X3oDMTJma2tjM2VkBF9TAzk3MzU5
>
> NzE0BGdycElkAzExNDUzMTY2BGdycHNwSWQDMTcwNjU1NDIwNQRzZWMDZnRyBHNsawNudHBjBHN0
>aW1lAzEzMzgzMTI1MTY-
> [6]
> http://groups.yahoo.com/group/lpc2000/message/57416;_ylc=X3oDMTM3YXQyOTFpBF9
>
> TAzk3MzU5NzE0BGdycElkAzExNDUzMTY2BGdycHNwSWQDMTcwNjU1NDIwNQRtc2dJZAM1NzQxNwR
>zZWMDZnRyBHNsawN2dHBjBHN0aW1lAzEzMzgzMTI1MTYEdHBjSWQDNTc0MTY-
> [7]
> http://groups.yahoo.com/group/lpc2000/members;_ylc=X3oDMTJna2w4MmEzBF9TAzk3M
>
> zU5NzE0BGdycElkAzExNDUzMTY2BGdycHNwSWQDMTcwNjU1NDIwNQRzZWMDdnRsBHNsawN2bWJyc
>wRzdGltZQMxMzM4MzEyNTE2?o = 6
> [8]
> http://groups.yahoo.com/group/lpc2000;_ylc=X3oDMTJmbHJtMjZ2BF9TAzk3MzU5NzE0B
>
> GdycElkAzExNDUzMTY2BGdycHNwSWQDMTcwNjU1NDIwNQRzZWMDdnRsBHNsawN2Z2hwBHN0aW1lA
>zEzMzgzMTI1MTY-
> [9]
> http://groups.yahoo.com/;_ylc=X3oDMTJlM2RpZnEyBF9TAzk3MzU5NzE0BGdycElkAzExND
>
> UzMTY2BGdycHNwSWQDMTcwNjU1NDIwNQRzZWMDZnRyBHNsawNnZnAEc3RpbWUDMTMzODMxMjUxNg
> --
> [10]
>
>mailto:l 乐橙云app [4]?subject =更改%20Delivery%20Forma
>t:%20Traditional
> [11]
>
>mailto:l 乐橙云app [5]?subject = Email%20Delivery:%20Digest
>[12] mailto:l 乐橙云app [6]
> [13] http://docs.yahoo.com/info/terms/
>
>
>
>
>
>