Satura rādītājs:

Arduino I2C sniffer: 4 soļi
Arduino I2C sniffer: 4 soļi

Video: Arduino I2C sniffer: 4 soļi

Video: Arduino I2C sniffer: 4 soļi
Video: Как настроить LCD ДИСПЛЕЙ и I2C на Arduino ?! 2024, Jūlijs
Anonim
Arduino I2C sniffer
Arduino I2C sniffer

I2C ir sērijas protokols, ko izmanto, lai sazinātos ar mikrokontrolleri ar ārējām perifērijas ierīcēm, kas pievienotas tai pašai shēmai. Katrai perifērai ierīcei jābūt unikālam ID numuram, ko sauc par adresi, kas tiek izmantota, lai to identificētu kā paredzēto ziņojuma saņēmēju. Šīs adreses piešķir ierīces ražotājs, un lielākoties tās nevar mainīt. Sniffer skenē visas iespējamās adreses, meklējot pievienotās ierīces, un ziņo par atrastajām. Tas palīdz identificēt neatzīmētas mikroshēmas, jo tad adresi var meklēt Google, lai iegūtu vairāk informācijas par mikroshēmu.

Šī ierīce Arduino UNO atdarina Raspberry Pi i2cdetect skripta uzvedību, šņaukājot visas iespējamās i2c adreses, meklējot pievienotās ierīces, un labi izdrukājot rezultātus uz 16x02 LCD ekrāna.

Lai ekrānā ietilptu viss, gan adreses augstākā, gan zemākā daļa tiek izdrukāta virs rezultātiem, bet augšējā daļa ir treknrakstā. Divas spiedpogas ļauj pārvietoties starp adresēm, vienlaikus parādot 16 adreses. Ja ierīce tiek atklāta, W tiks izdrukāts, lai to parādītu kā rakstīšanas adresi, un R tiktu parādīts gadījumā, ja tā ir lasīšanas adrese. Ja šajā adresē nekas netiek atklāts, ekrānā tiek parādīta defise (-).

1. solis: materiāli

Materiāli
Materiāli
Materiāli
Materiāli

1. variants

1 x Arduino UNO

1 x 16x02 LCD ekrāns

1x 10K potenciometrs

1x 330 omu rezistors

3x spiedpogas

Jumper kabeļi

1x I2C līmeņa pārslēdzējs (ne uz materiāla attēla)

2. variants

1 x Arduino UNO

LCD tastatūras vairogs (pogas uz vairoga netiks izmantotas)

3x spiedpogas

Jumper kabeļi

1x I2C līmeņa pārslēdzējs (ne uz materiāla attēla)

Otrais variants tiks uzbūvēts, jo tas bija tas, kas man šobrīd bija pa rokai. Līmeņu pārslēdzējs ir svarīga ķēdes sastāvdaļa, jo mūsdienās lielākā daļa ierīču izmanto 3,3 V loģiku, un 5 V no Arduino tās sabojā.

(Attēlos izsvītrotais materiāls nav nepieciešams.)

2. solis: ķēde

Ķēde
Ķēde
Ķēde
Ķēde
Ķēde
Ķēde

Ķēde ir diezgan taisna uz priekšu, izmantojot standarta pinout Arduino piemēriem LCD, noklusējuma tapas I2C un 3 rezerves tapas spiedpogām.

Ja izmantojat LCD tastatūras vairogu, LCD ekrāns mainās, bet tas jau ir iekļauts kodā. LCD tastatūras vairoga pogas netiek izmantotas, jo tām nepieciešama analogā aptaujas metode, kas pārtrauc saderību starp divām iespējamām ieviešanas shēmām (vairogs un atsevišķs LCD)

3. darbība: kods

Kods
Kods

Ja tiek izmantots LCD tastatūras vairogs, skices sākumā #define LCD_SHIELD jāatstāj bez komentāriem. Pretējā gadījumā komentējiet to, lai izmantotu pirmo diagrammu.

4. solis: secinājumi

Secinājumi
Secinājumi
Secinājumi
Secinājumi
Secinājumi
Secinājumi

Koda un ķēdes pārbaudei tika izmantota BQ32000 RTC mikroshēma un MMA8452Q akselerometrs. Kā redzams attēlos, ierīce nosaka 4 adreses: 0x3A un 0xD0 kā rakstīšanas adreses un 0x3B un 0xD1 kā lasīšanas adreses. Šīs adreses atbilst pārbaudes ierīcēm, tāpēc kods darbojas.

Es vēlos pateikties laipnajām meitenēm Pekinas Makerspace, Fu Yao un Liu Xin par palīdzību, kas man palīdzēja iegūt materiālus, kas nepieciešami šī projekta pārbaudei tik īsā laikā.

Ieteicams: