Arbitration is the process to solve the problem when two devices try to access the bus at the same time. If you have more than one master on the bus this may happen quite normally, one master will get the bus and the other will show up a lost arbitration.
An conflict needing arbitration is detected when the dataline should be High but the master sees a logical Low-level.
When there is only one master there it may happen that the master loses arbitration with a slave which imho would mean that the slave is not fast enough to release the data-line (or that the master too soon starts another request).
Thanks for your detailed explanation. After I add some delays between two commands, this problem seems like fixed.
Thank you very much.
Great!!!! My first good deed for the day!