Linux: I2C рдмреНрд░реЙрдбрдХреЙрдо рдмрдЧ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдбред

рдХреЛ рдирд┐рд░реНрдорд┐рдд 20 рдорд╛рд░реНрдЪ 2013  ┬╖  73рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: raspberrypi/linux

рдмреНрд░реЙрдбрдХреЙрдо BCM2835 рдореЗрдВ I2C рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдПрдХ (рд╣рд╛рд░реНрдбрд╡реЗрдпрд░) рдмрдЧ рд╣реИред

рдмреАрд╕реАрдПрдо рдЦрд░рд╛рдм рддрд░реАрдХреЗ рд╕реЗ "рдХреНрд▓реЙрдХ рд╕реНрдЯреНрд░реЗрдЪрд┐рдВрдЧ" рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ:

рдШрдбрд╝реА рдХреЗ рд▓рд┐рдП рдиреНрдпреВрдирддрдо "рд╣рд╛рдИрдЯрд╛рдЗрдо" рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдмреАрд╕реАрдПрдо рдЖрдИ 2 рд╕реА рдШрдбрд╝реА рдХреЛ рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рдЪрд▓рд╛рдиреЗ рджреЗрддрд╛ рд╣реИ, рдФрд░ рдЬрдм рдШрдбрд╝реА рдХреЛ рдлрд┐рд░ рд╕реЗ рдлреНрд▓рд┐рдк рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдЬрд╛рдБрдЪ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдШрдбрд╝реА рдКрдВрдЪреА рд╣реЛ рдЧрдИ рд╣реИ рдпрд╛ рдирд╣реАрдВ, рдФрд░ рдЕрдЧрд░ рдпрд╣ рдХрдо рд╣реИ, рддреЛ рдПрдХ "рдШрдбрд╝реА рдЦрд┐рдВрдЪрд╛рд╡" рдХрд░рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЕрдЧрд░ рдХреБрдЫ рдиреИрдиреЛрд╕реЗрдХрдВрдбреНрд╕ рдореЗрдВ рдпрд╣ рдЬрд╛рдБрдЪрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рджрд╛рд╕ рдШрдбрд╝реА рд╕рдВрдХреЗрдд рдХреЛ рдЬрд╛рд░реА рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдирдИ рдШрдбрд╝реА рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИ, рддреЛ рдШрдбрд╝реА рдХреА рдирд╛рдбрд╝реА 40ns рдЬрд┐рддрдиреА рдХрдо рд╣реЛ рд╕рдХрддреА рд╣реИред (рдпрд╣ рд╕рдмрд╕реЗ рдХрдо рдореИрдВ рдорд╛рдкрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реВрдВ, рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдпрд╣ рдХрд╛рдлреА рджреБрд░реНрд▓рдн рд╣реИ)ред 100kHz (10 рдорд╛рдЗрдХреНрд░реЛрд╕реЗрдХрдВрдб) I2C рдШрдбрд╝реА рдХреЗ рд╕рд╛рде, рдШрдбрд╝реА рдХреЛ рдЬрд╛рд░реА рдХрд░рдиреЗ рдХреЗ "рдЦрд░рд╛рдм" рдХреНрд╖рдг 5 рдорд╛рдЗрдХреНрд░реЛрд╕реЗрдХрдВрдб рд╣реИрдВред

рдореЗрд░реЗ рджрд╛рд╕реЛрдВ рдХреЛ рдХрдо рд╕реЗ рдХрдо 500ns рдХреА рдШрдбрд╝реА рдХреА рджрд╛рд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред (рдЬреЛ 100kHz рдСрдкрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рд╣реЛрдиреЗ рдкрд░ рдорд╛рд╕реНрдЯрд░ рдХреЛ рдЬреЛ рдЙрддреНрдкрдиреНрди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЙрд╕рд╕реЗ рджрд╕ рдХрдо рдХрд╛ рдПрдХ рдХрд╛рд░рдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП)ред

рдпрд╣ рдПрдХ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдмрдЧ рд╣реИ рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣рдо рдлрд┐рд▓рд╣рд╛рд▓ рдЬреНрдпрд╛рджрд╛ рдХреБрдЫ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред (рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЯрд┐рдк: рдЗрд╕ рддрд░рд╣ рд╕реЗ рдШрдбрд╝реА рдХреА рд╕реНрдЯреНрд░реЗрдЪрд┐рдВрдЧ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп: рдХреНрд▓реЙрдХрдбрд┐рд╡реА рдХрд╛рдЙрдВрдЯрд░ рдХреА рдЧрд┐рдирддреА рдХреЛ рд░реЛрдХреЗрдВ, рдЬрдмрдХрд┐ рдШрдбрд╝реА рдХрдо рд░рд╣реЗред рдпрд╣ рд╢рд╛рдпрдж рд╣рд░ рдЪрдХреНрд░ рдкрд░ рдХреБрдЫ рдлрд╛рд╕реНрдЯ-рдХреНрд▓реЙрдХ рдХреЛ рдХреНрд▓реЙрдХ-рд╕реНрдЯреНрд░реЗрдЪ рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди рдорд╛рдирдХреЛрдВ рдХреЗ рдЕрдиреБрд░реВрдкрддрд╛ рдореЗрдВ рдХрд╛рдлреА рд╕реБрдзрд╛рд░ рд╣реЛрдЧрд╛ред ) рд╣реИред

рдЬрдм рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдмреАрд╕реАрдПрдо рдПрдХ рдмрд╛рдЗрдЯ рднреЗрдЬреЗрдЧрд╛, рдЬрд┐рд╕рдореЗрдВ рдмрд╣реБрдд рдХрдо рдкрд╣рд▓реА рдШрдбрд╝реА рджрд╛рд▓ рд╣реЛрдЧреАред рддрдм рджрд╛рд╕ рдкрд╣рд▓реА рдШрдбрд╝реА рдХреА рдирдмреНрдЬ рдирд╣реАрдВ рджреЗрдЦрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЬрдм рдЙрд╕ рдмрд╛рдЗрдЯ рдХреЗ рдЕрдВрдд рдореЗрдВ рдПрд╕реАрдХреЗ рдХрд╛ рд╕рдордп рд╣реЛрддрд╛ рд╣реИ рддреЛ рдмрд╛рдЗрдЯ, рджрд╛рд╕ рдЕрднреА рднреА 8 рд╡реЗрдВ рдмрд┐рдЯ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣рд╛ рд╣реИред BCM рдЗрд╕реЗ "NAK" рдХреЗ рд░реВрдк рдореЗрдВ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░рддрд╛ рд╣реИ рдФрд░ I2C рд╣рд╕реНрддрд╛рдВрддрд░рдг рдХреЛ рд░рджреНрдж рдХрд░рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐ рдЙрд╕ рд╕рдордп рдЧреБрд▓рд╛рдо рдЕрдкрдиреА 8 рд╡реАрдВ рдШрдбрд╝реА рдХреА рдирдмреНрдЬ рджреЗрдЦрддрд╛ рд╣реИ рдФрд░ рдПрдХ "рдПрд╕реАрдХреЗ" (рдПрд╕рдбреАрдП рд▓рд╛рдЗрди рдХреЛ рдХрдо рдЦреАрдВрдЪрддрд╛ рд╣реИ) рдЬрд╛рд░реА рдХрд░рддрд╛ рд╣реИред рдмрджрд▓реЗ рдореЗрдВ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдмреАрд╕реАрдПрдо рдЕрдЧрд▓реЗ рд╣рд╕реНрддрд╛рдВрддрд░рдг рдХреЗ рд▓рд┐рдП рдЙрдЪрд┐рдд "рд╕реНрдЯрд╛рд░реНрдЯ" рд╢рд░реНрдд рдЬрд╛рд░реА рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рдЗрд╕ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдмрдЧ рдХреЗ рдкреНрд░рднрд╛рд╡ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реБрдЭрд╛рдП рдЧрдП рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб: рдЬрдм рдПрдХ рдмрд╛рдЗрдЯ рдХреЗ рд▓рд┐рдП "рдПрдирдПрдХреЗ" рдХреЗ рдХрд╛рд░рдг рдПрдХ рд╕реНрдерд╛рдирд╛рдВрддрд░рдг рдирд┐рд░рд╕реНрдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рджрд╛рд╕ рдХреЛ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП STOP рд╕реЗ рдкрд╣рд▓реЗ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдШрдбрд╝реА рдЪрдХреНрд░ рдЬрд╛рд░реА рдХрд░реЗрдВред рдпрд╣ рд╢рд╛рдпрдж рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рд╣реИред

рдпрд╣ рдХреЗрд╡рд▓ "рддреНрд░реБрдЯрд┐ рдкрде" рдореЗрдВ рд╣реЛрддрд╛ рд╣реИ рдЬрдм рджрд╛рд╕ рдПрд╕реАрдХреЗ рдХреЛ рдмрд╛рдЗрдЯ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рд╢рд╛рдпрдж рдпрд╣ рдХреЗрд╡рд▓ рддрднреА рдХрд░рдирд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реИ рдЬрдм рдпрд╣ рд╣рд╕реНрддрд╛рдВрддрд░рдг рдореЗрдВ рдкрд╣рд▓рд╛ рдмрд╛рдЗрдЯ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдмрдЧ рдПрдХ рд╣рд╕реНрддрд╛рдВрддрд░рдг рдХреЗ рдкрд╣рд▓реЗ рдмрд╛рдЗрдЯ рдкрд░ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдХреНрдпрд╛ рдпрд╣ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдбреНрд░рд╛рдЗрд╡рд░ рдореЗрдВ рд╣реИ? рд╣рд╛рдБред рдпрд╣ рдмрдЧ рдХреЗ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдбреНрд░рд╛рдЗрд╡рд░ рд╣реИред рдбреНрд░рд╛рдЗрд╡рд░ рдХрд╛ рдпрд╣ рдХрд░реНрддрд╡реНрдп рд╣реИ рдХрд┐ рд╡рд╣ рдЗрд╕ рдЫреЛрдЯреА рдЧрд╛рдбрд╝реА рдХреЗ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдХреЛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░ рд╕рдХреЗред

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рд╣рд╛рдп hmf2015,
рдпрд╣ рдХреЛрдИ рдлреЛрд░рдо рдирд╣реАрдВ рд╣реИред рдпрд╣ рдПрдХ рдмрдЧ рдЯреНрд░реИрдХрд░ рд╣реИред рдЗрд╕ рд╕реВрдЪреА-рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдПрдХ рдмрдЧ рдХреА рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ рд╣реИ рдЬреЛ рдЖрдкрдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдирд╣реАрдВ рд╣реИред рдХреГрдкрдпрд╛ рдПрдХ рдЙрдкрдпреБрдХреНрдд рдордВрдЪ рдпрд╛ рд╣реЗрд▓реНрдкрдбреЗрд╕реНрдХ рдХреЗ рд╕рд╛рде рдЕрдкрдиреА рд╕рдорд╕реНрдпрд╛ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░реЗрдВред рдлрд┐рд░ рд╕реЗ, рд╣рдо рдЖрдкрдХреЗ рдкреНрд░рд╢реНрди рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХрд░рддреЗ рд╣реИрдВ: "рд╢рд╛рдпрдж рдпрд╣ рд╡рд╣реА рд╣реИ? рд╢рд╛рдпрдж рдореЗрд░рд╛ рд╡рд┐рд╡рд░рдг рдЙрд╕ рдмрдЧ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИ?" рд▓реЗрдХрд┐рди рдЕрдм рд╣рдо рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЬреЛ рдЖрдк рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВ рд╡рд╣ рдЕрд╕рдВрдмрдВрдзрд┐рдд рд╣реИ, рдХреГрдкрдпрд╛ рдЗрд╕ рдЪрд░реНрдЪрд╛ рдХреЛ рдЖрдЧреЗ "рдкреНрд░рджреВрд╖рд┐рдд" рди рдХрд░реЗрдВред

рд╕рднреА 73 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдпрджрд┐ рдбреНрд░рд╛рдЗрд╡рд░ рдореЗрдВ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдЗрд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рдмрдирд╛рддрд╛ рд╣реИ, рддреЛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЗрд╕реЗ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдЙрдкрдпреБрдХреНрдд рдкреИрдЪ рд╣реИ?

рдирд╣реАрдВ рдЕрднреА рддрдХ рдирд╣реАрдВред

1) рдореИрдВрдиреЗ рдЕрднреА рддрдХ I2C рдбреНрд░рд╛рдЗрд╡рд░ рдореЗрдВ рджреЗрд░реА рдирд╣реАрдВ рдХреА рд╣реИред рд▓рдЧрднрдЧ рдПрдХ рд╕рд╛рд▓ рдкрд╣рд▓реЗ, рдореЗрд░реЗ рдкрд╛рд╕ рдЗрд╕реЗ рд╕реНрд╡рдпрдВ рд▓рд┐рдЦрдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдереА рд▓реЗрдХрд┐рди рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдореИрдВ рдЗрд╕рдХреЗ рдЖрд╕рдкрд╛рд╕ рдкрд╣реБрдБрдЪрддрд╛, рдХрд┐рд╕реА рдФрд░ рдиреЗ рдЗрд╕реЗ рд▓рд┐рдЦрд╛ рдерд╛ред рдЗрд╕рд▓рд┐рдП рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕ рдбреНрд░рд╛рдЗрд╡рд░ рдХреЛ рдЬрд╛рдирддрд╛ рд╣реИ, рд╡рд╣ рдкрд╛рдВрдЪ рдорд┐рдирдЯ рдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдбреНрд░рд╛рдЗрд╡рд░ рдХреЛ рдЬрд╛рдиреЗ рдореЗрдВ рдореБрдЭреЗ рдХрдо рд╕реЗ рдХрдо рдХрдИ рдШрдВрдЯреЗ рд▓рдЧреЗрдВрдЧреЗред
2) рдпрджрд┐ рдЖрдк (рдФрд░ рд╢рд╛рдпрдж рдЕрдиреНрдп) рд╕рд╣рдордд рд╣реИрдВ рдХрд┐ рдлрд┐рдХреНрд╕ / рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рд╡реЙрд░рдВрдЯреЗрдб рд╣реИ рддреЛ рдкрд╣рд▓реЗ рдЗрд╕ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░реЗрдВред
3) рдореИрдВ рдЗрд╕реЗ рдПрдХ "рдЯреВрдбреВ" рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд▓реЗрдЦрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛, рд╣рдореЗрдВ рдЗрд╕реЗ рдирд╣реАрдВ рднреВрд▓рдирд╛ рдЪрд╛рд╣рд┐рдП ...ред
4) рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХреЛрдИ рд╡реНрдпрдХреНрддрд┐ рдПрдХ рдЕрд▓рдЧ рд╕рдорд╛рдзрд╛рди рд╕реБрдЭрд╛рдПрдЧрд╛ред

рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмреЛрд▓рдирд╛: рдПрд╕рдбреАрдП рд▓рд╛рдЗрди рджреНрд╡рд╛рд░рд╛ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреЛ рддрдм рднреА рдХрдо рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬрдм рд╣рдо рдПрдХ рдирдпрд╛ рд▓реЗрдирджреЗрди рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдПрдХ "рд╕рдорд╕реНрдпрд╛" рд╕реНрдерд┐рддрд┐ рд╣реИред

"рдпрд╣ рдЧрд▓рдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ" рдорд╛рдорд▓рд╛ "рд╕рд╛рдорд╛рдиреНрдп" рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рджреБрд░реНрд▓рдн рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдХрдИ рд▓реЛрдЧреЛрдВ рдХреЗ рдкрд╛рд╕ I2C- рдмрд╕ рдореЗрдВ рдПрдХ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░-рдЖрдИ 2 рд╕реА рдореЙрдбреНрдпреВрд▓ рд╣реЛрдЧрд╛ред рдЬрдм I2C рдХрд╛ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ "10us" рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЪрд┐рдкреНрд╕ рдХреЗ рд▓рд┐рдП "рдмрд╣реБрдд рд╣реА рдХрдо" рд╕рдордп рд╕реАрдорд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдШрдбрд╝реА рдХреА рд╕реНрдЯреНрд░реЗрдЪрд┐рдВрдЧ рдЖрд╡рд╢реНрдпрдХ рдереАред рдЖрдЬрдХрд▓ рдХрд┐рд╕реА рднреА рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ I2C рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ "рдлрд╛рд╕реНрдЯ I2C" рдХреЛ рдФрд░ рднреА рддреЗрдЬреА рд╕реЗ рд╕рдВрднрд╛рд▓рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдпрд╣ рдЙрд╕ рддрд░рд╣ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдПрдЯрдо рд╡рд╛рд▓реЛрдВ рдиреЗ рдЕрдкрдиреЗ рдПрд╕рд┐рдВрдХреНрд╕ рдореЙрдбреНрдпреВрд▓ рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдерд╛ред рдмрд╛рд╣рд░реА рд░реВрдк рд╕реЗ рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рдШрдбрд╝реА (i2c-slave рдпрд╛ SPI-slave) рдкрд░ рдореЙрдбреНрдпреВрд▓ рдЪрд▓рд╛рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдореЙрдбреНрдпреВрд▓ рдЕрднреА рднреА рдкреНрд░реЛрд╕реЗрд╕рд░ рдШрдбрд╝реА рдкрд░ рдЪрд▓рддрд╛ рд╣реИред рдФрд░ рдпрд╣ рд╕рднреА рдЖрдиреЗ рд╡рд╛рд▓реЗ рд╕рдВрдХреЗрддреЛрдВ рдХреЛ рдлрд╝рд┐рд▓рд┐рдкреНрд▓реЛрдкреНрд╕ рдХреЗ рдПрдХ рд╕рдореВрд╣ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд╛рд░рд┐рдд рдХрд░рдХреЗ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд░рддрд╛ рд╣реИред рдЕрдЪреНрдЫрд╛ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдбрд┐рдЬрд╛рдЗрдиред рд╡рд┐рдХрд▓реНрдк IMHO рдмреЗрд╣рддрд░ рд╣реИ: рдмрд╛рд╣рд░реА рдШрдбрд╝реА рд╕реЗ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдЪрд▓рд╛рдПрдВ, рдФрд░ рдЬрдм рдбреЗрдЯрд╛ рдЕрдиреНрдп (рд╕реАрдкреАрдпреВ-) рдШрдбрд╝реА рдбреЛрдореЗрди рд╕реЗ рдЧреБрдЬрд░рддрд╛ рд╣реИ рддреЛ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд░реЗрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, SPI рдореЙрдбреНрдпреВрд▓ 20MHz рдкрд░ рдХрд╛рд░реНрдп рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рднрд▓реЗ рд╣реА CPU рдХреЗрд╡рд▓ 8 рдкрд░ рдЪрд▓рддрд╛ рд╣реЛред

рд╡реИрд╕реЗ рднреАред рдкрд░реНрдпрд╛рдкреНрдд рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдЬреБрдЖред

рд╕реБрдЭрд╛рдП рдЧрдП рд╕рдорд╛рдзрд╛рди: рд▓реЗрди-рджреЗрди рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдШрдбрд╝реА рдЪрдХреНрд░ рдЬрд╛рд░реА рдХрд░реЗрдВ рдЬрдм рдПрд╕рдбреАрдП рд▓рд╛рдЗрди рдЕрднреА рднреА рдХрдо рд╣реИред (рдпрд╣ "рд╕реНрдЯрд╛рд░реНрдЯ" рд╕реНрдерд┐рддрд┐ рдЬрд╛рд░реА рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдЪреНрдЪ рд╢реБрд░реВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП)ред

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВ I2C рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рдХрдо рдЬрд╛рдирддрд╛ рд╣реВрдВред рдореИрдВрдиреЗ рд╡рд░реНрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЧрд░реНрдЯ рдФрд░ рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рд╕реЗ рдмрд╛рдд рдХреА рд╣реИред

I2C рдХреЗ рд╕рд╛рде рджреЛ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ:

  1. рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдмрддрд╛рдИ рдЧрдИ рдШрдбрд╝реА рдХреА рд╕реНрдЯреНрд░реЗрдЪрд┐рдВрдЧ рдХреА рд╕рдорд╕реНрдпрд╛
  2. рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рддреЗ рд╕рдордп I2C рд░рд╛рдЬреНрдп рдорд╢реАрди рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛

1 рдХреЗ рд▓рд┐рдП, рдЧрд░реНрдЯ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИ рдХрд┐ рдХреЛрдИ рдореВрд░реНрдЦрддрд╛рдкреВрд░реНрдг рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИред
рдЕрдЧрд░ I2C рдЧреБрд▓рд╛рдо рдЖрдк рдареАрдХ рд╣реИрдВ рдШрдбрд╝реА рдЦреАрдВрдЪ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рдпрджрд┐ I2C рдШрдбрд╝реА рдПрдХ рдмрдВрдзреА рд╣реБрдИ рд░рд╛рд╢рд┐ рд╕реЗ рдлреИрд▓рддреА рд╣реИ, рддреЛ I2C рдШрдбрд╝реА рдХреА рдЖрд╡реГрддреНрддрд┐ рдХрдо рдХрд░рдиреЗ рд╕реЗ рд╕рдорд╕реНрдпрд╛ рд╕реЗ рдмрдЪрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рдкрд┐рдЫрд▓реЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдирд╣реАрдВ рдкрдбрд╝рдиреЗ рд╡рд╛рд▓реЗ рдЧреБрд▓рд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд┐рдЯ рдкреАрдЯрдиреЗ рд╡рд╛рд▓реЗ рдбреНрд░рд╛рдЗрд╡рд░ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдирд╛ рдПрдХ рд╕реБрд░рдХреНрд╖рд┐рдд рд╕рдорд╛рдзрд╛рди рд╣реИред

рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдЖрдкрдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдХрд╛рдо рдХрд░реЗрдЧрд╛ рдпрд╛ рдирд╣реАрдВред рдореБрдЭреЗ рдпрд╣ рд╕реБрдирдиреЗ рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реЛрдЧреА рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдХрдо рдХрд░рддрд╛ рд╣реИ, рдпрд╛ рдЗрд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдареАрдХ рдХрд░рддрд╛ рд╣реИред

рдЧрд░реНрдЯ рдХрд╛ рдХрд╣рдирд╛ рд╣реИ рдХрд┐ рдЙрдирдХреЗ рдкрд╛рд╕ рдмрдЧ рдХреА рдПрдХ рдирд┐рд░рд╛рд╢рд╛ рд╣реИ рдХрд┐ рд╡рд╣ рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВрдЧреЗ рдФрд░ рд░рд┐рд╣рд╛ рд╣реЛ рдЬрд╛рдПрдВрдЧреЗред

2 рдХреЗ рд▓рд┐рдП, GPU I2C рдбреНрд░рд╛рдЗрд╡рд░ рдореЗрдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд░рд╛рдЬреНрдп рдорд╢реАрди рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдорд╕реНрдпрд╛ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХреБрдЫ рдХреЛрдб рд╣реИрдВ:

/***********************************************************
 * Name: i2c_actual_read
 *
 * Arguments:
 *       const I2C_PERIPH_SETUP_T *periph_setup,
         const uint32_t sub_address,
         const uint32_t data_to_read_in_bytes,
         void *data
 *
 * Description: Routine to actually transfer data to the I2C peripheral
 *
 * Returns: int == 0 is success, all other values are failures
 *
 ***********************************************************/
static int32_t i2c_actual_read(  const I2C_PERIPH_SETUP_T *periph_setup,
                                 const I2C_USER_T *user,
                                 const uint32_t sub_address,
                                 const uint32_t read_nbytes,
                                 void *data,
                                 const int using_interrupt)
{
   int32_t rc = -1; /* Fail by default */
   int32_t status = 0;
   int32_t nbytes;

   uint32_t sub;
   uint8_t* read_data = (uint8_t*)data;
   uint32_t data_read = 0;

   if( NULL != periph_setup && NULL != data ) {

      // confirm that the latch is held for this transaction
      assert( i2c_state.periph_latch[ periph_setup->port ] != rtos_latch_unlocked() );

      // -> START
      // -> Slave device address | WRITE
      // <- Ack
      // -> Sub address
      // <- Ack
      // -> Sub address
      // <- Ack
      // -> ReSTART
      // -> Slave device address | READ
      // <- Ack
      // <- Data[0]
      // -> Ack
      // <- Data[1]
      // -> nAck
      // -> STOP

      I2CC_x( periph_setup->port )     = I2CC_EN | I2CC_CLEAR; /* Enable I2C and clear FIFO */
      I2CS_x( periph_setup->port )     = I2CS_ERR | I2CS_DONE | I2CS_CLKT; /* clear ERROR and DONE bits */
      I2CA_x( periph_setup->port )     = periph_setup->device_address;

      sub = sub_address;
      nbytes = periph_setup->sub_address_size_in_bytes;

      if( 0 == nbytes ) {
         /* No subaddress to send - just issue the read */
      } else {
         /*
           See i2c.v: The I2C peripheral samples the values for rw_bit and xfer_count in the IDLE state if start is set.

           We want to generate a ReSTART not a STOP at the end of the TX phase. In order to do that we must
           ensure the state machine goes RACK1 -> RACK2 -> SRSTRT1 (not RACK1 -> RACK2 -> SSTOP1). 

           So, in the RACK2 state when (TX) xfer_count==0 we must therefore have already set, ready to be sampled:
           READ ; rw_bit     <= I2CC bit 0   -- must be "read"
           ST;    start      <= I2CC bit 7   -- must be "Go" in order to not issue STOP
           DLEN;  xfer_count <= I2CDLEN      -- must be equal to our read amount

           The plan to do this is:
           1. Start the sub-add]ress write, but don't let it finish (keep xfer_count > 0)
           2. Populate READ, DLEN and ST in preparation for ReSTART read sequence
           3. Let TX finish (write the rest of the data)
           4. Read back data as it arrives

         */
         assert( nbytes <= 16 );
         I2CDLEN_x( periph_setup->port )  = nbytes;
         I2CC_x( periph_setup->port )    |= I2CC_EN | I2CC_START; /* Begin, latch the WRITE and TX xfer_count values */

         /* Wait for us to leave the idle state */
         while( 0 == ( I2CS_x(periph_setup->port) & (I2CS_TA|I2CS_ERR) ) ) {
            _nop();
         }
      }

      /* Now we can set up the parameters for the read - they don't get considered until the TX xfer_count==0 */
      I2CDLEN_x( periph_setup->port )  = read_nbytes;
      I2CC_x( periph_setup->port )     |= I2CC_EN | I2CC_START | I2CC_READ;

      /* Let the TX complete by providing the sub-address */
      while( nbytes-- ) {
         I2CFIFO_x( periph_setup->port ) = sub & 0xFF; /* No need to check FIFO fullness as sub-address <= 16 bytes long */
         sub >>= 8;
      }

      /* We now care that the transmit portion has completed; the FIFO is shared and we mustn't read out
         any of the data we were planning on writing to the slave! */

      /* Wait for peripheral to get to IDLE or one of the two RX states - this way we *know* TX has completed or hit an error */
      {
         uint32_t state;
         bool_t state_transition_complete;
         bool_t error_detected;
         do { 
            state = (I2CS_x( periph_setup->port ) & 0xf0000000) >> 28;
            state_transition_complete = ((state == 0) || (state == 4) || (state == 5));
            error_detected = (I2CS_x(periph_setup->port) & (I2CS_ERR | I2CS_CLKT)) != 0;
         } while(!state_transition_complete && !error_detected);

         if (error_detected) {
            /* Clean up, and disable I2C */
            I2CC_x( periph_setup->port ) &= ~(I2CC_INTD | I2CC_INTR);
            I2CC_x( periph_setup->port ) &= ~(I2CC_START | I2CC_READ);
            I2CS_x( periph_setup->port ) = I2CS_CLKT | I2CS_ERR | I2CS_DONE;
            I2CC_x( periph_setup->port ) |= I2CC_CLEAR;
            I2CC_x( periph_setup->port ) = 0;
            return -1;
         }
      }

      if (using_interrupt)
      {
         /* Wait for interrupt to complete. */
         i2c_state.active_buffer[periph_setup->port] = data;
         i2c_state.active_buffer_length[periph_setup->port] = read_nbytes;
         i2c_state.active_buffer_offset[periph_setup->port] = 0;
         i2c_state.pending_transfer[periph_setup->port] = I2C_PENDING_TRANSFER_READ;
         RTOS_LATCH_T latch = rtos_latch_locked();
         i2c_state.pending_latch[periph_setup->port] = &latch;

         /* Enable interrupt. */
         I2CC_x( periph_setup->port ) |= I2CC_INTD | I2CC_INTR;

         rtos_latch_get (&latch);

         i2c_state.pending_latch[periph_setup->port] = NULL;
         data_read = i2c_state.active_buffer_offset[periph_setup->port];

         rc = (data_read == read_nbytes) ? 0 : -1;
      }
      else
      {
         uint32_t time_now = 0;

         /* Loop until we've read all our data or failed. */
         while( 0 == ( I2CS_x(periph_setup->port) & (I2CS_TA|I2CS_ERR|I2CS_DONE) ) ) {
            _nop();
         }

         /* Wait for some data to arrive - we should wait, at most, I2C_TIMEOUT_IN_USECS for data to arrive every time we start waiting */
         time_now = i2c_state.systimer_driver->get_time_in_usecs( i2c_state.systimer_handle );
         while( ((i2c_state.systimer_driver->get_time_in_usecs( i2c_state.systimer_handle ) - time_now) < I2C_TIMEOUT_IN_USECS)
                && ( data_read < read_nbytes )
                && !(I2CS_x( periph_setup->port ) & I2CS_ERR) ) 
         {
            if (I2CS_x( periph_setup->port ) & I2CS_RXD) 
            {
               read_data[ data_read ] = I2CFIFO_x( periph_setup->port );
               data_read++;
               time_now = i2c_state.systimer_driver->get_time_in_usecs( i2c_state.systimer_handle  );
            }
         }

         if( (data_read != read_nbytes) /* Did we read all the data we asked for? */
             || ( (read_nbytes - data_read) != I2CDLEN_x( periph_setup->port ) ) /* Has DLEN decremented? */
             || ( 0 != (I2CS_x( periph_setup->port ) & I2CS_ERR) ) ) { /* Are there any errors? */
            rc = -1;
         } else {
            while( I2CS_DONE != (I2CS_x(periph_setup->port) & I2CS_DONE) ); /* Wait for the peripheral */
            rc = 0;
         }
      }

      /* Clean up, and disable I2C */
      I2CC_x( periph_setup->port ) &= ~(I2CC_INTD | I2CC_INTR);
      if(I2CS_x( periph_setup->port ) & I2CS_ERR) {
         //Wait for it to be idle
         while(I2CS_x( periph_setup->port ) & I2CS_TA)
            _nop();
      }
      I2CS_x( periph_setup->port ) = I2CS_ERR | I2CS_DONE;
      //Finally disable the I2C
      I2CC_x( periph_setup->port ) = 0x0;
   }

   if( !user->skip_asserts ) {
      assert( rc >= 0 );
      _nop();
   }

   return rc;
}      

рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рд▓реЛрдЧ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдЙрдард╛ рд░рд╣реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрдк рд╣реИрдВ рддреЛ рдкреЗрд╕реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЗрд╕ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдмрдЧ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдорд╛рдкреНрдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИред

рдЬрдм рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ, рдорд╛рд╕реНрдЯрд░ рдФрд░ рджрд╛рд╕ рдШрдбрд╝реА рдЪрдХреНрд░ рдХреА рд╕рдВрдЦреНрдпрд╛ рдкрд░ рдЕрд╕рд╣рдордд рд╣реЛрддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдбреЗрдЯрд╛, рдЬреИрд╕рд╛ рдХрд┐ рджрд╛рд╕ рджреНрд╡рд╛рд░рд╛ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдорд╛рд╕реНрдЯрд░ (= рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ = рдбреНрд░рд╛рдЗрд╡рд░ / рдЕрдиреБрдкреНрд░рдпреЛрдЧ) рдХреЗ рд░реВрдк рдореЗрдВ рдбреЗрдЯрд╛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣реИред рдЖрдк рдХрд╣реАрдВ рд░рдЬрд┐рд╕реНрдЯрд░ рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдлрд░реНрдЬреА рдореВрд▓реНрдп рд▓рд┐рдЦ рд░рд╣реЗ рд╣реЛрдВрдЧреЗред рдЕрддреНрдпрдзрд┐рдХ рдХрд╖реНрдЯрдкреНрд░рджред

рдореЗрд░реЗ рд╕реБрдЭрд╛рдП рдЧрдП рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХрдо рд╕реЗ рдХрдо рдЕрдЧрд▓реЗ рд▓реЗрдирджреЗрди рдХреЗ рдХрд╛рд░рдг рдХрд╛рдо рдХрд░реЗрдВрдЧреЗред рдкреНрд░рднрд╛рд╡ рдХреЛ рдЖрдзрд╛ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛: рдХреЗрд╡рд▓ рдПрдХ рд▓реЗрдирджреЗрди рджреЛ рдХреЗ рдмрдЬрд╛рдп рдмреЙрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ред рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдЦрддреНрдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред

рдЕрдЧрд░ I2C рдЧреБрд▓рд╛рдо рдЖрдк рдареАрдХ рд╣реИрдВ рдШрдбрд╝реА рдЦреАрдВрдЪ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рдЕрдЧрд░ I2C рдЧреБрд▓рд╛рдо рдХреЛ рд╕реНрдЯреНрд░реЗрдЪрд┐рдВрдЧ рдХреА рдШрдбрд╝реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ ...ред

рдпрджрд┐ I2C рдШрдбрд╝реА рдПрдХ рдмрдВрдзреА рд╣реБрдИ рд░рд╛рд╢рд┐ рд╕реЗ рдлреИрд▓рддреА рд╣реИ, рддреЛ I2C рдШрдбрд╝реА рдХреА рдЖрд╡реГрддреНрддрд┐ рдХрдо рдХрд░рдиреЗ рд╕реЗ рд╕рдорд╕реНрдпрд╛ рд╕реЗ рдмрдЪрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ

рд╣рд╛рдБред рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╕реНрдерд╛рди рдкрд░ "рдХреНрд╖реЗрддреНрд░ рдореЗрдВ" 10 рдбрд┐рд╡рд╛рдЗрд╕ рд╣реИрдВред рдЬрд╛рд╣рд┐рд░рд╛ рддреМрд░ рдкрд░ рдореЙрдбреНрдпреВрд▓ рдХреЗ рддреАрди рдХреА рдШрдбрд╝реА рдХреА рдЖрд╡реГрддреНрддрд┐ (рдЖрд░рд╕реА рдШрдбрд╝реА) рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рд╣реЛрддреА рд╣реИ рдХрд┐ рд╡реЗ рдШрдбрд╝реА рдХреЗ рд╕рд╛рде "рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ" рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рддреА рд╣реИрдВред рдШрдбрд╝реА рдХреА рдЖрд╡реГрддреНрддрд┐ рдХреЛ рдХрдо рдХрд░рдиреЗ рд╕реЗ рдЙрди рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП рд╕рдорд╕реНрдпрд╛рдПрдВ рддрдп рд╣реЛ рдЧрдИ рд╣реИрдВред

рдпрджрд┐ рдХреНрд▓реЙрдХ рд╕реНрдЯреНрд░реЗрдЪрд┐рдВрдЧ рдореЗрдВ рджреЗрд░реА рддрдп рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди, рдХрд╣рддреЗ рд╣реИрдВ, 5 рд╕реЗ рдЕрдзрд┐рдХ рдорд╛рдЗрдХреНрд░реЛрд╕реЗрдХрдВрдб рд╕реЗ рднрд┐рдиреНрди рд╣реЛрддрд╛ рд╣реИ, рддреЛ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдорд╛рд░рдиреЗ рдХрд╛ рдЕрдзрд┐рдХ рдпрд╛ рдХрдо рд╕рд╛рдВрдЦреНрдпрд┐рдХреАрдп рдореМрдХрд╛ рд╣реЛрддрд╛ рд╣реИред рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рджрд╛рд╕ рдХреЛ рдШрдбрд╝реА рдХреА рдЪреМрдбрд╝рд╛рдИ рдХреЗ 0.25 рдорд╛рдЗрдХреНрд░реЛрд╕реЗрдХрдВрдб рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рддреЛ рдШрдбрд╝реА рдХрд╛ рдЦрд┐рдВрдЪрд╛рд╡ 5% рд╕рдордп рдореЗрдВ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ рдШрдбрд╝реА рдХреЛ рдмрджрд▓рдиреЗ рдореЗрдВ рдмреАрд╕реАрдПрдо рдХреЗ рд▓рд┐рдП рдЕрдЧреНрд░рдгреА рд╣реЛрддрд╛ рд╣реИ, рддрдм рдЪреАрдЬреЗрдВ рдЧрд▓рдд рд╣реЛ рдЬрд╛рддреА рд╣реИрдВред рддреЛ, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, 20 рдореЗрдВ рд╕реЗ 1 рд╣рд╕реНрддрд╛рдВрддрд░рдг рдЧрд▓рдд рд╣реЛрдЧрд╛ред (рд╕реНрдкреЗрдХреНрд╕ рдХрд╛ рдХрд╣рдирд╛ рд╣реИ рдХрд┐ рдПрдХ рдШрдбрд╝реА рдкрд▓реНрд╕ рдХреЗ рд▓рд┐рдП рдорд┐рдирдЯ 250ns рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЕрдЧрд░ рдпрд╣ рдЫреЛрдЯрд╛ рд╣реИ рддреЛ рдпрд╣ рдирд╣реАрдВ рджреЗрдЦрд╛ рдЬрд╛рдПрдЧрд╛ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдХреЗ рджреЗрдЦреЗ рдЬрд╛рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ 100% рд╕реЗ> 250ns рд╕реЗ 0% <рдкрд░ рд░реИрдЦрд┐рдХ рд░реВрдк рд╕реЗ рдЬрд╛рддреА рд╣реИред 125 рдирдВред)

рдореИрдВрдиреЗ рдХрд▓ рдШрдбрд╝реА рдХреА рд╕реНрдЯреНрд░реЗрдЪрд┐рдВрдЧ рдЕрд╡рдзрд┐ рдХреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдмрдврд╝рд╛рдпрд╛ рд╣реИ рдХрд┐ рдпрд╣ 5 рдорд╛рдЗрдХреНрд░реЛрд╕реЗрдХрдВрдб рд╡рд┐рдВрдбреЛ-рдСрдл-рдЕрд╡рд╕рд░ рдореЗрдВ 2.5 рдорд╛рдЗрдХреНрд░реЛрд╕реЗрдХрдВрдб рдХреЗ рдирд┐рд╢рд╛рди рдХреЗ рдЖрд╕рдкрд╛рд╕ рд╣реЛрдЧрд╛ред рдЕрдЧрд░ рдореИрдВ рдЦрд┐рдбрд╝рдХреА рдХреА рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП рд▓рдХреНрд╖реНрдп рд░рдЦрддрд╛ рд╣реВрдВ рдФрд░ рдореЗрд░реА рдЖрд░рд╕реА рдШрдбрд╝реА рддреЗрдЬреА рд╕реЗ рдЪрд▓рддреА рд╣реИ, рддреЛ рдореИрдВ "0" рдХреЛ рдорд╛рд░реВрдВрдЧрд╛ рдЬреЛ рдмрдЧ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рддрд╛ рд╣реИред рдЕрдЧрд░ рдореИрдВ 5 рдХреЗ рд▓рд┐рдП рд▓рдХреНрд╖реНрдп, рдПрдХ рд╣реА рдмрд╛рдд рд╣реИред рдЗрд╕рд▓рд┐рдП рдЕрдм рдореИрдВ рдмреБрд░реА рдЬрдЧрд╣реЛрдВ рд╕реЗ рджреВрд░, рдмреАрдЪ рдореЗрдВ рдирд┐рд╢рд╛рдирд╛ рд╕рд╛рдз рд░рд╣рд╛ рд╣реВрдВред рд▓реЗрдХрд┐рди I2C рдШрдбрд╝реА рдХреЛ 80kHz рдореЗрдВ рдмрджрд▓реЗрдВ, рдФрд░ BAM, рдореИрдВ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рд╕реНрдерд╛рди рдХреЗ рд▓рд┐рдП рд╕рд╣реА рд▓рдХреНрд╖реНрдп рдмрдирд╛ рд░рд╣рд╛ рд╣реВрдВ ... (рдФрд░ рдЕрдЧрд░ рдпрд╣ 80kHz рдХреЗ рд╕рд╛рде рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдпрд╣ 80 рдФрд░ 100 рдХреЗ рдмреАрдЪ рдХреБрдЫ рдореВрд▓реНрдп рдХреЗ рд╕рд╛рде рд╣реЛрдЧрд╛)ред

рдпрд╣рд╛рдБ Gert рдХрд╛ I2C рдмрдЧ рдХрд╛ рд╡рд░реНрдгрди рд╣реИ:
https://dl.dropbox.com/u/3669512/2835_I2C%20interface.pdf

рд╣рд╛! рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдЯреЗрд╕реНрдЯ-рдмреЛрд░реНрдб рдХреЛ рдмрд┐рд▓реНрдХреБрд▓ рдЙрд╕реА рддрд░реАрдХреЗ рд╕реЗ рд▓рд┐рдЦрд╛ рд╣реИред рдореИрдВрдиреЗ SCL рдЯреНрд░реЗрд╕ рдХреЛ рдХрд╛рдЯ рджрд┐рдпрд╛ рд╣реИ рдФрд░ рд╡рд╣рд╛рдВ рдкрд░ рдПрдХ 0.1 "рдЬрдореНрдкрд░ рдХрдиреЗрдХреНрдЯрд░ рд▓рдЧрд╛ рджрд┐рдпрд╛ рд╣реИред рдЬрдмрдХрд┐ рд╡рд╣рд╛рдВ рди рдирд╛рдкрдиреЗ рдкрд░ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдЬрдореНрдкрд░ рдпрд╛ 100 рдУрдо рдЕрд╡рд░реЛрдзрдХ рд╡рд╛рд▓реА рдорд╣рд┐рд▓рд╛ рдХрдиреЗрдХреНрдЯрд░ рд╣реЛрддреА рд╣реИред

рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ рдкрд╣рд▓реА рдШрдбрд╝реА рдореЗрдВ рд╣реЛрддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдореИрдВ рд╕рдорд╕реНрдпрд╛ рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рддреЛ рдШрдбрд╝реА рдЦреАрдВрдЪрдХрд░ рдмрд┐рд▓реНрдХреБрд▓ рдирд╣реАрдВ (рдЬреИрд╕рд╛ рдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ I2C рдЪрд┐рдкреНрд╕ рд╢рд╛рдпрдж рдХрд░рддреЗ рд╣реИрдВ), рдпрд╛ рдШрдбрд╝реА рдХреЗ рдЦрд┐рдВрдЪрд╛рд╡ рдХреЛ рдХрдо рд╕реЗ рдХрдо рдПрдХ рдкреВрд░реНрдг рдЪрдХреНрд░ рддрдХ рд▓реЗ рдЬрд╛рдиреЗ рдХреЗ рдХрд╛рд░рдгред

рдореИрдВрдиреЗ рдЕрдкрдиреЗ i2c рд╕реНрд▓реЗрд╡ рдХреЛрдб рдХреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЗрдВрд╕реНрдЯреНрд░реВрдореЗрдВрдЯ рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдШрдбрд╝реА рдХреЗ рдЦрд┐рдВрдЪрд╛рд╡ рдХреЛ 0.5 рдорд╛рдЗрдХреНрд░реЛрд╕реЗрдХрдВрдб рдЗрдВрдХреНрд░реАрдореЗрдВрдЯ рд╕реЗ рдмрджрд▓ рд╕рдХрддрд╛ рд╣реВрдВред рдореИрдВ рдЗрд╕реЗ I2C рдкрд░ XXX рдХреЗ рд▓рд┐рдП рдХреНрд▓реЙрдХ рд╕реНрдЯреНрд░реЗрдЪ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдорд╛рдВрдб рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдФрд░ рдлрд┐рд░ рдпрд╣ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рдиреЛрдВ рдХреЛ рд╡рд╛рдкрд╕ рдмрджрд▓рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ 50 рдорд┐рд▓рд┐рд╕реЗрдХрдВрдб рдХреЗ рд▓рд┐рдП рдЙрд╕ рддрд░рд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред (рдЕрдЧрд░ рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рд╣рдореЗрдВ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрд╕ рддрд░рд╣ рд╕реЗ рдореИрдВ рдЗрди рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд▓рд┐рдП рдореВрд▓реНрдпреЛрдВ рдХреА рдПрдХ рдкреВрд░реА рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЛ рдЬрд▓реНрджреА рд╕реЗ рд╕реНрдХреИрди рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рдЬрдмрдХрд┐ рдПрдХ рддрд░реНрдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреЗ рд╕рд╛рде рдПрд╕рдбреАрдП рдФрд░ рдПрд╕рд╕реАрдПрд▓ рд▓рд╛рдЗрдиреЛрдВ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рдирд╛ред "рджреЗрд░реА рджреЗрд░реА XXX" рднреЗрдЬрдирд╛ рдФрд░ рдлрд┐рд░ред рдПрдХ рд╕реНрдЯрд┐рдВрдЧ рднреЗрдЬрдиреЗ рдореЗрдВ 25 рдорд┐рд▓рд┐рд╕реЗрдХрдВрдб рд▓рдЧрддреЗ рд╣реИрдВред рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдПрдХ рдХрд╛рдЙрдВрдЯрд░ рдмрдврд╝рд╛рдирд╛ рдФрд░ "рдЕрдЧрд▓реА рджреЗрд░реА" рднреЗрдЬрдирд╛ рд╢реЗрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рд▓рдЧрднрдЧ 100ms рдореЗрдВ рд▓реЗ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рдореИрдВ рд▓рдЧрднрдЧ 10 рд╕реЗрдХрдВрдб рдореЗрдВ 100 рд╕рдВрднрд╛рд╡рд┐рдд рдорд╛рдиреЛрдВ рдХреЛ рд╕реНрдХреИрди рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред

рдореИрдВ рдЕрдм рджреЗрд░реА рдкрд░ рд╣реЛ рд░рд╣рд╛ рдмрдЧ рджреЗрдЦрд╛ рд╣реИред рддреЛ рд╕рд┐рджреНрдзрд╛рдВрдд: "рдпрд╣ рдХреЗрд╡рд▓ рдкрд╣рд▓реЗ рдкрд░ рд╣реЛрддрд╛ рд╣реИ" рд╕рд╣реА рдирд╣реАрдВ рд╣реИред

"рд╕реБрдкрд░ рдХреБрд╢рд▓" рд░реБрдХрд╛рд╡рдЯ рд╣реИрдВрдбрд▓рд░ рдХреЗ рд░реВрдк рдореЗрдВ: рд╣рд╛рдБ, рдореИрдВ рднреА рдРрд╕рд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рдмрд╛рдд рдпрд╣ рд╣реИ: рдХреНрд▓реЙрдХ рд╕реНрдЯреНрд░реЗрдЪрд┐рдВрдЧ рдлреАрдЪрд░ рдореБрдЭреЗ рдЗрдВрдЯрд░рдкреНрдЯ рд░реВрдЯреАрди рдореЗрдВ "рдЗрд╕ рдмрд╛рдЗрдЯ рдХреЛ рд╣реИрдВрдбрд▓" рдХреЛрдб рдбрд╛рд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдФрд░ рдХреБрдЫ рдорд╛рдЗрдХреНрд░реЛрд╕реЗрдХрдВрдб рдпрд╛ рдХреБрдЫ рдорд┐рд▓рд┐рд╕реЗрдХрдВрдб рд▓реЗрдиреЗ рдХреА рдЪрд┐рдВрддрд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ рдШрдбрд╝реА рдХреА рд╕реНрдЯреНрд░реЗрдЪрд┐рдВрдЧ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдЧреА рдХрд┐ рдорд╛рд╕реНрдЯрд░ рдЕрдЧрд▓реЗ рдПрдХ рдХреЗ рд╕рд╛рде рдЬрд╛рд░реА рд░рдЦрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЗрд╕ рдмрд╛рдЗрдЯ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдореЗрд░рд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░ рд░рд╣рд╛ рд╣реИред 2835 рдореЗрдВ рдмрдЧ рдХреЗ рд╕рд╛рде рдЙрд╕ рдпреЛрдЬрдирд╛ рдХрд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкрд░реНрджрд╛рдлрд╛рд╢ рд╣реЛ рдЧрдпрд╛ рд╣реИред рдореИрдВ рдЕрдм рдХреЗрд╡рд▓ рдШрдбрд╝реА рдХреА рд╕реНрдЯреНрд░реЗрдЪрд┐рдВрдЧ рдХреЛ рд░реЛрдХрдиреЗ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реВрдВ, рдФрд░ рдлрд┐рд░ 70 рдорд╛рдЗрдХреНрд░реЛрд╕реЗрдХрдВрдб рдореЗрдВ рдмрд╛рдЗрдЯ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рдХреА рдЙрдореНрдореАрдж рдХрд░рддрд╛ рд╣реВрдВред

рдореЗрд░реЗ рд▓рд┐рдП "рд╕рд╛рдЗрдХрд▓ рдХрд╛рдЙрдВрдЯ" рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдореЗрд░реЗ рд▓рд┐рдП 5 рдорд╛рдЗрдХреНрд░реЛрд╕реЗрдХрдВрдб рдХреА рдЖрдзреА рдШрдбрд╝реА рдХреЗ рдмреАрдЪ рдореЗрдВ рдШрдбрд╝реА рдХреА рд╕реНрдЯреНрд░реЗрдЪрд┐рдВрдЧ рдЬрд╛рд░реА рдХрд░рдирд╛ рд╣реИред рдЕрдЧрд░ рдореИрдВ рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП рд▓рдХреНрд╖реНрдп рд░рдЦрддрд╛ рд╣реВрдВ (4.9 рдорд╛рдЗрдХреНрд░реЛрд╕реЗрдХрдВрдб рдХреНрд▓реЙрдХ-рд╣рд╛рдИ-рдкреАрд░рд┐рдпрдб рдХрд╛ рдХрд╛рд░рдг рдмрдирдиреЗ рдХреЗ рд▓рд┐рдП) рддреЛ рдореЗрд░реЗ рдЧреБрд▓рд╛рдо рдХреА рдШрдбрд╝реА рдХреБрдЫ рдкреНрд░рддрд┐рд╢рдд рддреЗрдЬреА рд╕реЗ рдЪрд▓ рд╕рдХрддреА рд╣реИ рдФрд░ рдмрдЧ рдХреЛ рдЖрдзрд╛ рдЪрдХреНрд░ рдкрд╣рд▓реЗ рдЯреНрд░рд┐рдЧрд░ рдХрд░ рд╕рдХрддреА рд╣реИред рддреЛ рдЖрдзреЗ-рдШрдбрд╝реА рдХреЗ рдЪрдХреНрд░ рдХреЗ рджреЛрдиреЛрдВ рдЫреЛрд░ рдЦрддрд░рдирд╛рдХ рд╣реИрдВ, рдореБрдЭреЗ рдПрдХ рдЫреЛрдЯреЗ, рд▓реЗрдХрд┐рди рдорд╛рдиреНрдп рдкрд░реНрдпрд╛рдкреНрдд рдШрдбрд╝реА рдЪрдХреНрд░ рдХреЗ рд▓рд┐рдП рд▓рдХреНрд╖реНрдп рдмрдирд╛рдирд╛ рд╣реИред

рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди IMHO рд╕рд░рд▓ рд╣реИ: рдЬрдм SCL "рдЙрдЪреНрдЪ рд╕рдВрдЪрд╛рд▓рд┐рдд рд╣реЛрддрд╛ рд╣реИ" (рдЕрд░реНрдерд╛рдд рдмрд┐рд▓реНрдХреБрд▓ рднреА рд╕рдВрдЪрд╛рд▓рд┐рдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ), I2C рдорд╛рд╕реНрдЯрд░ рдорд╛рд╕реНрдЯрд░ рдШрдбрд╝реА рдХреЛ рд░реЛрдХреЗрдВред рдпрд╣ рдмрд╣реБрдд рд▓рдВрдмреЗ рд╕рдордп рддрдХ I2C рдмрд╕реЛрдВ рдХреЛ рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХрд╛ рд╕рд╛рдЗрдб рдЗрдлреЗрдХреНрдЯ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХреИрдк рд╕реНрдЯреНрд░реЗрдЪрд┐рдВрдЧ рддрдм рд╣реЛрддреА рд╣реИ рдЬрдм рдмрд╕ рдХреИрдкреЗрд╕рд┐рдЯреЗрдВрд╕ рдХрд▓реНрдкрдирд╛ рд╕реЗ рдКрдкрд░ рд╣реИред

рдпрд╣: http://comments.gmane.org/gmane.linux.kernel.rpi/268 рдФрд░ рдпрд╣: http://news.gmane.org/gmane.linux.kernel.rpi рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИ?

рдорджрдж рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, iz8mbw, рд▓реЗрдХрд┐рди рдЙрди рд▓реЛрдЧреЛрдВ рдХреЛ рдЗрд╕ (рд╣рд╛рд░реНрдбрд╡реЗрдпрд░) рдмрдЧ рд╕реЗ рдХреЛрдИ рд▓реЗрдирд╛ рджреЗрдирд╛ рдирд╣реАрдВ рд╣реИред

рдореИрдВрдиреЗ рдЕрдкрдиреА I2C рдШрдбрд╝реА рдХреЛ рдорд╛рдкрд╛ рд╣реИ рдФрд░ рдпрд╣ 100kHz рдХреЗ рд░реВрдк рдореЗрдВ рд╕рд╛рдордиреЗ рдЖрддрд╛ рд╣реИ рдЬреЛ рдбреНрд░рд╛рдЗрд╡рд░ рдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдбреНрд░рд╛рдЗрд╡рд░ рдХреЗ рдкрд╛рд╕ рдПрдХ "рдХреНрд▓реЙрдХ рд╕реЛрд░реНрд╕" рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реИ, рдЬреЛ рдЖрд╡реГрддреНрддрд┐ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╢реНрди рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдореИрдВрдиреЗ рдЕрднреА рддрдХ рдЖрд╡реГрддреНрддрд┐ рдХреЛ рдкреНрд░рд┐рдВрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдбреНрд░рд╛рдЗрд╡рд░ рдХреЛ рд╕рд╛рдзрди рдирд╣реАрдВ рджрд┐рдпрд╛ рд╣реИред

рдмрд╕ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдЬреЛ рдмрдЧ рдХреЛ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдореЗрдВ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдореЗрд░реЗ рдкрд╛рд╕ рд▓реЙрдЬрд┐рдХ рдЕрдирд▓рд╕реАрдпрд░ рдбрдВрдк рдХреЗ рд░реВрдк рдореЗрдВ рдХреБрдЫ "рд╕рдмреВрдд" рд╣реИрдВред
рд╣рдореНрдо рдореИрдВ рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рд╕рдВрд▓рдЧреНрди рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдмрд╛рдЗрдирд░реА рд▓рд╛ рдбрдВрдк рдирд╣реАрдВред рд╡рд╣ рдпрд╣рд╛рдВ рд╣реИ: http://prive.bitwizard.nl/LA_with_bug_scan_50_to_100_microseconds_delay.bin.gz

рдЫрд╡рд┐ рдореЗрдВ LA_with_bug_shot1.png рдЖрдкрдХреЛ рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреА рдЫреЛрдЯреА рдлрдЯ рджрд┐рдЦрд╛рдИ рджреЗрдЧреА: "XXX рдкрд░ рд╡рд┐рд▓рдВрдм рд╕реЗрдЯ рдХрд░реЗрдВ" рдлрд┐рд░ рдПрдХ рдЫреЛрдЯрд╛ рдлрдЯ рдЬреЛ рдХреБрдЫ 10 рдмрд╛рдЗрдЯреНрд╕ рд▓рд┐рдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ NACK рдХреЗ рдХрд╛рд░рдг рдирд┐рд░рд╕реНрдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рджрд╛рдИрдВ рдУрд░ рдЖрдкрдХреЛ рдПрдХ рдЙрдЪрд┐рдд 10-рдмрд╛рдЗрдЯ-рдкреИрдХреЗрдЯ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИред SDA рд▓рд╛рдЗрди рддрдм рддрдХ рдХрдо рд░рд╣рддреА рд╣реИ рдЬрдм рддрдХ рдХрд┐ рдЕрдЧрд▓реА рдлрдЯрдиреЗ рдХреА рдорд┐рд╕рдЕрд▓рд╛рдЗрдЬ рдирд╣реАрдВ рд╣реЛ рдЬрд╛рддреА (рд╕рднреА рдмрд┐рдЯреНрд╕ рд╢рд┐рдлреНрдЯ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ, рдФрд░ рдореЗрд░реЗ рдЧреБрд▓рд╛рдо рдореЗрдВ "xth-byte-in-packet" рдХрд╛рдЙрдВрдЯрд░ рдХреЛ рдЙрд╕ рдкреИрдХреЗрдЯ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдиреЙрди-рдкреНрд░рд┐рд╕реНрдЯреЗрдВрдЯ рд╕реНрдЯрд╛рд░реНрдЯ рдХрдВрдбреАрд╢рди рджреНрд╡рд╛рд░рд╛ рд░реАрд╕реЗрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ) ред

рдЫрд╡рд┐ рдореЗрдВ LA_with_bug_shot2.png рдореИрдВрдиреЗ рдЙрд╕ рдЕрдиреБрднрд╛рдЧ рдХреЛ рдЬрд╝реВрдо рдЗрди рдХрд┐рдпрд╛ рд╣реИ рдЬрд╣рд╛рдВ рд╢реЙрд░реНрдЯ рдкрд▓реНрд╕ рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рд╕рдмрд╕реЗ рд▓рдВрдмреА рдкрд▓реНрд╕ рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рдЧрд▓рдд рджреЗрдЦрд╛ рд╣реИ: 290nsред (Atmel рдХреЗ рд▓рд┐рдП рдКрдкрд░ рдбреЗрдЯрд╛рд╢реАрдЯ-рдХрд▓реНрдкрдирд╛!)
LA_with_bug_shot1
LA_with_bug_shot2

рдУрд╣ рдЗрддрдирд╛ рд╣реИ рдХрд┐ рдХрд╣рд╛рдБ рд╕реЗ рдЖрдпрд╛ рд╣реИ!

рдореБрдЭреЗ рдПрдХ рдРрд╕реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдорд┐рд▓реА рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВ I2C рдХреЗ рд╕рд╛рде рдПрдХ рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рд╕реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдореИрдВ рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ рдмрд╕ рджреЗрдиреЗ рдХреЗ рдХрд░реАрдм рд╣реВрдВ рдФрд░ рдпрд╛ рддреЛ рдмреАрдЧрд▓рдмреЛрд░реНрдб рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдпрд╛ рдПрд╕рдкреАрдЖрдИ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рдПрдлрдкреАрдЬреАрдП рд╕реЗ рдмрд╛рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЬреЛ рдлрд┐рд░ I2C рд╕рд╛рдорд╛рди рдХрд░рддрд╛ рд╣реИ ред

рдореЗрд░реЗ рдкрд╛рд╕ рдореЗрд▓ рдореЗрдВ рдПрдХ рдмреЛрд░реНрдб рд╣реИ рдЬреЛ рдРрд╕рд╛ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП (рдЕрдкреЗрдХреНрд╖рд┐рдд рдбрд┐рд▓реАрд╡рд░реА: рдХрд▓)ред рдПрд╕рдкреАрдЖрдИ рдХрдиреЗрдХреНрдЯрд░, I2C рдХрдиреЗрдХреНрдЯрд░ред рдЙрд╕ рдмреЛрд░реНрдб рдХреЗ рд╕рд╛рде рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╣реЛрдЧреАред рдЕрдЧрд░ рдЖрдкрдХреЛ рд╕реВрдЪрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рд╣реИ рддреЛ рдореБрдЭреЗ рдПрдХ рдИрдореЗрд▓ рднреЗрдЬреЗрдВред

рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐: рдореИрдВ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдЧрд░реНрдЯ рдХреЗ рд╕рд╛рде рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВ: "рдЬрдм рджрд╛рд╕ рдПрдХ ATMEGA рд╣реИ, рддреЛ рдХреЗрд╡рд▓ рдкрд╣рд▓рд╛ рдЪрдХреНрд░ рдЧрд▓рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ", рдФрд░ рдЬрдм рдореИрдВ рдЕрдкрдиреЗ ATTINYs рдореЗрдВ рд╕реЗ рдПрдХ рд╣реЛрддрд╛ рд╣реВрдВ, рддреЛ рдореИрдВ рдкреВрд░реА рддрд╛рдХрдд рд╕реЗ рдмрдЧ рдХреЛ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВред

рдпрд╣рд╛рдБ рд╡рд┐рд▓рдВрдм рдореИрдВрдиреЗ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рд╣реИ:
i2c_delays_atmega
рдФрд░ рдЗрд╕ рдкрд░реАрдХреНрд╖рдг-рд╕рддреНрд░ рдХреЗ рджреМрд░рд╛рди рдордирд╛рдпрд╛ рдЧрдпрд╛ рд╕рдмрд╕реЗ рдЫреЛрдЯрд╛ рдПрд╕рд╕реАрдПрд▓ рдкрд▓реНрд╕ 4.5 рдорд╛рдЗрдХреНрд░реЛрд╕реЗрдХрдВрдб рдерд╛ред

рдЕрдм рдЕрдЯрд╛рд░реА рджрд╛рд╕ рдХреЗ рд╕рд╛рде рдкрд░реАрдХреНрд╖рдг, ACK рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рд┐рдд рд╡рд┐рд▓рдВрдм рд╣реИрдВ:
i2c_delays_attiny

рдФрд░ рдиреНрдпреВрдирддрдо рдкрд▓реНрд╕ рдЪреМрдбрд╝рд╛рдИ 41ns (рдореЗрд░рд╛ рдорд╛рдк рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди) рд╣реИ:
i2c_delays_attiny2

рдЖрд╣ред рдорд┐рд▓ рдЧрдпрд╛! рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдмрд╛рдЗрдЯ рдХреЗ рдПрд╕реАрдХреЗ рд╕реЗ рдкрд╣рд▓реЗ рдХреА рдШрдбрд╝реА "рдЦрддрд░рдирд╛рдХ" рд╣реИ, рд▓реЗрдХрд┐рди рдПрд╕реАрдХреЗ рдХреЗ рдмрд╛рдж рдХреА рдШрдбрд╝реА рдареАрдХ рд╣реИ .....

рдореИрдВ рдФрд░ рдЕрдиреНрдп рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдмрд╛рд░-рдмрд╛рд░ рд╢реБрд░реВ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдореБрджреНрджреЗ рдХреЛ рдорд╛рд░ рд░рд╣реЗ рд╣реИрдВред рдореЗрд░реЗ рдкрд╛рд╕ http://cpansearch.perl.org/src/MDOOTSON/HiPi-0.26/BCM2835.xs рд╣реИрдкреА рдореЗрдВ рд╣рд┐рдкреА_рдЖрдИ 2 рд╕реА_рдбреНрд░реЗрдб_рдЧреНрд░реЗрд╕реНрдЯрд░_рд░реНрд╕ рд╣реИред рдпрд╣ рдЙрди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдЗрд╕реЗ рдЖрдЬрд╝рдорд╛рдиреЗ рдпрд╛ рд╕реА рдХреЛрдб рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХреА рд╣реИ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ 5 рд▓реЛрдЧ рд╣реИрдВ), рднрд▓реЗ рд╣реА рдореБрдЭреЗ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдкрддрд╛ рдирд╣реАрдВ рдЪрд▓рд╛ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП рдХрд┐ TX рдЪрд░рдг рдкреВрд░рд╛ рд╣реЛ рдЧрдпрд╛ рдерд╛ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдХрд░реНрдиреЗрд▓ рдореЙрдбреНрдпреВрд▓ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдФрд░ рдЙрдкрд░реЛрдХреНрдд рдХреЛрдб рдХреЗ рдЦрд┐рд▓рд╛рдл рдореМрдЬреВрджрд╛ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реАрдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдХреНрдпрд╛ рд╣рдо рд╕рд┐рд░реНрдл рдХрд░реНрдиреЗрд▓ рдХреЛ I2C рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдп рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рдереЗ рдФрд░ рдЙрд╕реА рдкрд┐рди рдкрд░ рдмрд┐рдЯрдмрд┐рдВрдЧ GPIO- рдЖрдзрд╛рд░рд┐рдд I2C рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рдереЗ? рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдХреЗ рд▓рд┐рдП рдУрд╡рд░рд╣реЗрдб рдЕрдзрд┐рдХ рд╕реНрд╡реАрдХрд╛рд░реНрдп рд╣реЛрдЧрд╛ рдлрд┐рд░ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдореЗрдВ рдмрдЧреНрд╕ред

рдЖрдк рдХрд┐рд╕ рдУрд╡рд░рд╣реЗрдб рдХреА рдЙрдореНрдореАрдж рдХрд░рддреЗ рд╣реИрдВ? рд╡рд░реНрддрдорд╛рди рдбреНрд░рд╛рдЗрд╡рд░ 100kHz рдШрдбрд╝реА рдореЗрдВ рдЪреВрдХ рдХрд░рддрд╛ рд╣реИред рддреЛ рдПрдХ i2c рдЗрдВрдЯрд░рдЯреАрдЕрд▓ рд╕реЗрдВрд╕рд░ рд╕реЗ 10 рдмрд╛рдЗрдЯ рдХреЛ рдкрдврд╝рдиреЗ рдореЗрдВ рд▓рдЧрднрдЧ 1ms рд▓рдЧрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдмрд┐рдЯрдмреИрдВрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдЙрд╕ рд╕рдордп рд╕реАрдкреАрдпреВ рдЪрдХреНрд░реЛрдВ рдХреЛ рдордВрдерди рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ ...ред

рдореЗрд░реА рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдбреНрд░рд╛рдЗрд╡рд░ рдХреЗ рд▓рд┐рдП рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ рдмрд┐рдЯрдмреИрдВрдЧрд┐рдВрдЧ i2c рдХреЛ рдПрдХ рдореЙрдбреНрдпреВрд▓ рдкреИрд░рд╛рдореАрдЯрд░ (рдпрд╛ рд╢рд╛рдпрдж рдПрдХ рдЕрд▓рдЧ рдореЙрдбреНрдпреВрд▓ рдпрджрд┐ рд╡рд╣ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рдХрдИ рдбрд┐рд╡рд╛рдЗрд╕ рдХреНрд▓реЙрдХ рд╕реНрдЯреНрд░реЗрдЪрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ (рдпрд╛ рдмрд╛рдЙрдВрдб рд╕реНрдЯреНрд░реЗрдЪ рджреНрд╡рд╛рд░рд╛ рдХреНрд▓реЙрдХ рд╕реНрдЯреНрд░реЗрдЪ рдХрдо рдЧрддрд┐ рдкрд░ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ), рдЗрд╕рд▓рд┐рдП рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ I2C рдбреНрд░рд╛рдЗрд╡рд░ рдЕрднреА рднреА рдЙрди рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдмреЗрд╣рддрд░ рд╣реИред

рдХрд░реНрдиреЗрд▓ рдореЗрдВ рд╣реА GPIO рдкрд┐рди рдкрд░ рдмрд┐рдЯрдмреИрдВрдЧ I2C рдХреЗ рд▓рд┐рдП рдПрдХ рдбреНрд░рд╛рдЗрд╡рд░ рд╣реИ, рдЗрд╕ рдбреНрд░рд╛рдЗрд╡рд░ рдХреЗ рдкрд╛рд╕ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рд╕реНрдкреЗрд╕ рд╕реЗ рдмрд┐рдЯрдмреИрдВрдЧрд┐рдВрдЧ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдХрдо рдУрд╡рд░рд╣реЗрдб рд╣реИ, рдФрд░ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ I2C рдбреНрд░рд╛рдЗрд╡рд░реЛрдВ рдХреЗ рд╕рдорд╛рди рдПрдкреАрдЖрдИ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рддрд╛ рд╣реИред рдореЗрд░рд╛ рд╕реБрдЭрд╛рд╡ рдЙрд╕ рдбреНрд░рд╛рдЗрд╡рд░ рдФрд░ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ I2C рдбреНрд░рд╛рдЗрд╡рд░ рджреЛрдиреЛрдВ рдХреЛ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдлрд┐рд░ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдбреНрд░рд╛рдЗрд╡рд░ рдХреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд▓реЛрдб рдХрд░реЗрдВред

@ рдлреЗрд░рд┐рди
рдХреНрдпрд╛ рдЖрдк рдкрд╛рдИ рдкрд░ рдмрд┐рдЯрдмреИрдВрдЧ I2C рдбреНрд░рд╛рдЗрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ?
рдЗрд╕реЗ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдиреЗ рдХреНрдпрд╛ .config рд╡рд┐рдХрд▓реНрдк рдЬреЛрдбрд╝реЗ рд╣реИрдВ? рдХрд┐рд╕реА рднреА рд╕реНрд░реЛрдд рдкреИрдЪ?
рдЖрдк рдбреНрд░рд╛рдЗрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдЪрдпрди рдХрд░рддреЗ рд╣реИрдВ (modprobe? рдЕрд▓рдЧ / рджреЗрд╡ / рдЙрдкрдХрд░рдгреЛрдВ?)

рдкрд╛рдИ рдкрд░ рдбреНрд░рд╛рдЗрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдореЗрд░рд╛ рдПрдХ рджреЛрд╕реНрдд рд╣реИ рдЬреЛ рдЗрд╕реЗ рдмреАрдЧрд▓рдмреЛрд░реНрдб рдкрд░ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╡рд┐рдХрд▓реНрдк I2C_GPIO рд╣реИред
рдпрджрд┐ рджреЛрдиреЛрдВ рдФрд░ рдмреНрд░реЙрдбрдХреЙрдо рдбреНрд░рд╛рдЗрд╡рд░ рдХреЛ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рддреЛ рдбреНрд░рд╛рдЗрд╡рд░ рдЪреБрдирдирд╛ рдХрд░реНрдиреЗрд▓ рдореЙрдбреНрдпреВрд▓ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд╕рдорд╛рди рд╕рд░рд▓ рд╣реЛрдЧрд╛ред
GPIO рдореЙрдбреНрдпреВрд▓ рдХреЛ рдпрд╣ рдмрддрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рдкрджрдВрдбреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдХрд┐ рдХрд┐рд╕ GPIO рдХреЛ SDA рдФрд░ SCL рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ, рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдкреИрд░рд╛рдореАрдЯрд░ рдХреНрдпрд╛ рд╣реИрдВ, рд▓реЗрдХрд┐рди dirvers / i2c / busses / i2c-gpio.c рдореЗрдВ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдкреНрд░рд▓реЗрдЦрд┐рдд рд╕реНрд░реЛрдд рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдирд╣реАрдВ рд╣реИ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЙрдкрдпреБрдХреНрдд рдкрд╛рд░рдо 'sda = X scl = Y' рд╣реИрдВ рдЬрд╣рд╛рдВ X рдФрд░ Y рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдЪреАрдВрдЯреА рд╣реИрдВред

I2c-gpio рдореЙрдбреНрдпреВрд▓ рд╕реНрд╡рдпрдВ рдЗрд╕рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рддреЛ рдЖрдкрдХреЛ рдПрдХ рдФрд░ рдореЙрдбреНрдпреВрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдбреЗрдЯрд╛ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХрдо рд╕реЗ рдХрдо рдмрд╕ рдирдВрдмрд░, рдПрд╕рдбреАрдП рдФрд░ рдПрд╕рд╕реАрдПрд▓ рдкрд┐рди рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рддрд╛ рд╣реИред рдореИрдВрдиреЗ рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдореЙрдбреНрдпреВрд▓ рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдХрд╛ рдкреНрд░рдорд╛рдг рд▓рд┐рдЦрд╛ рд╣реИ рдФрд░ рдпрд╣ 0 рдФрд░ 1 рдкрд░ рднреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди i2c-bcm2708 рд▓реЛрдб рдХрд┐рдП рдмрд┐рдирд╛ (pcf8574 i2cdetect рджреНрд╡рд╛рд░рд╛ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рдореИрдВ gpio-pcf857x рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рд╛рде рдХреБрдЫ рдПрд▓рдИрдбреА рдбреНрд░рд╛рдЗрд╡ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛)ред рд▓реЗрдХрд┐рди рддрдм рдореИрдВрдиреЗ рдЕрдкрдирд╛ PCf8574 рдЬрд▓рд╛ рджрд┐рдпрд╛ рдЬрдм рдкрд┐рди рдмрджрд▓ рд░рд╣рд╛ рдерд╛ (рдФрд░ рдореЗрд░реЗ рдкрд╛рд╕ рдЕрднреА рдХреЛрдИ рдЕрдиреНрдп i2c рдЪрд┐рдкреНрд╕ рдирд╣реАрдВ рд╣реИ) рддреЛ рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд░ рд╕рдХрд╛ред рдпрд╣рд╛рдБ рдХреЛрдб рд╣реИ

@ рдХрджрд╛рдорд╕реА
Sda_pin / scl_pin рдореЙрдбреНрдпреВрд▓ рдкреИрд░рд╛рдореАрдЯрд░ рдмрдирд╛рдирд╛ рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдПрдХ рдЕрдиреБрд░реЛрдз рд╣реЛрдЧрд╛ред
рдХреНрдпрд╛ рдХреЛрдИ рдЙрдирдХреЗ рд▓рд┐рдП рдЗрд╕ рдХрд╛рдо рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддрд╛ рд╣реИ?

рдЬрд┐рддрдирд╛ рджрд┐рдЦрддрд╛ рд╣реИ, рдЙрд╕рд╕реЗ рдХрдо рддреБрдЪреНрдЫ рд╣реИ: рдпрд╣ рдЙрдореНрдореАрдж рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рднреА рддрд░рд╣ рд╕реЗ рдПрдХ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдордбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░ рджреЗрдЧрд╛ред

рджреВрд╕рд░реА рдУрд░, рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЖрдЬ рдХреМрди рд╕реЗ рдЬреАрдкреАрдЖрдИрдУ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдореЗрдВ рд▓рд╛рдирд╛ рдЙрдЪрд┐рдд рд▓рдЧрддрд╛ рд╣реИред (рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдбреЗрдЯрд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ: "рдХреИрд╕реЗ / рдпрд╣ / рдХрдВрдкреНрдпреВрдЯрд░ рд╡рд╛рдпрд░реНрдб рд╣реИ")

@ рдкреЛрдкрдХреЛрд░реНрдирдорд┐рдХреНрд╕
рдореИрдВ рдЙрдиреНрд╣реЗрдВ рд╡рд┐рдиреНрдпрд╛рд╕ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣рд╛ рд╣реВрдВ, рдореЗрд░реЗ рдкрд╛рд╕ рдХрд▓ рдкрд░реНрдпрд╛рдкреНрдд рд╕рдордп рдирд╣реАрдВ рдерд╛ред рдореИрдВ рдпрд╣ рднреА рдЪрд╛рд╣реВрдВрдЧрд╛ рдХрд┐ рдПрдХ рд╕рдордп рдореЗрдВ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдмрд╕реЛрдВ рдХреЛ рдмрдирд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛред рд╢рд╛рдпрдж рдЧрддрд┐рд╢реАрд▓ рддрд░реАрдХреЗ рд╕реЗ, рдЬреИрд╕реЗ GPIOS export рдФрд░ unexport sysfs рдлрд╛рдЗрд▓реЗрдВ (рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдРрд╕реА рдмрд╕ рдХреЛ рд╕рд╛рдл рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ)? рдУрд╣, рдФрд░ рдореБрдЭреЗ рдПрдХ рдФрд░ pcf8574 рдорд┐рд▓рд╛ рдФрд░ рдпрд╣ рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдмрд╛рд╣рд░реА рдкреБрд▓рдЕрдк рдкреНрд░рддрд┐рд░реЛрдзреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдкрд░ рдпрд╣ рд╡рд┐рднрд┐рдиреНрди GPIO рдкрд┐рдиреЛрдВ рдкрд░ рднреА рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдореЗрд░реЗ рдкрд╛рд╕ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдкрд░рд┐рд╖реНрдХреГрдд I┬▓C рдЙрдкрдХрд░рдг рдирд╣реАрдВ рд╣реИрдВред рддреЛ рдХреНрдпрд╛ рдЖрдк рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХрд░реНрдиреЗрд▓ рдЯреНрд░реА рдореЗрдВ рдРрд╕реЗ рдореЙрдбреНрдпреВрд▓ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ?

@kadamski
рдореЗрд░реЗ рдкрд╛рд╕ рдЗрд╕ рддрд░рд╣ рдХреЗ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯрдЕрдк рдирд╣реАрдВ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдХрд┐рд╕реА рднреА рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдореЗрдВ рдЪрд┐рдк рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ (рдЬреИрд╕реЗ I2C) рдореЗрдВ рдХрд░реНрдиреЗрд▓ рдбреНрд░рд╛рдЗрд╡рд░ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП рддрд╛рдХрд┐ рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рд▓реЛрдЧ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХреЗрдВред рдпрджрд┐ I2C рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдореЗрдВ рдмрдЧ рд╣реИрдВ рдЬреЛ рдХреБрдЫ рдирд┐рд╢реНрдЪрд┐рдд рдмрд╛рд╣реНрдп рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд▓реЛрдЧреЛрдВ рдХреЛ рд░реЛрдХреЗрдВрдЧреЗ рддреЛ рдПрдХ рдмрд┐рдЯрдмреИрдВрдЧрд┐рдВрдЧ рд╡реИрдХрд▓реНрдкрд┐рдХ рдзреНрд╡рдирд┐рдпреЛрдВ рдХреЛ рд╕рд╛рд░реНрдердХ рдХрд░реЗрдЧрд╛ред

рдЗрд╕рд▓рд┐рдП, рдпрджрд┐ рдЖрдк рдПрдХ рдирдпрд╛ рдбреНрд░рд╛рдЗрд╡рд░ рдмрдирд╛рддреЗ рд╣реИрдВ, рдЬреЛ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╣рд╛рдирд┐рд░рд╣рд┐рдд рджрд┐рдЦрддрд╛ рд╣реИ (рдпрд╛рдиреА рдПрдХ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рд▓реЛрдб рд╣реЛрдиреЗ рддрдХ рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ), рдФрд░ рдХреБрдЫ рд╕рдмреВрдд рд╣реИрдВ (рдпрд╛рдиреА рдХреБрдЫ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд░рд┐рдкреЛрд░реНрдЯ рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рддреЗ рд╣реБрдП) рдпрд╣ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ, рддреЛ рдореИрдВ рдПрдХ рдкреАрдЖрд░ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЦреБрд╢ рд╣реВрдБред

рдХреНрдпрд╛ рдПрдЪрд╕реА рдХреЛ рдмреАрд╕реАрдПрдо 2837 (рдЖрд░рдкреА тАЛтАЛ3 рдореЗрдВ) рдкрд░ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ?

рдореЗрд░рд╛ рдЕрдиреБрдорд╛рди рд╣реИ: рдирд╣реАрдВред рд▓реЗрдХрд┐рди рдореЗрд░реЗ рдкрд╛рд╕ рдЖрдЬ рдЗрд╕реЗ рдкрд░рдЦрдиреЗ рдХрд╛ рд╕рдордп рдирд╣реАрдВ рд╣реИред

BCM2837 I2C рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реИред

рдпрд╣ рджреБрд░реНрднрд╛рдЧреНрдпрдкреВрд░реНрдг рд╣реИ, рд▓реЗрдХрд┐рди рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

рдмрд╣реБрдд рдЧреБрд╕реНрд╕рд╛ рдЖрддрд╛ рд╣реИред

рдореИрдВ рд╕рд╣рдордд рд╣реВрдБред рдХреНрдпрд╛ рдХрд┐рд╕реА рдХреЗ рдкрд╛рд╕ BCM2837 рдЗрд░реЗрдЯрд╛, рдпрд╛ рдЗрд╕реА рддрд░рд╣ рдХреА рдПрдХ рдХрдбрд╝реА рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рдЕрднреА рднреА рдореМрдЬреВрдж рд╣реИ? рдЬрдм рд╣рдо рдкрд░ рд╕рдорд╛рдЪрд╛рд░ рдкрд╛рд░рд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рддреЛ рдпрд╣ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред рдпрд╛ @ P33M , рд╢рд╛рдпрдж рдЖрдкрдХреЛ

рд╡рд╣ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдмреНрд░реЙрдбрдХреЙрдо рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рдЕрдЪреНрдЫреА рдмрд╛рдд рд╣реИред рд▓реЗрдХрд┐рди рдореИрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА Googled, рдФрд░ P33M рдХреЗ рдЕрд▓рд╛рд╡рд╛ M33P рдХрд╣реАрдВ рдФрд░ рд╣реЛрдиреЗ рдХреЗ рдирд╛рддреЗ, рдПрдХ рдЖрдИрдбреА рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдШрд░реНрд╖ рдХрд░рддрд╛ рд╣реВрдВ рдЬрд┐рд╕реЗ рдореИрдВ рдЙрдкрдпреЛрдЧреА рд░реВрдк рд╕реЗ рдкрд╛рд╕ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рдЬреЛ рдареАрдХ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╡рд╣ рдЙрджреНрдзрд░рдг рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╣рд╛рди рд╕реНрд░реЛрдд рдирд╣реАрдВ рд╣реИред :-) рддреЛ рдПрдХ рдЗрд░реЗрдЯрд╛ рд▓рд┐рдВрдХ рдХрд╛рдо рдЖрдПрдЧрд╛ред

@ P33M рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЖрдк рд╡рд╣ рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╡рд╣ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдХрд╣рддреА рд╣реИред

рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдЗрд░реЗрдЯрд╛ рд╕реВрдЪреА рд╣реИ, рд╢рд╛рдпрдж рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдореИрдВрдиреЗ рдЙрд╕реЗ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рд╣реИ
рдЙрд╕рдХреА рдкрд╣рдЪрд╛рди рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╛ рдирд╣реАрдВ!

15 рдорд╛рд░реНрдЪ 2016 рдХреЛ 14:30 рдмрдЬреЗ, RalphCorderoy рд╕реВрдЪрдирд╛рдПрдВ @github.com рдиреЗ рд▓рд┐рдЦрд╛:

рдЕрдЪреНрдЫреА рдмрд╛рдд рд╣реИред рд▓реЗрдХрд┐рди рдореИрдВ рдкрд╣рд▓реЗ рд╣реА Googled рд╣реВрдВ, рдФрд░ P33M рдХреЗ рдЕрд▓рд╛рд╡рд╛ M33P рд╣реИ
рдХрд╣реАрдВ рдФрд░, рдПрдХ рдЖрдИрдбреА рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдШрд░реНрд╖ рдореИрдВ рдЙрдкрдпреЛрдЧреА рд░реВрдк рд╕реЗ рдкрд╛рд╕ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рдЬреЛ рдареАрдХ рд╣реИ,
рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╡рд╣ рдПрдХ рдорд╣рд╛рди рд╕реНрд░реЛрдд рдирд╣реАрдВ рд╣реИред :-) рддреЛ рдПрдХ рдЗрд░реЗрдЯрд╛ рд▓рд┐рдВрдХ рд╣реЛрдЧрд╛
рдХрд╛рдоред

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдиреЗ рдЯрд┐рдкреНрдкрдгреА рдХреА рд╣реИред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рдЙрддреНрддрд░ рд╕реАрдзреЗ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ:
https://github.com/raspberrypi/linux/issues/254#issuecomment -196845789

@ рд░рд╛рд▓реНрдлрдХреЙрд░реНрдбреЙрдп рдореИрдВ рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ (рдЯреНрд░реЗрдбрд┐рдВрдЧ) рд▓рд┐рдорд┐рдЯреЗрдб рдХрд╛ рдХрд░реНрдордЪрд╛рд░реА рд╣реВрдВред рдореЗрд░рд╛ рдЬрд╡рд╛рдм рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╣реИред

@ P33M , рдЯрд╛, рдХрд┐ рдХрд░реВрдБрдЧрд╛ред рдкрд░реЗрд╢рд╛рдиреА рдХреЗ рд▓рд┐рдП рдХреНрд╖рдорд╛ рдХреАрдЬрд┐рдПред

рдпрд╣ рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реИ рдЬрд┐рд╕ рдкрд░ рдореИрдВ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рдЧреБрд▓рд╛рдо рдбрд┐рд╡рд╛рдЗрд╕ рдлрд░реНрдорд╡реЗрдпрд░ рдкрд░ рдореЗрд░рд╛ рдкреВрд░рд╛ рдирд┐рдпрдВрддреНрд░рдг рд╣реИ рдФрд░ рдореИрдВ рдЕрдкрдиреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдУрдВ рдореЗрдВ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдЖрдзреЗ рдЕрд╡рдзрд┐ рдХреА рджреЗрд░реА (рдШрдбрд╝реА рдХрд╛ рдЦрд┐рдВрдЪрд╛рд╡) рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдХрд╛рдо рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ рдЬреЛ рдмреБрд░реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реИред

рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдЕрдЪреНрдЫрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг advamation.com рдкрд░ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдмреНрд░реЙрдбрдХреЙрдо рдХреЗ I2C рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рдпрд╣ рдЦрд░рд╛рдм рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рд╣реИ рдпрд╛ рдХреНрдпрд╛ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░реНрдиреЗрд▓ рдШреБрдорд╛рд╡ рд╕рдВрднрд╡ рд╣реИрдВ?

рдореИрдВрдиреЗ рдЕрднреА рдЗрд╕ рдореБрджреНрджреЗ рдХреА рд╕рджрд╕реНрдпрддрд╛ рд▓реА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВрдиреЗ рдПрдХ рдЙрддреНрдкрд╛рдж рдХреЗ рд╕рд╛рде рдЗрд╕рдХрд╛ рд╕рд╛рдордирд╛ рдХрд┐рдпрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВ рд╡рд┐рдХрд╕рд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВ
рдЬреЛ рдПрдХ AVR рдФрд░ Pi рдХреЗ рдмреАрдЪ i2c рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЕрдм рдореБрдЭреЗ рдЗрд╕ рдкрд░ рдкреБрдирд░реНрд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдХреНрдпрд╛ рдХрд┐рд╕реА рдиреЗ i2c рдмрд┐рдЯ рдХреЗ рдХрд┐рд╕реА рднреА рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд░реВрдк рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рд╣реИ?

@ mwilliams03 , рдЖрдкрдХреЛ рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реЛ рд╕рдХрддреА рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдореИрдВрдиреЗ рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдФрд░ рдПрдХ AVR рдХреЗ рдмреАрдЪ 100 kHz рдФрд░ 400 kHz I2C рд╕рдВрдЪрд╛рд░ рдХреЛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рд╣реИред рдореИрдВ рдмрд┐рдЯ-рдмреИрдВрдЧрд┐рдВрдЧ рдирд╣реАрдВ рд╣реВрдВ, рдмрд▓реНрдХрд┐ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ I2C рд╕рдорд░реНрдерди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдкреНрд░рдореБрдЦ рдмрд┐рдВрджреБрдУрдВ рдкрд░ рджреЗрд░реА рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ AVR рдЗрддрдирд╛ рдзреАрдорд╛ рд╣реИ рдХрд┐ 400 kHz рдкрд░ рдХрд┐рд╕реА рднреА рдЕрддрд┐рд░рд┐рдХреНрдд рджреЗрд░реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдпрд╣рд╛рдВ I2C рдореБрджреНрджреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд╣реИ ред рдпрд╣ рднреА рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ AVR рдХреЗ TWI рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рддреНрд╡рд░рд┐рдд рд░реАрдбрд┐рдВрдЧ рдХреЛ рд░реЛрдХрдиреЗ рд╡рд╛рд▓рд╛ рдореБрджреНрджрд╛ рд╣реИ ред

рдзрдиреНрдпрд╡рд╛рдж @ pdg137 , рдореИрдВрдиреЗ рдЗрд╕реЗ рдЖрдЬрд╝рдорд╛рдпрд╛ рдФрд░ рдкрд╣рд▓реА рдмрд╛рд░ рдореЗрдВ рдореБрдЭреЗ рдмрд┐рдирд╛ рдХрд┐рд╕реА рддреНрд░реБрдЯрд┐ рдХреЗ 1.2 рдорд┐рд▓рд┐рдпрди

@rewolff рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд╣рд▓ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЕрдЧрд░ рдРрд╕рд╛ рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░реЗрдВред

рдФрд░ рдЕрдм .... рдПрдХ рд╕реНрддрд░реАрдп рд╢рд┐рдлреНрдЯрд░ рдФрд░ 40 рд╕реЗрдореА рд╡рд┐рд╕реНрддрд╛рд░ рдХреЗрдмрд▓ рдЬреЛрдбрд╝реЗрдВ .. рдХреНрдпрд╛ рдпрд╣ рддрдм рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ? рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдпрд╣ рддрд░рдВрдЧреЛрдВ рдХреЗ "рдЕрдк" рдкрдХреНрд╖ рдкрд░ рдкрд░реНрдпрд╛рдкреНрдд рджреЗрд░реА рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИ, рдФрд░ рдЕрдЪрд╛рдирдХ, рдмрдЧ рдлрд┐рд░ рд╕реЗ рд╣рдорд▓рд╛ рдХрд░рддрд╛ рд╣реИред

рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛрдореИрдВ рдмрддрд╛ рд╕рдХрддрд╛ рд╣реВрдВ, рдмреНрд░реЙрдбрдХреЙрдо рдФрд░ рдХрд░реНрдордЪрд╛рд░реА рдЕрднреА рднреА рд╕реЛрдЪрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдмрдЧ рдПрдХ рдмрд╛рдЗрдЯ рдХреЗ рдЕрдВрддрд┐рдо рдмрд┐рдЯ рдХреЗ рдмрд╛рдж FIRST 5 рдорд╛рдЗрдХреНрд░реЛрд╕реЗрдХрдВрдб (рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрдзрд╛ рдШрдбрд╝реА) рддрдХ рд╕реАрдорд┐рдд рд╣реИред рддрдм рд╕рд┐рд░реНрдл 10 рдорд╛рдЗрдХреНрд░реЛрд╕реЗрдХрдВрдб рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рджреЛ рдЖрдзрд╛ рдШрдбрд╝рд┐рдпрд╛рдВ рдЖрдЧреЗ рдмрдврд╝реЗрдВрдЧреА рдФрд░ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдореЗрд░реЗ рдкрд░реАрдХреНрд╖рдг рдореЗрдВ, рдореБрдЭреЗ рд╣рд░ 5 рдорд╛рдЗрдХреНрд░реЛрд╕реЗрдХрдВрдб рдХреЛ рдлреИрд▓рд╛рдиреЗ рд╡рд╛рд▓реА рдШрдбрд╝реА рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП "рдмреБрд░реЗ" рдХреНрд╖рдг рдорд┐рд▓рддреЗ рд╣реИрдВред

SPI рдФрд░ I2C рдХреЗ рдмреАрдЪ рд╕рдорд░реВрдкрддрд╛ рдХреЗ рдХрд╛рд░рдг рдпрд╣ рдореЗрд░реЗ AVR рдХреЛрдб рдореЗрдВ рдЖрд╕рд╛рди рд╣реЛрддрд╛ рд╣реИ рдпрджрд┐ рдЕрдЧрд▓реЗ рдбреЗрдЯрд╛рдмреЗрдЯ рдХреЛ "рдЕрдЧрд▓реЗ рдбреЗрдЯрд╛" рдЗрдВрдЯрд░рдкреНрдЯ рдореЗрдВ "рдЧрдгрдирд╛" рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ .... (рдореИрдВ рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рддрд╛ рд╣реВрдВ рдЬрд╣рд╛рдВ рдкрдврд╝рдирд╛ рдЬрд╛рд░реА рд░рдЦрдирд╛ рдЕрдиреБрдордд рд╣реИ, рдЗрд╕рд▓рд┐рдП 16 рдмрд╛рдЗрдЯ рдмрдлрд░ рд╣реИ рд╣рдореЗрд╢рд╛ рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИред)

рдореИрдВ рдЖрд╢реНрд╡рд╕реНрдд рдирд╣реАрдВ рд╣реВрдВред

рдореИрдВ рдПрдХ рд░рд┐рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдФрд░ рдПрдХ ATMEGA 324PA рдХреЗ рдмреАрдЪ SMBus рдХреЗ рд╕рд╛рде рдореБрджреНрджреЛрдВ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ - рдХреНрдпрд╛ рдпреЗ рдЗрд╕ рдореБрджреНрджреЗ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ? https://stackoverflow.com/questions/39274784/talking-smbus-between-raspberr-pi-and-atmega-324pa-avr-not-clock-stretching

рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛрдореИрдВ рдмрддрд╛ рд╕рдХрддрд╛ рд╣реВрдВ, рдмреНрд░реЙрдбрдХреЙрдо рдФрд░ рдХрд░реНрдордЪрд╛рд░реА рдЕрднреА рднреА рд╕реЛрдЪрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдмрдЧ рдПрдХ рдмрд╛рдЗрдЯ рдХреЗ рдЕрдВрддрд┐рдо рдмрд┐рдЯ рдХреЗ рдмрд╛рдж FIRST 5 рдорд╛рдЗрдХреНрд░реЛрд╕реЗрдХрдВрдб (рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрдзрд╛ рдШрдбрд╝реА) рддрдХ рд╕реАрдорд┐рдд рд╣реИред

@ рдХреНрд░реВрд▓реЗрдл : рдореБрдЭреЗ рдмреНрд░реЙрдбрдХреЙрдо рдХреЗ рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рд╕реЗ рд╕рд╣рдордд рд╣реЛрдирд╛ рд╣реЛрдЧрд╛ред рдореЗрд░реЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ, рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ 3 рдФрд░ 100 kHz I2C (рдЬреЛ рд╕реАрдкреАрдпреВ рдХреЗ рдереНрд░реЙрдЯрд▓ рд╣реЛрдиреЗ рдкрд░ 62 kHz рддрдХ рдзреАрдорд╛ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ) рдХреЗ рд╕рд╛рде, рдореБрдЭреЗ advamation.com рд╕реЗ рдПрдиреАрдореЗрд╢рди рдХреЗ рд╕рдорд╛рди рдкрд░рд┐рдгрд╛рдо рдорд┐рд▓

рдПрдиреАрдореЗрд╢рди рдзреНрд╡рдирд┐ рд▓рдЧрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐ рдпрд╣ рдореЗрд░реЗ рдЕрдиреБрднрд╡ рдХреЗ рдЕрдиреБрд░реВрдк рдирд╣реАрдВ рд╣реИред рд╢рд╛рдпрдж рдореБрдЭреЗ рдПрдХ рдкрд░реАрдХреНрд╖рдг рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдХреБрдЫ рд╕рдордп рд▓рдЧ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдЕрдиреНрдп рд╕рд╛рдорд╛рди рдХреЗ рд╕рд╛рде рд╡реНрдпрд╕реНрдд рд╣реИред

рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдРрд╕рд╛ рд╣реЛрддрд╛, рддреЛ рдмрд╕ рдореЗрд░реА рд░реБрдХрд╛рд╡рдЯ рдХреА рджрд┐рдирдЪрд░реНрдпрд╛ (рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдХреНрд▓реЙрдХ рд╕реНрдЯреНрд░реЗрдЪрд┐рдВрдЧ) рдореЗрдВ рдПрдХ "usleep (10)" рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдЪрд╛рд▓ рдЪрд▓реА рдЬрд╛рддреА рдФрд░ рдЪреАрдЬреЗрдВ рд▓реЙрдХ рдирд╣реАрдВ рд╣реЛрддреАрдВред рдореБрдЭреЗ рдкреВрд░рд╛ рдпрдХреАрди рд╣реИ рдХрд┐ рдРрд╕рд╛ рдирд╣реАрдВ рдерд╛ред : --(

@rewolff : рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ 3 рдкрд░, рдореИрдВрдиреЗ рд╕реАрдкреАрдпреВ рдХреЛ 600 рдореЗрдЧрд╛рд╣рд░реНрдЯреНрдЬ рдкрд░ рдереНрд░реЛрдЯрд▓ рд╣реЛрддреЗ рджреЗрдЦрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк 62 kHz рдХреА рдбрд┐рдлрд╝реЙрд▓реНрдЯ I2C рдЧрддрд┐ рд╣реИред рддреЛ рдЖрдк рдЕрдкрдиреЗ рдЧреБрд▓рд╛рдо рдХреЗ ISR рдореЗрдВ 17 рдорд╛рдЗрдХреНрд░реЛрд╕реЗрдХрдВрдб рдХреЗ рд▓рд┐рдП рд╕реЛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдЕрдЧрд░ ISR SCL рдХреЗ рдЧрд┐рд░рдиреЗ рдХреЗ рдХрд┐рдирд╛рд░реЗ рдкрд░ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред рдпрд╛ рдЕрдЧрд░ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕реАрдкреАрдпреВ 600 рдореЗрдЧрд╛рд╣рд░реНрдЯреНрдЬ рд╕реЗ рдиреАрдЪреЗ рдЧрд┐рд░ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рдЕрдзрд┐рдХ рд╕рдордп рддрдХ рд╕реЛрдПрдВред

рдХреНрдпрд╛ рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдХрд░реНрдиреЗрд▓ рдореЗрдВ @kadamski рдХрд╛ i2c-

рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рд╣реЛрдЧрд╛ рдЬреЛ рдЗрд╕ рдкреВрд░реЗ рдорд╛рдорд▓реЗ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддреЗ рд╣реБрдП рдПрдЪрдбрдмреНрд▓реНрдпреВ рдмрдЧ рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рддрд╛ рд╣реИред

@onnokort i2c-gpio рдУрд╡рд░рд▓реЗ рдХрд╛ рдорддрд▓рдм рдирд╡рдВрдмрд░ 2015 рд╕реЗ рд╡рд░реНрддрдорд╛рди рдЧреБрдард▓реА рдореЗрдВ рдореМрдЬреВрдж рд╣реИ? https://github.com/raspberrypi/linux/blob/rpi-4.4.y/arch/arm/boot/dts/overlays/i2c-gpio-overlay.dts
рдУрд╡рд░рд▓реЗ рдХреЗ рд▓рд┐рдП README рд╕реЗ:

Name:   i2c-gpio
Info:   Adds support for software i2c controller on gpio pins
Load:   dtoverlay=i2c-gpio,<param>=<val>
Params: i2c_gpio_sda            GPIO used for I2C data (default "23")

        i2c_gpio_scl            GPIO used for I2C clock (default "24")

        i2c_gpio_delay_us       Clock delay in microseconds
                                (default "2" = ~100kHz)

@ 6by9 : рдмрд╣реБрдд рдмрдврд╝рд┐рдпрд╛, рдзрдиреНрдпрд╡рд╛рдж, рдореИрдВрдиреЗ рдЖрдЬ рдХреБрдЫ рдирдпрд╛ рд╕реАрдЦрд╛ рд╣реИред рдореИрдВрдиреЗ рдЕрднреА рддрдХ рдпрд╣ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди, рд╣рд╛рдБ, рдпрд╣ рд╡рд╣реА рджрд┐рдЦрддрд╛ рд╣реИ рдЬреЛ рдореИрдВ рджреЗрдЦ рд░рд╣рд╛ рдерд╛ (рдФрд░ i2c-gpio-para рдореЗрдВ рдкрд╛рдпрд╛ рдЧрдпрд╛)ред

@popcornmix @ 6by9 рдХреНрдпрд╛ рдЗрд╕реЗ рдмрдВрдж рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ? рдПрдХ looong рд╕рдордп рдХреЗ рдЖрд╕рдкрд╛рд╕ рд░рд╣рд╛ рд╣реИ, рдФрд░ рдореЗрд░реЗ рдкрдврд╝рдиреЗ рд╕реЗ рдбреАрдЯреАрдЯреА рдкрд░рдо рд╕рд╛рдорд╛рди рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдХрд▓реНрдк рд▓рдЧрддрд╛ рд╣реИред

рдЙрди рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд╢рдВрд╕рд┐рдд рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдЬреЛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╣рдорд╛рд░реЗ I2C рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдХреЗ рд╕рд╛рде рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдирд╣реАрдВ рдЦреЗрд▓рддреЗ рд╣реИрдВ, i2c-gpio рдУрд╡рд░рд▓реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ, рдЬреЛ рдмрд┐рдЯреНрд╕ рдХреЛ рдкрд┐рди рдХрд░рддрд╛ рд╣реИред

рдЕрдиреНрдпрдерд╛, рдкрддрд╛ ACK рдЪрд░рдг рдореЗрдВ рд╕реНрдЯреНрд░реЗрдЪрд┐рдВрдЧ рдЕрдкрд╕реНрдЯреНрд░реАрдо рдЪрд╛рд▓рдХ рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рд╣реИред

рдПрдХ рдФрд░ рджреЛ рд╕реЗрдВрдЯ: https://github.com/555kav555/i2c-bcm2835-correct

рдкреНрд░рд┐рдп рд╕рдм, рдЖрдЬ рдореИрдВрдиреЗ рдкреВрд░реНрд╡реА рдПрд╢рд┐рдпрд╛ рд╕реЗ GY-955 рдХреЗ рдкреИрдХреЗрдЬ GY-955 рдореЗрдВ BNO055 рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рд╣реИ рдЬреЛ Pi 2B (BMC2835) рдХреЗ рд╕рд╛рде 100_000 рд╣рд░реНрдЯреНрдЬ рдкрд░ рдмрд╣реБрдд рдмрджрд╕реВрд░рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддрд╛ рд╣реИред рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ I2C рдмрд╕ рдХреА рдЖрд╡реГрддреНрддрд┐ рдХреЛ 50_000 рд╕реЗ 400_000 рд╣рд░реНрдЯреНрдЬ рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ рд╣реИ рдФрд░ рдореБрдЭреЗ 100_000 рд╣рд░реНрдЯреНрдЬ рдкрд░ рд╕рдорд╕реНрдпрд╛рдПрдВ рдорд┐рд▓реА рд╣реИрдВ, рд▓реЗрдХрд┐рди 50_000, 85_000, 115_000 рдФрд░ 125_000 рд╣рд░реНрдЯреНрдЬ рдХреЗ рд▓рд┐рдП Adafruit (Adafruit_Python_BNO055) рдХреЛрдб I2C рдХрдиреЗрдХреНрд╢рди рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, 150_000 рдмреАрдПрдирдУ режрелрел рдХреЗ рд▓рд┐рдП рд╣рд░реНрдЯреНрдЬ рдмрд╣реБрдд рддреЗрдЬрд╝ рд▓рдЧрддрд╛ рд╣реИ, рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдорд╛рди рдХрднреА-рдХрднреА рдЧрд▓рдд рд╣реЛрддреЗ рд╣реИрдВред рдореИрдВ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реВрдВ, рдореИрдВрдиреЗ рдПрдХ рдЖрд╕реНрдЯрд╕реАрд▓рд╕реНрдХрдк рджреНрд╡рд╛рд░рд╛ рдЖрд╡реГрддреНрддрд┐ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рдореИрдВрдиреЗ рдХреЗрд╡рд▓ рдлрд╝рд╛рдЗрд▓ / sys / class / i2c-рдЕрдиреБрдХреВрд▓рдХ / i2c-1 / of_node / рдШрдбрд╝реА-рдЖрд╡реГрддреНрддрд┐ рдХреЛ рдкрдврд╝рд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХреБрдЫ рдЕрдирд┐рд╢реНрдЪрд┐рддрддрд╛ рдЦреБрд▓реА рд░рд╣ рдЧрдИ рд╣реИред рдЕрдм рдореИрдВ рдПрдбреАрдП рдореЗрдВ BNO055 рдХреЗ рд▓рд┐рдП рдПрдХ рдкреВрд░реНрдг рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реВрдВред
рд╕реБрд╡рд┐рдзрд╛: BMC I2C рд╣реИрдВрдбрд▓рд┐рдВрдЧ рдореЗрдВ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдмрдЧ рдХреЗрд╡рд▓ 100_000 рд╣рд░реНрдЯреНрдЬ рдкрд░ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ, рдЗрд╕рдХреА рдкреБрд╖реНрдЯрд┐ рдХреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдПред

рдмрд╕ FYI рдХрд░реЗрдВ, рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдмрдЧ рддрдм рд╣реЛрддрд╛ рд╣реИ рдЬрдм рджрд╛рд╕ рдбрд┐рд╡рд╛рдЗрд╕ рдХреНрд▓реЙрдХ рд╕реНрдЯреНрд░реЗрдЪрд┐рдВрдЧ рдХрд░рддрд╛ рд╣реИ рдФрд░ 0.9 рд╕реЗ 0.999 I2C рдШрдбрд╝реА рдЕрд╡рдзрд┐ рдХреЗ рдмрд╛рдж SCL рд▓рд╛рдЗрди рдЬрд╛рд░реА рдХрд░рддрд╛ рд╣реИред рд▓рд╛рдЗрди рдЙрдардирд╛ рд╢реБрд░реВ рд╣реЛ рдЬрд╛рдПрдЧреА, рдФрд░ рдкрд╛рдИ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдХрд╣реЗрдВрдЧреЗ: рдУрд╣, рдЙрд╕рдиреЗ рдХреНрд▓реЙрдХ рд╕реНрдЯреНрд░реЗрдЪрд┐рдВрдЧ рдирд╣реАрдВ рдХреА, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдХреНрд▓реЙрдХ рд▓рд╛рдЗрди рдХреЛ рдлрд┐рд░ рд╕реЗ рдХрдо рдХрд░рдХреЗ рдЕрдЧрд▓реА рдХреНрд▓реЙрдХ рдкрд▓реНрд╕ рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред

рдмрдЧ рддрдм рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдШрдбрд╝реА рдХреА рдЕрд╡рдзрд┐ рдореЗрдВ рд╢реЗрд╖ рд╕рдордп, рд░рд╛рдХрдмреЗрд░реА рдХреЗ рд▓рд┐рдП "рд╣рд╛рдИ" рдереНрд░реЗрд╢реЛрд▓реНрдб рдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд▓реЙрдХ рд▓рд╛рдЗрди рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЧреБрд▓рд╛рдо рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдпрд╛ рдЬрдм рдЧреБрд▓рд╛рдо рдХреЗ рдкрд╛рд╕ рд╢реЛрд░ рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ рд╣реЛрддрд╛ рд╣реИ рдФрд░ <x% рдХреЗ рджреМрд░рд╛рди рдЙрдЪреНрдЪ рдорд╛рдирддрд╛ рд╣реИ рд╕рд╛рдорд╛рдиреНрдп I2C рдШрдбрд╝реА рдЪрдХреНрд░ рдПрдХ рдЧрдбрд╝рдмрдбрд╝ред

рдпрд╣ "рдХреЗрд╡рд▓ 100kHz рдкрд░ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ", рдмрд▓реНрдХрд┐ рдХрдИ рдЕрдиреНрдп рдЖрд╡реГрддреНрддрд┐рдпреЛрдВ рдкрд░ рднреА рд╣реЛрддрд╛ рд╣реИ, рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ рджрд╛рд╕ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕рдордп рдХреЗ рдмрд╛рдж рдПрдХ рдЕрд▓рдЧ рдореВрд▓реНрдп рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдШрдбрд╝реА 100kHz рд╣реИ, рддреЛ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдЪрдХреНрд░ 5us рдЙрдЪреНрдЪ рдФрд░ 5us рдХрдо рд╣реЛрдЧрд╛ред рдЕрдм рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ t = 0 рдкреАрдЖрдИ рдХреНрд▓реЙрдХ рд▓рд╛рдЗрди рдХреЛ рдХрдо рдХрд░рдХреЗ рдЕрдВрддрд┐рдо рдШрдбрд╝реА рдЪрдХреНрд░ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИред T = 5us рдкрд░ pi рдХреНрд▓реЙрдХ рд╕рд┐рдЧреНрдирд▓ рдЬрд╛рд░реА рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рджрд╛рд╕ рдЕрднреА рднреА рд╡реНрдпрд╕реНрдд рд╣реИ, рдШрдбрд╝реА рдХреЛ рдХрдо рд░рдЦрддрд╛ рд╣реИред T = 9us рдкрд░ рджрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдШрдбрд╝реА рд╕рдВрдХреЗрдд рдЬрд╛рд░реА рдХрд░рддрд╛ рд╣реИред T = 10us рдкрд░ pi рдХреНрд▓реЙрдХ рд╕рд┐рдЧреНрдирд▓ рдХреЛ рджреЗрдЦреЗрдЧрд╛, рдФрд░ рд╕реЛрдЪреЗрдЧрд╛: Ok, рдХреЛрдИ рдХреНрд▓реЙрдХ рд╕реНрдЯреНрд░реЗрдЪрд┐рдВрдЧ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЬрд╛рд░реА рд░рдЦреЗрдВ, рдФрд░ рдпрд╣ рдХреНрд▓реЙрдХ рд╕рд┐рдЧреНрдирд▓ рдХреЛ рдлрд┐рд░ рд╕реЗ рдХрдо рдЦреАрдВрдЪрддрд╛ рд╣реИред рдШрдбрд╝реА рдХрд╛ рд╕рдВрдХреЗрдд рдЕрдм рдХреЗрд╡рд▓ 1us (рдЙрдЪреНрдЪ рд╕рдорд╛рдИ рдФрд░ рдкреБрд▓рдЕрдк рдкреНрд░рддрд┐рд░реЛрдзреЛрдВ рдХреЗ рд╕рдордп рдХреЗ рдХрд╛рд░рдг рдереЛрдбрд╝рд╛ рдХрдо) рдХреЗ рд▓рд┐рдП рдЙрдЪреНрдЪ рд╣реЛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЧреБрд▓рд╛рдо рджреНрд╡рд╛рд░рд╛ рдирд╣реАрдВ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЕрдм рдПрдХ рдЕрд▓рдЧ рдЙрдкрдХрд░рдг 9 рдорд╛рдЗрдХреНрд░реЛрд╕реЗрдХрдВрдб рдХреЗ рдмрд╛рдж рдирд╣реАрдВ рдмрд▓реНрдХрд┐ 10.5 рдХреЗ рдмрд╛рдж рддреИрдпрд╛рд░ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдЕрдм 100kHz рдкрд░, рдкреАрдЖрдИ рджреЗрдЦреЗрдВрдЧреЗ "рдЕрднреА рднреА рдХрдо рд╣реИ, рдШрдбрд╝реА рдХреА рд╕реНрдЯреНрд░реЗрдЪрд┐рдВрдЧ, рдПрдХ рдФрд░ 5 рдорд╛рдЗрдХреНрд░реЛрд╕реЗрдХрдВрдб рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВред рдЕрдм рд╣рдореЗрдВ 4.5 рдорд╛рдЗрдХреНрд░реЛрд╕реЗрдХрдВрдб рдХреА рдШрдбрд╝реА рдкрд▓реНрд╕ рдорд┐рд▓реЗрдЧреА рдФрд░ рдЪреАрдЬреЗрдВ рдХрд╛рдо рдХрд░реЗрдВрдЧреАред рд▓реЗрдХрд┐рди рдЗрд╕ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ 90kHz рдкрд░ рдЪрд▓рд╛рдПрдВ, рдФрд░ рдпрд╣ рдкрд░реЗрд╢рд╛рдиреА рдореЗрдВ рдкрдбрд╝ рдЬрд╛рддрд╛ рд╣реИред рдЕрдм рдкреАрдЖрдИ рд╢реБрд░реВ рд╕реЗ 11 рдорд╛рдЗрдХреНрд░реЛрд╕реЗрдХрдВрдб рдкрд░ рджрд┐рдЦреЗрдЧрд╛, рдФрд░ рдШрдбрд╝реА рдХрд╛ рд╕рд┐рдЧреНрдирд▓ рдПрдХ рдорд╛рдЗрдХреНрд░реЛрд╕реЗрдХрдВрдб рд╕реЗ рдХрдо рдХреЗ рд▓рд┐рдП рдЙрдЪреНрдЪ рд░рд╣рд╛ рд╣реЛрдЧрд╛ -> рд╕рдорд╕реНрдпрд╛рдПрдВред

рдЬреЛ рд▓реЛрдЧ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рд╢рд┐рдХрд╛рдпрдд рдХрд░рддреЗ рд╣реИрдВ, рд╡реЗ рдЕрдиреНрдп рдЙрдкрдХрд░рдг рдирд╣реАрдВ рд╣реИрдВред рд╡реЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ 100kHz рдкрд░ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдмрдЧ рдЕрднреА рднреА рдмрд╣реБрдд рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╣реИ рдФрд░ рдЖрдкрдХреЗ рдФрд░ рдореЗрд░реЗ рдкрд╛рд╕ рдореМрдЬреВрдж рдЙрдкрдХрд░рдгреЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдиреНрдп рдмрд╕ рдЧрддрд┐ рдкрд░ рдЙрди рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рд╣реЛрдЧрд╛ред

рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╕рдордЭрд╛рддрд╛ рд╣реИ, рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рдЪреБрдиреЗ рдЧрдП рдЖрд╡реГрддреНрддрд┐рдпреЛрдВ рдкрд░ рдореБрдЭреЗ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╣рд╕реНрддрд╛рдВрддрд░рдг рдХреНрдпреЛрдВ рдорд┐рд▓рд╛:
100_000 рд╣рд░реНрдЯреНрдЬ рдкрд░ рд╕рдорд╕реНрдпрд╛рдПрдВ 9 рд╕реЗ 9.99 рд╕реЗрдХреЗрдВрдб рдХреА рдЕрд╡рдзрд┐ рдореЗрдВ рдмрдврд╝ рдЬрд╛рддреА рд╣реИрдВ
85_000 рд╣рд░реНрдЯреНрдЬ рдкрд░ рд╕рдорд╕реНрдпрд╛рдПрдВ 1_000_000 / 85_000 * .9 = 10,59 secsec> 9.99 рд╕реЗрдХрдВрдб рдкрд░ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдШрдбрд╝реА рдХреА рд╕реНрдЯреНрд░реЗрдЪрд┐рдВрдЧ рдХреЛ рдирдЬрд░рдЕрдВрджрд╛рдЬ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рднреА рдЖрд╡реГрддреНрддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рддреЛ 85_000 рд╣рд░реНрдЯреНрдЬ рдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рдкреНрд░рд╛рд░рдВрдн рдмрд┐рдВрджреБ 10,59 ┬╡sec рд╕реЗ рдЕрдзрд┐рдХ рд╣реИред ред
115_000 рд╣рд░реНрдЯреНрдЬ рдкрд░ рдмрд╕ рдЪрдХреНрд░ 1_000_000 / 125_000 = 8.7 ┬╡sec <9 clockecec рд╣реИ, рдЗрд╕рд▓рд┐рдП рдШрдбрд╝реА рдХреА рд╕реНрдЯреНрд░реЗрдЪрд┐рдВрдЧ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, 115_000 рд╣рд░реНрдЯреНрдЬ рд╕реЗ рдЕрдзрд┐рдХ рд╕рднреА рдЖрд╡реГрддреНрддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдмрд╕ рдЪрдХреНрд░ рдХрдо рд╣реИ рддреЛ 8.7 ┬╡secред
рдЗрд╕рд▓рд┐рдП рдЬрдм рдореБрдЭреЗ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рд╣реЛрддреА рд╣реИ рддреЛ рдореБрдЭреЗ рдЙрд╕ рдЖрд╡реГрддрд┐ рдХреА рдЧрдгрдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕рдХреА рдореБрдЭреЗ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
(рдореИрдВрдиреЗ http://www.advamation.com/knowhow/raspberrypi/rpi-i2c-bug.html рдкрд░ рдЬрд╛рдирдХрд╛рд░реА рдкрдврд╝реА)
рдиреЛрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдПрдХ рдЕрд╡рдзрд┐ рдХреЗ .9 рдХреЗ рдмрдЬрд╛рдп .5)ред

рдХреБрдВрдЖред рдпрд╣ рдЗрд╕ рдмрд╛рдд рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХрд╛ рджрд╛рд╕ рд╡реИрдз рдШрдбрд╝реА рд╕рдВрдХреЗрдд рдХреЗ рд░реВрдк рдореЗрдВ рдХреНрдпрд╛ рдкрддрд╛ рд▓рдЧрд╛рддрд╛ рд╣реИред рдФрд░ рдЖрдкрдХреЗ рдмрд╕ рдореЗрдВ рдЖрд░рд╕реА рдХрд┐рддрдирд╛ рд╡рд┐рд▓рдВрдм рдХрд░рддрд╛ рд╣реИред рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, AVR I рдПрдХ рдЧреБрд▓рд╛рдо рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рджреЛ рдШрдбрд╝реА рдЪрдХреНрд░ рд╕реЗ рдХрдо рджрд╛рд▓реЛрдВ рдХреЛ рдПрдХ рдЧрдбрд╝рдмрдбрд╝ рдорд╛рдирддрд╛ рд╣реИред 8MHz (+/- 10% !!!) рдХреА рдЖрдВрддрд░рд┐рдХ рдЖрд░рд╕реА рдШрдбрд╝реА рдХреЗ рд╕рд╛рде, рдкрд▓реНрд╕ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдо рд╕реЗ рдХрдо 250ns рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред I2C рд╡рд┐рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рд▓рд┐рдП 5 рдорд╛рдЗрдХреНрд░реЛрд╕реЗрдХрдВрдб рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рддреМрд░ рдкрд░ рдЖрд╡рд╢реНрдпрдХ рдФрд░ рдЕрдм рдХрд╛рдо рдирд╣реАрдВ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХреЗ рдмреАрдЪ 20 "рдорд╛рд░реНрдЬрд┐рди" рдХрд╛ рдПрдХ рдХрд╛рд░рдХ рд╣реИред

рдкрд╣рд▓реЗ рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдерд╛ рдХрд┐ рдореИрдВ рдЕрдкрдиреЗ рджрд╛рд╕ рдореЗрдВ рдШрдбрд╝реА рдХрд╛ рдЦрд┐рдВрдЪрд╛рд╡ рдмрдврд╝рд╛рдКрдВрдЧрд╛ 12us рдХрд╣рдиреЗ рдХреЗ рд▓рд┐рдП рдереЛрдбрд╝рд╛ рд╕рд╛ рдкреИрджрд╛ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рддрдм рддрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рдмрд╕ рдХреИрдкреЗрд╕рд┐рдЯреЗрдВрд╕ рдлрд┐рд░ рд╕реЗ рдПрдХ рд╕рдорд╕реНрдпрд╛ рдкреИрджрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рджреЗрд░реА рдЬреЛрдбрд╝рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рдЖрд╕рдкрд╛рд╕ рдХрд╛рдо рдХрд░рдирд╛ рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓ рд╣реИред рдЕрдкрдиреЗ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЛ рдорд╛рдирдХ 100kHz i2c рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрддрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╖реНрдЯрдкреНрд░рджред

рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдкреВрд░реНрдг рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдФрд░ рдкрд░реАрдХреНрд╖рдг рдкрд░рд┐рджреГрд╢реНрдп рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╕рдордп рдЪрд╛рд╣рд┐рдП рдерд╛ред
рдЖрдкрдиреЗ рдореБрдЭреЗ рдЬреЛ рднреА рдЬрд╛рдирдХрд╛рд░реА рджреА, рдЙрд╕рдХреЗ рд▓рд┐рдП рдореИрдВ рдЖрдкрдХреЛ рдзрдиреНрдпрд╡рд╛рдж рджреЗрддрд╛ рд╣реВрдВ, рдпрд╣ рдмрд╣реБрдд рдорджрджрдЧрд╛рд░ рдерд╛ред
рдореЗрд░рд╛ рдкрд░реАрдХреНрд╖рдг рдкрд░рд┐рджреГрд╢реНрдп GY-055 рдХреЗ рд░реВрдк рдореЗрдВ рдкреИрдХ рдХрд┐рдП рдЧрдП 2 MEMS (BNO055, MPU9255 MPU-9250/6500 рдХреЗ рд░реВрдк рдореЗрдВ рдкреИрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, WHO_AM_I рд░рдЬрд┐рд╕реНрдЯрд░ MPU9255 рдХрд╣рддрд╛ рд╣реИ) рдФрд░ 1 GPIO рдПрдХреНрд╕рдЯреЗрдВрдбрд░ PCF 8574 (рдкреИрдХреЗрдЬреНрдб PCF 8574)ред
Pi (2b) рдкрд░ I2C рдШрдбрд╝реА рдХреЛ 125 kHz рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬрд┐рд╕реЗ рдкрдврд╝рдиреЗ / sys / class / i2c-adapter / i2c-1 / of_node / clock-frequency рджреНрд╡рд╛рд░рд╛ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдореЗрд░рд╛ рдХреЛрдб рдПрдордИрдПрдордПрд╕ рд╕реЗ 100 рдмрд╛рд░ рд░реАрдбрд┐рдВрдЧ рдбреЗрдЯрд╛ рдФрд░ 0.1 рд╕реЗрдХрдВрдб рдХреА рджреЗрд░реА рдХреЗ рд╕рд╛рде рдкреАрд╕реАрдПрдл рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рд▓рд┐рдЦрддрд╛ рд╣реИред
рдкрд░рд┐рдгрд╛рдо:

  • рдПрдордИрдПрдордПрд╕ рдХрд╛ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕рдлрд▓ рд░рд╣рд╛ред
  • I2C рдмрд╕ рдкрд░ рдПрдордИрдПрдордПрд╕ рдбреЗрдЯрд╛ рд╕реЗ рдкрдврд╝рдирд╛ рд╕рднреА рдЪрдХреНрд░реЛрдВ рдкрд░ рд╕рдлрд▓ рд░рд╣рд╛ред
  • I2C рдмрд╕ рдХреЗ рдКрдкрд░ PCF рдХреЛ рдбреЗрдЯрд╛ рд▓рд┐рдЦрдирд╛ рд╕рднреА рдЪрдХреНрд░реЛрдВ рдореЗрдВ рд╕рдлрд▓ рд░рд╣рд╛ред

рдЗрд╕рд▓рд┐рдП рдПрдордИрдПрдордПрд╕ рдФрд░ рдкреАрд╕реАрдПрдл рдПрдХ рдШрдбрд╝реА рдЙрдЪреНрдЪ рдорд╛рдирдХ 100 kHz рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддреЗ рд╣реИрдВред
рдПрд╡реАрдЖрд░ рдХреЗ рд╕рд╛рдВрдкреНрд░рджрд╛рдпрд┐рдХрдХрд░рдг рдХреЛ рдПрдХ рдмрдбрд╝реЗ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рд╕реАрд░рд┐рдпрд▓ рд▓рд╛рдЗрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдореЗрд░реЗ рджреВрд╕рд░реЗ рдПрдХ рдореЗрдВ рд╕рдВрдЪрд╛рд░ рдпреВрдПрд╕рдмреА рдкрд░ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдорд╛рдкреНрдд рдирд╣реАрдВ рд╣реБрдЖ рд╣реИ, рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдореИрдВ рдмреАрдПрдирдУ 05 рджреНрд╡рд╛рд░рд╛ рдЖрдИ 2 рд╕реА рдмрд╕ рдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдХрд╛рд░рдг рдЯреНрд░рд┐рдк рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдкрдиреЗ рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рдПрдХ рдкрд╛рдИ 2 рдмреА рдХреЗ рд▓рд┐рдП рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдорд┐рд▓рд╛ рдФрд░ рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдкрд╛рдИ 3 рдХреЗ рд╕рд╛рде рднреА рдХрд╛рдо рдХрд░реЗрдЧрд╛, рдпрд╣ рдЕрдЧрд▓реА рдкрд░реАрдХреНрд╖рд╛ рд╣реИред рдФрд░ рдлрд┐рд░ рдореБрдЭреЗ 2 рдЕрдиреНрдп MEMS, 1 VL53L0X рдФрд░ 1 BME280 рдХреЛ рдПрдХреАрдХреГрдд рдХрд░рдирд╛ рд╣реИ, рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рдирдП рдЖрд╡реГрддрд┐ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдЧрд╛ рдФрд░ рдмрд╕ рд╕рдорд╛рдИ рдЗрди рд╕рднреА рддрддреНрд╡реЛрдВ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИред

рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЗ рд╕рд╛рде рдЕрдм рдЖрд░рдкреАрдЖрдИ 3 рдореЙрдбрд▓ рдмреА + рдкрд░ рдЦреЗрд▓ рд░рд╣рд╛ рд╣реВрдВ, рдФрд░ рдореИрдВ рдПрдбрд╡рд╛рдВрд╕ рд▓реЗрдЦ рдХреЗ рд╡рд░реНрдгрди рдХреЗ рдореБрдХрд╛рдмрд▓реЗ рдЕрд▓рдЧ рдкрд░рд┐рдгрд╛рдо рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВред рд╕рд┐рд▓рд┐рдХреЙрди рд╣рд╛рд▓ рд╣реА рдореЗрдВ рд╕рдВрд╢реЛрдзрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдпрд╣ рдерд╛?

рд▓рдШреБ рд╕рдВрд╕реНрдХрд░рдг рд╣реИ, рдЕрдЧрд░ рдореИрдВ рд░реАрдб-рдкреНрд░реАрдПрдХ, рд░рд╛рдЗрдЯ-рдкреНрд░реЗрдХ, рдпрд╛ рд░рд╛рдЗрдЯ-рдкреЛрд╕реНрдЯрдмреИрдХ рдкрд░ рдЦрд┐рдВрдЪрд╛рд╡ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдЪреАрдЬреЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рд▓рдЧрддреА рд╣реИрдВ; рдПрдХрдорд╛рддреНрд░ рд╕рдордп рдЬрдм рдореБрдЭреЗ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдпрд╛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕реНрдЯреНрд░реЗрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рд╕рдм рдкрдврд╝рдиреЗ-рдкреЛрд╕реНрдЯрдмреИрдХ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореБрдЭреЗ рдХреБрдЫ рднреА рдХрд╣рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдореБрдЭреЗ рдЕрдкрдиреЗ рдкреНрд░рдпреЛрдЧ рдХреЛ рд╕рд╛рдл рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╢рдмреНрджрд╛рд╡рд▓реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдиреЛрдЯред рдЙрдиреНрдирддрд┐ рд▓реЗрдЦ рдХрд╣рддрд╛ рд╣реИ:

рддреЛ, рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдХреЗ рд╕рд╛рде I2C рдЕрдЧрд░ рдХреЗрд╡рд▓ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ
рджрд╛рд╕ рдШрдбрд╝реА-рд╕реНрдЯреНрд░реЗрдЪрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдмрд┐рд▓реНрдХреБрд▓ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдпрд╛
рдЧреБрд▓рд╛рдо рдХреЗрд╡рд▓ I2C-read-ACK- рдЪрд░рдг (ACK / NACK рдкрдврд╝рдиреЗ рдХреЗ рдмрд╛рдж) рдХреЗ рдЕрдВрдд рдореЗрдВ / рд╕реАрдзреЗ рдШрдбрд╝реА рдХреЛ рд╕реНрдЯреНрд░реЗрдЪ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд░ 0.5 рд╕реЗ рдЕрдзрд┐рдХ рдШрдбрд╝реА рдЕрд╡рдзрд┐рдпреЛрдВ рджреНрд╡рд╛рд░рд╛ред

рд╢рдмреНрдж "I2C-read-ACK- рдЪрд░рдг" рдХреБрдЫ рдЕрд╕реНрдкрд╖реНрдЯ рд▓рдЧрддрд╛ рд╣реИред рдпрджрд┐ рдпрд╣ рдПрдХ I2C рд░реАрдб рдХрдорд╛рдВрдб рд╣реИ (рдпрд╛рдиреА, рдкреЛрд╕реНрдЯ-рдПрдбреНрд░реЗрд╕ R / W is рдмрд┐рдЯ рд╕реЗрдЯ рд╣реИ), рддреЛ рдЧреБрд▓рд╛рдо A writingC theK╠Е рдмрд┐рдЯ рд▓рд┐рдЦ рд░рд╣рд╛ рд╣реЛрдЧрд╛, рдЗрд╕реЗ рдирд╣реАрдВ рдкрдврд╝рдирд╛, рдкреЗрд░реЗрдВрдЯреЗрдЯрд┐рдХрд▓ рдХреЗ рд╡рд┐рдкрд░реАрддред рдЬрдм рдореИрдВ рдпрд╣рд╛рдВ "рд░реАрдб-рдкреЛрд╕реНрдЯрдмреИрдХ" рдХрд╣рддрд╛ рд╣реВрдВ, рддреЛ рдореЗрд░рд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдкрддрд╛ рдХреЗ рдмрд╛рдж рдЖрд░ / рдбрдмреНрд▓реНрдпреВ was рдмрд┐рдЯ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ (рдФрд░ рд╕рдВрднрд╡рддрдГ рдПрд╕рдПрдордмреАрд╕ рдЬреИрд╕реЗ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рджреНрд╡рд╛рд░рд╛ рдирд╣реАрдВ рдмрджрд▓рд╛ рдЧрдпрд╛ рд╣реИ), рдЗрд╕рд▓рд┐рдП рдЧреБрд▓рд╛рдо рдиреЗ рд╕рд┐рд░реНрдл рдЗрд╕рдХреА рдП╠Ерд╕реА╠ЕрдХреЗред рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд▓рд┐рдЦреА рд╣реИред

рдЬреИрд╕рд╛ рдХрд┐ рдЗрдзрд░-рдЙрдзрд░ рд╕рдВрдХреЗрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдЧрд░ рдЖрд░рдкреАрдЖрдИ рдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ SCL рдПрдХ рдЧреБрд▓рд╛рдо рджреНрд╡рд╛рд░рд╛ рдХрдо рдЖрдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рддреЛ рдпрд╣ рдПрдХ рдЖрдзрд╛ рдЪрдХреНрд░ (5╬╝S) рджреНрд╡рд╛рд░рд╛ рдЕрдкрдиреА рдЖрдВрддрд░рд┐рдХ SCL рдШрдбрд╝реА рдореЗрдВ рджреЗрд░реА рдХрд░реЗрдЧрд╛ред рдмрдЧ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдпрджрд┐ рдЧреБрд▓рд╛рдо _LAST_ рдПрдХ рдЖрдзреЗ рдЪрдХреНрд░ рдХреЗ рд▓рд┐рдП SCL рдХреЛ рдХрдо рд░рдЦрддрд╛ рд╣реИред рдпрджрд┐ рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдЖрд░рдкреАрдЖрдИ рдЕрднреА рднреА рдПрд╕рд╕реАрдПрд▓ рдХреЛ рдЙрдЪреНрдЪ рд╣реЛрдиреЗ рджреЗрдЧрд╛, рдФрд░ рдлрд┐рд░ рдЗрд╕рдХреЗ рдмрд╛рдж рддреБрд░рдВрдд рдЗрд╕реЗ рдиреАрдЪреЗ рдЦреАрдВрдЪ рджреЗрдЧрд╛ рдЬрдм рдЗрд╕рдХреА рдПрд╕рд╕реАрдПрд▓ рдШрдбрд╝реА рдЯреНрд░рд┐рдЧрд░ рд╣реЛ рдЬрд╛рдПрдЧреАред рдЗрд╕рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдПрдХ рд░рди рдХреНрд▓реЙрдХ рдкрд▓реНрд╕ рдореЗрдВ рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдХреБрдЫ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд▓реНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдЬрдмрдХрд┐ рдЕрдиреНрдп рдирд╣реАрдВред (рд╕рдВрджрд░реНрдн рдХреЗ рд▓рд┐рдП: I2C рдХрд▓реНрдкрдирд╛ рдХрд╛ рдЕрд░реНрде рд╣реИ 5╬╝S рдХрд╛ рдирд╛рдордорд╛рддреНрд░ SCL рдЙрдЪреНрдЪ рд╕рдордп, рдФрд░ 100kHz рдкрд░ 4.0╬╝S рдХрд╛ рдиреНрдпреВрдирддрдо рд╕рдордп рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬреЛ RPi рдХреЗ I2C рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреА рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЧрддрд┐ рд╣реИред)

рдореЗрд░реЗ рдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ, рд░реАрдб-рдкреНрд░реАрдПрдХ, рд░рд╛рдЗрдЯ-рдкреНрд░реАрдПрдХ рдФрд░ рд░рд╛рдЗрдЯ-рдкреЛрд╕реНрдЯ рдмреИрдХ рдЪрд░рдгреЛрдВ рдореЗрдВ, рдЖрд░рдкреАрдЖрдИ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдЧрд╛ рдХрд┐ рдЕрдзрд┐рдХрддрдо рдПрд╕рд╕реАрдПрд▓ рдЙрдЪреНрдЪ рд╕рдордп рдпрд╣ рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ 4╬╝S рдпрд╛ рддреЛред рдпрд╣ рдЙрди рдЪрд░рдгреЛрдВ рдореЗрдВ рдЕрдкрдиреА SCL рдШрдбрд╝реА рдХреЛ рдкреАрдЫреЗ рдзрдХреЗрд▓рдиреЗ рдХреЛ рддреИрдпрд╛рд░ рд▓рдЧ рд░рд╣рд╛ рдерд╛ред рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдЖрд░рдкреАрдЖрдИ рдиреЗ рдЗрд╕реЗ рдЬрд╛рд░реА рдХрд░рдиреЗ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж рдПрд╕рд╕реАрдПрд▓ рд▓рд╛рдЗрди рдХрд╛ рдирдореВрдирд╛ рд▓рд┐рдпрд╛, рдФрд░ рдЕрдЧрд░ рдПрд╕рд╕реАрдПрд▓ рдЕрднреА рднреА рдХрдо рдерд╛, рддреЛ рдЗрд╕рдиреЗ рдПрд╕рд╕реАрдПрд▓ рдШрдбрд╝реА рдХреЛ рдЖрдзреЗ рдЪрд░рдг рдореЗрдВ рд╡рд╛рдкрд╕ рдзрдХреЗрд▓ рджрд┐рдпрд╛ред

рд╣рд╛рд▓рд╛рдБрдХрд┐, рд░реАрдб-рдкреЛрд╕реНрдЯрдмреИрдХ рдЪрд░рдг рдореЗрдВ, рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ рдЖрд░рдкреАрдЖрдИ рд░рди рдХреНрд▓реЙрдХ (<4╬╝S, рдЕрдХреНрд╕рд░ 2╬╝S рдпрд╛ рдЙрд╕рд╕реЗ рдХрдо) рдХрд╛ рдЙрддреНрд╕рд░реНрдЬрди рдХрд░реЗрдЧрд╛ рдпрджрд┐ SCL рд▓рд╛рдЗрди рд▓рдЧрднрдЧ 6-9╬╝S рдХреЗ рд▓рд┐рдП рдХрдо рд░рдЦреА рдЧрдИ рдереАред рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдЗрд╕ рдЪрд░рдг рдореЗрдВ, рдмреНрд░реЙрдбрдХреЙрдо рдЗрдВрдЬреАрдирд┐рдпрд░ рдПрдХ рдЕрд▓рдЧ рд░рд╛рд╕реНрддреЗ рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдЗрд╕ рдмрд╛рдд рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХрдо рдХрд░ рджреЗрддрд╛ рд╣реИ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдЙрдЪреНрдЪ-рдХреИрдкреЗрд╕рд┐рдЯреА рд▓рд╛рдЗрди рдкрд░ рдЖрдзреЗ рдЪрд░рдг рдореЗрдВ рджреЗрд░реА рдХрд░рдиреА рдкрдбрд╝реЗрдЧреАред рдЕрдлрд╕реЛрд╕ рдХреА рдмрд╛рдд рд╣реИ - рдЬреИрд╕рд╛ рдХрд┐ рд╣рдордиреЗ рджреЗрдЦрд╛ рд╣реИ - рдпрд╣ рдХрдо рдкрдбрд╝рддрд╛ рд╣реИред

рдЗрд╕рд▓рд┐рдП, рдореЗрд░реЗ рд╡рд░реНрддрдорд╛рди рдХреЛрдб рдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рдмрд╛рдж рдХреЗ рдЪрд░рдг рдореЗрдВ beyond рдЪрдХреНрд░ рд╕реЗ рдкрд░реЗ SCL рдХреЛ рдлреИрд▓рд╛рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдЬреЛ рдХрд┐ рдХреБрдЫ рд╕рдордп рд▓реЗ рд╕рдХрддрд╛ рд╣реИ (рдЬреИрд╕реЗ рдПрдбреАрд╕реА рд░реВрдкрд╛рдВрддрд░рдг)ред рдЕрдЧрд░ рдореИрдВ рдЕрд╕рдлрд▓ рд░рд╣рд╛

рд╡рд░реНрддрдорд╛рди рдкрд░реАрдХреНрд╖рдг рдЬреЛ рдореИрдВ рдЪрд▓рд╛ рд░рд╣рд╛ рд╣реВрдВ, рдПрдХ PIC16F1619 рдПрдХ рдЧреБрд▓рд╛рдо рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдЧреБрд▓рд╛рдо рдбрд┐рд╡рд╛рдЗрд╕ рдШрдбрд╝реА рдХреЛ рдкрдврд╝рдиреЗ рдФрд░ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рд▓реВрдк рдкреНрд▓рд╕ рдУрд╡рд░рд╣реЗрдб рдХреА рд▓рдВрдмрд╛рдИ 0.35╬╝S рд╡реЗрддрди рд╡реГрджреНрдзрд┐ рдореЗрдВ 3╬╝S (рдЖрд░рдкреАрдЖрдИ SCL рдХрдо рд╕рдордп) рд╕реЗ 90╬╝S рддрдХ рднрд┐рдиреНрди рд╣реЛрддреА рд╣реИред рдореЗрд░реЗ рдкрд╛рд╕ рдЖрд░рдкреАрдЖрдИ рдкрд░ рдПрдХ рдкрд╛рдпрдерди рдХрд╛рд░реНрдпрдХреНрд░рдо рд╣реИ рдЬреЛ рджреЛ рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдорд╛рди рджреЗрдЧрд╛, рдлрд┐рд░ рдЙрдиреНрд╣реЗрдВ рд╡рд╛рдкрд╕ рдкрдврд╝реЗрдВ, рдФрд░ рдпрд╣ рдкрдврд╝реЗрдВ рдХрд┐ рдмреИрдХ-рд░реАрдб рдорд╛рди рд╕рд╣реА рд╣реИрдВред рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛ рд░рд╣реЗ рдореВрд▓реНрдп

рдкрд┐рдХрди,
рдмреНрд░реЙрдбрдХреЙрдо рдиреЗ рдШреЛрд╖рдгрд╛ рдХрд░рддреЗ рд╣реБрдП рдХрд╣рд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдХреЗрд╡рд▓ рдкрд╣рд▓реЗ рдШрдбрд╝реА рдХреЗ рдЦрд┐рдВрдЪрд╛рд╡ рдкрд░ рд╣реЛрддреА рд╣реИред рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рдорд╛рдорд▓рд╛ рд╣реИред рдЖрдкрдХреЛ рдЗрд╕реЗ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЙрдиреНрдирддрд┐ рдмреНрд░реЙрдбрдХреЙрдо рдореВрд░реНрддрд┐рдпреЛрдВ рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░рддреА рд╣реБрдИ рдкреНрд░рддреАрдд рд╣реЛрддреА рд╣реИред

@rewolff рдЦреИрд░, рдЙрдирдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдпрджрд┐, "рдкрд╣рд▓реА рдШрдбрд╝реА рдХреЗ рдЦрд┐рдВрдЪрд╛рд╡" рд╕реЗ рдЙрдирдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ "рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рдЪрд░рдг рдореЗрдВ рдкрд╣рд▓реА рдмрд╛рд░ рд╣реИ рдХрд┐ SCL рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдШрдбрд╝реА рдЕрдиреБрд╡рд╛рдж рджреНрд╡рд╛рд░рд╛ рдлреИрд▓рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ" рддреЛ рдЙрдирдХрд╛ рд╡рд░реНрдгрди рд╕рдЯреАрдХ рд╣реИ: рдпрджрд┐ рдЖрдк рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдШрдбрд╝реА рдЪрдХреНрд░ рджреНрд╡рд╛рд░рд╛ рдЦрд┐рдВрдЪрд╛рд╡ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рд╛рдБ: рд╕рднреА рдореЗрдВ рдЪрд░рдг, рдпрджрд┐ рдЖрдк> .5 рдЪрдХреНрд░ рддрдХ рдлреИрд▓рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЕрдЪреНрдЫреЗ рдЖрдХрд╛рд░ рдореЗрдВ рд╣реИрдВред рдХрдо рд╕реЗ рдХрдо, рдЕрд╕реНрдкрд╖реНрдЯ рдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рдореИрдВрдиреЗ рдЕрдм рддрдХ рдХрд┐рдпрд╛ рд╣реИ; рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рдкреНрд░рдпреЛрдЧ рдЕрднреА рдмрд╛рдХреА рд╣реИрдВред

рдЬрдм рдЖрд░рдкреАрдЖрдИ рдХрд╛ I2C рдШрдбрд╝реА рд╕реНрдЯреНрд░реЗрдЪ рдХреЛ рд╕рдВрднрд╛рд▓ рдирд╣реАрдВ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рд░рд┐рдкреНрд░реЛрдЬ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ рдмреАрд╕реАрдПрдо рдЗрдВрдЬреАрдирд┐рдпрд░реЛрдВ рдХреЛ рднреЗрдЬ рд╕рдХрддрд╛ рд╣реИ, рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдмреЗрд╣рддрд░ рдкреНрд░рдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рдореБрдЭреЗ рдЦреБрд╢реА рд╣реИред

рдЕрдлрд╕реЛрд╕ рдХреА рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕рд┐рд▓рд┐рдХреЙрди рд░рд┐рд╡реНрдпреВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА; рдЬрдм SCL рдХрдо (рдЖрдВрддрд░рд┐рдХ рдпрд╛ рдмрд╛рд╣рд░реА рд╕реНрд░реЛрдд рджреНрд╡рд╛рд░рд╛) рдЖрдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЙрдиреНрд╣реЗрдВ SCL рд╡рд┐рднрдХреНрдд рдШрдбрд╝реА рдкрд░ рдЯрд┐рдХ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╕рдВрднрд╡рддрдГ рд╕рд┐рд▓рд┐рдХреЙрди-рд╕реНрддрд░ рдХреЗ рдмрджрд▓рд╛рд╡ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬреЛ рдорд╣рдВрдЧрд╛ рд╣реИ; рдЕрдзрд┐рдХрд╛рдВрд╢ рдИрд╕реАрдУ рдзрд╛рддреБ-рд╕реНрддрд░ рдХреЗ рд╣реЛрддреЗ рд╣реИрдВ, рдЬреЛ рдХрд┐ ... рдЕрдЪреНрдЫрд╛ рд╣реИ, рд╕рд╕реНрддрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рд┐рд▓рд┐рдХреЙрди рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рд╕рд╕реНрддрд╛ рд╣реИред

рдореЗрд░рд╛ рдореБрдЦреНрдп рд▓рдХреНрд╖реНрдп рдХреБрдЫ рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ рд╕рд╛рдХреНрд╖реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдЖрд░рдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рджрд╛рд╕реЛрдВ рдХреЗ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рдирд╛ рд╣реИред

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдЕрдзрд┐рдХ рдареЛрд╕ рдбреЗрдЯрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рд░реЗрдкреНрд░реЛ рдкрд░рд┐рджреГрд╢реНрдп, рдмреНрд░реЙрдбрдХреЙрдо рдХреЛ I2C рдирд┐рдпрдВрддреНрд░рдХ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЗрдВрдЬреАрдирд┐рдпрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордирд╛рдиреЗ рдХреЗ рд▓рд┐рдПред рдареЛрд╕ рдЖрдВрдХрдбрд╝реЛрдВ рдХреЗ рд╕рд╛рде рднреА, рдЗрдВрдЬреАрдирд┐рдпрд░реЛрдВ рдХреЛ рдкреНрд░рдмрдВрдзрди рдХреЛ рдпрд╣ рд╕рдордЭрд╛рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдпрд╣ рдЕрдЧрд▓реЗ рд╕рдВрд╢реЛрдзрди рдХреЗ рд▓рд┐рдП рд╕рдВрд╢реЛрдзрд┐рдд рд╕рд┐рд▓рд┐рдХреЙрди рдХреЗ рд▓рд╛рдпрдХ рд╣реИред

рдЙрд╕ рдиреЗ рдХрд╣рд╛, рдореИрдВ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдХреЛ рдбрд┐рдЬрд╛рдЗрди рдХрд░рдиреЗ рдореЗрдВ рдХреБрдЫ рд╕рдордп рд▓рдЧрд╛рдКрдВрдЧрд╛ рддрд╛рдХрд┐ рдмреАрд╕реАрдПрдо рдЗрдВрдЬреАрдирд┐рдпрд░ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рджреЗрдЦ рд╕рдХреЗрдВ рдФрд░ рдкрд░рдЦ рд╕рдХреЗрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдмреНрд░реЙрдбрдХреЙрдо рдХреЛ рдЕрдкрдиреЗ рдирд┐рд╖реНрдХрд░реНрд╖реЛрдВ рдХреЛ рдмрддрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдВ рд╕рдореБрджрд╛рдп рдХреЗ рд╕рджрд╕реНрдпреЛрдВ рдкрд░ рдирд┐рд░реНрднрд░ рд╣реВрдВ; рдореЗрд░реЗ рдкрд╛рд╕ рдЙрдирдХрд╛ рдЪреИрдирд▓ рдирд╣реАрдВ рд╣реИред

рдореБрдЭреЗ рд╕рдореБрджрд╛рдп рдХреЗ рд▓рд┐рдП рдЕрдкрдиреА рдкрд┐рдЫрд▓реА рдЯрд┐рдкреНрдкрдгреА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рд╕рд┐рд▓рд┐рдХреЙрди рдмрдирд╛рдо рдзрд╛рддреБ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВред

рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐, рдпрджрд┐ рдЖрдкрдХреЛ рд╕реНрдкрд╛рд░реНрдХрдлреБрди рдпрд╛ рдПрдбрдлреНрд░реВрдЯ рд╕реЗ рдПрдХ рдмреЛрд░реНрдб рдорд┐рд▓рддрд╛ рд╣реИ, рддреЛ рдЕрдХреНрд╕рд░ рдпрд╣ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЕрдкрдиреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рде рдХрдЯреМрддреА рдпрд╛ рдорд┐рд▓рд╛рдк рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рдЕрдзрд┐рдХрд╛рдВрд╢ I2C рдмреЛрд░реНрдбреЛрдВ рдореЗрдВ рдирд┐рд╢рд╛рди рд╣реЛрддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдк рдкрддрд╛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ, рдкреБрд▓-рдЕрдк рдкреНрд░рддрд┐рд░реЛрдзреЛрдВ рдХреЛ рд╕рдХреНрд╖рдо рдпрд╛ рдЕрдХреНрд╖рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЖрджрд┐ред

рдорд╛рдЗрдХреНрд░реЛрдЪрд┐рдк рдбрд┐рдЬрд╛рдЗрдирд░ рднреА рдпрд╣реА рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рдорд╛рдЗрдХреНрд░реЛрдЪрд┐рдк рдХреА рдзрд╛рддреБ рдкрд░рддреЛрдВ рдкрд░ рд╡реЗ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдмрджрд▓рд╛рд╡ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рддрд╛рдХрд┐ рдЙрдиреНрд╣реЗрдВ рд╕рд┐рд▓рд┐рдХреЙрди рдкрд░рддреЛрдВ рдХреЛ рдмрджрд▓рдирд╛ рди рдкрдбрд╝реЗред рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╕рд┐рд▓рд┐рдХреЙрди рдкрд░рддреЛрдВ рдХреЛ рдмрджрд▓рдирд╛ рдХрдард┐рди рдФрд░ рдорд╣рдВрдЧрд╛ рд╣реИ (рдЬреИрд╕реЗ рдХрд┐ рдмреЛрд░реНрдб рдкрд░ рдЪрд┐рдк рдХреЛ рдмрджрд▓рдирд╛), рдЬрдмрдХрд┐ рдзрд╛рддреБ рдХреА рдкрд░рддреЛрдВ рдХреЛ рдмрджрд▓рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИ (рдЬреИрд╕реЗ рдмреЛрд░реНрдб рдкрд░ рдирд┐рд╢рд╛рди рдмрджрд▓рдирд╛)ред

рдзрд╛рддреБ рдХреА рдкрд░рддреЛрдВ рдореЗрдВ рдХрдИ рдЙрдкрдпреЛрдЧреА рдмрджрд▓рд╛рд╡ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдбрд┐рдЬрд╛рдЗрдирд░ рдЖрдЧреЗ рд╕реЛрдЪрддреЗ рд╣реИрдВ рдФрд░ рдзрд╛рддреБ рдХрдиреЗрдХреНрд╢рди (рдЬрдВрдкрд░реНрд╕, рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ) рдмрдирд╛рддреЗ рд╣реИрдВ рдЬреЛ рдПрдХ рдЪрд┐рдк рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдмрджрд▓рддреЗ рд╣реИрдВред

рд▓реЗрдХрд┐рди рдЕрдЧрд░ рд╡рд╣рд╛рдБ рдПрдХ рдмрджрд▓рд╛рд╡ рд╣реИ рдЬрд┐рд╕рдХреА рдЙрдиреНрд╣реЛрдВрдиреЗ рдпреЛрдЬрдирд╛ рдирд╣реАрдВ рдмрдирд╛рдИ рд╣реИ, рдФрд░ рдпрд╣ рдкрддрд╛ рдирд╣реАрдВ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЪрд┐рдк рдХреЗ рднреАрддрд░ рдирд┐рд╢рд╛рди рдХреЛ рдлрд┐рд░ рд╕реЗ рдХреИрд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рдП, рддреЛ рдЙрдиреНрд╣реЗрдВ рд╕рд┐рд▓рд┐рдХреЙрди рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛ред рд╕рд┐рд▓рд┐рдХреЙрди рдХреЛ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдпреЛрдЬрдирд╛, рд╕рддреНрдпрд╛рдкрди рдФрд░ рдорд╛рд╕реНрдХрд┐рдВрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдмрджрд▓рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИред

рдХрдИ рдХрдВрдкрдирд┐рдпреЛрдВ, рдЕрдЧрд░ рдЙрдирдХреЗ рдкрд╛рд╕ рдПрдХ рд╕рд┐рд▓рд┐рдХреЙрди рдкрд░рдд рд╣реИ, рдЬреЛ "рдХрд╛рдлреА рдЕрдЪреНрдЫрд╛" рд╣реИ, рддреЛ рдЗрд╕реЗ рдпрдерд╛рд╕рдВрднрд╡ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред рд╡реЗ рдЪрд┐рдк рдХреЗ рдХрдИ рд╕рдВрд╢реЛрдзрдиреЛрдВ рдореЗрдВ рд╕рд┐рд▓рд┐рдХреЙрди рдкрд░рдд рдХреЗ рдХреБрдЫ рд╣рд┐рд╕реНрд╕реЛрдВ рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред

рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдмреАрд╕реАрдПрдо рдХрд╣рд╛рдВ рд╣реИ: рдЙрдиреНрд╣реЗрдВ рдЕрдЪреНрдЫреЗ рд╕рдмреВрддреЛрдВ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдХрд┐ рдпрд╣ рдмрдЧ рдбреНрд░рд╛рдЗрд╡рд░ рдпрд╛ рдзрд╛рддреБ рдореЗрдВ рддрдп рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рд╡реЗ рдЦрд░реЛрдВрдЪ рд╕реЗ рд╕рд┐рд▓рд┐рдХреЙрди рдкрд░рдд рдХреЗ рдЗрд╕ рд╣рд┐рд╕реНрд╕реЗ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЗрдВрдЬреАрдирд┐рдпрд░рд┐рдВрдЧ рдХрд░ рд╕рдХреЗрдВред

рдпрд╣ рдмрд╣реБрдд рдХрдо рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХреНрд╕рд┐рд╕рд┐рдЯрд┐рдВрдЧ рд╕рд┐рд▓рд┐рдХреЙрди рдХрд╛ рдПрдХ рд░рд┐рд╕реНрдкрд╛рдВрд╕ рд╣реЛрдЧрд╛ (рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд $ 1M?)ред рднрд╡рд┐рд╖реНрдп рдХреЗ рдЪрд┐рдкреНрд╕ рдореЗрдВ рдПрдХ рд╕реБрдзрд╛рд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдХреМрди рдЬрд╛рдирддрд╛ рд╣реИред

рдСрди рдмреБрдз, рд╕рд┐рддрдореНрдмрд░ 05, 2018 рдХреЛ 02:13:19 рдкреВрд░реНрд╡рд╛рд╣реНрди -0700, рдЬреЛрдПрд▓ рд░реЗ рд╣реЛрд▓рд╡реЗрдХ рдиреЗ рд▓рд┐рдЦрд╛:

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдЕрдзрд┐рдХ рдареЛрд╕ рдбреЗрдЯрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рд░рд┐рдкреНрд░реЛ рдкрд░рд┐рджреГрд╢реНрдп, рдХреЛ
I2C рдирд┐рдпрдВрддреНрд░рдХ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЗрдВрдЬреАрдирд┐рдпрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмреНрд░реЙрдбрдХреЙрдо рдХреЛ рдордирд╛рдУред рднреА рд╕рд╛рде
рдареЛрд╕ рдбреЗрдЯрд╛, рдЗрдВрдЬреАрдирд┐рдпрд░реЛрдВ рдХреЛ рдкреНрд░рдмрдВрдзрди рдХреЛ рд╕рдордЭрд╛рдирд╛ рд╣реЛрдЧрд╛
рдпрд╣ рдЕрдЧрд▓реЗ рд╕рдВрд╢реЛрдзрди рдХреЗ рд▓рд┐рдП рд╕рд┐рд▓рд┐рдХреЙрди рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реИред

рдЙрдирдХреЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЫрд╣ рд╕рд╛рд▓ рдФрд░ 3 рд╕рд┐рд▓рд┐рдХреЙрди рд╕рдВрд╢реЛрдзрди рд╣реИрдВ рдЬрд╣рд╛рдВ рд╡реЗ
рдЕрдкрдиреЗ рдирд┐рд░реНрдгрдп рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд┐рдпрд╛ рд╣реИ: "рдареАрдХ рдирд╣реАрдВ рд╣реЛрдЧрд╛"ред

рдпрджрд┐ рдЖрдк> .5 рдЪрдХреНрд░ рддрдХ рдмрдврд╝рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк ~ рдЕрдЪреНрдЫреЗ рдЖрдХрд╛рд░ рдореЗрдВ рд╣реИрдВред

рдореБрдЭреЗ рдРрд╕рд╛ рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИред рд╣рд░ рдмрд╛рд░ рдЬрдм рдЖрдк CLK рдХреЛ "рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ" рдЬрд╛рд░реА рдХрд░рддреЗ рд╣реИрдВ
рдмреНрд░реЙрдбрдХреЙрдо рдлрд┐рд░ рд╕реЗ рджрд┐рдЦрддрд╛ рд╣реИ "рд╕рдордп рдЕрд╡рдзрд┐, рдЖрдкрдХреЛ рдЫреЛрдЯреА рджрд╛рд▓реЗрдВ рдорд┐рд▓рддреА рд╣реИрдВред рдореИрдВ рдЖрд╕рд╛рдиреА рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред"
5 рдмреЗрдХрд╛рд░ microseconds рджреНрд╡рд╛рд░рд╛ рдШрдбрд╝реА рд╕рдВрдХреЗрдд рдХреА рд░рд┐рд╣рд╛рдИ рдореЗрдВ рджреЗрд░реА
рд╣рдореЗрд╢рд╛ 0.5 рдЪрдХреНрд░ рд╕реЗ рдмрд╛рд╣рд░ рд░рд╣реЗрдВред рд▓реЗрдХрд┐рди рд╡рд╣ рдХрд╛рдо рдирд╣реАрдВ рдЖрдпрд╛ред

рдСрди рдмреБрдз, рд╕рд┐рддрдореНрдмрд░ 05, 2018 рдХреЛ 02:28:53 рдкреВрд░реНрд╡рд╛рд╣реНрди -0700, рдЬреЗрдореНрд╕ рд╣реНрдпреВрдЬреЗрд╕ рдиреЗ рд▓рд┐рдЦрд╛:

рдпрд╣ рдмрд╣реБрдд рдХрдо рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рд╡рд╣рд╛рдБ рдХреА рдПрдХ рд╕рд╛рдВрд╕ рдХреА рдЬрд╛рдПрдЧреА
рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд┐рд▓рд┐рдХреЙрди рдХреЛ рдмрд╛рд╣рд░ рдХрд░рдирд╛ (рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд $ 1M?) рдорд┐рд▓рд╛ред рднрд╡рд┐рд╖реНрдп
рдЪрд┐рдкреНрд╕ рдореЗрдВ рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╕реБрдзрд╛рд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдореБрдЭреЗ рд╢рдХ рд╣реИред рд╣рдо BCM2835 рдХреЗ рд╕рд╛рде BCOWN28 рд╕реЗ BCM2836 рд╕реЗ рдЧрдП
BCM2837 рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реА рдмрдЧ BCM2837B0 рдХреЗ рд▓рд┐рдП рд╕рдЯреАрдХ рдПрдХ рд╣реА рдмрдЧ рдХреЗ рд╕рд╛рдеред

рдЕрдм рдЖрдкрдХреЛ рдХреНрдпреЛрдВ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдЧрд▓рд╛ рд╕рдВрд╢реЛрдзрди рдЕрд▓рдЧ рд╣реЛрдЧрд╛?

рдмреАрд╕реАрдПрдо рдореЗрдВ рдПрдХ рд▓рдХреНрд╖реНрдп рдмрд╛рдЬрд╛рд░ рд╣реИ: рдЗрди рдЪрд┐рдкреНрд╕ рдХреЗ рд▓рд┐рдП рдлреЛрди рдФрд░ рдЯреАрд╡реА-рд╕реНрдЯрд┐рдХреНрд╕ред рдореЗрдВ
рдЙрдирдХрд╛ рд▓рдХреНрд╖реНрдп рдмрд╛рдЬрд╛рд░ рдХреЛрдИ рднреА рд╕рд╛рдорд╛рдиреНрдп рдЙрджреНрджреЗрд╢реНрдп рдкрд░ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░-I2C рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ
AVRs рдФрд░ PICs рдЬреИрд╕реЗ рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ред рд╡реЗ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдирд╣реАрдВ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВред

рдпрд╣ рд╢рд░реНрдо рдХреА рдмрд╛рдд рд╣реИ рдХрд┐ рдЗрд╕ рдЦреЛрдЬреА рдкреНрд░рдпрд╛рд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИред рдЬрдм рдореИрдВрдиреЗ рдПрдХ рдЗрд░реЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ рдЬреЛ рдЗрд╕реЗ рдХрд╡рд░ рдХрд░рддрд╛ рд╣реИ рддреЛ рдпрд╣ рд╕реЛрдЪрд╛ рдЧрдпрд╛ рдерд╛ рдХрд┐ рдХреЛрдИ рдирд╣реАрдВ рдерд╛ред рдХреНрдпрд╛ рдЕрдм рдмрджрд▓ рдЧрдпрд╛ рд╣реИ рдФрд░ рдПрдХ рдпреВрдЖрд░рдПрд▓ рд╣реИ? рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ, рдмреНрд░реЙрдбрдХреЙрдо рдЧрд▓рддреА рдХрд╛ рд╕рд╣реА рд╡рд░реНрдгрди рдХрд░рдХреЗ рд╕рдореБрджрд╛рдп рдХреА рдорджрдж рдХрд░реЗрдЧрд╛ рдФрд░ рдЬрдм рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ рддреЛ рд╕рдВрдЧрдд рдШрдЯрдХреЛрдВ рдХреЗ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдпрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рд╕реЗ рдЖрддреНрдорд╡рд┐рд╢реНрд╡рд╛рд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛрдЧрд╛ред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдПрдЪрдбреАрдПрд▓ рдХреЗ рд╕реНрдирд┐рдкреЗрдЯ рдХреА рд╕реАрдорд╛ рддрдХ рдпрджрд┐ рд╡реЗ рд╡рд┐рд╡рд░рдг рдореЗрдВ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ рдЕрдиреБрд╡рд╛рдж рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

рдШрдбрд╝реА рдХреА рд╕реНрдЯреНрд░реЗрдЪрд┐рдВрдЧ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╕рдордп рдЖрдзрд╛-рдмрд┐рдЯ-рдШрдбрд╝реА-рд╡рд┐рднрд╛рдЬрдХ рдХреЛ рд░реЛрдХрдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╣реИред рдпрд╣ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред

рдЗрд╕рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ I2C рдореЙрдбреНрдпреВрд▓ рдХрд╛ рд╡рд╣ рд╣рд┐рд╕реНрд╕рд╛ рдлрд┐рд░ "рдкреВрд░реНрдг рдШрдбрд╝реА рдХреА рдЧрддрд┐" рдкрд░ рдЪрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдЕрдм I2C рдореЙрдбреНрдпреВрд▓ рдПрдХ рдЕрдЪреНрдЫрд╛ рдХрдо-рд╢рдХреНрддрд┐ рд╡рд╛рд▓рд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ 200kHz рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ рдЪрд▓рддрд╛ рд╣реИред

рдореЗрд░реЗ рдкреЛрд╕реНрдЯ рдХрд╛ рдореБрдЦреНрдп рдХрд╛рд░рдг рдпрд╣ рдерд╛ рдХрд┐ рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдореВрд▓ рдкреЛрд╕реНрдЯ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдХреНрдпрд╛ рдХрд╣рд╛ рдерд╛:

рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЗ рд╕рд╛рде рдЕрдм рдЖрд░рдкреАрдЖрдИ 3 рдореЙрдбрд▓ рдмреА + рдкрд░ рдЦреЗрд▓ рд░рд╣рд╛ рд╣реВрдВ, рдФрд░ рдореИрдВ рдПрдбрд╡рд╛рдВрд╕ рд▓реЗрдЦ рдХреЗ рд╡рд░реНрдгрди рдХреЗ рдореБрдХрд╛рдмрд▓реЗ рдЕрд▓рдЧ рдкрд░рд┐рдгрд╛рдо рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВред рд╕рд┐рд▓рд┐рдХреЙрди рд╣рд╛рд▓ рд╣реА рдореЗрдВ рд╕рдВрд╢реЛрдзрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдпрд╣ рдерд╛?

рдЕрдЧрд░ рд╣рдо 2013 рдХреЗ рдПрдбрд╡рд╛рдВрд╕ рд░рд╛рдЗрдЯрдЕрдк рдХреЗ рдмрд╛рдж I2C рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдпрд╛ рдбреНрд░рд╛рдЗрд╡рд░ рдореЗрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкрд░рд┐рд╡рд░реНрддрди рд╣реБрдП рд╣реИрдВ , рдФрд░ рд╕рдореБрджрд╛рдп рдХреЛ рдкрддрд╛ рд╣реИ рдХрд┐ рд╡реЗ рдЗрд╕ рдмрдЧ рдХреЛ рдХреИрд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рдореБрдЭреЗ рдЕрдкрдиреЗ рдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рдЙрдЪрд┐рдд рдмрджрд▓рд╛рд╡ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдореВрд▓рднреВрдд рд╕рдорд╕реНрдпрд╛ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдореЗрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рднреА рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рдкрддрд╛ рд╣реИ, рдХрд┐рд╕реА рдиреЗ рдкреНрд░рдпреЛрдЧ рджреНрд╡рд╛рд░рд╛ рдкрд╛рдпрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдбреНрд░рд╛рдЗрд╡рд░ рдореЗрдВ рдПрдХ рдЙрдЪрд┐рдд-рдЕрд╕рдВрдмрдВрдзрд┐рдд рд░рдЬрд┐рд╕реНрдЯрд░ рдХреЛ рдмрджрд▓рдирд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕ рдмрдЧ рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдмрджрд▓ рджреЗрддрд╛ рд╣реИред рдореИрдВрдиреЗ рдпрд╣ рднреА рдкреБрд╖реНрдЯрд┐ рдирд╣реАрдВ рдХреА рд╣реИ рдХрд┐ BCM2837 рдореЗрдВ RP2 2 рдХреЗ рд╕рдорд╛рди рд╣реА I2C рдореЙрдбреНрдпреВрд▓ рд╣реИ (рд╕рдмрд╕реЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдореБрдЭреЗ рдирд┐рд╢реНрдЪрд┐рдд рдкреБрд╖реНрдЯрд┐ рдорд┐рд▓ рд╕рдХрддреА рд╣реИ рдХрд┐ I2C рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рдерд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдкрд╣рд▓реЗ рдмрддрд╛рдИ рдЧрдИ рдереА)ред рдореБрдЭреЗ рдмреАрд╕реАрдПрдо 283 рдПрдХреНрд╕ рд╕реНрдЯреЗрдкрд┐рдВрдЧ рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рдЬрд╛рдирдХрд╛рд░реА рдирд╣реАрдВ рдорд┐рд▓реА рд╣реИ; рд╕рднреА рдореБрдЭреЗ рдкрддрд╛ рд╣реИ, BCM2836 рдХреЗ рдпреБрдЧ рдореЗрдВ рдзрд╛рддреБ рдкрд░рд┐рд╡рд░реНрддрди рд╣реЛ рд╕рдХрддрд╛ рдерд╛ред

рдореБрдЭреЗ рдмреНрд░реЙрдбрдХреЙрдо рдХреЛ рдХреЛрд╕рдиреЗ рдореЗрдВ рдХреЛрдИ рджрд┐рд▓рдЪрд╕реНрдкреА рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рддреЗ рд╣реБрдП рдХрд┐ рд╡реЗ рднрд╡рд┐рд╖реНрдп рдХреЗ рд╕рдВрд╢реЛрдзрди, рдпрд╛ рдРрд╕рд╛ рдХреБрдЫ рднреА рдХреИрд╕реЗ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред

рдпрд╣рд╛рдВ рдореЗрд░рд╛ рдкреНрд░рд╛рдердорд┐рдХ рд▓рдХреНрд╖реНрдп рд╡рд░реНрддрдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рджрд╕реНрддрд╛рд╡реЗрдЬ рдХрд░рдирд╛ рд╣реИ; рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдордп рдХреЗ рд╕рд╛рде рдмрджрд▓ рдЧрдпрд╛ рд╣реИред рдореЗрд░реЗ рдкрд╛рд╕ рднрд╡рд┐рд╖реНрдп рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдореЗрд░реЗ рдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рджреЗрдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╛рдзреНрдпрдорд┐рдХ рд▓рдХреНрд╖реНрдп рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдкрд░рд┐рдгрд╛рдо рдЕрднреА рднреА рдорд╛рдиреНрдп рд╣реИрдВ, рдпрд╛ рдЕрдиреНрдп рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рд╕реБрдзрд╛рд░ рдпрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдирд╛ рд╣реИред рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдФрд░ рдорд╛рдзреНрдпрдорд┐рдХ рд▓рдХреНрд╖реНрдп рд╣реИ рдХрд┐ рд╡реЗ рдмреНрд░реЙрдбрдХреЙрдо рдЗрдВрдЬреАрдирд┐рдпрд░реЛрдВ рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдпрджрд┐ рд╡реЗ рдЪрд╛рд╣реЗрдВ рддреЛ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдВред рдЗрди рджреЛрдиреЛрдВ рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдореБрдЭреЗ рдЕрдкрдиреЗ рдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬреЛ рднреА рдорджрдж рдХрд░рддрд╛ рд╣реИ: рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдкрддрд┐ рдХреЗ рдХрд╛рд░рдг , рдпрджрд┐ рдореИрдВ рдЕрдкрдиреЗ рдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рддреЛ рдореИрдВ рдЙрдиреНрд╣реЗрдВ рдХрдареЛрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдкреНрд░реЗрд░рд┐рдд рд╣реЛрдКрдВрдЧрд╛ред

рдореЗрд░реА рд╡рд░реНрддрдорд╛рди рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ рдпреЛрдЬрдирд╛ рдЧреБрд▓рд╛рдо рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд░реВрдк рдореЗрдВ PIC16F1619 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ; рдпрд╣ рддреЗрдЬреА рд╕реЗ рдФрд░ рдмрд╣реБрдореБрдЦреА рд╣реИ рдХрд┐ рд╕реНрдЯреНрд░реЗрдЪрд┐рдВрдЧ рдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ, рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдЖрд╕рд╛рди рд╣реИ, рдФрд░ рдпрд╣ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ рдХрд┐ рдЕрдиреНрдп рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рдореЗрд░реЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рдкреБрди: рдкреЗрд╢ рдХрд░ рд╕рдХреЗрдВред рдпрджрд┐ рдкрд░рд┐рдгрд╛рдо рдЕрд╕реНрдкрд╖реНрдЯ рд╣реИрдВ, рддреЛ рдореИрдВ рдПрдХ FPGA рдХреЗ рд╕рд╛рде рдПрдХ рдкреНрд░рдпреЛрдЧ рднреА рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рдореИрдВ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдХреНрдпрд╛ рдореИрдВ рдЧреБрд▓рд╛рдо рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдмрд┐рдЯ-рдмрд╢рд┐рдВрдЧ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдПрдХ рдФрд░ рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрдЪрд┐рдд рдЧреНрд░реИрдиреНрдпреБрд▓реИрд░рд┐рдЯреА рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреВрд░реЗ рдУрдПрд╕ рдХреЗ рдмрд┐рдирд╛ рдХреБрдЫ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред

рдХреБрдЫ рдФрд░ рдмрд╛рддреЗрдВ рд╕рд╛рдордиреЗ рдЖрдИрдВ:

рдХреНрд╖рдорд╛ рдХрд░реЗрдВ рдХрд┐ рдореЗрд░рд╛ рдореВрд▓ рдкрдж рдЕрдзреВрд░рд╛ рдерд╛; рдореИрдВрдиреЗ рдЧрд▓рддреА рд╕реЗ рдПрдХ рд╢реБрд░реБрдЖрддреА рдбреНрд░рд╛рдлреНрдЯ рдкреЛрд╕реНрдЯ рдХрд░ рджрд┐рдпрд╛ рдерд╛ред рдореИрдВ рдЗрд╕реЗ рдЫреЛрдбрд╝ рджреВрдВрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВрдиреЗ рдЬреЛ рдмрджрд▓рд╛рд╡ рдХрд┐рдП рд╣реИрдВ рд╡реЗ рдмрд╣реБрдд рдорд╛рдореВрд▓реА рд╣реИрдВред

рдореИрдВ рдШрдбрд╝реА рдХреЗ рд╡рд┐рднрд╛рдЬрди рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд╡рд┐рдЪрд╛рд░ рдкрд░ рдореМрд▓рд┐рдХрддрд╛ рдХрд╛ рджрд╛рд╡рд╛ рдирд╣реАрдВ рдХрд░рддрд╛, рдЬрдмрдХрд┐ SCL рдХреЛ рдмрд╛рд╣рд░реА рд░реВрдк рд╕реЗ рдХрдо рд░рдЦрд╛ рдЧрдпрд╛ рдерд╛ред рдореИрдВрдиреЗ рдкрдврд╝рд╛ рд╣реИ рдХрд┐ рдХрд╣реАрдВ рдФрд░, рд▓реЗрдХрд┐рди рдпрд╛рдж рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХрд╣рд╛рдВ; рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рдпрд╣ I2C рдШрдбрд╝реА рдореЗрдВ Gasp van Loo рд╕реЗ

I2C HW рдмреНрд▓реЙрдХ рдХреЛ рдареАрдХ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ / рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ bcm2835 / 6/7 рдореЗрдВ рд╣реЛрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЪрд┐рдк рдХреЗ рд░рд┐рд╕реНрдкреЙрдиреНрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рдЬреЛ рдХрд┐ рдмрд╕ рдмрд╣реБрдд рдорд╣рдВрдЧрд╛ рд╣реИред

рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдПрдбрд╡рд╛рдВрдЯреЗрдЬ рдХреМрди рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡реЗ рдЖрд░рдкреАрдПрдл (рдЯреА) рд╕рдореВрд╣ рдХреЗ рд▓рд┐рдП рдЕрд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рд▓реЗрдЦ рдХреА рд╕рдЯреАрдХрддрд╛ рдХреА рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ рджреЗ рд╕рдХрддрд╛ред

рдкреНрд░рд┐рдп рд╕рдм, рдореБрдЭреЗ рдЕрдкрдиреЗ рдкреАрдЖрдИ 2 рдмреА рдФрд░ 3 рдкрд░ рдмрд╣реБрдд рдЕрдЬреАрдм рдлреЗрдиреЛрдореЗрдирди рдорд┐рд▓рд╛, рдореИрдВ рд╕рдордЭрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реВрдВ:
рдЬрдм рдореИрдВрдиреЗ рдЬреВрди рдХреЗ рдЕрдВрдд рдореЗрдВ BNO055 рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛, рддреЛ рдореИрдВрдиреЗ рдПрдХ рдмрдбрд╝реЗ рд░рд╛рд╕реНрдкрд┐рдпрди (рдЕрдм рд╕рдВрд╕реНрдХрд░рдг рдирд╣реАрдВ рд╣реИ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдФрд░ рдореБрдЭреЗ i2cdetect рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЕрдорд╛рдиреНрдп I2C рдкрддреЗ рдорд┐рд▓реЗред рдЙрд╕рдХреЗ рд▓рд┐рдП рдореИрдВрдиреЗ рдиреЗрдЯ рдореЗрдВ рджреЗрдЦрд╛ рдФрд░ рдореБрдЭреЗ рдпрд╣ рдордВрдЪ рдЕрдЪреНрдЫреЗ рд╕реЗ рдорд┐рд▓рд╛ред рдЙрд╕рдХреЗ рд▓рд┐рдП рдореИрдВрдиреЗ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд I2C рдмрд╛рд░рдВрдмрд╛рд░рддрд╛ рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ рдФрд░ рд╕рднреА рднреВрдд рдЧрд╛рдпрдм рд╣реЛ рдЧрдП рдФрд░ рдореИрдВ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рдЕрдЧрд╕реНрдд рдХреЗ рдордзреНрдп рдореЗрдВ рдореИрдВрдиреЗ рд░рд╛рд╕рдмреАрдпрди рдХреЛ рдмрдзрд╛рдИ рджреА рдХрд┐ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд░рд╛рд╕реНрдкрдмреА-рджреЗрд╡ 4.14.62-v7 + рдФрд░ рд╕рд┐рд╕реНрдЯрдо рдереЛрдбрд╝рд╛ рдЕрд╕реНрдерд┐рд░ рд╣реЛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдореИрдВ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рдЕрджреНрдпрддрди рд╕реЗ рдЕрджреНрдпрддрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд┐рд╕реНрдЯрдо рдЕрдзрд┐рдХ рдЕрд╕реНрдерд┐рд░ рд╣реЛ рдЧрдпрд╛, рдПрд╕рдбреА рдХрд╛рд░реНрдб рдкрд░ рд╡рд┐рдЦреНрдпрд╛рдд рд▓реАрдХред рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ NOOBS (Linux raspbi-dev 4.14.62-v7 + # 1134 SMP Tue 14 14 17:10:10 BST 2018 armv7l) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд░рд╛рд╕реНрдкрд┐рдпрди рдХреЛ рдлрд┐рд░ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдФрд░ рдореИрдВ I2C рдХреА рдЖрд╡реГрддреНрддрд┐ рд╕реЗрдЯ рдХрд░рдирд╛ рднреВрд▓ рдЧрдпрд╛ рд▓реЗрдХрд┐рди рдХреЛрдИ рднреВрдд рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджрд┐рдпрд╛ред рдареАрдХ рд╣реИ, рдореИрдВ рдмрд╕ рдкрд░ рдХреЗрд╡рд▓ MEMS рдФрд░ GPIO рдПрдХреНрд╕рдЯреЗрдВрдбрд░ рдореЗрдВ рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд░рд╛рд╕реНрдкрд┐рдпрди рдХреЗ i2c рдХреЛрдб рдореЗрдВ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкрддрд╛ рдЪрд▓рд╛ рд▓реАрдХ рдПрдХ рдЕрдкреВрд░реНрдг рдЙрдиреНрдирдпрди рд╕реЗ рдЖрдпрд╛ рдерд╛, рдореИрдВ рдЙрд╕реА рдХрд╛рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдХреЛрдИ рд▓реАрдХ рдХрд╛ рдкрддрд╛ рдирд╣реАрдВ рдЪрд▓рд╛ рд╣реИред

@ hmf2015 рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдПрдХ рдмрд╣реБрдд рд╣реА рд╡рд┐рд╢рд┐рд╖реНрдЯ I2C рд╕рдорд╕реНрдпрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИред рдПрд╕рдбреА рдХрд╛рд░реНрдб рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рдПрдВ I2C рдХреА рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЗ рдХрд╛рд░рдг рдирд╣реАрдВ рд╣реИрдВред рдпрджрд┐ рдЖрдкрдХрд╛ рдПрд╕рдбреА рдХрд╛рд░реНрдб рд╕рд╣реА рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдПрдХ рдирдпрд╛ рдПрд╕рдбреА рдХрд╛рд░реНрдб рдЖрдЬрд╝рдорд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдХреБрдЫ рдХрд╛рд░реНрдб рдЕрдЪреНрдЫреЗ рдирд╣реАрдВ рд╣реИрдВ, рдФрд░ рдЬрд▓реНрджреА рд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджреЗрддреЗ рд╣реИрдВред рдореЗрд░реЗ рдПрд╕рдбреА рдХрд╛рд░реНрдб рдиреЗ рдкрд┐рдЫрд▓реЗ рдорд╣реАрдиреЗ рдХрд╛рдо рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛, рдФрд░ рдореБрдЭреЗ рдЗрд╕реЗ рдмрджрд▓рдирд╛ рдкрдбрд╝рд╛ред

рдЖрдорддреМрд░ рдкрд░, I2C рднреВрдд рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЗ рдХрд╛рд░рдг рдирд╣реАрдВ рд╣реИрдВред рд╡реЗ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рд╣реЛрддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐:

  • рдЖрдкрдХреЗ рдкрд╛рд╕ рдЕрдЪреНрдЫреА рдмрд┐рдЬрд▓реА рдХреА рдЖрдкреВрд░реНрддрд┐ рдирд╣реАрдВ рд╣реИред рдореБрдЭреЗ рдпрд╣ рдкрд╕рдВрдж рд╣реИред
  • рдЖрдкрдХреЗ рдХреЗрдмрд▓ рдмрд╣реБрдд рд▓рдВрдмреЗ рд╣реИрдВред I2C 1 рдореА рд╕реЗ рдЕрдзрд┐рдХ рд▓рдВрдмреЗ рдХреЗрдмрд▓ рдХреЗ рд╕рд╛рде рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
  • рдЖрдкрдХреЗ рдХреЗрдмрд▓ рдореЗрдВ рдХреИрдкреЗрд╕рд┐рдЯрд┐рд╡ рдХрдкрд▓рд┐рдВрдЧ рд╣реЛрддреА рд╣реИред рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ I2C рдкрд┐рди (рдПрд╕рд╕реАрдПрд▓ рдФрд░ рдПрд╕рдбреАрдП) рдПрдХ рд╕рд╛рде рдореБрдбрд╝ рд╣реИрдВ, рддреЛ рдпрд╣ рдПрдХ рд╕рдорд╕реНрдпрд╛ рдмрдирд╛ рд╕рдХрддрд╛ рд╣реИред рдХрднреА-рдХрднреА, рд▓реЛрдЧ рдореБрдбрд╝-рдЬреЛрдбрд╝реА рдХреЗрдмрд▓ (рдИрдерд░рдиреЗрдЯ рдХреЗрдмрд▓ рдХреА рддрд░рд╣) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ I2C рдкрд┐рди рдХреЛ рдШреБрдорд╛рддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕рд╕реЗ рд╕рдорд╕реНрдпрд╛рдПрдБ рд╣реЛрддреА рд╣реИрдВред рдпрджрд┐ рдЖрдкрдХреЛ рдореБрдбрд╝-рдЬреЛрдбрд╝реА рдХреЗрдмрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ, рддреЛ рдПрд╕рд╕реАрдПрд▓ рдХреЛ рд╡реАрдбреА (рдЧреНрд░рд╛рдЙрдВрдб) рдФрд░ рдПрд╕рдбреАрдП рдХреЗ рд╕рд╛рде рд╡реАрдбреА (3.3 рд╡реА) рдХреЗ рд╕рд╛рде рдореЛрдбрд╝ рджреЗрдВред рдЦрдВрдб 7.5 рдореЗрдВ I2C рдпреБрдХреНрддрд┐ рдХреЛ рджреЗрдЦреЗрдВред
  • рдЖрдкрдХреЗ I2C рдбрд┐рд╡рд╛рдЗрд╕ рдореЗрдВ 5V рд╣реИред рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ 3.3V рдкрд░ I / O рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рд╡реЛрд▓реНрдЯреЗрдЬ рдЕрд▓рдЧ рд╣реИрдВ, рддреЛ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдкреИрджрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИред (BNO055 рдХреЛ 3.3V рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдЖрдк рдЗрд╕реЗ 5V рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рд╕рдорд╕реНрдпрд╛ рд╣реИред)

рдореИрдВрдиреЗ рдХрд╣рд╛ рдХрд┐ рд╣рдо рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╕рдорд╕реНрдпрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдХреБрдЫ рдбрд┐рд╡рд╛рдЗрд╕ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЗ рдХрд╛рд░рдг рднреВрдд рдмрди рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХрдИ рдбрд┐рд╡рд╛рдЗрд╕ рдирд╣реАрдВред рдпрджрд┐ рдбрд┐рд╡рд╛рдЗрд╕ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЗ рдХрд╛рд░рдг рднреВрдд рдмрдирд╛рддреЗ рд╣реИрдВ, рддреЛ рд╡реЗ рдХрдИ рднреВрдд рдирд╣реАрдВ рдмрдирд╛рддреЗ рд╣реИрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреА рд╕рдорд╕реНрдпрд╛ рдЕрд▓рдЧ рд╣реИред

рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдЖрдкрдХреЗ рдХрд╣рдиреЗ рдХрд╛ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИ рдЬрдм рдЖрдк рдХрд╣рддреЗ рд╣реИрдВ рдХрд┐ "рдПрд╕рдбреА рдХрд╛рд░реНрдб рдкрд░ рд▓реАрдХ"ред рдпрд╣ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕рдорд╕реНрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╣рдо рдЗрд╕ рд╡реЗрдм рдкреЗрдЬ рдХреЗ рдореБрджреНрджреЗ рдкрд░ рдмрд╛рдд рдХрд░реЗрдВред рдпрд╣ рдмрд╛рддрдЪреАрдд рдПрдХ рд╡рд┐рд╢реЗрд╖ рдмрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИред рд╡рд╣ рдмрдЧ SD рдХрд╛рд░реНрдб рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рд░рд╛рд╕реНрдкрд┐рдпрди рдиреЗ I2C рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЗрд╕реЗ рдмрджрд▓ рджрд┐рдпрд╛ред рд╣рдореЗрдВ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд░рд╛рд╕реНрдкрд┐рдпрди рдЗрд╕ рдмрдЧ рдХреЛ рдареАрдХ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред рд╣рдо рдЧрд▓рдд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рд╣рдореЗрдВ рдмрддрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

рдпрджрд┐ рдЖрдк рдХреЗрд╡рд▓ рд╣рдорд╛рд░реА рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рдпрд╣ рдЬрд╛рдирдХрд╛рд░реА рдмрддрд╛ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рд╣рдо рдЖрдкрдХреЛ рдзрдиреНрдпрд╡рд╛рдж рджреЗрддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк рд╣рдорд╕реЗ рд╕рд╣рд╛рдпрддрд╛ рдорд╛рдВрдЧрдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдЬрд╛рдирдХрд╛рд░реА рдмрддрд╛ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЖрдк рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдордВрдЪреЛрдВ рдкрд░ рдкреВрдЫрдирд╛ рдЪрд╛рд╣ рд╕рдХрддреЗ рд╣реИрдВред рдлреЛрд░рдо рдХрдИ рдЪреАрдЬреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ I2C, SD рдХрд╛рд░реНрдб, GPIO рдПрдХреНрд╕рдЯреЗрдВрдбрд░ рдФрд░ рдХрдИ рдФрд░ рдЪреАрдЬреЗрдВред рдЬрд┐рди рдЪреАрдЬреЛрдВ рдХреЛ рдЖрдк рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВ, рд╡рд╣реА рдЪреАрдЬреЗрдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ рдЬрд┐рдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣рдо рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡реЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЪреАрдЬреЗрдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВред рдордВрдЪреЛрдВ рдкрд░ рд▓реЛрдЧ рдЖрдкрдХреЛ рдпрд╣ рдЬрд╛рдирдиреЗ рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдХреЛ рдХреМрди рд╕реА рд╕рдорд╕реНрдпрд╛рдПрдВ рджрд┐рдЦрд╛рдИ рджреЗ рд░рд╣реА рд╣реИрдВред

рдпрд╣ рдЬрд╛рдирдХрд╛рд░реА рд╣рдореЗрдВ рдмрддрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

рдЙрддреНрддрд░ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рд▓реЗрдХрд┐рди sd рдХрд╛рд░реНрдб рд╕рдорд╕реНрдпрд╛ O / S рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдорд┐рдд рдХреА рдЧрдИ рдереА, рдореИрдВрдиреЗ рдЕрдкрдиреЗ (Unix) рд╣реЛрд╕реНрдЯ рдкрд░ рдХрд╛рд░реНрдб рдХреА рдЬрд╛рдБрдЪ рдХреА, рдФрд░ рдпрд╣ рдареАрдХ рдерд╛, рдФрд░ рдЕрдм рдирдИ рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рдмрд╛рдж рд╡рд╣реА рдХреИрдб рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
I2C рдмрд╕ рдкрд░ рднреВрдд рдПрдХ рдЙрдЪреНрдЪ рдЖрд╡реГрддреНрддрд┐ рджреНрд╡рд╛рд░рд╛ рдЧрд╛рдпрдм рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдЕрдм рдкреБрдирд░реНрд╕реНрдерд╛рдкрдирд╛ рдХреЗ рдмрд╛рдж рд╡реЗ рдкреНрд░рдХрдЯ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ, рдЖрд░ / рд╕реА рд╕рдорд╕реНрдпрд╛рдПрдВ рдФрд░ рдкреНрд░рддрд┐рдмрд┐рдВрдм рдЬреЛ рдореИрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ, рдмрд╛рд╣рд░ред рдореИрдВ 3.3V рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдЬрд╛рдирддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдиреНрдпреВрдирддрдо 1 рд╕реНрддрд░ рдХрдо рд╣реИред
BNO055 рдкреИрдХреЗрдЬ рдореЗрдВ рдПрдХ рд╡реЛрд▓реНрдЯреЗрдЬ рд░реЗрдЧреБрд▓реЗрдЯрд░ рд╣реИред
рдореИрдВрдиреЗ рдпрд╣ рднреА рд╕реЛрдЪрд╛ рдерд╛ рдХрд┐ I2C рдХреА рд╕рдорд╕реНрдпрд╛рдПрдВ рдкрд╣рд▓реЗ рдХреА рддрд░рд╣ рд╣реА рд╣реЛрдВрдЧреА, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ, рдЗрд╕ рд╕рдордп рдореЗрд░реЗ рдкрд╛рд╕ рд╕рдордп (рдФрд░ рдмреНрдпрд╛рдЬ) рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЕрдВрддрд░ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд░рд╛рд╕реНрдкрд┐рдпрди рдХреЗ рд╕реНрд░реЛрдд рдХреЛрдб рдХреЛ рджреЗрдЦреЗрдВ, рдореБрдЭреЗ рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реИ рдХрд╛рдо рдХреЗ рдорд╛рд╣реМрд▓ рдкрд░ред
рддрддреНрд╡реЛрдВ рдХреА рд╕реВрдЪреА рдХреЗрд╡рд▓ рдпрд╣ рджрд┐рдЦрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдХрд┐ рдореИрдВ рдмреАрд╕реАрдПрдо рдХреЗ рд╕рдорд░реНрдерди рдХреЗ рд░реВрдк рдореЗрдВ рдПрдиреНрдбреЙрдЗрдб рд╡рд╛рддрд╛рд╡рд░рдг (рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдпреВрдирд┐рдХреНрд╕ рдХреЗ рд╕рд╛рде) рдореЗрдВ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рди рдХрд┐ рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЗ рд╕рд╛рде, рдЬреЛ рдореИрдВ рдЖрд▓рд╕реА рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рд╕реЗ рд╕реАрд░рд┐рдпрд▓ рд▓рд╛рдЗрди рдпрд╛ рдпреВрдПрд╕рдмреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдВрд▓рдЧреНрди рдХрд░рддрд╛ рд╣реВрдВред рдЖрдкрдХреЗ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рд╕реНрдерд┐рддрд┐рдпрд╛рдБ рдореЗрд░реА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдпрд╣ рдирд╣реАрдВ рдХрд╣ рд╕рдХрддрд╛ рдХрд┐ рдХреНрдпрд╛ рдЖрдкрдХреА рд╕рдорд╕реНрдпрд╛рдПрдВ рдХрдо рд╣реЛ рдЬрд╛рддреА рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИред

рд╣рд╛рдп hmf2015,
рдпрд╣ рдХреЛрдИ рдлреЛрд░рдо рдирд╣реАрдВ рд╣реИред рдпрд╣ рдПрдХ рдмрдЧ рдЯреНрд░реИрдХрд░ рд╣реИред рдЗрд╕ рд╕реВрдЪреА-рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдПрдХ рдмрдЧ рдХреА рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ рд╣реИ рдЬреЛ рдЖрдкрдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдирд╣реАрдВ рд╣реИред рдХреГрдкрдпрд╛ рдПрдХ рдЙрдкрдпреБрдХреНрдд рдордВрдЪ рдпрд╛ рд╣реЗрд▓реНрдкрдбреЗрд╕реНрдХ рдХреЗ рд╕рд╛рде рдЕрдкрдиреА рд╕рдорд╕реНрдпрд╛ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░реЗрдВред рдлрд┐рд░ рд╕реЗ, рд╣рдо рдЖрдкрдХреЗ рдкреНрд░рд╢реНрди рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХрд░рддреЗ рд╣реИрдВ: "рд╢рд╛рдпрдж рдпрд╣ рд╡рд╣реА рд╣реИ? рд╢рд╛рдпрдж рдореЗрд░рд╛ рд╡рд┐рд╡рд░рдг рдЙрд╕ рдмрдЧ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИ?" рд▓реЗрдХрд┐рди рдЕрдм рд╣рдо рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЬреЛ рдЖрдк рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВ рд╡рд╣ рдЕрд╕рдВрдмрдВрдзрд┐рдд рд╣реИ, рдХреГрдкрдпрд╛ рдЗрд╕ рдЪрд░реНрдЪрд╛ рдХреЛ рдЖрдЧреЗ "рдкреНрд░рджреВрд╖рд┐рдд" рди рдХрд░реЗрдВред

@ рдкреЛрдкрдХреЛрд░реНрдирдорд┐рдХреНрд╕
рдирдорд╕реНрддреЗ, рдмрд╣реБрдд рд╕рдордп рдкрд╣рд▓реЗ рдЖрдкрдиреЗ рдкреБрдирд░рд╛рд░рдВрдн рдХреЗ рджреМрд░рд╛рди I2C рд░рд╛рдЬреНрдп рдорд╢реАрди рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдЗрд╕ рдореБрджреНрджреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдХреЛрдб рдкреЛрд╕реНрдЯ рдХрд┐рдП рд╣реИрдВред
рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдкрдХрд╛ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИ рд▓реЗрдХрд┐рди рдореЗрд░реЗ рдкрд╛рд╕ WM8731 рдХреЗ рд╕рд╛рде рдПрдХ рдореБрджреНрджрд╛ рд╣реИ I2C рд╕реЗ рдЬреБрдбрд╝рд╛ рдХреЛрдбреЗрдХред
2-3 рдмрд╛рд░ рдкреБрдирд░рд╛рд░рдВрдн рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж I2C рдмрд╕ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд▓рдЯрдХ рдЬрд╛рддреА рд╣реИред i2cdetect 1 рд▓рд╛рдЗрди рдХреЛ рдЫреЛрдбрд╝рдХрд░ рдХреЛрдИ рднреА рдЬрд╛рдирдХрд╛рд░реА рдирд╣реАрдВ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдФрд░ рд▓рдЯрдХрд╛ рднреА рд╣реИред рдареАрдХ рд╣реЛрдиреЗ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рддрд░реАрдХрд╛ рд╢рдХреНрддрд┐ рдиреАрдЪреЗ / рдКрдкрд░ рдЪрдХреНрд░ рд╣реИред
рдХреНрдпрд╛ рдпрд╣ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рдореБрджреНрджреЛрдВ рдХреА рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ?
рдореИрдВ рек.рез реп рдореЗрдирд┐рди рдХрд░реНрдиреЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

@ sergey-suloev рдЬрдм i2cdetect 8 рдпрд╛ 16 рдкрддреЛрдВ рдХреЗ рдмрд╛рдж рд╕реНрдХреИрдирд┐рдВрдЧ рдЬрд╛рд░реА рдирд╣реАрдВ рд░рдЦрддрд╛ рд╣реИ, рддреЛ рдореИрдВ рдХрд╣реВрдВрдЧрд╛ рдХрд┐ рдпрд╣ рдЗрд╕ рдореБрджреНрджреЗ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдирд╣реАрдВ рд╣реИред рдЬрдм рдбрд┐рд╡рд╛рдЗрд╕ рдХреНрд▓реЙрдХ рд╕реНрдЯреНрд░реЗрдЪрд┐рдВрдЧ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╡реЗ рдЕрдЧрд▓реЗ рдШрдбрд╝реА рдЪрдХреНрд░ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдирд╣реАрдВ рд╣реИрдВред рдЬрдм I2C рдХреЛ рд▓рдЧрднрдЧ 40 рд╕рд╛рд▓ рдкрд╣рд▓реЗ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рддреЛ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рднреА рдпрд╣ рд╕рдВрднрд╡ рд╣реИред рд▓реЗрдХрд┐рди рдЖрдЬрдХрд▓, рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рд╣рдореЗрд╢рд╛ рдЕрдЧрд▓реЗ рдШрдбрд╝реА рдЪрдХреНрд░ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордп рдореЗрдВ рддреИрдпрд╛рд░ рд╣реЛрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ 10 рдорд╛рдЗрдХреНрд░реЛрд╕реЗрдХрдВрдб рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рд╕реА рдЪреАрдЬ рдХреЗ рд▓рд┐рдП рд╕рдордп рдХрд╛ рд╣реЛрддрд╛ рд╣реИред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

steros76 picture steros76  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Nuntis-Spayz picture Nuntis-Spayz  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

kucharskim picture kucharskim  ┬╖  7рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

wudo94 picture wudo94  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

pymumu picture pymumu  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ