Основи SPI протокол
SPI (сериен периферен Bus) - сериен периферен протокол. Това пункция е разработен от Motorola. но сега се използва от много производители. Той е предназначен за комуникация между микроконтролер, както и всички видове периферни устройства: датчици D конвертор, чиповете памет часа. И все пак, най-честата употреба на SPI - тя записва програма в памет на микроконтролера. микроконтролер AVR С. чрез SPI флаш микроконтролер може да не vypaivaya на борда, този метод се нарича фърмуер ISP (В Системно програмиране). Въпреки че името на SPI и ISP е много в унисон, това не е едно и също нещо, в AVR SPI се използва като ниво физическо ISP. т.е. използване SPI линии за пренос на данни, но самата (софтуер слой) протокол е различен.
За да прехвърлите данни в SPI използва три линии:
Мишо (магистър Input Output Slave) - тази линия Master (магистър) получава данни от Slave (роб).
MOSI (магистър Output Slave Input) - тази линия Магистър изпраща данни към роб.
SCK (Serial Clock) - служи за предаване на сигнал часовник до устройството за роб.
Използва се и ред SS (Slave Изберете). което определя устройството, с което Учителят ще обменят данни.
![Основи SPI протокол (CPOL CPHA CPOL) Основи SPI протокол](https://webp.images-on-off.com/26/52/434x427_kvblm0hcobkrwsd3acgi.webp)
Поради факта, че много производители използват SPI в своите устройства, констатациите на името може да са малко по-различни. Таблицата по-долу с алтернативни имена.
![Основи SPI протокол (CPOL CPHA CPOL CPHA) Основи SPI протокол](https://webp.images-on-off.com/26/52/434x183_fon9v4otsexck4p1q869.webp)
SPI е от два вида хардуер и софтуер. При използване на софтуера SPI. ние трябва да зададете ръчно сигнал към съответните краката Мишо, MOSI, SS с дърпането на SCK. За SPI за изпълнение хардуер ние предават данни на специалния регистър, а самата микроконтролера се справя по-горе манипулация, според предварителни настройки.
Физическа реализация на SPI. Той представлява две смени регистри, свързани заедно.
![Основи SPI протокол (CPHA CPOL CPHA CPOL) Основи SPI протокол](https://webp.images-on-off.com/26/52/434x237_zwthmz5y2kxg4vfczgvo.webp)
В зависимост от това, което логично ниво на SCK на сигнала. Това се случва, главен и подчинен синхронизация, както и за да е край на улавяне и смяна на данни, осигуряващи 4 режим SPI.
![Основи SPI протокол (CPHA CPOL CPHA CPOL) Основи SPI протокол](https://webp.images-on-off.com/26/52/300x193_6bm9qhqjwp5wlynoy2qu.webp)
- CPOL = 0 - пакетен сигнал започва с ниско ниво;
- CPOL = 1 - пакетен сигнал започва с високо ниво;
- CPHA = 0 - Данните се вземат проби за нарастващ фронт на синхронизиращ сигнал;
- CPHA = 1 - Данните се вземат проби на задния ръб времето сигнал.
На осцилограми-долу показва как публикуване 0h17 изглежда в различни режими.
CPOL = CPHA = 0 0
![Основи SPI протокол (следи) Основи SPI протокол](https://webp.images-on-off.com/26/52/434x317_8imh53r6ej88ml4tsppt.webp)
CPOL = 1 CPHA = 0
![Основи SPI протокол (SPI) Основи SPI протокол](https://webp.images-on-off.com/26/52/434x317_ay7l9eri6j7ewknnly7z.webp)
CPOL = 0 CPHA = 1
![Основи SPI протокол (следи) Основи SPI протокол](https://webp.images-on-off.com/26/52/434x317_050bgq8y0tjh8rbqkdb3.webp)
CPOL = 1 CPHA = 1
![Основи SPI протокол (ISP) Основи SPI протокол](https://webp.images-on-off.com/26/52/434x317_6qladkbtbm2mg5yqjkn8.webp)
SPI - синхронен интерфейс, това е, за да получите някои данни от роб. Магистър трябва да изпрати нещо. Изглежда, всичко е ясно, но какво ще стане ако магистър изпраща един байт, а робът трябва да го върне два? В този случай майстор трябва да му изпрати нещо 2 пъти, като 0x00.
Това е всичко, по-горе код проба, взета от работния проект.