Přerušení u MCP23S17 – Mikrokontroléry – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Přerušení u MCP23S17 – Mikrokontroléry – Fórum – Programujte.comPřerušení u MCP23S17 – Mikrokontroléry – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
Tonda
~ Anonymní uživatel
24 příspěvků
1. 7. 2016   #1
-
0
-

chci použít dva obvody MCP23S17, každý je dvojitý 8-bitový I/O port, kde každá brána má svůj výstup přerušení (INTA, INTB). Celkem tedy mám čtyři výstupy přerušení. Jenomže na mikropočítači už mám jen jeden volný vstup. Jde mi o to, jak tyto čtyři INT výstupy spojit do jednoho, který připojím na mikropočítač.

V manuálu k MCP23S17 jsem se dočetl, že INTA, INTB lze nastavit do open drain. Jestli to teda dobře chápu, znamená to, že můžu spojit všechny čtyři INT výstupy, pověsit na ně odpor do +5V a celé to připojit na mikropočítač?

Nahlásit jako SPAM
IP: 109.81.210.–
Reklama
Reklama
hlucheucho+10
Posthunter
1. 7. 2016   #2
-
0
-

Podle datasheetu je lze "ored" (sloučit pomocí OR). Akorát pak budeš muset mít mechanismus, který dokáže detekovat "kdo to byl" (cigán asi ne :) ).  Jedna možnost je jednotlivé INT signály připojit na běžný port a pomocí OR generovat souhrnou žádost přerušení. Při obsluze přerušení přečíst port = stav INT signálů a tak určit původce přerušení. Druhá možnost je mít jen souhrnou žádost o přerušení a obsluhovat všechny MCP23S17.

hu

Nahlásit jako SPAM
IP: 195.178.67.–
Tonda
~ Anonymní uživatel
24 příspěvků
1. 7. 2016   #3
-
0
-

jo jo, když sloučím INTA OR INTB prvního obvodu a INTA OR INTB druhého obvodu, budu už mít dva INT signály místo čtyřech. Jenže já potřebuju mít ve výsledku jen jeden INT signál, protože víc vstupů na mikropočítači už nemám.

Kdyby šlo sloučit všechny 4 INT signály, mohl bych je připojit a pak přečíst všechny 4 porty 23S17. Jde mi teda o ten open drain.

Dneska dopo mne napadlo použít prioritní enkodér 74148, ale to také dostanu 2 výstupy a nemusím sločovat INTA OR INTB v každém 23S17.

Nahlásit jako SPAM
IP: 109.81.210.–
hlucheucho+10
Posthunter
1. 7. 2016   #4
-
0
-

V čem je problém? Udělat OR se 4 vstupy? Stejně jako se dvěma. Je důležité se podívat na aktivní úrověň a typ výstupu. Pokud je aktivní Low a je to open drain, stačí výstupy propojit a přidat pull-up. Pokud je aktivní Low a je to plnohodnotný výstup, pak je třeba použít AND, lze ho nahradit.pomocí 4 diod a odporu. Pokud je aktivní High, pak je na místě OR.

hu

Nahlásit jako SPAM
IP: 195.178.67.–
hlucheucho+10
Posthunter
1. 7. 2016   #5
-
0
-

Nakonec jsem ten datasheet nastudoval skoro celý :(. Bit ODR nastavíš, bit INTPOL vynuluješ. Teprve pak povolíš přerušení vstupům. Pořadí je nutné dodržet, jinak se potkají dva výstupy a hrozí jejich poškození. Pak by měly ty výstupy jít propojit se společným Pull Up rezistorem. Původce lze pak určit přečtením INTF registrů. Aktivní bude Low.

Nic ti nebrání použít plnohodnotné výstupy a logickým členem udělat OR při aktivním High nebo AND při aktivní Low

hu

Nahlásit jako SPAM
IP: 195.178.67.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 5 hostů

Podobná vlákna

Preruseni - zakmity — založil morganzd

Preruseni nekonecneho cyklu — založil Gadael

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý