Kinetis KL27Z I2C PROBLEM

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

Kinetis KL27Z I2C PROBLEM

1,129 次查看
jricaurtepino
Contributor II

Hello

I'm working on a project with the MCU KL27Z.

I have a problem with the 9th bit on the I2C bus. The SDA line doesn't go all the way down (as ASK), it only goes half way down. I found that the solution should be making the SDA pin open drain, but i there´s no option to do that.

I´d like to know if there's a solution to this problem and how to do it.

Thanks

José Ricaurte 

标签 (1)
0 项奖励
回复
4 回复数

914 次查看
mjbcswitzerland
Specialist V

Hi José

You need to set the pins to open-drain in the pin's PORTx_PCRy register.

For I2C on the KL27 see:
http://www.utasker.com/docs/uTasker/uTasker_I2C.pdf
and its appendix A for details of the double-buffered I2C controller in the KL27 and workarounds for its erratas.

Regards

Mark


Complete KL27 solutions, training and support: http://www.utasker.com/kinetis.html
Kinetis K27:
- http://www.utasker.com/kinetis/FRDM-KL27Z.html
- http://www.utasker.com/kinetis/Capuccino-KL27.html

0 项奖励
回复

914 次查看
jricaurtepino
Contributor II

Hi Mark

Thanks for your answer.

In my MCU(KL27Z156) according to the datasheet, there's no PORTx_PCRy register.

Can you tell me another way to do this?

0 项奖励
回复

914 次查看
jricaurtepino
Contributor II

My MCU is KL27Z256

0 项奖励
回复

914 次查看
mjbcswitzerland
Specialist V

For I2C line on PTC3 (for example) the register PORTx_PCRy is PORTC_PCR3 (address 0x4004b00c).

To save time just use the uTasker KL27 project since it does all for you and has I2C EEPROM support built into it, including simulation of the KL27, its I2C and the EEPROM. See also http://www.utasker.com/docs/uTasker/uTasker_I2C.pdf for I2C details and the workaround for the KL27 double-buffered I2C complications.

0 项奖励
回复