рдПрд╕рдкреАрдЖрдИ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрд╕рдбреА рдХрд╛рд░реНрдб рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВред VHDL рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди

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



рдЪреВрдВрдХрд┐ рдореБрджреНрд░рд┐рдд рд╕рд░реНрдХрд┐рдЯ рдмреЛрд░реНрдб рдкрд░ рдЬрдЧрд╣ рд╣рдореЗрд╢рд╛ рд╕реАрдорд┐рдд рд╣реЛрддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдПрд╕рдбреАрдПрд╕-рдХрд╛рд░реНрдб рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдорд╛рдЗрдХреНрд░реЛрдПрд╕рдбреА рдлреЙрд░реНрдо рдлреИрдХреНрдЯрд░ рдореЗрдВ рдХрд╛рд░реНрдб рдХреЗ рдЙрджрд╛рд╣рд░рдг рдкрд░ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рд╕рд╛рдордЧреНрд░реА


1. рд░реАрдбрд┐рдВрдЧ рд╕реНрдкреЗрд╕рд┐рдлрд┐рдХреЗрд╢рди
1.1 рд╕рд╛рдорд╛рдиреНрдп рдЬрд╛рдирдХрд╛рд░реА
1.2 рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕реВрдЪрдирд╛
1.3 рдЗрд░реЗрдЬрд╝рд┐рдВрдЧ рдЬрд╛рдирдХрд╛рд░реА
1.4 рдкрдврд╝рдирд╛ рдЬрд╛рдирдХрд╛рд░реА
1.4.1 рдПрдХ рдбреЗрдЯрд╛ рдмреНрд▓реЙрдХ
рдкрдврд╝рдирд╛ 1.4.2 рдХрдИ рдбреЗрдЯрд╛ рдмреНрд▓реЙрдХ рдкрдврд╝рдирд╛
1.5 рдЬрд╛рдирдХрд╛рд░реА
рд▓рд┐рдЦрдирд╛ 1.5.1 рдПрдХ рдбреЗрдЯрд╛ рдмреНрд▓реЙрдХ
рд▓рд┐рдЦрдирд╛ рдХрдИ рдбреЗрдЯрд╛ рдмреНрд▓реЙрдХ рд▓рд┐рдЦрдирд╛
2. рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░
2.1 рдореЗрдВ рднреМрддрд┐рдХ рдкрд░рдд рдХрд╛
рдШрдЯрдХ 2.2 рдХрдорд╛рдВрдб рд╕реНрддрд░ рдХрд╛
рдШрдЯрдХ 2.3 рдмрд╛рд╣рд░реА рджреБрдирд┐рдпрд╛ рдХреЗ рд╕рд╛рде рд╕рдВрдЪрд╛рд░ рдХрд╛ рдШрдЯрдХ
3. рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдореЗрдВ рд╕рддреНрдпрд╛рдкрди
4. рдкрд░рд┐рдгрд╛рдо

1. рдкрдврд╝рдирд╛ рд╡рд┐рдирд┐рд░реНрджреЗрд╢реЛрдВ


рез.рез рд╕рд╛рдорд╛рдиреНрдп


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

  • рдПрд╕рдбреА рдХрд╛рд░реНрдб рдореЗрдВ рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдПрдХ рд▓рд╛рдЗрди рдкрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ;
  • рдПрдХ рдПрд╕рдбреА рдХрд╛рд░реНрдб рд╕реЗ рдбреЗрдЯрд╛ рдкрдврд╝рдирд╛ рдПрдХ рд▓рд╛рдЗрди рдкрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ;
  • рдПрд╕рдкреАрдЖрдИ рдореЛрдб рдореЗрдВ, рд╢рдХреНрддрд┐ рдХреЗрд╡рд▓ + 3.3V рд╣реЛ рд╕рдХрддреА рд╣реИ;
  • 100-400 kHz рдХреА рд╕реАрдорд╛ рдореЗрдВ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдореЛрдб рдореЗрдВ рдШрдбрд╝реА рдХреА рдЖрд╡реГрддреНрддрд┐;
  • рдЖрд░рдВрднреАрдХрд░рдг рдХреЗ рдмрд╛рдж рдШрдбрд╝реА рдХреА рдЖрд╡реГрддреНрддрд┐ - 25 рдореЗрдЧрд╛рд╣рд░реНрдЯреНрдЬред

рдпрд╣ рддреБрд░рдВрдд рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рд╢рд┐рдЦрд░ рдмреИрдВрдбрд╡рд┐рдбреНрде рдкрд░ рдмрд┐рдВрджреБ рдХрд╛ рдЕрд░реНрде рд╣реИ: 25 рдореЗрдЧрд╛рд╣рд░реНрдЯреНрдЬ * 1 рдмрд┐рдЯ = 25 рдПрдордмреА / рдПрд╕, рдЬреЛ рдХреБрдЫ рдЫреЛрдЯрд╛ рд╣реИред рджреВрд╕рд░реЗ рдорд╛рдЗрдирд╕ рдореЗрдВ рдПрд╕рдбреА-рдХрд╛рд░реНрдбреНрд╕, рдкрд╛рд╡рд░ + 3.3V рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рд╣реЛрддрд╛ рд╣реИред рдореБрджреНрд░рд┐рдд рд╕рд░реНрдХрд┐рдЯ рдмреЛрд░реНрдб рдкрд░ рдЬрд┐рд╕ рдкрд░ рдПрд╕рдбреА рдХрд╛рд░реНрдб рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдереА, рдРрд╕рд╛ рдХреЛрдИ рд╡реЛрд▓реНрдЯреЗрдЬ рдирд╣реАрдВ рд╣реИред

рдорд╛рдЗрдХреНрд░реЛрдПрд╕рдбреА рдлреЙрд░реНрдо рдлреИрдХреНрдЯрд░ рдХрд╛рд░реНрдб рдХреЛ рдХреНрд╖рдорддрд╛ рд╕реЗ 3 рд╢реНрд░реЗрдгрд┐рдпреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

  • рдПрд╕рдбреАрдПрд╕рд╕реА рдХрд╛рд░реНрдб рдХреА рдХреНрд╖рдорддрд╛ 2 рдЬреАрдмреА рддрдХ рд╣реИред рдХрд╛рд░реНрдб рдХреЗ рдЕрдВрджрд░ рдХрд╛ рдкрддрд╛ рдмрд╛рдЗрдЯ рд╣реИред
  • рдПрд╕рдбреАрдПрдЪрд╕реАред рдХрд╛рд░реНрдб рдХреА рдХреНрд╖рдорддрд╛ 2 рдЬреАрдмреА рд╕реЗ рдЕрдзрд┐рдХ рдФрд░ 32 рдЬреАрдмреА рддрдХ рд╣реЛрддреА рд╣реИред рдХрд╛рд░реНрдб рдХреЗ рдЕрдВрджрд░ рдХрд╛ рдкрддрд╛ 512 рдмрд╛рдЗрдЯ рдмреНрд▓реЙрдХ рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИред
  • SDXCред рдХрд╛рд░реНрдб рдХреА рдХреНрд╖рдорддрд╛ 32 рдЬреАрдмреА рд╕реЗ рдЕрдзрд┐рдХ рдФрд░ 128 рдЯреАрдмреА рддрдХ рд╕рдорд╛рд╡реЗрд╢реА рд╣реИред рдХрд╛рд░реНрдб рдХреЗ рдЕрдВрджрд░ рдХрд╛ рдкрддрд╛ 512 рдмрд╛рдЗрдЯ рдмреНрд▓реЙрдХ рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИред

рдорд╛рдирдЪрд┐рддреНрд░ рдХрд╛ рд╕рд╛рдорд╛рдиреНрдп рджреГрд╢реНрдп рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЪрд┐рддреНрд░ рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред


рд╕рдВрдкрд░реНрдХ рд╕рдВрдЦреНрдпрд╛рдирд╛рдордПрдХ рдкреНрд░рдХрд╛рд░рд╡рд┐рд╡рд░рдг
1рдЖрд░рдПрд╕рд╡реА-рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛
2рд╕реАрдПрд╕рдЗрдирдкреБрдЯрдЪрд┐рдк рдЪрдпрди
3рдбрд┐рдЗрдирдкреБрдЯрдорд╛рд╕реНрдЯрд░ рдбрд┐рд╡рд╛рдЗрд╕ (MOSI) рд╕реЗ рдбреЗрдЯрд╛ рд▓рд╛рдЗрди
4VddрдкреЛрд╖рдгрд╡реЛрд▓реНрдЯреЗрдЬ рдЖрдкреВрд░реНрддрд┐
5SCLKрдЗрдирдкреБрдЯрдШрдбрд╝реА рдХрд╛ рд╕рдВрдХреЗрдд
6VssрдкреЛрд╖рдгрднреВрдорд┐
7рдХрд░рдирд╛рдЙрддреНрдкрд╛рджрдирдорд╛рд╕реНрдЯрд░ рдбрд┐рд╡рд╛рдЗрд╕ (MISO) рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рд▓рд╛рдЗрди
8рдЖрд░рдПрд╕рд╡реА-рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛

рдХрдиреЗрдХреНрд╢рди рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЖрд░реЗрдЦ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:


рдкреНрд░рддрд┐рд░реЛрдзреЛрдВ рдХреЛ 50 kOhm рдкрд░ рд░реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

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

SPI рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдкрд░ рдкреНрд░реЗрд╖рд┐рдд рдХрдорд╛рдВрдб рдЖрдХрд╛рд░ рдореЗрдВ 48 рдмрд┐рдЯреНрд╕ рд╣реИрдВред рдХрдорд╛рдВрдб рдкреНрд░рд╛рд░реВрдк:

  • рдмрд┐рдЯ 47 (рдмрд╛рдПрдВ) рдореЗрдВ рд╣рдореЗрд╢рд╛ рдорд╛рди 0 рд╣реЛрддрд╛ рд╣реИред
  • рдмрд┐рдЯ 46 рдореЗрдВ рд╣рдореЗрд╢рд╛ рдорд╛рди 1 рд╣реЛрддрд╛ рд╣реИред
  • рдмрд┐рдЯреНрд╕ 45..40 рдореЗрдВ рдХрдорд╛рдВрдб рдЗрдВрдбреЗрдХреНрд╕ рд╣реЛрддрд╛ рд╣реИред
  • рдмрд┐рдЯреНрд╕ 39..8 рдореЗрдВ рдХрдорд╛рдВрдб рдХреЗ рддрд░реНрдХ рд╣реЛрддреЗ рд╣реИрдВред
  • рдмрд┐рдЯреНрд╕ 7..1 рдкрд┐рдЫрд▓реЗ рдмрд┐рдЯреНрд╕ рд╕реЗ рд╕реАрдЖрд░рд╕реА рд╣реЛрддреЗ рд╣реИрдВред
  • рдмрд┐рдЯ 0 рдореЗрдВ рд╣рдореЗрд╢рд╛ рдорд╛рди 1 рд╣реЛрддрд╛ рд╣реИред

рдмрд┐рдЯреНрд╕ 47 рдФрд░ 46 рдХрд╛рд░реНрдб рдХреЛ рдПрдХ рд▓реЗрди-рджреЗрди рдХреА рд╢реБрд░реБрдЖрдд рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рджреЗрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдмрд╛рдХреА рдкрд░ MOSI рдмрд╕ рдПрдХ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИред



рдПрд╕рдбреА рдХрд╛рд░реНрдб рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдЖрджреЗрд╢реЛрдВ рдХреЛ рдЖрд░ 1, рдЖрд░ 3, рдЖрд░ 7 рдЬреИрд╕реЗ рдЙрддреНрддрд░ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдВрдЧреЗред


R1 рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЙрддреНрддрд░, рдЖрдХрд╛рд░ 8 рдмрд┐рдЯреНрд╕ред рдЙрддреНрддрд░ рдкреНрд░рдХрд╛рд░ R3, рдЖрдХрд╛рд░ 40 рдмрд┐рдЯреНрд╕ред рдЙрддреНрддрд░ рдкреНрд░рдХрд╛рд░ R7, рдЖрдХрд╛рд░ 40 рдмрд┐рдЯреНрд╕ред рд╕рднреА рдЖрджреЗрд╢ рдФрд░ рдЙрдирдХреЗ рдЙрддреНрддрд░ рднреМрддрд┐рдХ рдкрд░рдд рд╕рд░рд▓реАрдХреГрдд рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛ рдореЗрдВ рд╡рд┐рд╕реНрддреГрдд рд╣реИрдВ ред









1.2 рдкреНрд░рд╛рд░рдВрднрд┐рдХ


рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо:

  1. рдмрд┐рдЬрд▓реА рдЪрд╛рд▓реВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдХрдо рд╕реЗ рдХрдо 1 рдПрдордПрд╕ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВред
  2. рдХрд╛рд░реНрдб рдХреЗ рд▓рд┐рдП рдХрдо рд╕реЗ рдХрдо 74 рдШрдбрд╝реА рд╕реНрд╡рд┐рдЪрд┐рдВрдЧ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдВред CS рдФрд░ MOSI рд▓рд╛рдЗрдиреЗрдВ рддрд╛рд░реНрдХрд┐рдХ рдЗрдХрд╛рдИ рдЕрд╡рд╕реНрдерд╛ рдореЗрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред
  3. рдХрдорд╛рдВрдб CMD0 рдЬреЗрдирд░реЗрдЯ рдХрд░реЗрдВред CMD0 рдХрдорд╛рдВрдб SD рдХрд╛рд░реНрдб рдХреЛ рд░реАрд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред
  4. CMD0. R1. , R1 16 , 3. R1 , 0x01 ( ), 3, 5.
  5. CMD8. .
  6. CMD8. R7. , , , 7, , , 17, 13.
  7. CMD55. CMD55 , .
  8. CMD55. R1. 0x01 ( ), 7, 9.
  9. ACMD41. ACMD41 , SDSC ( 0x00000000) .
  10. ACMD41. R1. , , 11. , 0x00 ( ) 14, 7.
  11. CMD1. CMD1 ACMD41.
  12. CMD1. R1. , , 13, , 0x00 ( ), 14, 11.
  13. . , . .
  14. CMD16. , 512 .
  15. CMD16. R1. , 0x00 ( ) 16, 13.
  16. . . .
  17. CMD55. CMD55 , .
  18. CMD55. R1. 0x01 ( ), 17, 19.
  19. ACMD41. ACMD41. ACMD41 , SDHC ( 0x40000000) .
  20. ACMD41. R1. , , 13. , 0x00 ( ) 21, 17.
  21. CMD58. .
  22. CMD58 рдХрдорд╛рдВрдб рдХреЗ рдЬрд╡рд╛рдм рдХрд╛ рдЗрдВрддрдЬрд╛рд░ рд╣реИред рдЙрддреНрддрд░ R3 рдкреНрд░рдХрд╛рд░ рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╣реИред рдпрджрд┐ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдереЛрдбрд╝рд╛ рд╕рд╛ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдХрд╛рд░реНрдб 512 рдмрд╛рдЗрдЯреНрд╕ рдХреЗ рдмреНрд▓реЙрдХ рдкрддреЗ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЪрд░рдг 16 рдкрд░ рдЬрд╛рдПрдВ, рдЕрдиреНрдпрдерд╛ рдЪрд░рдг 14 рдкрд░ рдЬрд╛рдПрдВред

рдЖрд░рдВрднреАрдХрд░рдг рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдХрд╛рд░реНрдб рдХреЛ 25 рдореЗрдЧрд╛рд╣рд░реНрдЯреНрдЬ рдХреА рдШрдбрд╝реА рдЖрд╡реГрддреНрддрд┐ рдХреЗ рд╕рд╛рде 512 рдмрд╛рдЗрдЯреНрд╕ рдХреЗ рдмреНрд▓реЙрдХ рдореЗрдВ рд╕рдВрдЪрд╛рд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХрд╛ рдкреВрд░реНрдг рд╕рдВрд╕реНрдХрд░рдг рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рдХрд╛рд░реНрдб рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, 16 рдЬреАрдмреА рдХрд╛рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдореЗрдВ рдЪрд░рдг 1-6, 17-22, 16 рд╢рд╛рдорд┐рд▓ рдереЗред

рдЧреНрд░рд╛рдлрд┐рдХ рдПрд▓реНрдЧреЛрд░рд┐рдердо

рез.рей рддреНрд░реБрдЯрд┐ рд╕реВрдЪрдирд╛


рдорд╛рдЗрдХреНрд░реЛ рдПрд╕рдбреА рдлреЙрд░реНрдо рдлреИрдХреНрдЯрд░ рдХрд╛рд░реНрдб рдХрдорд╛рдВрдб рдХреЛ рдорд┐рдЯрд╛рддреЗ рд╣реИрдВред рдорд┐рдЯрд╛ рдЖрджреЗрд╢ рдХреЗ рдмрд╛рдж, рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдорд┐рдЯрд╛рдП рдЧрдП рдкрддреЗ рдХрд╛ рдорд╛рди рдХрд╛рд░реНрдб рдХреЗ рдЖрдзрд╛рд░ рдкрд░ 0xFF рдпрд╛ 0x00 рдХреЗ рдорд╛рди рд╕реЗ рднрд░ рдЬрд╛рдПрдЧрд╛ред

рд╕реВрдЪрдирд╛ рдХреЛ рдорд┐рдЯрд╛рдирд╛ рдПрд▓реНрдЧреЛрд░рд┐рдердо

  1. CMD32. .
  2. CMD32. R1. 0x00 ( - ), 3, 4.
  3. . , .
  4. CMD33. . , CMD32.
  5. CMD33. R1. 0x00 ( - ), 3, 6
  6. CMD38 рдХрдорд╛рдВрдб рднреЗрдЬрдирд╛ред рдЪрдпрдирд┐рдд рдмреНрд▓реЙрдХреЛрдВ рд╕реЗ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдорд┐рдЯрд╛рдиреЗ рдХреА рдХрдорд╛рдиред 0x00000001, 0x00000002 рдореВрд▓реНрдпреЛрдВ рдХреЛ рдЫреЛрдбрд╝рдХрд░ рдХрд┐рд╕реА рднреА 4 рдмрд╛рдЗрдЯреНрд╕ рдХреЛ рдПрдХ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рднреЗрдЬрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
  7. CMD38 рдХрдорд╛рдВрдб рдХреЗ рдЬрд╡рд╛рдм рдХрд╛ рдЗрдВрддрдЬрд╛рд░ рд╣реИред рдЗрд╕рдХрд╛ рдЙрддреНрддрд░ рдЯрд╛рдЗрдк R1b рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╣реИред рдпрд╣ рдЙрддреНрддрд░ рдХрд╛ рдПрдХ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рд╕рдВрд╕реНрдХрд░рдг рд╣реИ рдЬрдм рдХрд╛рд░реНрдб рдПрдХ рдЖрд░ 1 рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдПрдордЖрдИрдПрд╕рдУ рд▓рд╛рдЗрди рдХреЛ рд╢реВрдиреНрдп рдкрд░ рдЦреАрдВрдЪрддрд╛ рд╣реИ, рдпрд╣ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдХрд┐ рдЪрд┐рдк рд╡реНрдпрд╕реНрдд рд╣реИред рдпрд╣ рддрдм рддрдХ рдЗрдВрддрдЬрд╛рд░ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдЬрдм рддрдХ рдЗрдХрд╛рдИ рдореВрд▓реНрдп MISO рд▓рд╛рдЗрди рдкрд░ рдкреНрд░рдХрдЯ рди рд╣реЛред рдпрджрд┐ рдЙрддреНрддрд░ 0x00 рдирд╣реАрдВ рд╣реИ (рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╕рдордп рдХреБрдЫ рддреНрд░реБрдЯрд┐ рдереА), рдЪрд░рдг 3 рдкрд░ рдЬрд╛рдПрдВ, рдЕрдиреНрдпрдерд╛ рдЪрд░рдг 8 рдкрд░ рдЬрд╛рдПрдВ
  8. рдорд┐рдЯрд╛ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рд╕рдорд╛рдкрдиред

рдЧреНрд░рд╛рдлрд┐рдХ рдПрд▓реНрдЧреЛрд░рд┐рдердо

1.4 рдЬрд╛рдирдХрд╛рд░реА рдкрдврд╝рдирд╛


рдПрд╕рдкреАрдЖрдИ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрд╕рдбреА рдХрд╛рд░реНрдб рд╕реЗ рдЬрд╛рдирдХрд╛рд░реА рдкрдврд╝рдирд╛ рджреЛ рддрд░реАрдХреЛрдВ рд╕реЗ рд╕рдВрднрд╡ рд╣реИред

1.4.1 рдПрдХ рдПрдХрд▓ рдбреЗрдЯрд╛ рдмреНрд▓реЙрдХ рдкрдврд╝рдирд╛


рдПрдХ рдбреЗрдЯрд╛ рдмреНрд▓реЙрдХ рдХреЛ рдкрдврд╝рддреЗ рд╕рдордп, рдорд╛рд╕реНрдЯрд░ рдбрд┐рд╡рд╛рдЗрд╕ рдПрд╕рдбреА рдХрд╛рд░реНрдб рдХреЗ рд▓рд┐рдП рдПрдХ рдбреЗрдЯрд╛ рдмреНрд▓реЙрдХ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрдорд╛рдВрдб рдмрдирд╛рддрд╛ рд╣реИ, рдПрдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХрдорд╛рдВрдб рд╕рдВрд╕рд╛рдзрд┐рдд рд╣реЛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдХрд╛рд░реНрдб рд╕реЗ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдкреИрдХреЗрдЯ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣рд╛ рд╣реИред рдХрд╛рд░реНрдб рд╕реЗ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рдкреИрдХреЗрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд░реАрдб рд▓реЗрдирджреЗрди рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред


рдбреЗрдЯрд╛ рдХреЗ рдПрдХ рдмреНрд▓реЙрдХ рдХреЛ рдкрдврд╝рдиреЗ рд╡рд╛рд▓реЗ рд▓реЗрдирджреЗрди рдХрд╛ рд╕рд╛рдорд╛рдиреНрдп рджреГрд╢реНрдпред

рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, рдРрд╕рд╛ рд╡рд┐рдХрд▓реНрдк рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдЧрддрд┐ рдмрд╣реБрдд рдкрд░реЗрд╢рд╛рди рдереА (рдЧрддрд┐ рддреБрд▓рдирд╛ рдХрдо рд╣реЛрдЧреА)ред

1.4.2 рдХрдИ рдбреЗрдЯрд╛ рдмреНрд▓реЙрдХ рдкрдврд╝рдирд╛


рдХрдИ рдбреЗрдЯрд╛ рдмреНрд▓реЙрдХ рдкрдврд╝рддреЗ рд╕рдордп, рдорд╛рд╕реНрдЯрд░ рдбрд┐рд╡рд╛рдЗрд╕ рдПрд╕рдбреА рдХрд╛рд░реНрдб рдХреЗ рд▓рд┐рдП рдХрдИ рдбреЗрдЯрд╛ рдмреНрд▓реЙрдХ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрдорд╛рдВрдб рдмрдирд╛рддрд╛ рд╣реИ, рдПрдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдХрдорд╛рдВрдб рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдХрд╛рд░реНрдб рд╕реЗ рдбреЗрдЯрд╛ рдХреЗ рдПрдХ рдкреИрдХреЗрдЯ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИред рдбреЗрдЯрд╛ рдкреИрдХреЗрдЯ рднреЗрдЬрдиреЗ рдХреЗ рдмрд╛рдж, рдХрд╛рд░реНрдб рдЕрдЧрд▓рд╛ рдбреЗрдЯрд╛ рдкреИрдХреЗрдЯ рднреЗрдЬрддрд╛ рд╣реИред рдпрд╣ рддрдм рддрдХ рдЬрд╛рд░реА рд░рд╣реЗрдЧрд╛ рдЬрдм рддрдХ рд░реАрдбрд┐рдВрдЧ рдкреВрд░реА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рд╕реНрдЯрд░ рдбрд┐рд╡рд╛рдЗрд╕ рд╕реЗ рдПрдХ рдХрдорд╛рдВрдб рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рд╣реЛ рдЬрд╛рддрд╛ред


рдХрдИ рдбреЗрдЯрд╛ рдмреНрд▓реЙрдХ рдкрдврд╝рдиреЗ рд╡рд╛рд▓реЗ рд▓реЗрдирджреЗрди рдХрд╛ рд╕рд╛рдорд╛рдиреНрдп рджреГрд╢реНрдпред


рдбреЗрдЯрд╛ рдкреИрдХреЗрдЯ рд╕рдВрд░рдЪрдирд╛

рдХрд╣рд╛рдВ:

  • рдбрд╛рдЯрд╛ рдЯреЛрдХрди рд░реАрдб рдХрдорд╛рдВрдб 0xFE рдорд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
  • рдбреЗрдЯрд╛ рдмреНрд▓реЙрдХред рдХрд╛рд░реНрдб рд╕реЗ рдкрдврд╝реЗ рдЧрдП рдбреЗрдЯрд╛ рдХреЛ рд╕рдорд╛рд╣рд┐рдд рдХрд░рддрд╛ рд╣реИред
  • рд╕реАрдЖрд░рд╕реА рдкрд┐рдЫрд▓реЗ рдлрд╝реАрд▓реНрдб рд╕реЗ рдЪреЗрдХрд╕рдо рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВред

рдпрджрд┐ рдкрдврд╝рддреЗ рд╕рдордп рдХреЛрдИ рддреНрд░реБрдЯрд┐ рд╣реБрдИ, рддреЛ рдбреЗрдЯрд╛ рдЯреЛрдХрди рдХреЗ рдмрджрд▓реЗ рдХрд╛рд░реНрдб рдореЗрдВ рдПрдХ рддреНрд░реБрдЯрд┐ рдЯреЛрдХрди рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рддреНрд░реБрдЯрд┐ рдЯреЛрдХрди рдХрд╛ рдЖрдХрд╛рд░ 1 рдмрд╛рдЗрдЯ рд╣реИред рдмрд┐рдЯреНрд╕ 7..5 рдореЗрдВ рд╢реВрдиреНрдп рдХрд╛ рдорд╛рди рд╣реЛрддрд╛ рд╣реИ, рдмрд┐рдЯреНрд╕ 4..0 рддреНрд░реБрдЯрд┐ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЛ рдХреВрдЯрдмрджреНрдз рдХрд░рддрд╛ рд╣реИред

рдХрдИ рдбреЗрдЯрд╛ рдмреНрд▓реЙрдХ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо:

  1. CMD18 рдХрдорд╛рдВрдб рднреЗрдЬрдирд╛ред рдХрдорд╛рдВрдб рдХрд╛рд░реНрдб рдХреЛ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдХрдИ рдмреНрд▓реЙрдХ рдкрдврд╝реЗ рдЬрд╛рдПрдВрдЧреЗред
  2. CMD18 рдХрдорд╛рдВрдб рдХреЗ рдЬрд╡рд╛рдм рдХрд╛ рдЗрдВрддрдЬрд╛рд░ рд╣реИред рдЙрддреНрддрд░ R1 рдкреНрд░рдХрд╛рд░ рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╣реИред рдпрджрд┐ рдЙрддреНрддрд░ 0x00 рдирд╣реАрдВ рд╣реИ (рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╕рдордп рдХреБрдЫ рддреНрд░реБрдЯрд┐ рдереА), рдЪрд░рдг 3 рдкрд░ рдЬрд╛рдПрдВ, рдЕрдиреНрдпрдерд╛ рдЪрд░рдг 4 рдкрд░ рдЬрд╛рдПрдВред
  3. рддреНрд░реБрдЯрд┐ рд╕реНрдерд┐рддрд┐ред рд░реАрдбрд┐рдВрдЧ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рддреЗ рд╣реБрдП рдкрдврд╝рдирд╛ рд╡рд┐рдлрд▓ рд░рд╣рд╛ред
  4. рдХрд╛рд░реНрдб рд╕реЗ рдЯреЛрдХрди рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХреА рдЬрд╛ рд░рд╣реА рд╣реИред рдпрджрд┐ рдХрд╛рд░реНрдб рд╕реЗ рдПрдХ рддреНрд░реБрдЯрд┐ рдЯреЛрдХрди рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдЪрд░рдг 3 рдкрд░ рдЬрд╛рдПрдВ, рдЕрдиреНрдпрдерд╛ рдЪрд░рдг 5 рдкрд░ рдЬрд╛рдПрдВред
  5. рдбреЗрдЯрд╛ рдмреНрд▓реЙрдХ рдХрд╛рд░реНрдб 512 рдмрд╛рдЗрдЯ рдЖрдХрд╛рд░ рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред
  6. 2 рдмрд╛рдЗрдЯреНрд╕ рдХреЗ рдХрд╛рд░реНрдб CRC рдлрд╝реАрд▓реНрдб рдЖрдХрд╛рд░ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред
  7. . , 8, 4.
  8. CMD12. . , Data Packet, .
  9. CMD12. R1b. R1, MISO , . MISO , . 0x00 ( - ), 3, 10.
  10. .

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

рдЧреНрд░рд╛рдлрд┐рдХ рдПрд▓реНрдЧреЛрд░рд┐рдердо

1.5 рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдЬрд╛рдирдХрд╛рд░реА


рдПрд╕рдкреАрдЖрдИ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрд╕рдбреА рдХрд╛рд░реНрдб рдХреЗ рд▓рд┐рдП рдЬрд╛рдирдХрд╛рд░реА рд▓рд┐рдЦрдирд╛ рджреЛ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рд╕рдВрднрд╡ рд╣реИред

1.5.1 рдПрдХрд▓ рдбреЗрдЯрд╛ рдмреНрд▓реЙрдХ рд▓рд┐рдЦрдирд╛


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


рдПрдХ рдбреЗрдЯрд╛ рдмреНрд▓реЙрдХ рдХреЗ рдПрдХ рд▓рд┐рдЦрд┐рдд рд▓реЗрди-рджреЗрди рдХрд╛ рд╕рд╛рдорд╛рдиреНрдп рджреГрд╢реНрдпред

рдкрдврд╝рдиреЗ рдХреЗ рд╕рд╛рде, рдореВрд▓ рд░реВрдк рд╕реЗ рдПрдХ рдбреЗрдЯрд╛ рдмреНрд▓реЙрдХ рдХрд╛ рд░рд┐рдХреЙрд░реНрдб рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЧрддрд┐ рдХреЗ рдкрд░рд┐рдгрд╛рдо рдЕрд╕рдВрддреЛрд╖рдЬрдирдХ рдереЗред

1.5.2 рдХрдИ рдбреЗрдЯрд╛ рдмреНрд▓реЙрдХ рд▓рд┐рдЦрдирд╛


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


рдПрдХрд╛рдзрд┐рдХ рдбреЗрдЯрд╛ рдмреНрд▓реЙрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд┐рдЦрд┐рдд рд▓реЗрди-рджреЗрди рдХрд╛ рд╕рд╛рдорд╛рдиреНрдп рджреГрд╢реНрдпред

рдбреЗрдЯрд╛ рдкреИрдХреЗрдЯ рдХреА рд╕рдВрд░рдЪрдирд╛ рдбреЗрдЯрд╛ рд░реАрдбрд┐рдВрдЧ рдХреЗ рдбреЗрдЯрд╛ рдкреИрдХреЗрдЯ рдХреА рд╕рдВрд░рдЪрдирд╛ рдХреЗ рд╕рдорд╛рди рд╣реИред

рдкреНрд░рд╛рд░реВрдк:

  • рдбрд╛рдЯрд╛ рдЯреЛрдХрди рд░рд╛рдЗрдЯ рдХрдорд╛рдВрдб рдХреЗ рд▓рд┐рдП, 0xFC рдорд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
  • рдбреЗрдЯрд╛ рдмреНрд▓реЙрдХред рдХрд╛рд░реНрдб рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рдбреЗрдЯрд╛ рдХреЛ рд╕рдорд╛рд╣рд┐рдд рдХрд░рддрд╛ рд╣реИред
  • рд╕реАрдЖрд░рд╕реА рдкрд┐рдЫрд▓реЗ рдлрд╝реАрд▓реНрдб рд╕реЗ рдЪреЗрдХрд╕рдо рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВред

рд░рд╛рдЗрдЯ рдХрдорд╛рдВрдб рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рд╕реНрдЯреЙрдк рдЯреНрд░рд╛рди рдЯреЛрдХрди рдЖрдХрд╛рд░ рдореЗрдВ 1 рдмрд╛рдЗрдЯ рд╣реИ рдФрд░ 0xFD рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИред

рдбреЗрдЯрд╛ рдкреИрдХреЗрдЯ рдХреЗ рдЕрдВрддрд┐рдо рдмрд┐рдЯ рдХреЛ рдХрд╛рд░реНрдб рдореЗрдВ рдзрдХреЗрд▓ рджрд┐рдП рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдХрд╛рд░реНрдб рдбреЗрдЯрд╛ рд░рд┐рдХреЙрд░реНрдб - рдбреЗрдЯрд╛ рд░рд┐рд╕реНрдкреЙрдиреНрд╕ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рд╕рд╛рде рдЕрдЧрд▓реА рдШрдбрд╝реА рдкрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд░рддрд╛ рд╣реИред рдбреЗрдЯрд╛ рд░рд┐рд╕реНрдкрд╛рдВрд╕ рдХрд╛ рдЖрдХрд╛рд░ 1 рдмрд╛рдЗрдЯ рд╣реЛрддрд╛ рд╣реИ, рдмрд┐рдЯреНрд╕ 7..5 рдХреЛрдИ рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдмрд┐рдЯ 4 рд╣рдореЗрд╢рд╛ рд╢реВрдиреНрдп рд╣реЛрддрд╛ рд╣реИ, рдмрд┐рдЯ 0 рд╣рдореЗрд╢рд╛ рдПрдХ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛрддрд╛ рд╣реИ, рдмрд┐рдЯреНрд╕ 3..1 рдбреЗрдЯрд╛ рд░рд┐рдХреЙрд░реНрдб рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдПрдирдХреЛрдб рдХрд░рддрд╛ рд╣реИред рдХрд╛рд░реНрдб рджреНрд╡рд╛рд░рд╛ рдбреЗрдЯрд╛ рдкреИрдХреЗрдЯ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдХрд╛рд░реНрдб MISO рд▓рд╛рдЗрди рдХреЛ рд╢реВрдиреНрдп рдкрд░ рдЦреАрдВрдЪрддрд╛ рд╣реИ, рдпрд╣ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдХрд┐ рдХрд╛рд░реНрдб рд╡реНрдпрд╕реНрдд рд╣реИред MISO рд▓рд╛рдЗрди рдкрд░ рддрд╛рд░реНрдХрд┐рдХ рдЗрдХрд╛рдИ рд╕реНрддрд░ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдк рдЕрдЧрд▓реЗ рдбреЗрдЯрд╛ рдкреИрдХреЗрдЯ рдХреЛ рдХрд╛рд░реНрдб рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдХрдИ рдбреЗрдЯрд╛ рдмреНрд▓реЙрдХ рд░рд┐рдХреЙрд░реНрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо:

  • CMD25 рдХрдорд╛рдВрдб рднреЗрдЬрдирд╛ред рдХрдорд╛рдВрдб рдХрд╛рд░реНрдб рдХреЛ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдХрдИ рдмреНрд▓реЙрдХ рд▓рд┐рдЦреЗ рдЬрд╛рдПрдВрдЧреЗред
  • CMD25. R1. 0x00 ( - ), 3, 4.
  • . , .
  • .
  • 512 .
  • CRC 2 .
  • Data Response . , 3, 8.
  • . , 9, 4.
  • Stop Tran Token. , .
  • рдХрд╛рд░реНрдб рд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХреА рдЬрд╛ рд░рд╣реА рд╣реИред рд╕реНрдЯреЙрдк рдЯреНрд░рд╛рди рдЯреЛрдХрди рдкрд░ рдХрд╛рд░реНрдб MISO рд▓рд╛рдЗрди рдХреЛ рд╢реВрдиреНрдп рдкрд░ рдЦреАрдВрдЪрддрд╛ рд╣реИ, рдпрд╣ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдХрд┐ рдХрд╛рд░реНрдб рд╡реНрдпрд╕реНрдд рд╣реИред рдпреВрдирд┐рдЯ рдореВрд▓реНрдп рдХреЗ рд▓рд┐рдП MISO рд▓рд╛рдЗрди рдкрд░ рдЗрдВрддрдЬрд╛рд░ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдЬреЛ рдХрдорд╛рдВрдб рдХреЗ рдЕрдВрдд рдХрд╛ рд╕рдВрдХреЗрдд рджреЗрдЧрд╛
  • рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рдкреВрд░рд╛ рд╣реЛрдирд╛ред

рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдореЗрдВ рдПрдХ рдЫреЛрдЯреА рд╕реА рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рднреА рд╣реИред рд╕реАрдПрдордбреА 25 рдХрдорд╛рдВрдб рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЪрд┐рдк рд╕реЗрд▓реЗрдХреНрдЯ рд╕рд┐рдЧреНрдирд▓ (рд╕реАрдПрд╕) рдХреЛ рддрд░реНрдХ рд╢реВрдиреНрдп рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рд╕реНрдЯреЙрдк рдЯреЛрдХрди рдХреЛ рдПрдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рддрд░реНрдХ рдкрд░ рд╕реЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП

рдЧреНрд░рд╛рдлрд┐рдХ рдПрд▓реНрдЧреЛрд░рд┐рдердо

2. рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдореЗрдВ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди


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

рд╕рдВрднрд╡ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рдореЛрдб:

  • рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЖрд╡реГрддреНрддрд┐ рдЧрдардиред CS рдФрд░ MOSI рд▓рд╛рдЗрдиреЗрдВ рддрд╛рд░реНрдХрд┐рдХ рдЗрдХрд╛рдИ рдЕрд╡рд╕реНрдерд╛ рдореЗрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред
  • рдПрд╕рдбреА рдХрд╛рд░реНрдб рдореЗрдВ рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдХрд░реЗрдВред
  • рдПрдХ рдПрд╕рдбреА рдХрд╛рд░реНрдб рд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред
  • рдЯреАрдо рдХреЗ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХрд╛ рдЗрдВрддрдЬрд╛рд░ред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рддрдм рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрдм рдПрдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдПрд╕рдбреА рдХрд╛рд░реНрдб рдПрдХ рдЗрдХрд╛рдИ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП MISO рд░реЗрдЦрд╛ рдХреЛ рд╢реВрдиреНрдп рддрдХ рдЦреАрдВрдЪрддрд╛ рд╣реИред
  • рдбреЗрдЯрд╛ рд▓рд┐рдЦрддреЗ рд╕рдордп рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкрдврд╝реЗрдВред
  • рдбреЗрдЯрд╛ рдкрдврд╝рддреЗ рд╕рдордп рдЯреЛрдХрди рдХрд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░рдирд╛ред

рд╕рдВрднрд╡ рдШрдбрд╝реА рдореЛрдб:

  • рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдШрдбрд╝реА рд╕рдВрдХреЗрддред
  • рдХрд╛рдо рдХреЗ рд▓рд┐рдП рдШрдбрд╝реА рд╕рдВрдХреЗрддред

рдореЗрд░реЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЛ рддреАрди рдШрдЯрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмреЗрд╣рддрд░ рддрд░реАрдХреЗ рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

  • рднреМрддрд┐рдХ рдкрд░рдд рдХрд╛ рдШрдЯрдХ, рдЬреЛ рд╕реАрдзреЗ рдПрд╕рдбреА рдХрд╛рд░реНрдб рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реЛрддрд╛ рд╣реИ, SCLK, CS, DI рд╕рд┐рдЧреНрдирд▓ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ, DO рдХреЗ рд╕рд╛рде рдкрдврд╝рддрд╛ рд╣реИред
  • рдПрдХ рдХрдорд╛рдВрдб-рд╕реНрддрд░ рдШрдЯрдХ рдЬреЛ рднреМрддрд┐рдХ рдкрд░рдд рдореЗрдВ рдПрдХ рдШрдЯрдХ рдХреЗ рд▓рд┐рдП рд╕рднреА рдбреЗрдЯрд╛ рддреИрдпрд╛рд░ рдХрд░рддрд╛ рд╣реИред
  • рдмрд╛рд╣рд░реА рджреБрдирд┐рдпрд╛ рдХреЗ рд╕рд╛рде рд╕рдВрдЪрд╛рд░ рдХрд╛ рдПрдХ рдШрдЯрдХ рдЬреЛ рдкреВрд░реЗ рдЖрдВрддрд░рд┐рдХ рдЙрдкрдХрд░рдг рдХреЛ рдЫреБрдкрд╛рддрд╛ рд╣реИ рдФрд░ рдХрдорд╛рдВрдб (рдкрдврд╝рдиреЗ, рд▓рд┐рдЦрдиреЗ, рдорд┐рдЯрд╛рдиреЗ) рдФрд░ рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред

реи.рез рднреМрддрд┐рдХ рдкрд░рдд рдШрдЯрдХ


entity SDPhy is
	generic	(	gTCQ		: time := 2 ns );
	port	(	-- Control bus
			iPhyTxData	: in	std_logic_vector( 9 downto 0);
			iPhyMode	: in	std_logic_vector( 4 downto 0);
			iPhyTxWrite	: in	std_logic;
			oPhyTxReady	: out	std_logic; 
			-- Out Data
			oPhyRxData	: out	std_logic_vector( 7 downto 0); 
			oPhyRxWrite	: out	std_logic;
			oPhyCmdEnd	: out	std_logic;
			-- Spi
			oSdCS		: out	std_logic;
			oSdClk		: out	std_logic;
			oSdMosi		: out	std_logic;
			oSdMosiT	: out	std_logic;
			iSdMiso		: in	std_logic;
			-- system
			sclk		: in	std_logic;
			pclk		: in	std_logic;
			rst		: in	std_logic ); 
end SDPhy;

рдХрд╣рд╛рдБ рдкреЗ:

  • iPhyTxData , iPhyMode , .
  • iPhyTxWrite , iPhyTxData iPhyMode .
  • oPhyTxReady , . FULL FIFO, .
  • oPhyRxData , SD-.
  • oPhyRxWrite , oPhyRxData .
  • oPhyCmdEnd , .
  • oSdCS (CS) SD-.
  • oSdClk SD-.
  • oSdMosi SD-.
  • oSdMosiT SD-.
  • iSdMiso SD-.
  • sclk SD- (50 ).
  • pclk , .
  • rst рд░реАрд╕реЗрдЯ рд╕рд┐рдЧреНрдирд▓, рд╕рдХреНрд░рд┐рдп рд╕реНрддрд░ рдПрдХред

FPGAs рдореЗрдВ, рдХреНрд▓реЙрдХ рд╕рд┐рдЧреНрдирд▓ (PLL, MMCM) рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рдЗрдХрд╛рдЗрдпрд╛рдБ рд╣реИрдВ, рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЙрдирдХреЗ рдЖрдЙрдЯрдкреБрдЯ рд╕реЗ 5 MHz рд╕реЗ рдХрдо рдХреНрд▓реЙрдХ рд╕рд┐рдЧреНрдирд▓ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╕рдорд╕реНрдпрд╛рдЧреНрд░рд╕реНрдд рд╣реИред рдирддреАрдЬрддрди, рднреМрддрд┐рдХ рдкрд░рдд 50 рдореЗрдЧрд╛рд╣рд░реНрдЯреНрдЬ рдХреА рдЖрд╡реГрддреНрддрд┐ рдкрд░ рдХрд╛рдо рдХрд░рддреА рд╣реИред IPhyMode рд╕рд┐рдЧреНрдирд▓ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде, рдПрдХ рдмрд┐рдЯ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЗрди рдбреЗрдЯрд╛ рдХреЛ рдПрд╕рдбреА рдХрд╛рд░реНрдб рдореЗрдВ рдХрд┐рд╕ рдЖрд╡реГрддреНрддрд┐ рдкрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП (рдпрд╛ рдЗрд╕рд╕реЗ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ)ред рд╕реНрдкреАрдб рдмрд┐рдЯ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдХреНрд▓реЙрдХ рд╕рдХреНрд╖рдо рд╕рд┐рдЧреНрдирд▓ рдЙрддреНрдкрдиреНрди рд╣реЛрддреЗ рд╣реИрдВред

рджреЛ рдСрдЯреЛрдореЗрдЯрд╛ рдХреЛ рднреМрддрд┐рдХ рдкрд░рдд рдХреЗ рдШрдЯрдХ рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдбреЗрдЯрд╛ рдХреЛ рдПрд╕рдбреА рдХрд╛рд░реНрдб рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдФрд░ рдЙрд╕рд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред

рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдХреЗ рд▓рд┐рдП рдорд╢реАрди рдХреЛрдб: рдЬреАрдердм ред

  • рдПрд╕рдбреАрдореА рд░рд╛рдЬреНрдп рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЖрд╡реГрддреНрддрд┐ рдХреЛ рдЖрдХрд╛рд░ рджреЗрдиреЗ, 128 рд╕реНрд╡рд┐рдЪрд┐рдВрдЧ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
  • STxBits рд╕реНрдерд┐рддрд┐ рдПрд╕рдбреА рдХрд╛рд░реНрдб рдХреЛ рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИред

рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╢реАрди рдХрд╛ рдХреЛрдб: рдЬреАрдердм ред

  • SRxBits рд░рд╛рдЬреНрдп SD рдХрд╛рд░реНрдб рд╕реЗ рдбреЗрдЯрд╛ рд░рд┐рд╕реЗрдкреНрд╢рди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
  • SBusy рд░рд╛рдЬреНрдп рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ SD рдХрд╛рд░реНрдб рддреИрдпрд╛рд░ рд╣реИ (рдХрд╛рд░реНрдб MISO рд▓рд╛рдЗрди рдХреЛ рдпреВрдирд┐рдЯ рд╕реНрддрд░ рддрдХ рдЬрд╛рд░реА рдХрд░рддрд╛ рд╣реИ)ред
  • рдПрд╕рдЖрд░рдПрд╕рдкреА рд░рд╛рдЬреНрдп рдбреЗрдЯрд╛ рдХреЛ рд▓рд┐рдЦрддреЗ рд╕рдордп рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛ рдкрдврд╝рддрд╛ рд╣реИред
  • SToken рд░рд╛рдЬреНрдп рдбреЗрдЯрд╛ рдХреЛ рдкрдврд╝рддреЗ рд╕рдордп рдПрдХ рдЯреЛрдХрди рдкреНрд░рддреАрдХреНрд╖рд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред

реи.реи рдХрдорд╛рди-рд╕реНрддрд░ рдШрдЯрдХ


entity SdCommand is
	generic	(	gTCQ		: time := 2 ns );
	port	(	-- Command from host
			oSdInitComp	: out	std_logic;
			oSdInitFail	: out	std_logic;
			iSdAddress	: in	std_logic_vector(31 downto 0);
			iSdStartErase	: in	std_logic;
			iSdStartRead	: in	std_logic;
			iSdStartWrite	: in	std_logic;
			oSdCmdFinish	: out	std_logic_vector( 1 downto 0);
			oSdhcPresent	: out	std_logic;
			-- Data
			oSdReadData	: out	std_logic;
			iSdDataR	: in	std_logic_vector(31 downto 0);
			oSdWriteData	: out	std_logic;
			oSdDataW	: out	std_logic_vector(32 downto 0);
			-- Spi
			oSdCS		: out	std_logic;
			oSdClk		: out	std_logic;
			oSdMosi		: out	std_logic;
			oSdMosiT	: out	std_logic;
			iSdMiso		: in	std_logic;
			-- system
			pclk		: in	std_logic;
			sclk		: in	std_logic;
			rst		: in	std_logic );

рдХрд╣рд╛рдБ рдкреЗ:

  • oSdInitComp рдПрд╕рдбреА рдХрд╛рд░реНрдб рдХреЗ рдЖрд░рдВрднреАрдХрд░рдг рдХрд╛ рд╕рдВрдХреЗрдд рд╣реИред
  • рдкреНрд░рд╛рд░рдВрдн рд╡рд┐рдлрд▓рддрд╛ рдХрд╛ oSdInitFail рд╕рдВрдХреЗрддред
  • рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрд╕рдбреА рдХрд╛рд░реНрдб рдореЗрдВ iSdAddress рдкрддрд╛ред
  • iSdStartErase рдкреНрд░рд╛рд░рдВрдн рдХрдорд╛рдВрдб рдХрдорд╛рдВрдб рдХреЛ рдорд┐рдЯрд╛ рджреЗрддрд╛ рд╣реИред
  • iSdStartRead рдХрдорд╛рдВрдб рдХрд╛ рдирд┐рд╖реНрдкрд╛рджрди рдкрдврд╝рдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВред
  • iSdStartWrite рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрди рд▓рд┐рдЦрдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВред
  • oSdCmdFinish рдЯреАрдо рдкреВрд░реНрдгрддрд╛ рд╕реНрдерд┐рддрд┐ред рд╢реВрдиреНрдп рдмрд┐рдЯ рдПрдХ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ, рдХрдорд╛рдВрдб рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкреВрд░рд╛ рд╣реБрдЖред рдкрд╣рд▓рд╛ рдмрд┐рдЯ рдПрдХ рд╣реИ, рдХрдорд╛рдВрдб рдПрдХ рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде рдкреВрд░рд╛ рд╣реБрдЖред
  • oSdhcPresent SDHC / SDXC рдХрд╛рд░реНрдб рдкрд╣рдЪрд╛рди рдзреНрд╡рдЬред
  • oSdReadData рдПрд╕рдбреА рдХрд╛рд░реНрдб рдореЗрдВ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рдкрдврд╝реЗрдВред
  • рдПрд╕рдбреА рдХрд╛рд░реНрдб рдореЗрдВ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП iSdDataR рдбреЗрдЯрд╛ред
  • рдПрд╕рдбреА рдХрд╛рд░реНрдб рд╕реЗ рдкрдврд╝рд╛ рдбреЗрдЯрд╛ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП oSdWriteData рдзреНрд╡рдЬред
  • oSdDataW рдбреЗрдЯрд╛ рдПрдХ рдПрд╕рдбреА рдХрд╛рд░реНрдб рд╕реЗ рдкрдврд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред

рд╢реЗрд╖ рд╕рд┐рдЧреНрдирд▓ рднреМрддрд┐рдХ рдкрд░рдд рдХреЗ рд╕рдВрдХреЗрддреЛрдВ рдХреЗ рд╕рд╛рде рдореЗрд▓ рдЦрд╛рддреЗ рд╣реИрдВред

рдШрдЯрдХ рдореЗрдВ 5 рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдорд╢реАрдиреЗрдВ рд╣реИрдВред

  • smSdInit ( github ) - рдПрд╕рдбреА рдХрд╛рд░реНрдб рдХрд╛ рдЖрд░рдВрднред
  • smSdErase ( github ) - рдПрдХ рдПрд╕рдбреА рдХрд╛рд░реНрдб рд╕реЗ рдбреЗрдЯрд╛ рдорд┐рдЯрд╛ред
  • smSdRead ( github ) - рдПрдХ рдПрд╕рдбреА рдХрд╛рд░реНрдб рд╕реЗ рдбреЗрдЯрд╛ рдкрдврд╝реЗрдВред
  • smSdWrite ( github ) - рдПрдХ рдПрд╕рдбреА рдХрд╛рд░реНрдб рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рд▓рд┐рдЦреЗрдВред
  • smSdCommand ( github ) - рдЙрддреНрдкрдиреНрди рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕рднреА рдкрд┐рдЫрд▓реА рдорд╢реАрдиреЛрдВ рд╕реЗ рднреМрддрд┐рдХ рдкрд░рдд рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рддреИрдпрд╛рд░ рдХрд░рддрд╛ рд╣реИред

2.3 рдмрд╛рд╣рд░реА рджреБрдирд┐рдпрд╛ рдХреЗ рд╕рд╛рде рд╕рдВрдЪрд╛рд░ рдХрд╛ рдШрдЯрдХ


entity SdHost is
	generic	(	gTCQ		: time := 2 ns );
	port	(	-- Sd Host command
			iSdCommand	: in	std_logic_vector( 2 downto 0);
			iSdAddress	: in	std_logic_vector(31 downto 0);
			iSdStart	: in	std_logic;
			oSdStatus	: out	std_logic_vector( 1 downto 0);
			oSdInitFail	: out	std_logic;
			-- Write data to card
			iSdTxData	: in	std_logic_vector(31 downto 0);
			iSdTxValid	: in	std_logic;
			iSdTxLast	: in	std_logic;
			oSdTxReady	: out	std_logic;
			-- Read data from card
			oSdRxData	: out	std_logic_vector(31 downto 0);
			oSdRxValid	: out	std_logic;
			oSdRxLast	: out	std_logic;
			iSdRxReady	: in	std_logic;
			-- Spi
			oSdCS		: out	std_logic;
			oSdClk		: out	std_logic;
			oSdMosi		: out	std_logic;
			oSdMosiT	: out	std_logic;
			iSdMiso		: in	std_logic;
			-- system
			pclk		: in	std_logic;
			sclk		: in	std_logic;
			rst		: in	std_logic );

рдХрд╣рд╛рдБ рдкреЗ:

  • iSdCommand рдХрдорд╛рдВрдб рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
  • iSdAddress рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрддрд╛ рд╣реИред
  • iSdStart рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрди рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред
  • oSdStatus рдЯреАрдо рдкреВрд░реНрдгрддрд╛ рд╕реНрдерд┐рддрд┐ред рд╢реВрдиреНрдп рдмрд┐рдЯ рдПрдХ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ - рдХрдорд╛рдВрдб рдкреВрд░рд╛ рд╣реЛ рдЧрдпрд╛ рд╣реИред рдкрд╣рд▓рд╛ рдмрд┐рдЯ рдПрдХ рд╣реИ - рдХрдорд╛рдВрдб рдПрдХ рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде рдкреВрд░рд╛ рд╣реБрдЖред
  • рдкреНрд░рд╛рд░рдВрдн рд╡рд┐рдлрд▓рддрд╛ рдХрд╛ oSdInitFail рд╕рдВрдХреЗрддред
  • iSdTxDataред рдПрд╕рдбреА рдХрд╛рд░реНрдб рдореЗрдВ рдбреЗрдЯрд╛ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП Axi- рд╕реНрдЯреНрд░реАрдо рдЗрдВрдЯрд░рдлрд╝реЗрд╕ред рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдкреЛрд░реНрдЯред
  • iSdTxValidред рдПрд╕рдбреА рдХрд╛рд░реНрдб рдореЗрдВ рдбреЗрдЯрд╛ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП Axi- рд╕реНрдЯреНрд░реАрдо рдЗрдВрдЯрд░рдлрд╝реЗрд╕ред рдкреЛрд░реНрдЯ рдПрдХ рд▓рд┐рдЦрдиреЗ рдХреЗ рд╕рдВрдХреЗрдд рдХреЗ рд╕рд╛рдеред
  • iSdTxLastред рдПрд╕рдбреА рдХрд╛рд░реНрдб рдореЗрдВ рдбреЗрдЯрд╛ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП Axi- рд╕реНрдЯреНрд░реАрдо рдЗрдВрдЯрд░рдлрд╝реЗрд╕ред рдбреЗрдЯрд╛ рдореЗрдВ рдЕрдВрддрд┐рдо dw рдХреЗ рд╕рдВрдХреЗрдд рдХреЗ рд╕рд╛рде рдкреЛрд░реНрдЯред
  • oSdTxReadyред рдПрд╕рдбреА рдХрд╛рд░реНрдб рдореЗрдВ рдбреЗрдЯрд╛ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП Axi- рд╕реНрдЯреНрд░реАрдо рдЗрдВрдЯрд░рдлрд╝реЗрд╕ред рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддрддреНрдкрд░рддрд╛ рдХреЗ рд╕рдВрдХреЗрдд рдХреЗ рд╕рд╛рде рдкреЛрд░реНрдЯред
  • oSdRxDataред рдПрд╕рдбреА рдХрд╛рд░реНрдб рд╕реЗ рдбреЗрдЯрд╛ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП Axi- рд╕реНрдЯреНрд░реАрдо рдЗрдВрдЯрд░рдлрд╝реЗрд╕ред рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдкреЛрд░реНрдЯред
  • oSdRxValidред рдПрд╕рдбреА рдХрд╛рд░реНрдб рд╕реЗ рдбреЗрдЯрд╛ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП Axi- рд╕реНрдЯреНрд░реАрдо рдЗрдВрдЯрд░рдлрд╝реЗрд╕ред рдкреЛрд░реНрдЯ рдПрдХ рд▓рд┐рдЦрдиреЗ рдХреЗ рд╕рдВрдХреЗрдд рдХреЗ рд╕рд╛рдеред
  • oSdRxLastред рдПрд╕рдбреА рдХрд╛рд░реНрдб рд╕реЗ рдбреЗрдЯрд╛ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП Axi- рд╕реНрдЯреНрд░реАрдо рдЗрдВрдЯрд░рдлрд╝реЗрд╕ред рдбреЗрдЯрд╛ рдореЗрдВ рдЕрдВрддрд┐рдо dw рдХреЗ рд╕рдВрдХреЗрдд рдХреЗ рд╕рд╛рде рдкреЛрд░реНрдЯред
  • iSdRxReadyред рдПрд╕рдбреА рдХрд╛рд░реНрдб рд╕реЗ рдбреЗрдЯрд╛ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП Axi- рд╕реНрдЯреНрд░реАрдо рдЗрдВрдЯрд░рдлрд╝реЗрд╕ред рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддрддреНрдкрд░рддрд╛ рдХреЗ рд╕рдВрдХреЗрдд рдХреЗ рд╕рд╛рде рдкреЛрд░реНрдЯред

рд╢реЗрд╖ рд╕рд┐рдЧреНрдирд▓ рднреМрддрд┐рдХ рдкрд░рдд рдХреЗ рд╕рдВрдХреЗрддреЛрдВ рдХреЗ рд╕рд╛рде рдореЗрд▓ рдЦрд╛рддреЗ рд╣реИрдВред

рдШрдЯрдХ рдПрдХ smSdControl ( github ) рдорд╢реАрди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ ред

  • рд╕рд┐рдпрд╛рд▓ рдХреА рдЕрд╡рд╕реНрдерд╛ред рдкреНрд░рд╛рд░рдВрдн рдФрд░ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХреЗ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣рд╛ рд╣реИред
  • SWaitCmd рдХреА рд╕реНрдерд┐рддрд┐ред рдХрдорд╛рдВрдб рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреА рдЬрд╛рдБрдЪ рдХрд░рдирд╛ред
  • sReadCmd. FIFO, , SD- .
  • sWriteCmd. , FIFO SD-, .
  • sEraseCmd. .
  • sWaitEnd. .
  • sFinish. , .

3.


рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдореЗрдВ рд▓рд┐рдЦрд╛ рд╣реИ, рд╕рддреНрдпрд╛рдкрд┐рдд рд╣реИред рдЕрдм рд▓реЛрд╣реЗ рдореЗрдВ рдЬрд╛рдВрдЪ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдЬреЛ рдЙрдкрд▓рдмреНрдз рдерд╛, рдЙрд╕рд╕реЗ рдбрд┐рдЬреАрд▓реЗрдВрдЯ рдХрд╛ рдЬрд╝реАрдмреЛ рдмреЛрд░реНрдб рд╕рд╛рдордиреЗ рдЖрдпрд╛ ред рдмреИрдВрдХ рдореЗрдВ + 3.3V рдХреЗ рд╡реЛрд▓реНрдЯреЗрдЬ рдХреЗ рд╕рд╛рде рдореБрдлреНрдд FPGA рдЯрд░реНрдорд┐рдирд▓ рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ рдЖрдк рдЖрд╕рд╛рдиреА рд╕реЗ рдмрд╛рд╣рд░реА рдбрд┐рд╡рд╛рдЗрд╕ рдХрдиреЗрдХреНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рд╛рдВ, рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ FPGA рдХрд╛ рдкреНрд░рдХрд╛рд░ Zynq-7000 рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЛрд░ рд╣реИред рдЖрдк рд╕реА рдореЗрдВ рдПрдХ рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдкрд░реАрдХреНрд╖рдг рдХрд╛рд░реНрдп рдХреЛ рд╕рд░рд▓ рдХрд░реЗрдЧрд╛ред рддреЛ, рд╣рдо рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЛ рдЬреАрдкреА рдкреЛрд░реНрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЛрд░ рд╕реЗ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ (4-рдмрд╛рдЗрдЯ рдСрдкрд░реЗрд╢рди рд╕рдВрднрд╡ рд╣реИ, рдкреАрдЖрдИрдУ рдХреЗ рд╕рдорд╛рди )ред рд╣рдо рд░реБрдХрд╛рд╡рдЯреЛрдВ рд╕реЗ рдкрд░реЗрд╢рд╛рди рдирд╣реАрдВ рд╣реИрдВ, рд╣рдо рдПрдХ рдЯрд╛рдЗрдорд░ рдкреЛрд▓ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВред рдкреНрд░реЛрд╕реЗрд╕рд░ рдореЙрдбреНрдпреВрд▓ рдкрд░ рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп, рдбреЗрдЯрд╛ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реЛрдЧрд╛:









  • рдПрд╕рдбреА рдХрд╛рд░реНрдб рдореЗрдВ рдкрддрд╛ рд╕реЗрдЯ рдХрд░реЗрдВред
  • рдХрдорд╛рдВрдб рдХреЛрдб 2 рд╕реЗрдЯ рдХрд░реЗрдВред
  • рдкреНрд░реЛрдЧреНрд░рд╛рдореЗрдмрд▓ рд▓реЙрдЬрд┐рдХ рдореЗрдВ рд╕реНрдерд┐рдд рдмрдлрд░ рдХреЛ рдбреЗрдЯрд╛ рд▓рд┐рдЦреЗрдВред
  • рдХрдорд╛рдВрдб рдЪрд▓рд╛рдПрдВред
  • рдХрдорд╛рдВрдб рдкреВрд░рд╛ рд╣реЛрдиреЗ рддрдХ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВред
  • рдЯреАрдо рдкреВрд░реНрдг рд╕реНрдерд┐рддрд┐ рд░реАрд╕реЗрдЯ рдХрд░реЗрдВред

рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдкрд░реАрдХреНрд╖рдг:

for (SectorAddress = 0; SectorAddress < 1048576; SectorAddress ++)
{
	if ((SectorAddress % 1024) == 0)
	{
		xil_printf("Data write to %d sector \n\r", SectorAddress);
	}

	/** Set address */
	Xil_Out32(0x43c00008, SectorAddress);

	/** Set command */
	Xil_Out32(0x43c00004, 2);

	/** Write data to PL */
	for (int32_t i = 0; i < 1024; i++)
	{
		Xil_Out32(0x43c00014, cntrData);
		cntrData++;
	}

	/** Start */
	Xil_Out32(0x43c00000, 1);

	/** Wait end of operation */
	for (;;)
	{
		status = Xil_In32(0x43c0000c);
		if (status == 0x01 || status == 0x03)
		{
			if (status == 0x03)
			{
				xil_printf("Error in write \n\r");
			}
			break;
		}
		else
		{
			cntrDuration++;
			usleep(100);
		}
	}

	/** Duration operation */
	durationWrite += cntrDuration;

	if (cntrDuration > MaxWrite )
	{
		MaxWrite = cntrDuration;
	}

	cntrDuration = 0x00;

	/** Clear start */
	Xil_Out32(0x43c00000, 0);

	SectorAddress += 7;
}

рдпрд╣ рдкреНрд░рд╢реНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ 1024 рдХреА рдмрд╛рд╣рд░реА рд╕реАрдорд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рд▓реВрдк рдореЗрдВ рдХреНрдпреЛрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдмреНрд▓реЙрдХ рдХреА рд╕рдВрдЦреНрдпрд╛ 8 рдкрд░ рд╕реЗрдЯ рд╣реИред рдПрдХ рдмреНрд▓реЙрдХ рдХрд╛ рдЖрдХрд╛рд░ 512 рдмрд╛рдЗрдЯреНрд╕ рд╣реИред 8 рдбреЗрдЯрд╛ рдмреНрд▓реЙрдХ рдХрд╛ рдХреБрд▓ рдЖрдХрд╛рд░ 8 * 512 рдмрд╛рдЗрдЯреНрд╕ = 4096 рдмрд╛рдЗрдЯреНрд╕ рд╣реИред рдкреНрд░реЛрд╕реЗрд╕рд░ рдореЙрдбреНрдпреВрд▓ рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд░рдиреЗ рдпреЛрдЧреНрдп рддрд░реНрдХ рдХреЗ рдмреАрдЪ рдХреА рдмрд╕ рдЖрдХрд╛рд░ рдореЗрдВ 4 рдмрд╛рдЗрдЯреНрд╕ рд╣реИред рдпрд╣ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдкреНрд░реЛрд╕реЗрд╕рд░ рдореЙрдбреНрдпреВрд▓ рд╕реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдореЗрдмрд▓ рд▓реЙрдЬрд┐рдХ рдХреЗ рд▓рд┐рдП 4 рдмрд╛рдЗрдЯреНрд╕ рдХреЗ 4096 рдмрд╛рдЗрдЯреНрд╕ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП, 4096/4 = 1024 рд░рд╛рдЗрдЯ рдСрдкрд░реЗрд╢рди рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред

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

  • рдПрд╕рдбреА рдХрд╛рд░реНрдб рдореЗрдВ рдкрддрд╛ рд╕реЗрдЯ рдХрд░реЗрдВред
  • рдХрдорд╛рдВрдб рдХреЛрдб рд╕реЗрдЯ рдХрд░реЗрдВ 1ред
  • рдХрдорд╛рдВрдб рдЪрд▓рд╛рдПрдВред
  • рдХрдорд╛рдВрдб рдкреВрд░рд╛ рд╣реЛрдиреЗ рддрдХ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВред
  • рдЯреАрдо рдкреВрд░реНрдг рд╕реНрдерд┐рддрд┐ рд░реАрд╕реЗрдЯ рдХрд░реЗрдВред
  • рдкреНрд░реЛрдЧреНрд░рд╛рдореЗрдмрд▓ рд▓реЙрдЬрд┐рдХ рдореЗрдВ рдмрдлрд░ рд╕реЗ рдбреЗрдЯрд╛ рдкрдврд╝реЗрдВред

рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдкрд░реАрдХреНрд╖рдг:

for (SectorAddress = 0; SectorAddress < 1048576; SectorAddress++)
{
	if ((SectorAddress % 1024) == 0)
	{
		xil_printf("Data read from %d sector \n\r", SectorAddress);
	}

	/** Set address */
	Xil_Out32(0x43c00008, SectorAddress);

	/** Set command */
	Xil_Out32(0x43c00004, 1);

	/** Start */
	Xil_Out32(0x43c00000, 1);

	/** Wait end of operation */
	for (;;)
	{
		status = Xil_In32(0x43c0000c);
		if (status == 0x01 || status == 0x03)
		{
			 if (status == 0x03)
			{
				xil_printf("Error in read \n\r");
			}
			break;
		}
		else
		{
			cntrDuration++;
			usleep(100);
		}
	}

	 /** Duration operation */
	 durationRead += cntrDuration;

	 if (cntrDuration > MaxRead )
	 {
		 MaxRead = cntrDuration;
	 }

	cntrDuration = 0x00;

	/** Clear start */
	Xil_Out32(0x43c00000, 0);

	/** Read data from PL */
	for (int32_t i = 0; i < 1024; i++)
	{
		DataR = Xil_In32(0x43c0001c);
		if (DataR != cntrData)
		{
			xil_printf("Data corrupt! \n\r");
		}
		DataR = Xil_In32(0x43c00020);
		cntrData++;
	}

	SectorAddress += 7;
}

рдкреНрд░реЛрд╕реЗрд╕рд░ рдореЙрдбреНрдпреВрд▓ рдкрд░ рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп, рдбреЗрдЯрд╛ рдорд┐рдЯрд╛ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реЛрдЧрд╛:

  • рдПрд╕рдбреА рдХрд╛рд░реНрдб рдореЗрдВ рдкрддрд╛ рд╕реЗрдЯ рдХрд░реЗрдВред
  • рдХрдорд╛рдВрдб рдХреЛрдб 4 рд╕реЗрдЯ рдХрд░реЗрдВред
  • рдХрдорд╛рдВрдб рдЪрд▓рд╛рдПрдВред
  • рдХрдорд╛рдВрдб рдкреВрд░рд╛ рд╣реЛрдиреЗ рддрдХ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВред
  • рдЯреАрдо рдкреВрд░реНрдг рд╕реНрдерд┐рддрд┐ рд░реАрд╕реЗрдЯ рдХрд░реЗрдВред

рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдкрд░реАрдХреНрд╖рдг:

for (SectorAddress = 0; SectorAddress < 1048576; SectorAddress++)
{
	if ((SectorAddress % 1024) == 0)
	{
		xil_printf("Data erase from %d sector \n\r", SectorAddress);
	}

	/** Set address */
	Xil_Out32(0x43c00008, SectorAddress);

	/** Set command */
	Xil_Out32(0x43c00004, 4);

	/** Start */
	Xil_Out32(0x43c00000, 1);

	/** Wait end of operation */
	for (;;)
	{
		status = Xil_In32(0x43c0000c);
		if (status == 0x01 || status == 0x03)
		{
			if (status == 0x03)
			{
				xil_printf("Error in write! \n\r");
			}
			break;
		}
		else
		{
			cntrDuration++;
			usleep(100);
		}
	}

	/** Duration operation */
	durationErase += cntrDuration;

	if (cntrDuration > MaxErase )
	{
		MaxErase = cntrDuration;
	}

	cntrDuration = 0x00;

	/** Clear start */
	Xil_Out32(0x43c00000, 0);

	SectorAddress += 7;
}

рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЬреАрдердм рдкрд░ рдЯреЗрд╕реНрдЯ рдХрд░реЗрдВред

4. рдкрд░рд┐рдгрд╛рдо


рдбрд╛рдЯрд╛ рдХреА рдорд╛рддреНрд░рд╛рдкрдврд╝рдирд╛рдЕрднрд┐рд▓реЗрдЦрдорд┐рдЯрд╛рдПрдВ
1 рдмреНрд▓реЙрдХ (512 рдмрд╛рдЗрдЯреНрд╕)4.7 рдПрдордмреАрдкреАрдПрд╕ рд╣реИ1.36 рдПрдордмреАрдкреАрдПрд╕0.58 рдПрдордмреАрдкреАрдПрд╕
8 рдмреНрд▓реЙрдХ (4096 рдмрд╛рдЗрдЯреНрд╕)15.4 рдПрдордмреАрдкреАрдПрд╕6.38 рдПрдордмреАрдкреАрдПрд╕4.66 рдПрдордмреАрдкреАрдПрд╕
16 рдмреНрд▓реЙрдХ (8192 рдмрд╛рдЗрдЯреНрд╕)18.82 рдПрдордмреАрдкреАрдПрд╕11.26 рдПрдордмреАрдкреАрдПрд╕9.79 рдПрдордмреАрдкреАрдПрд╕

16 рдЬреАрдмреА рдХрд╛рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдкрд░реАрдХреНрд╖рдг рдХреЗ рджреМрд░рд╛рди, 2 рдЬреАрдмреА рдбреЗрдЯрд╛ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛, 2 рдЬреАрдмреА рдбреЗрдЯрд╛ рдкрдврд╝рд╛ рдЧрдпрд╛ рдерд╛, 2 рдЬреАрдмреА рдбреЗрдЯрд╛ рдорд┐рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

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

All Articles