Analizues logjik miniaturë me 4 kanale në avr. Përmirësimi i analizuesit logjik nga Kina. Lloji i tabelës së qarkut të printuar dhe vendndodhja e komponentëve

Edhe pse herë pas here, ka nevojë për të gjurmuar se çfarë po ndodh në disa linja logjike, dhe në mënyrë sinkrone në 4-8. Unë kam dashur prej kohësh të kem një analizues logjik (në tekstin e mëtejmë LA) për këto qëllime, dhe më në fund arrita tek ai.
Me pak fjalë, për të paduruarit - mund ta pranoni. Përputhet plotësisht me karakteristikat e deklaruara, softueri është mjaft i përdorshëm. Më shumë detaje - nën prerje :)

Çfarë është një analizues logjik dhe për çfarë shërben?

Me pak fjalë, ky është diçka si një oshiloskop shumë i papërpunuar me shumë kanale. Shumë i përafërt - tregon vetëm dy nivele, 0 dhe 1, domethënë nëse sinjali i vëzhguar ka tejkaluar një nivel të caktuar apo jo. Kjo është arsyeja pse quhet logjik, qëllimi i tij është të vëzhgojë sinjale logjike, domethënë zero dhe njëshe logjike.
Kjo mund të jetë e nevojshme, për shembull, kur korrigjoni një lloj ndërfaqeje me disa rreshta - punë me memorie, kontroll sinkron të diçkaje, ndërfaqe me shumë tela, etj. Përdoret gjithashtu në inxhinierinë e kundërt, kur duhet të studioni funksionimin e një pajisjeje, të përcaktoni protokollin e komunikimit të përdorur dhe madje të merrni një grumbull të dhënash të transmetuara, për shembull, përmes një UART sinkron.
Shumë avionë, përveç regjistrimit të drejtpërdrejtë të sinjaleve, mund t'i deshifrojnë ato duke përdorur protokolle të caktuara, megjithëse kjo nuk është një pronë e detyrueshme e avionit. Ato veçanërisht të sofistikuara madje mund të përcaktojnë automatikisht protokollin e përdorur me besim të mjaftueshëm, por kjo tashmë varet nga softueri i përfshirë me avion.

Dorëzimi

Mbërriti menjëherë - e porosita në 29 Mars, dhe më 11 Prill ishte tashmë në departamentin tim. Erdhi me postë të rregullt, ishte paketuar në një qese standarde të verdhë me një mbështjellës flluskë. Asgjë e jashtëzakonshme :)

Specifikimet nga faqja e shitësit

Veçoritë:
- i vogël dhe i lehtë
- Frekuenca maksimale e mostrës: 100 MHz në 3 kanale, 50 MHz në 6 kanale, 32 MHz në 9 kanale, 16 MHz në 16 kanale
- vëllim i madh i mostrave të ruajtura, mbështetje për kompresim
- gjenerator i integruar PWM
- E përputhshme me USB2.0/3.0
- softuer i fuqishëm dhe i lehtë për t'u përdorur
- mbështetje për përditësime automatike në internet
Karakteristikat:
- numri i kanaleve: 16
- Frekuenca maksimale e kampionimit: 100 MHz
- gjerësia e brezit të matjes: 20 MHz
- Gjerësia minimale e pulsit të kapur: 20 ns
- Madhësia maksimale e mostrave të ruajtura: 10G/kanal
- Tensioni i lejuar i hyrjes: -50V / +50V
- Rezistenca e hyrjes dhe kapaciteti: 220KΩ, 12pF
- Niveli i rregullueshëm i këmbëzës: -4V ~ +4V, hapi: 0.01V
- numri i kanaleve të gjeneratorit PWM: 2
- Gama e frekuencës PWM: 0,1 ~ 10 MHz
- Hapi i vendosjes së frekuencës së gjeneratorit PWM: 10 ns
- Hapi i rregullimit të gjerësisë së pulsit të gjeneratorit PWM: 10 ns
- Tensioni i daljes së gjeneratorit PWM: +3.3V
- rezistenca e daljes së gjeneratorit PWM: 50Ω
- Konsumi i gatishmërisë: 100 mA
- konsumi maksimal i rrymës: 150 mA
- dimensionet: 95mm * 55mm * 23mm
- Sistemet operative të mbështetura: Windows XP, Vista, Windows 7/8/10 (32/64 bit)
- Protokollet standarde të mbështetura: UART/RS-232/485, I2C, SPI, CAN, DMX512, HDMI CEC, I2S/PCM, JTAG, LIN, Manchester, Modbus, 1-Wire, UNI/O, SDIO, SMBus, USB1. 1, PS/2, NEC InfraRed, Paralele, etj...

Pajisjet

Kompleti përbëhej nga dy pako - njëra përmbante një kabllo USB, tjetra përmbante vetë analizuesin me të gjithë aksesorët e tij:

Kablloja duket shumë e mirë, e trashë, por mjaft e butë. Nuk kam asgjë për të vlerësuar seksionin kryq të telave të energjisë në të, dhe kjo nuk është e rëndësishme duke pasur parasysh konsumin e deklaruar të analizuesit. Por butësia e saj është një plus i madh kur punoni me një kuti kaq të vogël dhe të lehtë.
Ndër gjërat thelbësore ishin: vetë analizuesi, tre krehëra me nëntë tela me ngjyra të ndryshme, dy krehër me nga dy tela secila, 20 kapëse, një disk me programin dhe një copë letër me adresën nga ku mund të shkarkoni softuerin më të fundit:


Këtu është një copë letre më e madhe:

Vetë analizuesi është bërë në një kuti të bukur me një dizajn krejtësisht origjinal (krahasuar me kutitë katrore të mërzitshme në të cilat kinezët formojnë gjithçka që munden). Edhe pse duket se Gainta ka pasur një të tillë ndër rastet standarde... Gjithsesi, duket shumë mirë. Gjithçka është bërë me shumë kujdes, nuk ka asnjë boshllëk të panevojshëm askund, asgjë nuk është e shtrembëruar :)
Pllaka e përparme tregon emrin e modelit, ofron karakteristika të shkurtra dhe ilustron qëllimin e kunjave të lidhësit të hyrjes. Përveç kësaj, ekziston një tregues që tregon statusin e analizuesit - kur është i papunë, ai ndizet dhe fiket pa probleme, dhe pulson shpesh gjatë marrjes së mostrave.
Në njërën skaj ka një lidhës hyrës me 20 pin - 16 kanale, dy baza dhe dy dalje gjeneratori PWM. Në anën tjetër ka një lidhës USB:





Kompleti përfshin tre krehër me 9 tela dhe dy nga dy tela. Nëse ende mund të gjeni diçka me ato me dy tela - për shembull, një për tokë, e dyta për dy kanale ose për një gjenerator PWM, atëherë pse TRE krehje të mëdha nuk është e qartë... Jo ndryshe, njëra prej tyre eshte rezerve :)

Kur lidhim dy krehje me nëntë kunja, marrim të 16 kanalet dhe dy bazat. Gjatësia e telave në të gjitha krehrat është 20 cm, të gjitha telat përfundojnë me "nëna" të izoluara nga nxehtësia për lidhjen e kapëseve. Në çdo krehër, një tel ka tkurrje të nxehtësisë së bardhë - supozohet se kjo është e bluar, në mënyrë që të jetë më e vështirë të ngatërrohet, pjesa tjetër ka tkurrje nxehtësie të zezë:

Kapëse - saktësisht 20 copë. Kjo do të thotë, ju mund t'i përdorni ato për të lidhur të 20 kunjat e lidhësit të hyrjes - 16 kanale, 2 baza dhe 2 gjeneratorë PWM. Nuk ka gjasa që kjo të nevojitet ndonjëherë, por është një plus për kinezët që nuk janë të pangopur :) Ngjyrat e kapëseve nuk vuajnë nga një shumëllojshmëri e veçantë, ndryshe nga telat:


Nga ana tjetër, nëse tregoni kujdes minimal, mund të mos ngatërroni asgjë duke parë jo vetëm kapëset, por edhe telat e lidhur me to.
Kunjat e zakonshme tetraedrale dalin nga pjesa e pasme e kapëseve, si në lidhësit IDC:


"Nënat" e telave përshtaten në këto kunja mjaft fort dhe nuk tregojnë ndonjë dëshirë për të kërcyer; lidhja është mjaft e besueshme.
Pajisja e kapëses elementare:




Nuk ka bravë ose shul, pjesa e pasme thjesht tërhiqet dhe pllaka e brendshme del jashtë pas një kthese 90 gradë. Kunja është thjesht e bashkuar, gjë që është një lajm i mirë për sa i përket mirëmbajtjes :)
Për t'u lidhur me telin, duhet të shtypni në anën e pasme dhe një kapëse miniaturë del nga gryka dhe hapet. Pjesa e pasme lirohet dhe, nën veprimin e një sustë, kapësja futet përsëri brenda, duke u mbyllur në të njëjtën kohë:




E mban telin me siguri, të dyja mjaft të trasha, rreth 1.5 mm dhe të hollë, rreth 0.3 mm:




Në përgjithësi, këto kapëse nuk shkëlqejnë me cilësi, por janë mjaft funksionale në shumicën e rasteve.

Funksionimi i analizuesit, softueri

Së pari, duhet të sqarojmë menjëherë një pikë: ky analizues nuk ka memorien e vet; të gjitha mostrat transferohen menjëherë në kompjuter, ku ruhen. Vërtetë, në karakteristikat përmendet kompresimi, kështu që, ka shumë të ngjarë, nuk transmeton marrëzi 100 megabit për kanal në një frekuencë kampionimi prej 100 MHz. Megjithatë, në frekuenca të larta është shumë kërkuese për cilësinë e kanalit USB. Në mënyrë ideale, qendra kryesore me të cilën është lidhur analizuesi nuk duhet t'i shërbejë klientëve të tjerë. Për shembull, për mua funksionoi me shpejtësi të plotë vetëm në lidhësin në panelin e përparmë të kompjuterit. Por në një netbook ai kurrë nuk ishte në gjendje të siguronte 50 MHz për 6 kanale, megjithëse funksiononte tashmë për 5 kanale, dhe siguronte 100 MHz për tre kanale.

Pra, softuer. Fillimisht, nuk i kushtova vëmendje copës së letrës që përmbante adresën e faqes me softuerin, kështu që nxora një DVD të jashtëm nga koshët dhe sinqerisht u përpoqa ta instaloja programin prej tij. Programi u instalua, por drejtuesit nuk donin të instalonin (Windows XP). Pasi kërkova në internet, shkova në këtë faqe të treguar në copë letre dhe shkarkova një version pak më të fundit të programit nga atje. Megjithëse drejtuesit në të dukej se ishin të njëjtë, ata u instaluan normalisht nga versioni i ri dhe analizuesi erdhi në jetë :)

Ndërfaqja e programit është shumë e thjeshtë në shikim të parë (dhe në shikim të dytë gjithashtu, për të qenë i sinqertë). Në fillim, nuk është as e qartë se si mund të bësh ndonjë gjë të dobishme në të :) Por ndërsa thelloheni, respekti për të fillon të rritet :) Në përgjithësi, nga programi mora përshtypjen e mëposhtme: krejtësisht pa vëmendje, asgjë e tepërt , por mjaft i mjaftueshëm për shumicën e detyrave. Ka edhe të meta të vogla, sigurisht, por nuk e prishin shumë përshtypjen.
Kështu duket dritarja e programit:


Me klikime të shpejta mund të rregulloni frekuencën e marrjes së mostrave dhe thellësinë (numrin) e mostrave të ruajtura:


Zgjedhja e niveleve më të larta të kampionimit do të kufizojë automatikisht numrin e kanaleve të disponueshme.
Në vetë kanalet, ju mund të zgjidhni për secilin prej tyre emrin, vendndodhjen dhe madhësinë vertikale. Për një nga kanalet, mund të vendosni gjendjen e këmbëzës - në buzë, në rënie, në nivelin e lartë, në nivelin e ulët ose pa një këmbëz. Nëse këmbëza ishte instaluar më parë në një kanal tjetër, ai do të rivendoset atje, domethënë, këmbëza mund të instalohet në çdo kanal, por vetëm në një.
Në cilësimet e përgjithshme, mund të hiqni kanalet e panevojshme dhe të vendosni tensionin kufitar, në lidhje me të cilin do të numërohen zero dhe një:

Kisha një shami në dorë në të cilën gjendeshin vetëm SPI dhe USB, kështu që vendosa t'i shikoja. Pamjet e ekranit do të shfaqin kanale tashmë të konfiguruara, por fillimisht nuk ka të dhëna për sinjalet dhe kanalet thjesht emërtohen - Chanel 0, Chanel 1, etj.
I lidha dy kanalet e para me USB, 4 të tjerat me SPI dhe nisa analizuesin. Ja çfarë mora në përgjithësi:


Këto janë të gjitha 2 sekonda vëzhgim :) Tani ju duhet të lidhni dekodimin. Zgjidhni protokollin e kërkuar nga lista:

Dhe shfaqet një dritare për konfigurimin e këtij protokolli.
Për USB:


Për SPI:


Siç mund ta shihni, SPI ka cilësime mjaft të pasura që ju lejojnë të shikoni këtë protokoll në të gjitha manifestimet e tij.
Pas caktimit të kanaleve në sinjalet e protokollit, programi ofron riemërtimin automatik të kanaleve sipas emrave të sinjaleve, kjo është pikërisht ajo që kam bërë tashmë në pamjet e ekranit. Dhe tani, me një zmadhim të mjaftueshëm, të dhënat sipas protokollit do të shfaqen mbi grafikët. Për shembull, këtu është një nga kornizat USB:


Siç mund ta shihni, programi jo vetëm që tregon vlerat numerike të bajteve të transmetuara, por edhe kuptimin e tyre brenda protokollit - CRC, SYNC, ACK, etj. Vërtetë, ka vende që programi dhe unë nuk i kuptova; duket se shpejtësia USB ngadalësohet ndjeshëm në disa momente:

Dhe këtu është një pjesë e shkëmbimit të SPI:

Kështu do të duket në skedar:

Për më tepër, nuk mund të ruani mostra, por të dhëna të protokollit të deshifruar. Këtu, për shembull, është një pjesë e një shkëmbimi CAN të ruajtur në makinën time (për fat të keq, nuk bëra pamje nga ekrani):
Koha [s], paketa, lloji, identifikuesi, kontrolli, të dhënat, CRC, ACK 0.0002935S, 0, të dhëna, 0x0591,0x08,0x01 0x00 0x00 0x00 0x00 0x00 0x00,0x284a, ACK 0.0016248S, 1, Data, 0x05D 1 , 0x02,0x10 0x00,0x0249,ACK 0,0023359s,2,DATA,0x0635,0x03,0x00 0x00 0xFD,0x0D93,ACK 0.0033871s0,3,400x,3040x00 0x46 0x00 0x00 0x00 0x1F,0x5D2D,ACK 0,0046378 s,4,DATA,0x0531,0x04,0x01 0x40 0xF0 0xB1,0x40D3,ACK 0,005489s,5,DATA,0x05C1,0x04,0x00 0x000x00 0x000K 2s,6,DATA,0x06 5F,0x08, 0x01 0x5A 0x5A 0x5A 0x36 0x31 0x5A 0x43.0x3840,ACK 0.0075009s,7,DATA,0x0651.0x08.0x80 0x02 0x507 0x00x0D ,ACK 0,008662 1s,8,DATA,0x0621,0x08,0x20 0x2C 0x69 0x18 0x81 0x64 0xFD 0x00,0x4FE1,ACK 0,0233258s,9,DATA,0x0291,0x05,0x00 0x00 0x00 0x00 0x00,0x1DE1,ACK 30,320x1,ACK 0,320x1 0 0x00 0x30 0 x01 0xA2 0x00 0x84 0x00,0x50DB ,ACK 0,0432946 s,11,DATA,0x03C3,0x08,0xAB 0x00 0x00 0x00 0xA8 0xF0 0x00 0x64,0x0F7B,ACK 0,0444850,0,044850,0x00C,0x01 x01 0x01 0x00 0 x00 0x00 0x00,0x290F,ACK 0.053637 s,13, DATA,0x0470,0x08,0x40 0x01 0x00 0x46 0x00 0x00 0x00 0x1F,0x5D2D,ACK 0.0548882s,14,DATA,0x05000x00x0 91A,ACK 0. 0632503s,15,DATA,0x0291 ,0x05.0x00 0x00 0x00 0x00 0x00,0x1DE1,ACK 0.0666019s,16,DATA,0x0497,0x08,0x00 0x00 0x00 0x00 0x0640000 AC 33737s,17,DATA,0x015 1.0x04.0x00 0xE0 0xB0 0x50 . 0 0x00 0x00 0x2B 0x40 0x00,0x4875,ACK 0,0856485s ,20,DATA, 0x035B,0x08,0x08 0xB4 0x0C 0xB5 0x0B 0xFF 0x02 0x80,0x157E,ACK 0.0868492s,21,DATA,0x0380000x00x0x0 0x00 0x00 0x00,0x45C9,ACK 0.0881104s,22,DATA ,0x0381,0x06, 0x01 0x00 0x00 0x00 0x00 0x00,0x18D3,ACK 0.0892516s,23,DATA,0x0397,0x08,0x00 0x000000x00x00x00 0x4293,ACK 0,0905 824s,24,DATA,0x03B5,0x06,0x00 0x00 0x00 0x00 0x00 0x00 ,0x007C,ACK 0.0916936s,25,DATA,0x0457,0x03.0x01 0x40 0x00.0x6539,ACK 0.04700x25 0x00 0x00 0x00 0x00 0x00.0 x11A3,ACK 0.0936154 s,27,DATA, 0x0400,0x08,0x0C 0x01 0x09 0x05 0xAC 0x00 0x00 0x00,0x3DDD,ACK

Çfarë tjetër keni? Kur lëvizni kursorin mbi grafikun e kanalit, gjerësia e pulsit aktual, perioda, frekuenca dhe mbushja shfaqen automatikisht (e rëndësishme për PWM). Ju mund të shfaqni dy ose tre shënues dhe t'i tërhiqni përgjatë grafikut dhe ata do të tërhiqen nga frontet dhe rëniet më të afërta. Informacioni në lidhje me kohën e saktë të shënuesit dhe intervalin kohor midis tyre do të shfaqet në të djathtë:


Këtu shënuesit janë të vendosur në fillim të kornizave USB, të cilat, siç dihet, ndjekin çdo milisekondë me saktësi mjaft të lartë, të cilën analizuesi e konfirmon. Ose më mirë, konfirmon saktësinë e tij mjaft të mirë :)

Gjenerator PWM

Epo, gjithçka është e thjeshtë këtu. Është aty, të dy kanalet, gjithçka funksionon. Mund ta aktivizoni dhe çaktivizoni shpejt çdo kanal direkt në dritaren kryesore në krye duke klikuar mbi mbishkrimin përkatës (PWM1 PWM2). E gjelbër - aktive, e kuqe - me aftësi të kufizuara. Cilësimet e gjeneratorit thirren në një dritare të veçantë:


Unë as nuk di çfarë të them tjetër për të :)

Të brendshmet

Struktura, siç dyshoj, është klasike - përputhja e hyrjeve, krahasuesit e këmbëzës, FPGA dhe kontrolluesi me USB. Në përgjithësi dyshoj se ky është një klon i të njëjtit Saleae :)








Ana e dytë e tabelës është plotësisht bosh.
Gjithçka është shumë e rregullt, pa gërvishtje, fluks të palarë etj. Brendësia nuk e prish harmoninë e pamjes :)

Fundi

Më pëlqeu pajisja. Gjithçka që thuhet në të funksionon. Softueri bëri një përshtypje shumë të këndshme. Për të qenë i sinqertë, as nuk e prisja një punë të tillë nga kinezët :) Ka të meta, por ato janë të vogla - unë do të doja, për shembull, të caktoja ngjyra të ndryshme për sinjalet. Por kjo është më shumë një mashtrim.

Kur blej të gjitha llojet e pajisjeve elektronike kineze për "zanatet" e mia, shpesh has problemin e një përshkrimi të dobët të punës,

Tema e artikullit të sotëm është përdorimi i një analizuesi logjik të lirë kinez të blerë në Aliexpress.

Çfarë është një analizues logjik? Kjo është një pajisje e tillë... për analizë logjike))) Një film me Robert De Niro më vjen menjëherë në mendje

Pse është e nevojshme? Epo, natyrisht, përfshihuni në analizë logjike))). Ose më mirë, duke analizuar nivelet logjike të mikrokontrolluesve të ndryshëm dhe periferikëve të tyre. Ajo që zakonisht quhet inxhinieri e kundërt.

Karakteristikat

  • Pajtueshmëria e softuerit me Saleae Logic 8
  • Numri i hyrjeve dixhitale - 8
  • Dy tregues - fuqia dhe statusi i hyrjeve logjike
  • Impedanca e hyrjes 100 KOhm, kapaciteti i hyrjes 5 pF
  • Mundësuar nga USB
  • Normat e mbështetura të kampionimit:
  • 24 MHz, 16 MHz, 12 MHz, 8 MHz, 4 MHz, 2 MHz, 1 MHz, 500 KHz, 250 KHz, 200 KHz, 100 KHz, 50 KHz, 25 KHz;
  • Numri i vlerave të ruajtura të një matjeje - 10000

Në njërën anë ka një lidhës 10-pin dhe pinout në trup

Me një tjetër Mini USB për energji dhe lidhje me një kompjuter

Të brendshmet

Brenda kutisë ka një tabelë që përmban një mikroprocesor me një ndërfaqe USB me shpejtësi të lartë CY7C68013A nga CYPRESS, një EEPROM ATMLH432 dhe një drejtues autobusi LVC245A nga NXP.

Në hyrjen e analizuesit ka rezistorë kufizues të rrymës 100 Ohm, rezistorë tërheqës 100 KOhm dhe kondensatorë 5 pF. Gjithçka është e sinqertë, si në përshkrim.

Lidhje

Për të lidhur analizuesin, kompleti përfshin 10 tela lidhës për kontaktet e pinit. I bleva menjëherë këto klipe me kapëse.

Cilësia e kapëseve është shumë mesatare, por kapëset e mira do të kushtojnë më shumë se vetë analizuesi

Software

Kjo është ndoshta gjëja më interesante për këtë analizues. Ajo vjen me softuer vendas nga Saleae Logic.

Versionet janë të disponueshme për OSX, Linux dhe Windows në 32 dhe 64 bit.
Saleae Logic 1.2.3 nën Windows 7 funksionoi me gjysmë goditje, programi filloi, hardueri u njoh, pavarësisht versionit "Beta".

Karakteristikat interesante në softuer nga Saleae Logic

Shkasja për regjistrimin e një sekuence logjike në çdo kanal

  • Për të ndryshuar nivelin logjik në "0"
  • Për të ndryshuar nivelin logjik në "1"
  • Për një impuls pozitiv të një kohëzgjatjeje të caktuar
  • Në një impuls negativ të një kohëzgjatjeje të caktuar

Llogaritja e leximeve statistikore bazuar në matjen aktuale

Protokollet e dekodimit: Async Serial, I2C, SPI, Hide, 1-Wire, Atmel SWI, BISS C, CAN, DMX-512, HD44780, HDLC, HGMI CEC, I2S/ PCM, JTAC, LIN, MDIO, Manchester, Midi, Modbus , Tastierë/Maus PS/2, SMBus, SWD, Paralele e thjeshtë, UNI/O, USB LS dhe FS

Regjistrimi duke përdorur protokoll të dekodueshëm

Për më tepër, ky analizues mund të ndizet me softuer nga USBee

Le të bëjmë një analizë

Sapo po kuptoja lidhjen e sensorëve ultrasonikë DYP-ME007Y, të cilët duken absolutisht identikë, por funksionojnë krejtësisht ndryshe.

Nëse dikush punon saktësisht sipas fletës së të dhënave: një puls i shkurtër në "këmbës" shkakton një puls tejzanor dhe distanca matet me kohëzgjatjen e jehonës. Pastaj i dyti dhe i treti (me një LED që vezullon) afërsisht një herë në 100ms, pa asnjë goditje të jashtme, mat distancën vetë dhe e dërgon atë me një shpejtësi prej 9600 në formën e katër bajteve (përfshirë kontrollin). Saleae Logic ju lejon të aktivizoni dekodimin e një sinjali të autobusit serial në një sekuencë bajtash. Sensorët e llojit të dytë funksionojnë në mënyrë të përsosur me daljen "TRIG" të çaktivizuar, megjithëse mund të presin një komandë në këtë hyrje, por edhe një pajisje magjike nuk do ta tregojë këtë.

Tjetra, keni dashur të shikoni sinjalin PWM të Atmegi 168? I aktivizova të gjashtë kanalet që mbështesin PWM në nivele të ndryshme dhe u befasova kur zbulova se frekuenca e dy kanaleve PWM ndryshon nga 4 të tjerat. A përfshihen kohëmatës të ndryshëm?

Çfarë ka në autobusin tim të të dhënave?

Pajisja magjike dhe programi normalisht deshifronin daljen e sekuencës në LED. Edhe ngjyrat e LED-ve u shfaqën.

Nuk ka probleme as me analizimin e autobusit I2C. Softueri u përball mirë me dekodimin. Ju mund të shihni paketat e shkrimit në regjistra kur drejtuesi i ekranit TM1637 po funksionon

Një marrës RF 315 MHz i lidhur drejtpërdrejt me analizuesin mori një sinjal nga çelsat e radios dhe lëshoi ​​një kod Manchester. Pas zgjedhjes së shpejtësisë, kodi i Mançesterit konvertohet nga një program inteligjent në një sekuencë bajtash.

Pyes veten, po në lidhje me saktësinë e matjes së intervaleve kohore? Nuk kisha një gjenerator të saktë pulsi në dorë, por ton Arduino (1000) në 1000 Hz

dhe toni (20000) në 20 KHz japin një rezultat mjaft të saktë.

Për të testuar frekuencën e lartë, mblodha shpejt një gjenerator të bazuar në NE555. Ne arritëm të shtrydhnim 8 MHz prej saj. Analizatori e përthith këtë frekuencë normalisht. Nuk ishte e mundur të testohej në 20 MHz, por 8 është gjithashtu një rezultat shumë i mirë për një pajisje kaq të lirë.

Një përmbledhje e shkurtër

Një analizues logjik është një gjë shumë e nevojshme dhe e dobishme për ata që janë të angazhuar në gërmimin e pajisjeve periferike kineze për mikrokontrolluesit (Le ta quajmë bukur - inxhinieri e kundërt)
Ndër avantazhet e kësaj pjese hekuri do të doja të shënoja:

  • Çmimi atraktiv
  • E përputhshme me softuerin mjaft të përshtatshëm Saleae Logic
  • Mbrojtja e hyrjes në formën e shoferit të autobusit LVC245A
  • Dimensionet e vogla

Nuk gjeta ndonjë mangësi të dukshme në këtë pjesë të harduerit. Do të doja të kisha blerë një analizues logjik më shpejt - sa kohë do të kisha kursyer në kaq shumë projekte. Pa dyshim, për disa, aftësitë e kësaj pjese të harduerit nuk do të jenë të mjaftueshme. Ka shumë modele më të sofistikuara, por çmimi prej 100-200 dollarë i bën këto pajisje shumë më pak të përballueshme për amatorët e radios.

Të analizojmë diçka tjetër?

1. Prezantimi:

Kjo analizë logjike Atori është krijuar për regjistrimin, lëshimin dhe analizimin e sekuencave të ndryshme të pulseve dhe protokolleve sekuenciale me një periudhë të caktuar. Marrë për harduerin multiprogramues në FT232

2. Përshkrim i shkurtër

Analizatori ka 7 kanale hyrëse/dalëse, të cilat lidhen me pajisje të ndryshme në studim sipas gjykimit të përdoruesit.

Kanalet 1-5 korrespondojnë me hyrjen/daljen. Këto kanale mund të jenë në dalje ose hyrëse në varësi të cilësimeve të kanalit. Kanali 5 nuk drejtohet në asnjë lidhës, por ka një bllok kontakti në tabelë.

Kanali 6 - vetëm hyrje. Ky kanal përdoret në lidhje me kanalin 1 dhe shërben për të simuluar hyrje/dalje dydrejtimëshe, për shembull, si në autobusin I2C, domethënë drejtimi i transmetimit të kanalit ndryshon me funksionimin e protokollit. Të dhënat dalëse shkojnë në daljen 3 dhe të dhënat hyrëse kalojnë nëpër kanalin 6. Shihni “Zbatimi i protokollit I2C” për më shumë detaje.

Kanali 7 del vetëm. Ky kanal në programues zbatohet si një dalje e fuqishme 12V. Për shembull, është përdorur si energji e dritës së prapme kur punoni me ekranin nga Nokia 6100 (shih shembujt e përdorimit)

Në anën e majtë të dritares së punës së programit ka cilësime për portat e analizuesit - këto janë:

  • shpejtësia e baudit (BudRate)
  • përmbysja e kanalit (kontrollo " N.E.G."
  • drejtimi i portit ( BRENDA JASHTE)
  • madhësia e grupit të daljes (madhësia deri në 65 kbit lejohet)

Në pjesën qendrore të dritares së programit ka një paraqitje grafike të statusit të kanaleve në formën e një diagrami kohor. Dhe në fund të fushës ka informacion shtesë, i cili shfaq nuancat kur përdorni mënyra të ndryshme të përzgjedhura të analizuesit.

Në anën e djathtë të fushës së programit ka kontrolle për protokollet e simuluara. Në dispozicion:

  • menuja rënëse e përzgjedhjes së protokollit
  • 7 menutë zbritëse (për kanal): zgjidhni caktimin e kanalit dhe sinjalin e protokollit
  • përmbysja e të dhënave të protokollit (të mos ngatërrohet me përmbysjen e portit)
  • dritare për futjen e të dhënave (për të vendosur sekuencën numerike të protokollit)

3. Menaxhimi dhefutja e të dhënave.

Klikoni majtas të miut vendos kursorin në këtë vend në panelin e formës valore pa ndryshuar gjendjen e këtij biti.

Klikoni me të djathtën në panelin e formës së valës, vendos kursorin në këtë vend dhe ndryshon gjendjen e bitit në këtë vend.

Përveç futjes së të dhënave me miun, mund t'i futni ato nga tastiera. Pas shtypjes së butonit "0" ose "1", në vend të kursorit futet përkatësisht 0 ose 1. Gjithashtu, për lehtësi, funksioni i butonit "0" kopjohet në butonin "2", d.m.th. kur shtypni tastin "2", futet 0.

Futja e të dhënave në grup(vetëm për regjistrim). Sekuenca e protokollit mund të futet në dhjetor (1 34 987), binare (0b100 0b101010 0b1111111111111) dhe heksadecimal (0xFA 0x 12C 0x 1a 2cb). Të dhënat futen të ndara me hapësira.Është gjithashtu e mundur të përzihen formatet e të dhënave (123 0b1010 0x12aB).

Të dhënat futen të ndjekura nga një rritje e adresës. Kur të arrihet kufiri i grupit, madhësia e tij do të rritet. Madhësia maksimale e grupit të të dhënave - 65 kbit

Futja e të dhënave sipas skedarit. Për të futur të dhëna sipas skedarit, duhet të krijoni një skedar me çdo shtesë, për shembull, txt. Format falas.

Ju mund t'i ndani numrat në një skedar me një pikë, presje ose hapësirë. Shpjegimet në skedar ndahen me pikëpresje ";".

Shembull i përmbajtjes së skedarit:

123 343, 234, këtu janë shpjegimet pas pikëpresjes

0x12F, 0b10101010; e kështu me radhë.

Drejtues për analizuesin.

Analizatori përdor funksione speciale të FT232R, për të cilat duhet të instaloni drejtuesin special FTD 2XX. Instalimi i një porti të rregullt COM nuk është i përshtatshëm. Këshillohet që të merrni shoferin nga prodhuesi - për shembull.

4. Lidhja e analizatorit:

Pamja e analizuesit tregohet në Figurën 2.

J 1– kërcyes i furnizimit me energji elektrike (Vcc). Ka 4 gjendje: 1.8V, 3V, 5V dhe furnizim të jashtëm me energji elektrike

XT1- miniUSB. Lidhja me PC.

XT 2– lidhës i ndërfaqes për lidhjen e analizatorit me subjektin e testimit. Ka 10 kontakte:

1 kanal 1 (hyrje/dalje)
2 porte të daljes së energjisë (Vcc) (në varësi të gjendjes së kërcyesit të energjisë, fuqia do të jetë në hyrje ose në dalje)
3 Cbus 4 nuk përdoret. Por ju mund të nxirrni frekuencën 6,12,24 ose 48 MHz (për më shumë detaje, shihni "duke përdorur Cbus")
5 kanal 2 (hyrje/dalje)
7 kanal 3 (hyrje/dalje)
9 kanal 4 (hyrje/dalje)
4,6,8,10 gjithsej

XT3– lidhës i ndërfaqes për lidhjen e analizatorit me subjektin e testimit. Ka 10 kontakte

1 porte dalëse e energjisë (Vcc) (në varësi të gjendjes së kërcyesit të energjisë, furnizimi me energji do të jetë në hyrje ose në dalje).
3 kanal 3 (hyrje/dalje)
5 kanal 4 (hyrje/dalje)
7 kanal 6 (vetëm hyrje)
Dalje 9 kanalesh 7 Sinjali 12V!!!
2,4,6,8,10 gjithsej

J2– kërcyes për 2 pozicione. Ndryshon funksionin e kanalit 6.

pozicioni 1-2 ndryshon kanalin 6 nga Vcc në 12V
pozicioni 2-3 ndryshon kanalin 6 nga 0V në 12V
pozicioni 1-2 përdoret në programues për të gjeneruar sinjalin MCLR kur ndezin kontrollorët PIC.

Kanalet 1-5 janë hyrje si parazgjedhje dhe janë në gjendjen e tretë (gjendja Z). Kur një kanal është vendosur në dalje, ai do të dalë vetëm gjatë transmetimit.

Çdo kanal ka rezistorë kufizues të rrymës 300 ohm.

Kanali 6 është gjithmonë dalja. Statusi i paracaktuar është "0".

5. Përdorimi i sinjalit Cbus (pin lidhës XT2 3)

Ky sinjal nuk shfaqet në analizues sepse po jo sinkron me sinjale dalëse dhe ka frekuencë më të madhe se impulset e daljes. Nuk është aktivizuar si parazgjedhje.

Ky pin mund të nxjerrë frekuenca prej 6, 12, 24 dhe 48 MHz. Kjo është bërë duke përdorur një mjet të veçantë MProg, ju mund të merrni

6. Një përshkrim i shkurtër i asaj që duhet bërë për të paraqitur një frekuencë në Cbus:

  1. instaloni programin Mprog.
  2. zgjidhni kërkimin e pajisjes duke klikuar në xham zmadhues ose në menynë Device->Scan, pas së cilës programi gjen pajisjen dhe shfaq PID-in e saj, etj.
  3. Në skedën Tool, zgjidhni funksionin Read and Parse, domethënë ne lexojmë cilësimet aktuale dhe e shfaqim këtë në ekran.
  4. hapni faqerojtësin FT 232 R (nëse nuk u hap vetë), pas së cilës hapen 2 fusha. Inverto rs 232 signzl (kjo nuk na shqetëson, pasi programi i analizuesit i menaxhon këto sinjale në mënyrën e vet) dhe në terren Kontrollet I/O.
    Fusha e Kontrolleve I/O ka 4 nënmeny C1-C4.
  5. zgjidhni menunë C4. Këto janë funksionet shtesë të sinjalit Cbus4. Nga të gjitha funksionet e propozuara, ne jemi të interesuar për CLK6, CLK12, CLK24 dhe CLK48. Gjithçka duhet të jetë e qartë nga emrat e funksioneve J . Funksionet e mbetura nuk kanë asnjë efekt (më saktë, kur i zgjidhni, nuk është e mundur të parashikohet gjendja e këtij pin), pasi ato janë krijuar për të punuar në modalitetin e portit COM.
  6. Në mënyrë që FT232R të përdorë funksionin e zgjedhur, duhet të ruani projektin (pa këtë nuk do të funksionojë), kështu është shkruar ky mjet.
  7. Pas ruajtjes së projektit në disk, mund të riprogramoni FT232R tonë. Butoni i rrufesë është aktivizuar. Pasi e shtypni M prog do të shkruajë cilësimet tona në çip.

7. Si të përshkruani dhe përdorni protokollin tuaj

Për të krijuar një përshkrim protokolli, do t'ju duhet të shkruani skedarin tuaj INI. Unë rekomandoj të kopjoni një nga skedarët ekzistues dhe ta ndryshoni atë. Le të marrim skedarin SPI_9BIT si shembull. Shpjegimet në këto skedarë duhet të tregohen në rreshta të veçantë!!!

Kreu i cilësimeve në këtë seksion të skedarit specifikon cilësimet specifike të protokollit:


;numri i rreshtave në protokoll. Janë 4 prej tyre në këtë
num_lin = 4
;poshtë rreshtave renditen me numër dhe tregohen emrat e tyre
lin1 = MOSI
lin2 = MISO
lin3 = SCK
lin4 = SS
;numri i biteve të transmetuara
bit = 18
; shto. informacioni, ai do të shfaqet në dritaren e informacionit shtesë.
waring = kanali 6 është i lidhur me kanalin 1 në harduer. Baudrati ndahet me 2, pasi ora transmetohet në 2 cikle ore
;koka e protokollit. Sekuencat e përdorura në protokoll do të përshkruhen më poshtë.


SS = N N N N N N N N N N N N N N N N N N N N N
SCK = N O N O N O N O N O N O N O N O N O
MOSI = 0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8
MISO = N N N N N N N N N N N N N N N N N N N N

Në këtë seksion, biti numër 0 1 2 14 34, etj. tregohet si bit i transmetuar. Si një 1 e transmetuar, shkruani O (nga anglishtja One), si një 0 e transmetuar, shkruani N (d.m.th. Null).

E RËNDËSISHME: Kur përshkruani një protokoll, mund të ketë një ndryshim në numrin e biteve të specifikuar në num_lin dhe ato të përshkruara në seksionin e protokollit.

Pasi të keni korrigjuar ose shkruar skedarin INI, duhet të shtoni një hyrje në skedarin protocol.lst. në mënyrë që programi të gjejë dhe të përdorë protokollin e ri.

8. Një shembull i përdorimit të analizuesit për të analizuar autobusin I2C

Së pari, ne e lidhim analizuesin me autobusin I2C (pajisja në provë është një levë nunchuck nga tastiera Wii), nuk kërkohen elementë të jashtëm. Diagrami i lidhjes është paraqitur në Figurën 3. Nuk shoh asnjë pikë në përshkrimin e protokollit. Kjo është shkruar në detaje në internet.

Siç mund të shihet nga diagrami, 3 kanale përdoren për zbatim (kanalet 1,4,5), dhe protokolli I2C është me dy tela. Në fund të fundit është se analizuesi nuk ka aftësinë të ndryshojë drejtimin e autobusit gjatë transmetimit të sinjalit, kështu që ndarja e sinjaleve hyrëse dhe dalëse ndodh në një transistor (shih diagramin). Kështu, kanali 1 është dalja: nxjerr të dhëna në I2C. Dhe kanali 5 është hyrje: merr të dhëna nëpërmjet I2C.

Për të konfiguruar, zgjidhni "I2C" në menynë e përzgjedhjes së ndërfaqes dhe vendosni kutitë dhe butonat e mëposhtëm:

Kanali 1 NEG (dalje e kundërt) OUTSDA _OUT të dhëna dalëse

Sinjali i orës OUTSCL i kanalit 4

Kanali 5 IN SDA _IN të dhënat hyrëse

9. Një shembull i përdorimit të një analizuesi për të analizuar një autobusSPI (9pak)

Ky shembull demonstron një imitim të protokollit serial për kontrollin e ekranit nga Nokia6100. Diagrami për lidhjen e ekranit me analizuesin është paraqitur në figurën 4. Nga elementët e jashtëm, nevojitet vetëm një rezistencë kufizuese e rrymës për të ndriçuar ekranin. Një veçori e veçantë është se transmetimi SPI nuk është 8 bit, si zakonisht, por 9.

Për të përdorur këtë protokoll, u krijua një SPI i veçantë 9-bit në analizues.

Konfigurimi i sinjaleve të analizuesit dhe protokollit.

Për të konfiguruar, zgjidhni "SPI _9BIT" në menynë e përzgjedhjes së ndërfaqes dhe vendosni kutitë dhe butonat e mëposhtëm:

Kanali 1 OUT; ne do ta regjistrojmë këtë sinjal manualisht. Nuk është në procesverbal

Kanali 2 OUT SS ;sinjali i zgjedhjes së çipit

Kanali 3 OUT SCK ;ora e protokollit

Kanali 4 OUT MOSI ;sinjali i të dhënave

Meqenëse nuk kemi të dhëna të marra, të gjitha sinjalet janë konfiguruar si dalje dhe nuk përdoret asnjë sinjal protokolli MISO.

Është gjithashtu e nevojshme të vendosni kërcyesin e energjisë në pozicionin 3.3V, pasi pajisja do të mundësohet nga analizuesi.

Arduino është një mikrokontrollues unik që ju lejon të krijoni çdo pajisje, të kufizuar vetëm nga imagjinata e inxhinierit. Sot do të flasim për një nga këto projekte dhe do të analizojmë analizuesin e antenës në Arduino, si dhe të gjitha nuancat me të cilat do të duhet të merreni gjatë bashkimit dhe programimit të tij.

Në fakt, një analizues i spektrit në Arduino është një projekt mjaft i thjeshtë, por është ideal për fillestarët dhe ata që duan ta shtojnë këtë pajisje në paketën e tyre të veglave. Le të shohim se çfarë është një analizues logjik në Arduino dhe çfarë grackash ju presin kur e dizajnoni dhe bashkoni atë.

Qarku i analizuesit logjik bazuar në Arduino MK

Së pari ne duhet të projektojmë atë që do të lidhim. Një analizues logjik është një instrument i thjeshtë, detyra e të cilit është të lexojë dhe analizojë një kod binar (sinjal dixhital) të transmetuar përmes aplikimit të energjisë elektrike.

Me fjalë të tjera, çdo 5 volt i furnizuar në pajisje është një, mungesa e një të tillë është zero. Ky kod binar përdoret në kodimin e të dhënave dhe në shumë pajisje, përfshirë ato të bazuara në Arduino. Leximi fillon, si rregull, me një. Dhe për të kontrolluar projektin tuaj me kodim binar, do t'ju duhet një analizues logjik.

Mënyra më e lehtë është të provoni pajisjen në autobusin I2C, i cili përdoret në shumicën e pajisjeve elektronike deri më sot. Për të kuptuar se çfarë duhet të dizajnojmë, le të shohim karakteristikat kryesore të pajisjes:

  1. 4 kanale për analizën logjike të sinjaleve hyrëse.
  2. Ndryshueshmëria e frekuencave të sinjalit është deri në 400 kHz; kjo gamë do të mbulojë shumicën e pajisjeve moderne, përveç atyre të specializuara.
  3. Tensioni i hyrjes duhet të jetë deri në +5 volt, siç është përshkruar tashmë, ky është standardi i marrë si njësi (prania e sinjalit).
  4. Ekran LED për shfaqjen e informacionit. Programuesit veçanërisht të sofistikuar mund të blejnë disa LED dhe të ndërtojnë ekranin e tyre të diagonales që u nevojitet, por për të gjithë të tjerët, shkrimi i softuerit për një pajisje të tillë do të jetë shumë i mundimshëm dhe do të rezultojë të jetë një hap i panevojshëm. Prandaj, këtu do të shqyrtojmë një version të pajisjes me një ekran LCD.
  5. 4 bateri për furnizim me energji elektrike, 1.2 V në një tension maksimal 4.8 Volt.
  6. RAM. Këshillohet që të merrni dy lloje - me shpejtësi të lartë (3.6 ms për sinjal) dhe me shpejtësi të ulët (36 s), kjo zgjidhje do t'ju lejojë të mbuloni të gjithë gamën e sinjaleve.
  7. Një panel kontrolli ose një palë butona.
  8. Çdo guaskë për fiksimin e strukturës. Mund ta printoni në një printer 3-D, mund të merrni një kuti plastike të panevojshme ose të bëni fare pa kasë. Këtu nuk do të japim këshilla, pajisja funksionon, qoftë me guaskë apo pa, zgjedhja është e juaja.

Për energji, duhet të zgjidhni bateritë, pasi 4 bateri 1.5 volt mund të dëmtojnë Arduino dhe të djegin bordin. Për të mos përmendur rrezikun për ekranin LCD. Prandaj, mos kurseni dhe merrni komponentë cilësorë. Në fund të fundit, cilësia e produktit përfundimtar është e barabartë me parametrin e komponentit të tij më të keq.

Mos harroni të shtoni çelësin S1 në qarkun përfundimtar, i cili do të përdoret për të furnizuar me energji elektrike dhe për të fikur pajisjen në mënyrë që bateritë të mos shkarkohen thjesht.

Do të kërkohen gjithashtu rezistorë të veçantë tërheqës, të cilët do të eliminojnë të dhënat e rreme që mund të shfaqen për shkak të fushës elektromagnetike të gishtave të sondës së sinjalit. Si rezultat, zhurma dhe shtrembërimi në hyrjet dixhitale do të jenë minimale.

Mund ta merrni LED sipas dëshirës, ​​është e nevojshme të tregoni praninë e një sinjali dixhital dhe mund të zëvendësohet plotësisht nga softueri për ekranin LCD. Kjo zgjidhje është e përshtatshme vetëm si një tregues i regjistrimit të sinjaleve dixhitale në memorie, por në çdo rast, ju do ta aktivizoni pajisjen me dorë, kështu që një tregues i tillë, nëse është e nevojshme, mund të hiqet.

Pajisjet periferike të rekomanduara për krijimin e një analizuesi logjik të bazuar në mikrokontrolluesin Arduino

Nga të gjitha sa më sipër, ju keni përpiluar tashmë një listë të përafërt të pajisjeve periferike për blerje, por le ta sqarojmë këtë pikë. Në analizuesin logjik do t'ju duhet:

  1. Vetë mikrokontrolluesi Arduino. Nuk ka dallim se cilën të zgjidhni, do të ndikojë vetëm në madhësinë përfundimtare të pajisjes. Softueri për çdo version duket i njëjtë. Është përdorur tabela në foton e mësipërme.
  2. Ekran LCD. Nëse keni një telefon të vjetër me butona, mund ta hiqni dhe të konfiguroni një prodhim "pa mbeturina".
  3. Rezistenca me kapacitete të ndryshme.
  4. Sensori aktual.
  5. 4 bateri.
  6. Një ose dy LED.
  7. Kartë memorie, por kjo është opsionale.

Përveç kësaj, natyrisht do t'ju duhet një saldim, saldim dhe pajisje të tjera. Është më mirë të gjesh një vend paraprakisht ku do të mbledhësh të gjitha këto. Dhe nëse jeni duke punuar me një hekur saldimi për herë të parë, studioni rregullat e sigurisë nga zjarri dhe veçoritë e funksionimit të tij në mënyrë që të mos ribashkoni secilën pjesë 10 herë.

Programimi i Arduino MK gjatë zbatimit të projektit "analizuesi logjik".

Falë popullaritetit të Arduino, tashmë ka biblioteka dhe funksione të gatshme për analizuesit logjikë në këtë MK. Gjithçka që duhet të bëni është të zgjidhni atë të duhurin dhe të rishkruani kodin e programit për pajisjen tuaj. Në fund të fundit, bordet, sensorët dhe hyrjet e tjera janë të ndryshme për të gjithë, dhe në mënyrë që pajisja juaj të funksionojë pa probleme, do t'ju duhet të rregulloni kodin e dikujt tjetër sipas nevojave tuaja. Nëse nuk doni të shqetësoni veten dhe keni përvojë programimi në C++, mund të përdorni çdo mjedis që ju pëlqen.

Kodi për qarkun në foton e mësipërme mund të jetë si ky:

/************************************ 128 me 64 LCD Analizues Logjik me 6 kanale dhe 3 Mb/s Nga Bob Davis përdor Universal Graphics Library 8bit, http://code.google.com/p/u8glib/ E drejta e autorit (c) 2012, [email i mbrojtur] Të gjitha të drejtat e rezervuara. ************************************************** ****/ #include "U8glib. h" // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, di=17,rw=16 // U8GLIB_ST7920_128X64_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 17, 16); // **** SHËNIM **** I zhvendosa tre kunjat e kontrollit !!! U8GLIB_ST7920_128X64_4X u8g(8, 9, 10, 11, 4, 5, 6, 7, 1, 2, 3); int Mostra; int Input=0; int OldInput=0; int xpos=0; i pavlefshëm .drawPixel (20,1); u8g.drawPixel (40,1); u8g.drawPixel (60,1); u8g.drawPixel (80,1); u8g.drawPixel (100,1); u8g.drawPixel (20, 62);u8g.drawPixel (40,62);u8g.drawPixel (60,62);u8g.drawPixel (80,62);u8g.drawPixel (100,62); ) void draw(void) (u8g_prepare(); DrawMarkers(); // prisni për një shkas të një hyrje pozitive në vazhdim Input=digitalRead(A0); ndërsa (Input != 1)( Input=digitalRead(A0); ) // mbledh të dhënat analoge në një grup // Jo cikli është rreth 50% më i shpejtë! Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC ; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra =PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; Mostra=PINC; // shfaq të dhënat analoge të mbledhura nga grupi për (int xpos=0; xpos<128; xpos++) { u8g.drawLine (xpos, ((Sample&B00000001)*4)+4, xpos, ((Sample&B00000001)*4)+4); u8g.drawLine (xpos, ((Sample&B00000010)*2)+14, xpos, ((Sample&B00000010)*2)+14); u8g.drawLine (xpos, ((Sample&B00000100)*1)+24, xpos, ((Sample&B00000100)*1)+24); u8g.drawLine (xpos, ((Sample&B00001000)/2)+34, xpos, ((Sample&B00001000)/2)+34); u8g.drawLine (xpos, ((Sample&B00010000)/4)+44, xpos, ((Sample&B00010000)/4)+44); u8g.drawLine (xpos, ((Sample&B00100000)/8)+54, xpos, ((Sample&B00100000)/8)+54); } } void setup(void) { pinMode(A0, INPUT); pinMode(A1, INPUT); pinMode(A2, INPUT); pinMode(A3, INPUT); pinMode(A4, INPUT); pinMode(A5, INPUT); // assign default color value if (u8g.getMode() == U8G_MODE_R3G3B2) u8g.setColorIndex(255); // RGB=white else if (u8g.getMode() == U8G_MODE_GRAY2BIT) u8g.setColorIndex(3); // max intensity else if (u8g.getMode() == U8G_MODE_BW) u8g.setColorIndex(1); // pixel on, black } void loop(void) { // picture loop // u8g.firstPage(); do { draw(); } while(u8g.nextPage()); // rebuild the picture after some delay delay(100); }

Mos harroni të shkarkoni bibliotekat për të punuar me Arduino. Dhe gjithashtu merrni parasysh që dalja shkon në ekranin LCD. Kur të përfundoni së shkruari softuerin, thjesht ngarkojeni atë në tabelë duke përdorur një përshtatës të veçantë USB.

Mund të ndodhë që për shkak të mënyrës së shfaqjes së informacionit në ekranin LCD, të mos keni memorie të mjaftueshme të përhershme të pajisjes. Në këtë rast, ka kuptim të blini një flash drive dhe ta bashkëngjitni atë në sistem. Për fat të mirë, kjo bëhet mjaft thjesht, dhe gjithçka që ju nevojitet është një përshtatës i veçantë për faktorin e formës së makinës tuaj fizike.

Një analizues logjik është një asistent i domosdoshëm në korrigjimin e qarqeve dixhitale. Le të shohim teknikat bazë për të punuar me Analizën Logjike Saleae dhe analogët e tij kinezë.

Për punë do të na duhen:

  • telat lidhës (Unë rekomandoj këtë grup);
  • dërrasë buke.

1 Specifikimet e analizuesit logjik Analizues logjik Saleae

Një analizues logjik është një mjet për analizën e kohës së sinjaleve dixhitale. Ky është një mjet i domosdoshëm, vërtet i domosdoshëm kur korrigjoni elektronikën dixhitale. Analizuesit origjinalë nga prodhuesit e famshëm kushtojnë shumë para. Ju mund të blini një pajisje të tillë nga miqtë tanë kinezë për qindarkë. Prandaj, nëse nuk e keni ende, sigurohuni që ta blini. Aftësitë e kësaj pajisjeje të vogël janë mjaft mbresëlënëse.

Tabela liston parametrat kryesorë të analizuesit logjik, kopja ime kineze e analizuesit të kompanisë Saleae.

2 Instalimi i shoferit për analizuesin logjik Saleae

Për fat të mirë, për këtë analizues logjik - një kopje kineze - shoferi nga origjinali është i përshtatshëm. Shkoni në faqen zyrtare të internetit, shkarkoni programin për sistemin tuaj operativ dhe instaloni atë. Drejtuesit do të instalohen së bashku me programin. Nga rruga, një përmbledhje e aftësive të programit në formën e udhëzimeve në anglisht është bashkangjitur në fund të këtij artikulli.

Nëse keni një kopje të një kompanie tjetër, për shembull, USBee AX Pro, atëherë me një shkallë të lartë probabiliteti, drejtuesit nga prodhuesi i analizuesit origjinal do të jenë gjithashtu të përshtatshëm për të.

3 Shembuj pune me analizues logjik

Për eksperimentin e parë, le të marrim një konvertues USB-UART në çipin FTD1232. Le të lidhim analizuesin me portën USB. Ne lidhim kunjat e kanaleve 1 deri në 6 me kunjat e konvertuesit USB-UART. Në përgjithësi, ne jemi më të interesuar për vetëm dy linja - Rx dhe Tx, ne mund t'ia dalim vetëm me to. Konvertuesi identifikohet në sistem si një port COM. Le të hapim çdo terminal (këtu, për shembull, është një program i mirë për të punuar me një port COM) dhe të lidhemi me portin.


Lidhja e një konverteri USB-UART në çipin FTD1232 me një analizues logjik

Nisni programin Saleae Logic. Nëse drejtuesit për analizuesin janë instaluar saktë, do të tregohet titulli i programit Lidhur- i lidhur. Le të themi se nuk e dimë se në cilin kanal do të ketë sinjal dhe në cilin kanal jo, kështu që nuk do të vendosim një shkas për të filluar kapjen e sinjalit. Thjesht klikoni në shigjetat e butonit të madh të gjelbër Filloni(Filloni) dhe vendoseni në fushë Kohëzgjatja(Kohëzgjatja) le të themi 10 sekonda. Kjo është koha gjatë së cilës analizuesi logjik do të mbledhë të dhënat që vijnë nga të 8 kanalet pasi të shtypni butonin "Start". Ne fillojmë kapjen dhe njëkohësisht dërgojmë një mesazh në portin COM. Pas 10 sekondash, analizuesi do të përfundojë mbledhjen e të dhënave dhe do të shfaqë rezultatin në fushën e shikimit të sinjalit. Në këtë rast, sinjali do të jetë vetëm në një kanal, i cili është i lidhur me pinin Tx (transmetues) të konvertuesit USB-UART.


Për qartësi, mund të konfiguroni dekoder të dhënat e përgjuara. Për ta bërë këtë, në kolonën e djathtë gjejmë fushën Analizuesit, klikoni ikonën plus - "Shto", tregoni llojin - Seriali i asinkronizuar. Do të shfaqet një dritare që ju kërkon të zgjidhni cilësimet. Në fushën e parë, shkruani numrin e kanalit në të cilin keni të dhëna. Të tjerat le t'i lëmë ashtu siç janë. Pas shtypjes së butonit Ruaj(Ruaj), shenjat blu do të shfaqen mbi fushën përkatëse të kanalit duke shfaqur vlerat e bajtit që janë përgjuar. Duke klikuar në ingranazhin në këtë dekoder, mund të vendosni mënyrën e shfaqjes së vlerave - ASCII, HEX, BIN ose DEC. Nëse keni dërguar një varg në portin COM, zgjidhni modalitetin ASCII dhe do të shihni tekstin që dërguat në port.


Pikërisht aty, në kolonën e djathtë të programit Saleae Logic, mund të shtoni faqeshënues në të dhënat e përgjuara, të matni vonesat dhe kohëzgjatjet, të vendosni të gjitha llojet e shënuesve dhe madje të kërkoni nëpër të dhëna për protokolle të deshifruara.

Le të lidhim analizuesin logjik me konvertuesin USB-RS485 në të njëjtën mënyrë. Ekzistojnë vetëm dy linja të dhënash, kështu që mund të vendosni një shkas që të aktivizohet në skajin e cilitdo prej kanaleve: sinjali në protokollin RS-485 është diferencial dhe skajet e pulsit shfaqen njëkohësisht në secilin prej kanaleve, por në antifazë.


Klikoni butonin "Start" në programin e analizuesit. Duke përdorur terminalin tonë, ne do të lidhemi me konvertuesin USB-RS485 dhe do të transferojmë disa të dhëna. Kur aktivizohet, programi do të fillojë të mbledhë të dhëna dhe, pas përfundimit, do t'i shfaqë ato në ekran.


Saleae Logic ju lejon të eksportoni të dhënat e ruajtura në formën e imazheve dhe të dhënave tekstuale, të ruani cilësimet e programit, shënimet dhe dekoderat e kanaleve.

Shembulli i fundit në këtë përmbledhje të shkurtër është një kornizë e të dhënave e kapur e transmetuar përmes protokollit serial SPI. Kanali 2 tregon sinjalin e përzgjedhjes së skllav, kanali 0 tregon impulset e orës dhe kanali 1 tregon të dhënat aktuale nga masteri tek slave.


konkluzionet

Një analizues logjik mund të jetë shumë i dobishëm kur zhvillon dhe konfiguron të gjitha llojet e pajisjeve elektronike, kur shkruan softuer që funksionon në lidhje me harduerin, kur punon me mikrokontrollues, FPGA dhe mikroprocesorë, për analizimin e funksionimit të pajisjeve të ndryshme dhe protokolleve të shkëmbimit të të dhënave, dhe për shumë aplikacione të tjera. Përveç kësaj, është i lëvizshëm dhe nuk kërkon furnizim të veçantë me energji elektrike.

Shkarko udhëzimet për përdorimin e programit për analizuesin logjik Saleae

  • Shkarkoni udhëzimet për përdorimin e programit për analizuesin logjik Saleae nga Depositfiles.com
  • Shkarko udhëzimet për përdorimin e programit për analizuesin logjik Saleae nga File-upload.com
  • Shkarko udhëzimet për përdorimin e programit për analizuesin logjik Saleae nga Up-4ever.com
  • Shkarko udhëzimet për përdorimin e programit për analizuesin logjik Saleae nga Hitfile.com