-
Notifications
You must be signed in to change notification settings - Fork 3
Description
Modul EFMADC01 využívá ADC typu LTC1864/LTC1865 pro sekvenční měření hodnot řízené signálem CONV z mikrořadiče. Pro určení polarity pole je ale potřeba mít převody fázově synchronizované se začátkem otáčky.
V současné verzi je synchronizace řešena externě, což vyžaduje další signály do MCU. To by mělo jít eleminovat jednoduchou logikou přímo v modulu, která umožní zakódování informace o fázi otáčky do 17. bitu SPI přenosu bez nutnosti měnit chování ADC.
Fakticky by šlo využít faktu, že optická závora je open-drain a připojit ji rovnou na výstup ADC na signál SDO. Takové řešení je extrémně jednoduché, ale zároveň nepoužívá SPI fyzickou vrstvu úplně korektně, protože pak by se jednak mohl stav SDO měnit asynchronně s hodinami. Zároveň se tím ale zachovává možnost pro MCU číst optickou závoru a tím i fázi velmi přesně.
Návrh řešení:
Použitím kotoučku s delší fázovou značkou následujících součástek:
- Čítač (např. MC74HC161A) řízený hodinami
SCK, resetovaný signálemCONV, který generuje signálRCOpři dosažení 16. taktu. - D-Flip-Flop (např. 74HC74), který při 16. taktu (RCO = HIGH) vzorkuje stav vstupu z optické závory (např. synchronizační značky na rotoru).
- V následujícím (17.) taktu se tento stav poskytne na výstupu MISO namísto dat z ADC.
- Výstup ADC (
SDO) je propojen přímo na MISO pro prvních 16 taktů; 17. takt čte hodnotuQz D-FF.
Výsledné chování
- Standardní SPI přenos: 16 bitů dat z ADC + 1 bit synchronizační informace.
- MCU čte data jako běžný SPI master, ale poslední bit může použít k identifikaci počátku otáčky.
- Není nutné přidávat další signál z optické závory do MCU.
- Možné zachovat kompatibilitu s původním chováním i bez použití synchronizační značky.