Küsimus:
MicroSD häirib ISP programmeerimist
mar1980
2016-03-04 03:50:41 UTC
view on stackexchange narkive permalink

Mul on Arduinoga ühendatud microSD ja ma ei saa seda SDP-kaarti eemaldamata Interneti-teenuse pakkuja kaudu programmeerida. Kas keegi teab, kuidas takistada SD-kaardi sekkumist Interneti-teenuse pakkuja programmeerimisse?

Üksikasjad:

See on microSD-väljavõte: https://www.adafruit.com / products / 254

Kasutan ATMEGA328P sagedusel 3,3 V 8 MHz.

Ma ei kasuta alglaadurit ja mitmel põhjusel ei saa ma kasutage programmeerimiseks jadaporti.

Täname!

Kas olete proovinud panna 10 k takisti CS-st + 3,3 V-ni? Mis tihvtiga CS on seotud?
Kaks vastused:
Majenko
2016-03-04 04:03:58 UTC
view on stackexchange narkive permalink

Kuna SD-kaart on SPI-seade, jagab see ISP-liidesega samu tihvte. Ainus viis, kuidas SD-kaart ISP-d ei häiri, on SD-kaardi ühendamata jätmine.

Nagu nägite, saab selle saavutada kaardi eemaldamisega.

Selle saab saavutada ka kolmese oleku puhvri lisamisega MCU ja kaardi vahele, nii et MCU ühendab kaardi SPI-bussiga ainult siis, kui see on selle kasutamiseks valmis - vaikimisi on kaart lahti ühendatud.

Kas peaksite seejärel kolmemõõtmelise puhvri enne MCU programmeerimist keelama?
Kui juhtmega õigesti ühendate, on puhver vaikimisi välja lülitatud, kui MCU lõpetab selle aktiivse sisselülitamise.
See kõlab hästi! Tänan vihje eest. (Kas teil on soovitusi, millist puhvrit ma peaksin kasutama?)
Lisaboonusena saate puhvrit kasutada ka taseme nihutajana. Otsige 74-hobujõulistest seeriatest neljakordse tristaadiga mittepöörduvat puhvrit.
Te ei peaks kaarti lahti ühendama - kui programmeerimine toimub ühilduval pingetasemel, peaks kaardi kiibi valimise inaktiveerimine olema piisav. Lõppude lõpuks on SPI-seadmed loodud SCK-, MOSI- ja MISO-signaalide * jagamiseks ning seetõttu ei tohiks nad MISO-d juhtida, kui neid pole valitud orjana.
@ChrisStratton-l on selles argumendis kaks viga ... 1: enamikul odavatest kaardikilpidest puudub CS-i tõmme, nii et CS-i hõljumise ajal on teil programmeerimisel. 2: SD-kaardid ei ühildu SPI-ga. Neil on kordi, kus CS-d hoitakse kõrgel kellaaja ajal. Nad on tuntud selle poolest, et nad ei mängi bussis alati teiste seadmetega hästi - nendega tuleb olla ettevaatlik.
Plakat ei kasuta kaitsekilpi, kuid PCB, mis on ühendatud millegi külge, mis näib olevat mitte täielik Arduino, on takisti lisamine (juhtmestiku liideses, kui mitte kusagil mujal), on triviaalne (kuigi see oleks ka kilbiga). Paljud SPI-seadmed saavad tööd jätkata ka pärast seda, kui valik on kõrge, see on hoopis teine ​​kui nende MISO-ga sõitmine, kui see pole kunagi olnud või vähemalt hiljuti madal. Asja võiks keeruliseks muuta see, kui olemasolev visand käivitab SPI-toimingu, mis seejärel programmeerimisrežiimi sisenedes katkestatakse. Kuid teie "ainus viis" avaja näib ebatäpne.
@ChrisStratton Jah, paljud (enamus) SPI-seadmed töötavad CS-i tõstes. Ükski teine ​​SPI-seade * ei nõua kella käitamist tõstetud CS-ga *. See on * põhiline * erinevus SD-kaartide ja tõeliste SPI-seadmete vahel, mis teadaolevalt selles valdkonnas probleeme tekitab. Ja siis on teil muidugi hägusus sellest, mis moodustab SD-kaardi SPI-liidese, mida erinevad mfr-id on rakendanud erinevalt, paljude odavate Hiina mfrs-dega nurkades jne. Olen näinud mõnda SD-kaarti, mis isegi kunagi ei kinnita oma MISO-nööpnõela. Üldiselt rusikareeglina panin SD-kaardid alati nende spetsiaalsele SPI-kanalile.
See on kasulik detail - teie vastus oleks palju parem, kui selle tegelik korpus sisaldaks seda selgitust, miks soovitate SD-kaarti käsitseda ainulaadselt, erinevalt tavalisest SPI-seadmest.
oliver
2018-06-03 21:15:14 UTC
view on stackexchange narkive permalink

Mul oli täpselt sama probleem, kasutades ka Arduino (Atmega 328P). Mul on SD-kaardimoodul, millel on teistsugune paigutus, aga ka nivoorihutiga. Minu vooluahel töötab 5 V pingel (mis on sobiv nihutaja kasutamisel).

enter image description here

Probleemi lahendamiseks installisin just pullupi takisti (10k) minu enda plaadil sd mooduli kiibi valimise reale, mis hoiab SD-kaardi MCU programmeerimisel valimata. Nüüd see töötab.

enter image description here

Tundub, et moodulisse pole integreeritud tõmmet. Seega on CS-i programmeerimise ajal vähe (ilma pullupita), SD-kaart arvab, et see peaks vastama SPI-käskudele, ja häirib seega MCU-ga suhtlemist, mistõttu ISP-ga programmeerimine ebaõnnestub.



See küsimus ja vastus tõlgiti automaatselt inglise keelest.Algne sisu on saadaval stackexchange-is, mida täname cc by-sa 3.0-litsentsi eest, mille all seda levitatakse.
Loading...