Мазмуну:

Көзүңдү ач! Логикалык анализатор: 21 кадам
Көзүңдү ач! Логикалык анализатор: 21 кадам

Video: Көзүңдү ач! Логикалык анализатор: 21 кадам

Video: Көзүңдү ач! Логикалык анализатор: 21 кадам
Video: Дензел Вашингтон - КӨЗҮҢДҮ АЧ! Тобокелге салмайынча, жашооң өзгөрбөйт!ОЛУТТУУ МОТИВАЦИЯ 2020 2024, Ноябрь
Anonim
Image
Image
Ассамблея
Ассамблея

Логикалык анализатор байланыш линиясында бараткан импульстук поездди элестетүүнү жеңилдетет. Ошентип, мүмкүн болгон көйгөйдү аныктоо үчүн көзүңүздү ачат. Бул эмне үчүн маанилүү? Бул сиздин убактыңызды үнөмдөөгө жардам берүүчү абдан натыйжалуу өнүктүрүү жана каталарды аныктоо куралы. Бүгүнкү видеодо биз логикалык анализатордун маанилүүлүгүн баалайбыз, бул түзмөктү колдонуп жатканда жалпы практиканын кээ бир протоколдорун байкайбыз жана логикалык анализатордун жардамысыз аныктоо катасын мисал келтиребиз.

Бул видеодо мен графикалык интерфейси жана бекер программасы бар салыштырмалуу арзан (35 доллардын тегерегинде) жана эффективдүү моделди колдондум.

1 -кадам: Ассамблея

2 -кадам: Колдонулган өзгөчөлүктөр - Сервер

Колдонулган өзгөчөлүктөр - Server
Колдонулган өзгөчөлүктөр - Server

• Байланыш үчүн секиргичтер

• 2 Arduinos (биз 2 Mega Arduinos 2560 колдонгон)

• Логикалык анализатор (биз Saleae колдонобуз)

• Arduino жана анализатор үчүн USB туташуу кабели.

• Осциллограф (милдеттүү эмес)

• Protoboard

3 -кадам: Circuit колдонулат

Circuit колдонулат
Circuit колдонулат

Бул жерде бизде үч казыктын мониторингин көрсөткөн схема бар: TX0, SDA жана SCL. Бизде эки Ардуино бар: кожоюн жана кул.

4 -кадам: Булак коду: Мастер

Орнотууга i2c байланыш үчүн китепкананы киргизебиз. Биз тармакка Master катары кирдик жана 0 сериясын баштадык. Loopто биз мисалда аныкталгандай Arduino 8 номерибиз менен байланышуу үчүн кулдук маалымат байттарын сурадык. Биз логикалык анализатор менен алынган байттарды алган сериалда басып чыгарабыз.

#include // inclui a biblioteca para comunicação I2C void setup () {Wire.begin (); // Mestre'ге кирүү (endereço é opcional para or mestre) Serial.begin (115200); // inicia 0 0 void loop () {Wire.requestFrom (8, 6);.. char c = Wire.read (); // recebe cada байт e armazena como caracter Serial.print (c); // envia o caracter pela serial (на буфер)} кечигүү (500); // акысыз сегодия}

5 -кадам: Булак коду: Кул

Бул кул кодуна мен дагы i2c байланышы үчүн китепкананы киргизем. Мен тармакка 8 дареги менен кул катары кирем. Биз суроо -талаптын окуясын каттайбыз жана аны "өтүнүч" функциясы менен байланыштырабыз. Сиз циклда эч нерсе кылуунун кажети жок, болгону 0,1 секунд кечигүү бериңиз.

Акыр -аягы, бизде Орнотууда катталган Мастер тарабынан суроо -талап окуясы болгондо аткарыла турган суроо функциясы бар. Биз, акыры, 6 байт билдирүү менен жооп беребиз.

#include // inclui a biblioteca para comunicação I2C void setup () {Wire.begin (8); // Wire.onRequest (requestEvent) үчүн комментарийлерди киргизиңиз; // регистра же окуя талап кылынат // e associa à função requestEvent} жараксыз цикл () {кечигүү (100); // эч кандай цикл жок, апенди 0, 1 сегментте} // função que será аткарылганда же жок кылынгандыгына байланыштуу // каттоодон өткөндө, эч кандай орнотуу жараксыз requestEvent () {Wire.write ("teste"); // 6 байтка жооп берүү

6 -кадам: Анализатор: Аппараттык

Анализатор: Аппараттык
Анализатор: Аппараттык

Үлгүнүн ылдамдыгы: 24 МГцке чейин

Логика: 5 Втен 5.25 В.

Төмөн деңгээл босогосу 0,8 В.

Жогорку деңгээлдеги босого 2.0 В.

Болжол менен 1 Мох же андан көп болгон импеданс

7 -кадам: Saleae программалык камсыздоону орнотуу

Saleae программалык камсыздоону орнотуу
Saleae программалык камсыздоону орнотуу

Логикалык анализатор тарабынан алынган маалыматтарды алып, биттерди чечүүчү программаны төмөнкү шилтемеден жүктөп алса болот:

8 -кадам: Биздин тесттер үчүн чөйрөнү конфигурациялоо

Биздин тесттер үчүн чөйрөнү конфигурациялоо
Биздин тесттер үчүн чөйрөнү конфигурациялоо

Мен интерфейсти бул жерде көрсөтөм, ал мага өзгөчө жакты, анткени ал таза болчу.

9 -кадам: Биздин тесттер үчүн чөйрөнү конфигурациялоо

Биздин тесттер үчүн чөйрөнү конфигурациялоо
Биздин тесттер үчүн чөйрөнү конфигурациялоо

Бул жерде кээ бир конфигурация параметрлери бар:

• Каналдын атын басуу менен биз аны өзгөртө алабыз.

• Каналдардын бири басып алуу жана аныктоо формасы үчүн триггер болуп кызмат кыларын аныктай алабыз.

• Каналдын номерин басып, кармап туруу менен тизмедеги позицияңызды өзгөртө аласыз.

• Тишке чыкылдатуу менен, биз каналдын визуализациясын конфигурациялай алабыз, кеңейтүү…

•… же каналды жашыруу. Биз колдонбогон бардык каналдарды жашырабыз.

10 -кадам: Биздин тесттер үчүн чөйрөнү конфигурациялоо

Биздин тесттер үчүн чөйрөнү конфигурациялоо
Биздин тесттер үчүн чөйрөнү конфигурациялоо

"Старт" баскычынын жебелерин чыкылдатып, тандоо ылдамдыгы жана жазуунун узактыгы бар.

Эмнегедир, программалык камсыздоо ылдамдыкты кармоо мүмкүн эместигин аныктаса, билдирүү көрсөтүлүп, функционалдык мааниге жеткенге чейин автоматтык түрдө тариф төмөндөйт.

11 -кадам: Биздин тесттер үчүн чөйрөнү конфигурациялоо

Биздин тесттер үчүн чөйрөнү конфигурациялоо
Биздин тесттер үчүн чөйрөнү конфигурациялоо

Биз ошондой эле протокол анализаторлорун кошобуз. Биринчиден, бул I2C, WIRE китепканасынын аныктамаларына ылайык жана каналдарды туура бириктирүү. Акыр -аягы, биз анализаторду асинхрондук серия менен тааныштырабыз. Параметрлерди жыйынга ылайык туура конфигурациялоо үчүн этият болушубуз керек.

12 -кадам: Биздин тесттер үчүн чөйрөнү конфигурациялоо

Биздин тесттер үчүн чөйрөнү конфигурациялоо
Биздин тесттер үчүн чөйрөнү конфигурациялоо

"Декоддолгон протоколдор" өтмөгүндө кайсы протокол анализаторлору иштетилгенин текшеришибиз керек. Ал жерде маалыматтар пайда болот. "Аннотациялар" өтмөгүндө биз жакшыраак визуалдаштыруу үчүн кээ бир жыйынтыктарды кошо алабыз. Жөн гана "өлчөө кошуу" сүрөтчөсүн чыкылдатыңыз.

13 -кадам: Capture: Обзор

Capture: Обзор
Capture: Обзор

Тартуу экранында, программа SDA, SCL жана TX0 маалымат импульс поезд көрсөтөт.

14 -кадам: Capture: Protocol Analysis жыйынтыгы

Capture: Protocol Analysis жыйынтыгы
Capture: Protocol Analysis жыйынтыгы

Мына, биз басып алуунун натыйжасын көрүп жатабыз. "Декоддолгон протоколдор" өтмөгүндө бизде:

• Сервер id 8 менен кулга суроо.

• Кул жооп, алты белгиден: "t", "e", "s", "t", "e" жана боштук.

• Ар биринин артында NACK (Not Acknowledge) боштук символдорун кошпогондо, туура байтты кабыл алууну көрсөткөн ACK бит (Acknowledge) коштолот.

• Андан кийин, Arduino IDE сериялык терминалына жөнөтүлгөн жана жөнөтүлгөн символдорду көрсөтүү менен, TX0 сериясынын декоддоосунун натыйжасын көрөбүз.

15 -кадам: Capture: 0 -канал жана маалыматтар (SDA)

Тартуу: 0 -канал жана маалыматтар (SDA)
Тартуу: 0 -канал жана маалыматтар (SDA)

Бул сүрөттө бизде SDA линиясынын импульс поезди бар. Белгилей кетсек, өткөрүлгөн ар бир байтты көрүүгө болот.

16 -кадам: тартуу: 1 -канал жана саат (SCL)

Тартуу: 1 -канал жана Саат (SCL)
Тартуу: 1 -канал жана Саат (SCL)

Азыр бизде SCL линиясынын импульстук поезди бар. Сиз сүрөттө көрүнүп тургандай, сигналдын үстүнө чычканды жайгаштыруу менен көбүрөөк маалыматты текшере аласыз. Биз саат жыштыгы 100 кГц болгонун көрө алабыз.

17 -кадам: Capture: Channel 2 жана Serial (TX0)

Capture: Channel 2 жана Serial (TX0)
Capture: Channel 2 жана Serial (TX0)

TX0 линиясынын импульс поездине келсек, биз Баштоо битин жана ар бир биттин кадрдык чекитин көрө алабыз. Бизде "е" белгисин билдирген байт бар.

18 -кадам: Биздин тесттер үчүн чөйрөнү конфигурациялоо

Биздин тесттер үчүн чөйрөнү конфигурациялоо
Биздин тесттер үчүн чөйрөнү конфигурациялоо

Бул жерде бизде маалыматтарды окуу үчүн бир нече варианттар бар.

19 -кадам: тартуу: осциллограф жана анализатор

Тартуу: Осциллограф жана анализатор
Тартуу: Осциллограф жана анализатор

Осциллографтан тартып алган экранды караңыз. Логикалык анализатор сигналы жогорку жана төмөнкү аныктоолорду гана билдирет, бирок ал сигналдын сапатын билдирбейт. Муну эң жакшы осциллографта байкаса болот.

20 -кадам: Тартуу: Бир катаны байкоо (Сериялык катанын мисалы)

Тартуу: Бир катаны байкоо (Сериялык катанын мисалы)
Тартуу: Бир катаны байкоо (Сериялык катанын мисалы)

Эми, мен чындыгында менин башыма келген сериялык ийгиликсиздиктин мисалын көрсөтөм. Мен GPRS модемимде болчумун, уюлдук телефондо, SIM картада, ESP32ге туташууга аракет кылып. Бирок ал жөн эле туташкан жок. Андан кийин электр менен камсыздоону, зымдарды текшерип, тактаны алмаштырдым. Мен баарын кылдым, бирок эч нерсе оңдой алган жок. Мен логикалык анализ жүргүзүүнү чечтим: UART 115200 боюнча ESP сигналы дал келбей баштаганын билдим. Башкача айтканда, ESP32 мындан башка ылдамдыкта 115, 200 болушу керек болчу.

Талдоочу тарабынан аныкталган бул ката кызыл түстөгү X тамгасы менен көрсөтүлдү. Менин түшүнүгүмдө, программа мындай бир аз нерсеге ээ болгон убакыттын өтүшү менен жарым жылдырылган деп айтылат. Бул жылыш күчөгөн сайын, маалымат башка тарапка жетпей тургандай, баары дал келбеген мезгил келиши мүмкүн. Ал, адатта, келет, бирок SIM800 сезгич жана так болбосо, маалымат экинчи учуна жетпейт.

Бул көп учурда болобу же жокпу билбейм, бирок менде болгон, ошондуктан мен бул теманы ушул жерден чечүүнү чечтим. Анда мен эмне кылдым? Мен жайладым. Эгер 9, 600, 19, 200, 38, 400гө чейин койсоңуз, ал иштейт, бул 115, 200 менен болбойт.

21 -кадам: Файлдарды жүктөп алыңыз

PDF

МЕН ЖОК

Сунушталууда: