# Cits ... >  MCP23S17 expandera SPI savienojums

## sasasa

Cīnos ar MCP23S17 expanderi. Nevaru piedabūt, lai tas stabili dabojas no barošanas bloka 5V. Izskatās ka apraujas SPI savienojums. Barojot no USB (caur MicroPro) darbojas ilgi, bet arī mēdz aprauties. Liku barošanai pie pašas mikrenes kondensatorus, bet tie nelīdz. Ja pieliek 220uF blakus expanderim, tad vispār tkai 1-2 reizi nomidžina un aizrijas (ar barokli), bet ar USB taspats kondķis NEKO nemaina un viss notiek. $#^#^%$ 
 No pilnas LiPo 1s bačas 4.2V VISPĀR neiet expanderis, kaut kas mistisks,, lai gan barojot no 3.3V barokļa viss notiek, tikai apraujas pēc laiciņa. Pēc datašīta barošana 1.8-5.5V
Uzraxtīju pavisam vienkārsu kodu - tipa midžinās 2 ledi, viens pa taisno no MicroPro izvada, bet otrs caur MCP23s17 izvadu. Ir reti brīži kad nostrādā, minūti, bet pārsvarā 1 - 15 sekundes. Kods turpina darboties, ko redzu pēc otra leda, bet SPI savienojums acīmredzot aiziet ciet. Pēc restarta atkal kādu brīdi darbojas, tad apstājas.
KUR lai meklē problem? It kā pēc simptomiem baroklis pie vainas, bet tad kapēc ar baču neiet?
Neesmu līdz šim ar SPI īpaši darbojies. Varbūt tur kādas nianses? Savienojuma vadi 20cm gari. Pārliku īsākus  10cm, be nekādas reakcijas.





```
#include <MCP23S17.h>
#include <SPI.h>
const uint8_t chipSelect = 10;
MCP23S17 Bank1(&SPI, chipSelect, 0);
void setup() {
  Bank1.begin();
  pinMode(9, OUTPUT);
  Bank1.pinMode(1, OUTPUT);
}
void loop() {
  Bank1.digitalWrite(1, HIGH);
  digitalWrite(9, HIGH);
  delay(100);
  digitalWrite(9, LOW);
  Bank1.digitalWrite(1, LOW);
  delay(100);
}
```

----------


## JDat

Vai visu pueslēdzi?
Kāda CLK frekvence?
Pamēģini lēno bit bang uztaisīt. Ka zin kurā bibliotēkā utis gadās...

----------


## sasasa

> Vai visu pueslēdzi?
> Kāda CLK frekvence?
> Pamēģini lēno bit bang uztaisīt. Ka zin kurā bibliotēkā utis gadās...


 -kā saprast "visu" - ja domātas expandera vadības ieejas, tad jā
-frekvence defaultā - janemaldos tad tas ir 1/4 no 16 = 4MHz  ...  pamēģināju ar dažādiem divider (2-128  ) nekādu izmaiņu - no USB iet, no barokļa vai bačas nē
-kā lai uztaisa to lēno bit bang?? Neesmu neko tādu darījis.
.. ja tur būtu bibliotēkas pie vainas, vai tad viņš darbotos no USB barošanas??  Domāju ka nē.

----------


## M_J

Cik esmu darbojies ar SPI, viņš ir ātrs un foršs, bet arī jutīgs pret traucējumiem. SCK ieeja var mierīgi nostrādāt no tādas "adatiņas", kuru uz osciloskopa pat pamanīt nevar. Cīnīties pret to var divējādi. Pareizā pieeja būtu pareizi uzprojektēt plati, savienot masas un visas līnijas, stingri ievērojot visus noteikumus. Vienkāršā pieeja - esmu abos galos pie mikrenēm visas SPI līnijas šuntējis uz masu ar kādiem 47pf un līnijās licis, šķiet 75omu (vairs neatceros, sen tas bij) rezistorus. Palīdz.

----------


## sasasa

Beidzot noticēju ka ir cilvēki kuriem tuvumā nestrādā elektroniskās ierīces!!! REĀLI never pat noticēt, bet atkartoju kādas 6..7 reizes un resultāts viens. 
Visu pēc kārtas. Lai pārliecinatoe, ka sū... netaisa mans MicroPro, sameklēju vecu Arduino Uno un pārspraudu visu uz to. Baroju no USB  viss notiek, bet tomēr pēc kāda laika tomēr uzkaras. Atslēdzu USB un pieslēdzu riktīgu barokli (12V/6A). Nekas nenotiek - Arduīna LEDs mirkšķina, bet no expandera klusums. $%#^%$  Tad vienu reizi pieslēdzot USB aizeju prom no galda. Nāku atpakaļ pēc 2-3minūtēm  un , tavu brīnumu, nekas nav uzkaries un midžinās abi LEDi, BET  tikko pieeju klāt un apsēžos, tā expandera LEDs nodziest...  Mēģinu vēlreiz - ieslēdzu USB aizeju prom, nāku apakaļ un uzmanīg lēnām sēžos. Vadam nevienam klāt neskaros, neko nepakustinu, atrodos apmēram 40-50cm attlumā no plates. Tikko esmu apsēdies, tā BĀC,  NODZIEST viens LEDS. Atkārtoju n-tās reizes, jo reāli nevaru noticēt tam ko redzu. Viss viens. Manā klātbūtnē exanderis nedarbojas  ::   $#^%$@%$%$@#%^&@&7
Nu kurvar būtšitāds sviests???  $#@^@%@#@$%@#@^&&  un kā lai te rupji nelamājas??
Mēģinu to pašu ar barošanas bloku, bet nekā - ar to vispr neiet pat pussekundi..  :: 
Kas man tagad mēteītis ar sazemētu ekrānu sev jāšuj?  :: 




> Vienkāršā pieeja - esmu abos galos pie mikrenēm visas SPI līnijas šuntējis uz masu ar kādiem 47pf un līnijās licis, šķiet 75omu (vairs neatceros, sen tas bij) rezistorus. Palīdz.


 Tnx. šo gan es noprovēšu vēl pirms mētelīša..
Bēdīgākais jau tas ka nevis tikai izlaiž kādu signālu vai datu bloku, bet uzkaras uz visiem laikiem līdz restartam.

----------


## sasasa

82 ohm pretestības + 100pF kondiķi vienā gala pie expandera. 
Rezultāts - LEDs no expandera vairs neapstjas katru reiz kad pienāku klāt, bet tikai katru 2 vai 3 reizi  :: .. 
hhaha es esmu supermens  ::

----------


## karloslv

Vistupākais jautājums - vai ar 100 nF nošuntēji barošanu mikroshēmai tuvu pie kājām?

----------


## sasasa

Jā, ir  iesprausts platē 0.1uF blakus izvadiem

----------


## marizo

Kāda neizmantota mikrenes ieeja nekarājas gaisā?

----------


## sasasa

15 neizmantotās kājas nav nekur pievienotas, bet kāpēc lai tas "uzkarinātu" pieslēgto izeju? Man liekas ka viņām tur iekējais pullup.

----------


## marizo

Pullupus var iesēgt/izslēgt. Padari par izejām, cik tur darba izmainīt programmā, lai pārbaudītu. Katrā ziņā noteikums, ka loģikām neizmantotās ieejas gaisā neatstāj.
Vēl variants- pieslēdz arī resetu. Čeko atpakaļdatus no mikrenes. Es kaut kad spēlējos ar spi, nebija nekādas vainas. Tas gan bija ar citām mikroshēmām.

----------


## M_J

Pacēlu augšā vecās lietas. Izrādās SPI līnijās esmu salicis nevis 75 omus, bet gan 200 omus. Šķiet, tā bija mazākā iespējamā R vērtība, kas ļāva nofiltrēt traucējumus. Pamēģini palielināt rezistoru vērtības.

----------


## sasasa

Vai pareizi sapratu - rezistori ir virknē?

----------


## M_J

Jā, virknē.

----------

