public inbox for linux-i2c@vger.kernel.org
 help / color / mirror / Atom feed
From: Michele Da Rold <michele.darold-jTUIOkKm3KASWr57yraSmw@public.gmane.org>
To: Jean Delvare <khali-PUYAD+kWke1g9hUCZPvPmw@public.gmane.org>
Cc: linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: ack/nack in write operation
Date: Fri, 15 Jul 2011 10:03:44 +0200	[thread overview]
Message-ID: <4E1FF460.1000908@ecsproject.com> (raw)
In-Reply-To: <20110714182607.3a3d710f-R0o5gVi9kd7kN2dkZ6Wm7A@public.gmane.org>

Il 14/07/2011 18:26, Jean Delvare ha scritto:
> On Thu, 14 Jul 2011 17:52:25 +0200, Michele Da Rold wrote:
>> Hello everybody,
>> I'm new to i2c development some don't kill me if my questions are stupid!!
>>
>> I'm using bitbanging i2c driver for an AT91 devices,
>> the AT91 is master and I have a slave that reply, during a write, with a
>> NAK after last byte.
>> The i2c specification permit this solution but i2c linux driver no.
>
> Can you please quote the part of the I2C specification which you think
> says this? I read it differently (page 10 of I2C 2.1 specification,
> section 7.2: Acknowledge):
>
> "Usually, a receiver which has been addressed is obliged to
> generate an acknowledge after each byte has been
> received, except when the message starts with a CBUS
> address."
>
> "If a master-receiver is involved in a transfer, it must signal
> the end of data to the slave-transmitter by not generating
> an acknowledge on the last byte that was clocked out of
> the slave. The slave-transmitter must release the data line
> to allow the master to generate a STOP or repeated
> START condition."
>
> So, a master-receiver must nack the last byte, but a slave-receiver must
> not. So your slave device is misbehaving - or you are actually trying
> to write more bytes to it than it can handle.
>

Refer to fig.11 of specification 2.1.
But I think that I was wrong. I agree with your opinion.

>> (i have see the possibility to set the I2C_M_IGNORE_NAK but ignore all
>> NAK and isn't right!)
>
> This should indeed be avoided unless you really have to use it.
>
>> There is a solution or I have to modify the code?
>
> First ensure that you are sending the right number of bytes to the
> device, with the correct sequence. If you think you're really doing the
> right think, get in touch with the vendor of the slave device and ask
> them why their device misbehaves.
>

I'm in touch with vendor, I'm waiting for his reply.

Thank you
Michele

  parent reply	other threads:[~2011-07-15  8:03 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-07-14 15:52 ack/nack in write operation Michele Da Rold
     [not found] ` <4E1F10B9.3080507-jTUIOkKm3KASWr57yraSmw@public.gmane.org>
2011-07-14 16:26   ` Jean Delvare
     [not found]     ` <20110714182607.3a3d710f-R0o5gVi9kd7kN2dkZ6Wm7A@public.gmane.org>
2011-07-15  8:03       ` Michele Da Rold [this message]
     [not found]         ` <4E1FF460.1000908-jTUIOkKm3KASWr57yraSmw@public.gmane.org>
2011-07-15  9:13           ` Michele Da Rold

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4E1FF460.1000908@ecsproject.com \
    --to=michele.darold-jtuiokkm3kaswr57yrasmw@public.gmane.org \
    --cc=khali-PUYAD+kWke1g9hUCZPvPmw@public.gmane.org \
    --cc=linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox