Warning: Illegal string offset 'name' in [path]/includes/functions.php on line 6439
MCP23S17 expandera SPI savienojums
+
1 2

thread: MCP23S17 expandera SPI savienojums

  1. #1
    Senior Member
    Mar 2011
    1,119

    MCP23S17 expandera SPI savienojums

    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);
    }
     

  2. #2
    Moderator
    Jan 2009
    Rīga
    4,406

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

  3. #3
    Senior Member
    Mar 2011
    1,119

    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ē.

  4. #4
    Senior Member
    Jun 2006
    Cēsu novads
    986

    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.

  5. #5
    Senior Member
    Mar 2011
    1,119

    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.

  6. #6
    Senior Member
    Mar 2011
    1,119

    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

  7. #7
    Senior Member
    Apr 2007
    2,085

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

  8. #8
    Senior Member
    Mar 2011
    1,119

    Jā, ir iesprausts platē 0.1uF blakus izvadiem

  9. #9
    Senior Member
    Nov 2005
    Latvija, Kuldīga
    1,059

    Kāda neizmantota mikrenes ieeja nekarājas gaisā?
    Signalizācijas, videovērošanas ierīkošana Kuldīgā.
    Temperatūras, gaisa mitruma, atmosfēras spiediena u.c. mērījumi, to publicēšana internetā. Data logging.
    http://narodmon.ru/1191

  10. #10
    Senior Member
    Mar 2011
    1,119

    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.

+