Discussion:
SPI Slave megszakitas
(too old to reply)
Nemeth Szabolcs
2021-01-13 10:56:34 UTC
Permalink
Azt elfelejtettem irni, hogy egy ATMega1256 a proci.


Szabolcs
Sziasztok!
Ujabb SPI kerdesem van. Honnet tudom megallapitani, hogy a
megszakitast a kuldes vegen kaptam, vagy a master kuldott egy uj
adatot es az SPDAT kiolvashato?
Jelenleg a master folyamatosan olvassa a slave-et amig nem jon 1
erteku bit, vagy nem olvasott ki 6 byte-ot. Ha megjott az '1' akar a
byte kozepen is elveszi a CS-t.
Ilyenkor kene tudnom, hogy a kovetkezo megszkitas az meg az elozo
kuldes, vagy a master mar kuldott egy uj valamit.
Szabolcs
--
This email has been checked for viruses by Avast antivirus software.
https://www.avast.com/antivirus
Nemeth Szabolcs
2021-01-13 21:50:43 UTC
Permalink
Koszi, azt kiprobalom, hogy az olvasas parancs utan betoltom a valaszt.
Meg ha jott megszakitas megnezem a SPDR tartalmat, ha nem uj master
parancs van benne, akkor valoszinu lehet kuldeni a kovetkezo byte-ot.

Csak hetvegen tudom kiprobalni.


Szabolcs
Lehet az kavar meg, hogy a master amikor olvas, akkor az elso byte mar bent kell legyen az SPDR pufferben előre a slave-nél.
Meg azelott, hogy a master clk elindulna. Kb akkor lehet legkesobb betolteni praktikusan, amikor az nSS L-be megy.
A.
Most akkor kapok megszakitast, ha a master kuldott 8 bitet. Az en procim a slave.
Addig mukodik frankon, amig a master kuldi az adatot, minden byte vegen jon egy megszakitas. Van olyan amikor master kuld egy olvasas parancsot akkor kene visszakuldenem max 6 byte-ot. Vagy kevesebbet, mert a master kozben elveszi a SS-t.
Ugy gondolom, hogy a slave kuldesnel is ad megszakitast, es kuldhetem a kovetkezo byte-ot.
Itt nincs tul bonyolitva a protokoll. Csak egy byte os parancsot kuld, utana meg vagy olvas vagy irja a kovetkezot.
Amugy egy HT1668 LED-nyomogomb IC-t akarok emulalni. A master egy keszulek, nem tudom modositani.
Szabolcs
Nem pontosan értem a kérdést.
Megszakítást akkor kapsz, ha master volt az spi konfigod, de lehúzta valaki a bemenetre allitott nSS labat, es ezzel Slave lesz a konfig.
Vagy akkor, ha uj adat van az SPDR-ben.
Más alkalommal nem.
Tegyel egy pin change IT-t a CS labra, es ha beüt, akkor tudod, hogy uj adat volt.
Vagy timeout-osra megcsinalod.( Az amugy sem art a korrekt protokol kezeleshez.)
Vagy a protokolt ugy alakitod ki, hogy a CS felengedesenek vizsgalata nelkul is a bytestream kódolja a csomag veget.
A.
Post by Nemeth Szabolcs
Azt elfelejtettem irni, hogy egy ATMega1256 a proci.
Szabolcs
Sziasztok!
Ujabb SPI kerdesem van. Honnet tudom megallapitani, hogy a megszakitast a kuldes vegen kaptam, vagy a master kuldott egy uj adatot es az SPDAT kiolvashato?
Jelenleg a master folyamatosan olvassa a slave-et amig nem jon 1 erteku bit, vagy nem olvasott ki 6 byte-ot. Ha megjott az '1' akar a byte kozepen is elveszi a CS-t.
Ilyenkor kene tudnom, hogy a kovetkezo megszkitas az meg az elozo kuldes, vagy a master mar kuldott egy uj valamit.
Szabolcs
--
This email has been checked for viruses by Avast antivirus software.
https://www.avast.com/antivirus
-----------------------------------------
elektro[-flame|-etc]
-----------------------------------------
elektro[-flame|-etc]
-----------------------------------------
elektro[-flame|-etc]
Nemeth Szabolcs
2021-01-14 07:45:37 UTC
Permalink
Hello!

Nem tul bobeszedu:

"When a serial transfer is complete, the SPIF Flag is set. An interrupt
is generated if SPIE in SPCR is set and global
interrupts are enabled. If SS is an input and is driven low when the SPI
is in Master mode, this will also set the SPIF
Flag. SPIF is cleared by hardware when executing the corresponding
interrupt handling vector. Alternatively, the
SPIF bit is cleared by first reading the SPI Status Register with SPIF
set, then accessing the SPI Data Register
(SPDR)."


En ezt ugy ertelmezem, hogy adaskor es vetelkor is ad megszkitast. De
csak egy megszakitasa van.


Szabolcs
Szia!
Bocs ha hülyeséget kérdezek, de mit ír az adatlap erről?
Szilárd
Sziasztok!
Ujabb SPI kerdesem van. Honnet tudom megallapitani, hogy a
megszakitast a kuldes vegen kaptam, vagy a master kuldott egy uj
adatot es az SPDAT kiolvashato?
Jelenleg a master folyamatosan olvassa a slave-et amig nem jon 1
erteku bit, vagy nem olvasott ki 6 byte-ot. Ha megjott az '1' akar a
byte kozepen is elveszi a CS-t.
Ilyenkor kene tudnom, hogy a kovetkezo megszkitas az meg az elozo
kuldes, vagy a master mar kuldott egy uj valamit.
Szabolcs
--
This email has been checked for viruses by Avast antivirus software.
https://www.avast.com/antivirus
Nemeth Szabolcs
2021-01-14 08:48:38 UTC
Permalink
Hat ja. Kenytelen leszek slave kuldes kozben is minden megszakitas utan
kiolvasni az SPDR-t. Foleg mert az utolso byte az nem fog mar
megszkitast generalni, mert a master elveszi az SS-t.


Szabolcs
Igen, egy megszakitasa van.
Master es slave modban is ad megszakitast, de ugye az adas/vetel kozt nincs kulonbseg, hiszen a clk-ra egyben “clockolódik” ki-be az adatbit az SPDR bufferbe.
Magyarul: minden 8. orajel utan kapsz egy megszakitast ha az nSS lab alacsony, teljesen mindegy milyen módban volt a periferia.
A.
Post by Nemeth Szabolcs
Hello!
"When a serial transfer is complete, the SPIF Flag is set. An interrupt is generated if SPIE in SPCR is set and global
interrupts are enabled. If SS is an input and is driven low when the SPI is in Master mode, this will also set the SPIF
Flag. SPIF is cleared by hardware when executing the corresponding interrupt handling vector. Alternatively, the
SPIF bit is cleared by first reading the SPI Status Register with SPIF set, then accessing the SPI Data Register
(SPDR)."
En ezt ugy ertelmezem, hogy adaskor es vetelkor is ad megszkitast. De csak egy megszakitasa van.
Szabolcs
Szia!
Bocs ha hülyeséget kérdezek, de mit ír az adatlap erről?
Szilárd
Sziasztok!
Ujabb SPI kerdesem van. Honnet tudom megallapitani, hogy a megszakitast a kuldes vegen kaptam, vagy a master kuldott egy uj adatot es az SPDAT kiolvashato?
Jelenleg a master folyamatosan olvassa a slave-et amig nem jon 1 erteku bit, vagy nem olvasott ki 6 byte-ot. Ha megjott az '1' akar a byte kozepen is elveszi a CS-t.
Ilyenkor kene tudnom, hogy a kovetkezo megszkitas az meg az elozo kuldes, vagy a master mar kuldott egy uj valamit.
Szabolcs
--
This email has been checked for viruses by Avast antivirus software.
https://www.avast.com/antivirus
-----------------------------------------
elektro[-flame|-etc]
-----------------------------------------
elektro[-flame|-etc]
Loading...