Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Da ne otvaram novu temu, par pitanja...
(12-21-2017, 10:54 AM)mikikg Wrote: A i ovo oko MCP expandera, ne znam sta da vam kazem, ja bih ga totalno preskocio ako fale nozice, uzmite lepo ko "ljudi" MCU sa vise nozica i sve direktno vezite na njih sta treba.

Spominjao sam STM32F407 plocicu, ljudi ne isplati vam se da bilo sta drugo tu dodajete od expandera ili shift registra, za 10$ kolko kosta ta plocica dobijete gomilu I/O nozica, MCU jezgro sa FPU/DSP, 1MB interne Flash memorije, itd itd, to je fantastican kontroler za sitne novce.

https://www.ebay.com/itm/STM32F4-Discove...2675840220

Ovo vam spominjem jer sam imao sa MCP expanderima malo problema, verovatno je sa moje strane nesto u programu ali mi je prilicno nezgodno da nadjem gresku jer mi se desi jednom u recimo milion ciklusa masine da mi se zaglupi expander, i to se zaglupi tako da sve "kao radi" a nema nista na izlazu i ne mogu da nadjem gresku : (
Zato vam preporucujem ako ne mora da koristite expandere onda idite direktno na MCU sa vise nozica ...

Prilicno nezgodna situacija sa tim expanderima kada se malo dublje sagleda problem. Da bi se to drzalo koliko-toliko pod kontrolom moralo bi da se odvoje neki par ULAZ+IZLAZ koji su spojeni medjusobno pa da se kroz njega stalno nesto kontrolise da li je expander "ziv" itd, prlicno se usloznjava logika programa.
Cak po tom pitanju su obicni shift registri u boljoj situaciji jer ne postoje koraci inicializacije i konfiguracije expandera ...


(12-21-2017, 11:20 AM)vojinilic Wrote:
(12-21-2017, 10:54 AM)mikikg Wrote: Prilicno nezgodna situacija sa tim expanderima kada se malo dublje sagleda problem. Da bi se to drzalo koliko-toliko pod kontrolom moralo bi da se odvoje neki par ULAZ+IZLAZ koji su spojeni medjusobno pa da se kroz njega stalno nesto kontrolise da li je expander "ziv" itd, prlicno se usloznjava logika programa.
Cak po tom pitanju su obicni shift registri u boljoj situaciji jer ne postoje koraci inicializacije i konfiguracije expandera ...

Ekspander nikada nisam voleo. Najbolja stvar mi je shift registar. Spregnes registara koliko ti treba, npr. 4. Preko SPI saljes 5 bajtova, pri cemu je prvi bajt kontrolni bajt. Ako dobijes nazd taj prvi bajt koji si poslao, onda znas da je sve u redu sa SPI lancem.

Pre par decenija se nije moglo pričati o jevtinom MCU sa gomilom slobodnih nogu. Sada je lako o tome...

Ekspanderi bilo koje vrste su bili neizbežna opcija.

Ne slažem se sa tim da je ekspander nepouzdana stvar, već da ekspander, kao i svaka druga naprava koja "visi" na komunikaciji, zahteva vrlo pedantno "sređenu" komunikaciju, kako na hardverskom, tako i na softverskom nivou.
Takođe se kvalitetno moraju tretirati napajanje za ekspander i njegova reset linija.

U minulim decenijama sam koristio tipično od 4-8  8-bitnih ekspandera ili tipično 2-4 16-bitnih ekspandera i I2C i SPI.
Radi to vrlo pouzdano na stotinama mašina koje imaju i opasne hodove sa velikim silama dejstva.

Reklo bi se da je mana ekspandera i to što je lečujuća sprava koja jednom primljeno stanje čvrsto drži na izlazu sve dok ima napajanje, bez obzira i ako "padne" MCU...

I ja sam to mislio dok nisam doživeo da na MCU stane klok (mehanički problem unutar kristala) i takođe ostane lečovano zatečeno stanje na izlazima, a od tada ne mislim lošije o istoj osobini ekspandera kad stane MCU.

Ono što u praksi radim je da jedan pin sa MCU posvetim kontroli napajanja svih ekspandera i to tako što ga konfigurišem kao izlaz i povučem na dole bazu jednog PNP tranzistora (naravno kroz otpornik Smile i kroz taj PNP napajam sve ekspandere. Pri butovanju MCU, taj izlaz odmah na početku povučem na dole i ostavim ga tako zauvek. U slučaju pada MCU, sve se rekonfiguriše kao ulazi i taj izlaz ode na gore i otkači sva napajanja, svih ekspandera.

Kod kritičnijih sistema gde se očekuje elektronski "atak" od neke smetnje, koji može da zaglavi bilo MCU bilo ekspander, a hodovi su opasni po ljudstvo, onda se napajanje ekspandera za izlazne grupe drži pomoću hardverskog retrigerabilnog monostabila, koji se redovno "podseća" na akciju držanja nekim WDT impulsom iz MCU, iz interrupta...
A ako treba još ekstremnija sigurnost onda se i kontaktor komandnih napona drži drugim monoflopom.

----------------------------

Ukusi su različiti i različite stvari volimo ili ne volimo.

Šift registri i ekspanderi su različite stvari za različite namene.

Ukoliko šift registrima želiš da sa nekoliko kiloherca sinfazno osvežavaš na primer 16 izlaza onda to neće baš ići najbolje...
Ili možda da ISR posvećeno "posmatraš" 32, 64 ili više ulaza, što je još gori slučaj...

Sve se bira prema potrebama bez ljubavi ili ne ljubavi. (ne volim NE555 ali ga ipak upotrebim kada je "zgodan" za neki cilj) 

MCP23S17, SPI 16-bitni ekspander u najsiromašnijem obliku komunikacije zahteva tri bajta slanja da bi sinfazno postavio svih 16 izlaza kada je konfigurisan kao takav. 

To pri 2,5MHz SPI traje tipično 15uS,a pri 10Mhz traje tipično 7,5uS, sa pedantno sređenim vremenima i jasnim pauzama gde je potrebno. Kada je potrebna kontrolno čitanje stanja onda može odmah zatim i traje još toliko.

Pri tom kod većine modernih MCU hardverska platforma obavlja SPI transakcije i ne opterećuje interrupt MCU značajno, osim par flegova oko uspešne transakcije i stanja buffera (nije tačno da ne opterećuje uopšte, kako poneki programeri misle).
Za na primer svu komunikaciju sa grupom od 32 izlaza i 32 ulaza je potrebno 30uS transakcije SPI sa vrlo neznatnom latencijom interrupta na MCU.
MCU je slobodan kao ptica na grani da radi nešto drugo.

Van toga, na primer taj pomenuti MCP23S17 ima dve interrupt linije (za svaki port) koje mogu reagovati na bilo koju promenu stanja na portovima (ili drugačije, a vrlo programabilno, na neko predisponirano stanje), kada je konfigurisan kao ulaz i samo tada afekotvati ISR i zahtevati potrebu za sagledavanjem novog stanja od strane MCU, što znači da nije potreban neprekidan sken ulaza.

U nekim situacijama to može učiniti sistem bržim od MCU koji direktno na svojim pinovima neprestano skenira recimo par desetina ulaza gde se očekuje brzi potencijalni asinhroni događaj, jer na žalost MCU se ne može "baviti" samo skeniranjem ulaza već još nešto treba da radi... Interrupt bi mu bio jako opterećen neprestanim praćenjem te količine.

Na MCU nisu svi pinovi posvećeni za eksterni ISR, a da bi celu grupu od 32 ulaza napravio da bude ISR trigerabilna, onda ti je neophodan eksterni hardver na ulazima.

MCP23S17 to rešavaju sa lakoćom, gde se njihovi ISR izlazi vežu na posvećen pin od MCU, a SPI na svoje mesto. Takođe ih krasi 8 softverskih adresa sa jednim čip selektom.

Bilo kakva promena u odnosu na prethodno stanje svih ulaza, a moguće je čitavih 8 x 16, tj. 128 ulaza sa 8 ekspandera i jednim čip selekt, povezivanjem 16 ISR izlaza svih 8 ekspandera na još jedan takav ekspander, koji će samo posmatrati koji od 16 portova je izazvao ISR (praktično ISR dekoder), omogućeno je saznavanje novog stanja na jednom od 16 portova za 7,5uS + 7,5uS . Sa dva posvećena ISR pina na MCU i SPI i dva čip selekta, u dve SPI transakcije se očita konkretan MCP na kom je se dogodila asinhrona promena, od svih 128 ulaza koji postoje, bez ikakvog skena ulaza...

Kod šift registara to već neće biti baš tako, a i za 32F4 je to mastan zalogaj ako se neprekidno skenira i nisu svi na ISR.

Viđao sam i stare mašine sa prastarim 6502 na 8Mhz da prate preko 300 ulaza (trikotažne mašine) i to vrlo brzo, samo što imaju posvećene I/O čipove koji vise na data i adresnoj magistrali. Tada nisu imali na lageru 180Mhz, 32 bita i dve tone hardverskih modula u jednom čipu...
-----------------------------

Svaka stvar je dobra za svrhe u kojima ima prednosti...

SPI ekspanderi i bilo šta SPI ili I2C ili kakva druga komunikacija, pa i šift registri, ukoliko se radi o strmim tranzicijama digitalnog prenosa, zahtevaju pedantno terminisanu prenosnu liniju čim se pređe desetak centimetara rastojanja (ono što nečije družbenice misle da je 20cm :-).

Ili to, ili smanjiti nagib tranzicija i frekvenciju prenosa.

Što dalji prenos - to gore. A onda već strujni diferencijalni prenos ili optički i slično tome.

Pozdrav,
Macola
Reply


Messages In This Thread
RE: Da ne otvaram novu temu, par pitanja... - by Macola - 12-21-2017, 08:14 PM
Da ne otvaram novu temu, par pitanja... - by Dude - 05-13-2013, 11:01 PM
Da ne otvaram novu temu, par pitanja... - by TDA - 06-05-2013, 01:56 PM
Da ne otvaram novu temu, par pitanja... - by TDA - 06-05-2013, 05:27 PM
Da ne otvaram novu temu, par pitanja... - by TDA - 06-05-2013, 06:51 PM
Da ne otvaram novu temu, par pitanja... - by TDA - 06-05-2013, 07:52 PM
Da ne otvaram novu temu, par pitanja... - by TDA - 06-06-2013, 12:02 PM
Da ne otvaram novu temu, par pitanja... - by enaB - 06-06-2013, 07:51 PM
Da ne otvaram novu temu, par pitanja... - by TDA - 06-06-2013, 08:00 PM
Da ne otvaram novu temu, par pitanja... - by Dude - 06-06-2013, 08:06 PM
Da ne otvaram novu temu, par pitanja... - by enaB - 06-06-2013, 08:56 PM
Da ne otvaram novu temu, par pitanja... - by enaB - 06-06-2013, 11:00 PM
Da ne otvaram novu temu, par pitanja... - by enaB - 06-06-2013, 11:37 PM
Da ne otvaram novu temu, par pitanja... - by enaB - 06-16-2013, 01:45 PM
Da ne otvaram novu temu, par pitanja... - by TDA - 06-24-2013, 09:52 AM
Da ne otvaram novu temu, par pitanja... - by TDA - 06-24-2013, 05:53 PM
Da ne otvaram novu temu, par pitanja... - by TDA - 06-27-2013, 08:52 PM
Da ne otvaram novu temu, par pitanja... - by TDA - 06-28-2013, 05:44 PM
Da ne otvaram novu temu, par pitanja... - by TDA - 07-13-2013, 08:57 PM
Da ne otvaram novu temu, par pitanja... - by TDA - 07-13-2013, 09:14 PM
Da ne otvaram novu temu, par pitanja... - by TDA - 07-13-2013, 09:33 PM
Da ne otvaram novu temu, par pitanja... - by TDA - 07-13-2013, 09:47 PM
Da ne otvaram novu temu, par pitanja... - by TDA - 07-14-2013, 08:24 PM
Da ne otvaram novu temu, par pitanja... - by TDA - 08-18-2013, 09:06 AM
Da ne otvaram novu temu, par pitanja... - by TDA - 08-20-2013, 09:06 PM
Da ne otvaram novu temu, par pitanja... - by Dude - 08-20-2013, 09:28 PM
Da ne otvaram novu temu, par pitanja... - by TDA - 08-20-2013, 10:05 PM
Da ne otvaram novu temu, par pitanja... - by TDA - 08-20-2013, 10:10 PM
Da ne otvaram novu temu, par pitanja... - by Dude - 09-16-2013, 09:34 AM
Da ne otvaram novu temu, par pitanja... - by Dude - 09-16-2013, 10:46 AM
Da ne otvaram novu temu, par pitanja... - by Dude - 09-16-2013, 11:25 AM
Da ne otvaram novu temu, par pitanja... - by Dude - 09-16-2013, 11:34 AM
Da ne otvaram novu temu, par pitanja... - by TDA - 10-04-2013, 08:02 AM
Da ne otvaram novu temu, par pitanja... - by enaB - 10-06-2013, 07:33 PM
Da ne otvaram novu temu, par pitanja... - by enaB - 10-06-2013, 07:43 PM
Da ne otvaram novu temu, par pitanja... - by TDA - 10-06-2013, 08:28 PM
Da ne otvaram novu temu, par pitanja... - by enaB - 10-06-2013, 09:07 PM
Da ne otvaram novu temu, par pitanja... - by enaB - 10-06-2013, 09:53 PM
Da ne otvaram novu temu, par pitanja... - by enaB - 10-07-2013, 07:29 AM
Da ne otvaram novu temu, par pitanja... - by TDA - 10-07-2013, 07:51 AM
Da ne otvaram novu temu, par pitanja... - by enaB - 10-07-2013, 08:47 AM
Da ne otvaram novu temu, par pitanja... - by enaB - 10-07-2013, 04:03 PM
Da ne otvaram novu temu, par pitanja... - by TDA - 10-20-2013, 10:16 AM
Da ne otvaram novu temu, par pitanja... - by enaB - 10-20-2013, 11:03 AM
Da ne otvaram novu temu, par pitanja... - by TDA - 10-20-2013, 08:41 PM
Da ne otvaram novu temu, par pitanja... - by TDA - 10-21-2013, 12:21 PM
Da ne otvaram novu temu, par pitanja... - by TDA - 10-22-2013, 05:46 AM
Da ne otvaram novu temu, par pitanja... - by TDA - 10-22-2013, 06:51 PM
Da ne otvaram novu temu, par pitanja... - by enaB - 10-22-2013, 08:40 PM
Da ne otvaram novu temu, par pitanja... - by TDA - 10-22-2013, 08:55 PM
Da ne otvaram novu temu, par pitanja... - by enaB - 10-22-2013, 08:57 PM
Da ne otvaram novu temu, par pitanja... - by enaB - 10-23-2013, 11:02 AM
Da ne otvaram novu temu, par pitanja... - by enaB - 10-23-2013, 11:12 AM
Da ne otvaram novu temu, par pitanja... - by TDA - 10-23-2013, 02:13 PM
Da ne otvaram novu temu, par pitanja... - by Dude - 11-01-2013, 09:09 PM
Da ne otvaram novu temu, par pitanja... - by Dude - 11-01-2013, 09:32 PM
Da ne otvaram novu temu, par pitanja... - by TDA - 11-01-2013, 10:00 PM
Da ne otvaram novu temu, par pitanja... - by Dude - 11-01-2013, 10:35 PM
Da ne otvaram novu temu, par pitanja... - by Dude - 11-01-2013, 10:51 PM
Da ne otvaram novu temu, par pitanja... - by Dude - 11-02-2013, 12:24 PM
Da ne otvaram novu temu, par pitanja... - by TDA - 11-03-2013, 12:07 AM
Da ne otvaram novu temu, par pitanja... - by TDA - 11-22-2013, 03:59 PM
Da ne otvaram novu temu, par pitanja... - by Dude - 11-22-2013, 05:47 PM
Da ne otvaram novu temu, par pitanja... - by Dude - 11-22-2013, 08:09 PM
Da ne otvaram novu temu, par pitanja... - by TDA - 11-25-2013, 09:17 PM
Da ne otvaram novu temu, par pitanja... - by TDA - 11-25-2013, 09:31 PM
Da ne otvaram novu temu, par pitanja... - by TDA - 11-25-2013, 10:04 PM
Da ne otvaram novu temu, par pitanja... - by TDA - 12-03-2013, 12:26 PM
Da ne otvaram novu temu, par pitanja... - by enaB - 12-03-2013, 01:14 PM
Da ne otvaram novu temu, par pitanja... - by TDA - 12-03-2013, 01:27 PM
Da ne otvaram novu temu, par pitanja... - by TDA - 12-03-2013, 08:15 PM
Da ne otvaram novu temu, par pitanja... - by TDA - 12-03-2013, 08:46 PM
Da ne otvaram novu temu, par pitanja... - by TDA - 12-03-2013, 08:48 PM
Da ne otvaram novu temu, par pitanja... - by TDA - 12-03-2013, 08:58 PM
Da ne otvaram novu temu, par pitanja... - by enaB - 12-03-2013, 09:04 PM
Da ne otvaram novu temu, par pitanja... - by TDA - 12-03-2013, 09:09 PM
Da ne otvaram novu temu, par pitanja... - by enaB - 12-03-2013, 09:15 PM
Da ne otvaram novu temu, par pitanja... - by TDA - 12-03-2013, 09:19 PM
Da ne otvaram novu temu, par pitanja... - by enaB - 12-03-2013, 09:40 PM
Da ne otvaram novu temu, par pitanja... - by TDA - 12-03-2013, 09:54 PM
Da ne otvaram novu temu, par pitanja... - by TDA - 12-05-2013, 09:36 PM
Da ne otvaram novu temu, par pitanja... - by TDA - 12-05-2013, 10:33 PM
Da ne otvaram novu temu, par pitanja... - by TDA - 12-08-2013, 10:36 AM
Da ne otvaram novu temu, par pitanja... - by TDA - 12-08-2013, 10:38 AM
Da ne otvaram novu temu, par pitanja... - by TDA - 12-08-2013, 01:49 PM
Da ne otvaram novu temu, par pitanja... - by TDA - 12-08-2013, 03:05 PM
Da ne otvaram novu temu, par pitanja... - by TDA - 12-08-2013, 09:21 PM
Da ne otvaram novu temu, par pitanja... - by TDA - 12-16-2013, 03:34 PM
Da ne otvaram novu temu, par pitanja... - by TDA - 12-16-2013, 04:14 PM
Da ne otvaram novu temu, par pitanja... - by enaB - 01-08-2014, 12:48 AM
Da ne otvaram novu temu, par pitanja... - by TDA - 01-12-2014, 07:46 PM
Da ne otvaram novu temu, par pitanja... - by TDA - 01-12-2014, 08:32 PM
Da ne otvaram novu temu, par pitanja... - by TDA - 01-13-2014, 10:03 PM
Da ne otvaram novu temu, par pitanja... - by TDA - 01-13-2014, 11:23 PM
Da ne otvaram novu temu, par pitanja... - by TDA - 01-19-2014, 10:35 PM
Da ne otvaram novu temu, par pitanja... - by TDA - 01-19-2014, 11:27 PM
Da ne otvaram novu temu, par pitanja... - by TDA - 01-20-2014, 02:37 PM
Da ne otvaram novu temu, par pitanja... - by enaB - 02-12-2014, 12:23 PM
Da ne otvaram novu temu, par pitanja... - by TDA - 02-12-2014, 05:28 PM
Da ne otvaram novu temu, par pitanja... - by TDA - 02-12-2014, 09:14 PM
Da ne otvaram novu temu, par pitanja... - by TDA - 02-12-2014, 09:18 PM
Da ne otvaram novu temu, par pitanja... - by TDA - 02-12-2014, 09:42 PM
Da ne otvaram novu temu, par pitanja... - by enaB - 02-12-2014, 10:32 PM
Da ne otvaram novu temu, par pitanja... - by enaB - 02-12-2014, 11:19 PM
Da ne otvaram novu temu, par pitanja... - by enaB - 02-13-2014, 03:25 PM
Da ne otvaram novu temu, par pitanja... - by enaB - 02-13-2014, 10:52 PM
Da ne otvaram novu temu, par pitanja... - by enaB - 02-13-2014, 11:10 PM
Da ne otvaram novu temu, par pitanja... - by enaB - 02-14-2014, 12:45 AM
Da ne otvaram novu temu, par pitanja... - by enaB - 02-14-2014, 01:38 AM
Da ne otvaram novu temu, par pitanja... - by TDA - 02-14-2014, 10:40 AM
Da ne otvaram novu temu, par pitanja... - by enaB - 02-14-2014, 02:14 PM
Da ne otvaram novu temu, par pitanja... - by TDA - 02-14-2014, 02:58 PM
Da ne otvaram novu temu, par pitanja... - by TDA - 03-02-2014, 12:19 AM
Da ne otvaram novu temu, par pitanja... - by nik - 03-02-2014, 08:18 AM
Da ne otvaram novu temu, par pitanja... - by TDA - 03-02-2014, 09:55 AM
Da ne otvaram novu temu, par pitanja... - by TDA - 03-04-2014, 02:59 PM
Da ne otvaram novu temu, par pitanja... - by TDA - 03-04-2014, 09:38 PM
Da ne otvaram novu temu, par pitanja... - by TDA - 03-04-2014, 10:00 PM
Da ne otvaram novu temu, par pitanja... - by TDA - 03-04-2014, 10:04 PM
Da ne otvaram novu temu, par pitanja... - by TDA - 03-04-2014, 10:24 PM
Da ne otvaram novu temu, par pitanja... - by TDA - 03-12-2014, 11:10 AM
Da ne otvaram novu temu, par pitanja... - by TDA - 03-12-2014, 11:15 AM
Da ne otvaram novu temu, par pitanja... - by TDA - 03-12-2014, 08:28 PM
Da ne otvaram novu temu, par pitanja... - by TDA - 03-18-2014, 08:31 AM
Da ne otvaram novu temu, par pitanja... - by TDA - 03-18-2014, 08:55 PM
Da ne otvaram novu temu, par pitanja... - by TDA - 03-23-2014, 11:27 AM
Da ne otvaram novu temu, par pitanja... - by ZerO - 03-24-2014, 11:55 AM
Da ne otvaram novu temu, par pitanja... - by enaB - 03-24-2014, 10:33 PM
Da ne otvaram novu temu, par pitanja... - by TDA - 03-25-2014, 10:20 AM
Da ne otvaram novu temu, par pitanja... - by TDA - 03-25-2014, 10:48 AM
Da ne otvaram novu temu, par pitanja... - by TDA - 03-25-2014, 11:34 AM
Da ne otvaram novu temu, par pitanja... - by TDA - 03-25-2014, 11:49 AM
Da ne otvaram novu temu, par pitanja... - by TDA - 03-26-2014, 03:22 PM
Da ne otvaram novu temu, par pitanja... - by HSP - 03-26-2014, 07:03 PM
Da ne otvaram novu temu, par pitanja... - by HSP - 03-27-2014, 01:54 PM
Da ne otvaram novu temu, par pitanja... - by HSP - 03-27-2014, 05:18 PM
Da ne otvaram novu temu, par pitanja... - by TDA - 03-29-2014, 10:33 PM
Da ne otvaram novu temu, par pitanja... - by TDA - 03-29-2014, 11:31 PM
Da ne otvaram novu temu, par pitanja... - by TDA - 03-29-2014, 11:32 PM
Da ne otvaram novu temu, par pitanja... - by TDA - 03-30-2014, 09:31 AM
Da ne otvaram novu temu, par pitanja... - by TDA - 03-30-2014, 01:35 PM
Da ne otvaram novu temu, par pitanja... - by HSP - 03-31-2014, 11:31 AM

Forum Jump:


Users browsing this thread: 6 Guest(s)