Wiz820io / USR -ES1 - Wiznet W5500 тармагын портуңузга Raspberry Pi кошуңуз: 10 кадам
Wiz820io / USR -ES1 - Wiznet W5500 тармагын портуңузга Raspberry Pi кошуңуз: 10 кадам
Anonim
Raspberry Piге WIZ820io / USR -ES1 - Wiznet W5500 тармак портун кошуңуз
Raspberry Piге WIZ820io / USR -ES1 - Wiznet W5500 тармак портун кошуңуз

Жарым -жартылай ушундай нерсеге болгон кызыгуумдан улам, жана жарым -жартылай Codesysке болгон кызыгуумдан улам, мен аны бир аз убакыттан бери Raspberry Piге экинчи Network Interface портун туташтырууга аракет кылып көрдүм. Башка долбоорлорду аткарып жатып, мен ойлонуп, окуп, салыштырып, пландап, дүкөндө жүрдүм, акыры алдыга бир нерсе куруш үчүн.

Ооба - мен билем.. ал жакта барууга даяр болгон бир нече "ачкыч" бар, бирок ушуга окшош нерсени кыла алмак, бирок чындыгында алардын бири да мени акчамдан бөлүп салууга жетиштүү деңгээлде кызыктырган жок.

Чындыгында, мен Raspberry Pi жана Linux / Raspberry Pi IOS (Raspian) боюнча билимим жана тажрыйбамдын төмөндүгүнө ээмин (мен Windows жана Android дүйнөсүндө жакшыраак иштейм), Тармак тармагы боюнча терең билимим жок (Мен нерселерди иштете алам жана тармактарды куруңуз, бирок андан тышкары мен башымдан бир аз ашып кеттим), жана мен жаңы гана схемаларды жасай баштадым. Албетте, мен программист эмесмин.

Бир жолу мен акыры бир нерсе куруу идеясы менен алдыга жылууну чечтим жана Wiznet - W5500 интегралдык микросхемасына негизделген WIZ820io / USR -ES1 модулун колдонууну чечтим. Бул модуль Raspberry Pi (жана башка MCUs) менен стандарттык SPI шинасын колдонуп байланыша алат. Кошумча, ал 3.3 VDC иштебейт, андыктан ал менин Raspberry Piге зыян келтирүү коркунучу жок.

Электрондук тактаны долбоорлоодо мен аны туура "HAT" конфигурациясында курууну чечтим (формасы жана мүмкүнчүлүгү), жана "WIZ820io модулунун схемасын кошкондон тышкары, мен буга колдонулбаган башка бир катар нерселерди коштум. тармактык долбоор, бирок мен келечекте башка долбоорлор үчүн колдоно алам.

Мен иштеп чыккан / курган тактада төмөнкү нерселер бар.

1 - Wiznetти кармап туруучу розетка - WIZ820io - Ethernet порт модулу (мен бул үчүн Eagle Footprintти атайын жасадым).

2 - Raspberry Pi CPU үчүн 30 мм - 5 VDC муздатуу күйөрманы (мен бул үчүн атайын Eagle Footprint жасадым).

3 - HAT шайкештик талаптарын сактоо үчүн "CAT24C32" эс чипи (бул мен азырынча программалана элек) (мен бул үчүн атайын Eagle Design Block жасадым).

4 - Мини MAX3232 - UART - TTLден RS -232ге чейин Converter UART0 менен туташкан (мен бул үчүн атайын Eagle Footprint жасадым).

5 - Кызыл LED (GPIO24), Светодиод (GPIO23) жана Жашыл LED (GPIO22) - Светофор үчүн - Python программалоо көнүгүүлөрү.

6 - Жашыл LED (GPIO18) жана Жашыл LED (GPIO27) - программалоо көнүгүүлөрү жана көйгөйлөрдү чечүү үчүн.

7 - GPIO25ке туташтырылган тийүү которгучтары - көнүгүүлөрдү программалоо жана көйгөйлөрдү чечүү үчүн (мен бул үчүн атайын Eagle Footprint жасадым). ЭСКЕРТҮҮ, бул GPIO WIZ820io менен да колдонулат.

Мен мурда белгилегендей, бул Нускамалык бул тизмедеги №1 пункт менен гана иштейт. Мен тактага кошкон башка нерселердин баары ушул Интерфейс долбооруна тиешеси жок башка себептерден улам бар.

Жабдуулар

Raspberry Pi - Мен эски Raspberry Pi 3B колдондум. Мунун эч кандай жаман жери жок.. Меникиде өлгөн HDMI порту бар, ошондуктан мен аны жетүү үчүн TeamViewerди колдонуп "башсыз" иштетем. Ал иштейт. Мен Raspberry Pi'нин көпчүлүк версиялары ушул Raspberry Pi IOSтун (Raspian) акыркы версияларын иштете алаары менен иштейт деп шектенем.

Мунун баарын баштоодон мурун, албетте, операциялык системаны жаңырттым:

sudo apt-get update

sudo apt-get жогорулатуу

WIZ820io / USR -ES1 - Бул үчүн документтер OEMден онлайн режиминде жеткиликтүү

PC Board - Мен Autodesk Eagle менен ПХБны иштеп чыгуу үчүн жана JLCPCB үчүн схеманы куруу үчүн керектүү Gerber файлдарын түзүү үчүн колдоном. Буга чейин айтылгандай, мен HAT шайкештик талабын сактоо үчүн "CAT24C32" эс чипин дагы коштум.

1 -кадам: Raspberry Pi 3b

Raspberry Pi 3b
Raspberry Pi 3b

Raspberry Piге келсек, мен бул долбоорду Raspberry Pi IOSтун акыркы версиясы менен бирге Raspberry Pi 3b менен жүктөп, орното алдым.

Ал жерде өзгөчө эч нерсе жок. Мен бул бирдикке бир нече жыл ээлик кылдым жана ал мен үчүн негизинен жакшы иштеди (жакшы - HDMI видео чыгышы өлдү, ошондуктан TeamViewerди колдонуп башы жок иштөөгө аргасыз болдум). Сиз муну кереги жок болушу керек.

Мен кандайдыр бир RPi WIZ820io / USR -ES1 - Wiznet W5500 менен туташып, бул ишти жасай алышы керек деп шектенем, жана башка көптөгөн бренддер бир эле рынокто атаандашат (Beagle Bone, Orange, Tinker ж. модели Linux негизиндеги OS.

Менде булардын эч кимиси менен тажрыйбасы жок. Менин Raspberry менен тажрыйбам аз - бул мени кайдан алганын караңыз:)

2 -кадам: Wiznet WIZ820io модулун Raspberry Pi GPIO Bus менен байланыштыруу

Wiznet WIZ820io модулун Raspberry Pi GPIO Bus менен байланыштыруу
Wiznet WIZ820io модулун Raspberry Pi GPIO Bus менен байланыштыруу
Wiznet WIZ820io модулун Raspberry Pi GPIO Bus менен байланыштыруу
Wiznet WIZ820io модулун Raspberry Pi GPIO Bus менен байланыштыруу
Wiznet WIZ820io модулун Raspberry Pi GPIO Bus менен байланыштыруу
Wiznet WIZ820io модулун Raspberry Pi GPIO Bus менен байланыштыруу

Тиркелген сүрөттөрдү карап чыгуу.

Wiznet WIZ820io модулу интерфейске ар бири 6 казыктан турган эки катарды камсыз кылат.

Саптар "J1" жана "J2" деп белгиленген.

Алар берген маалымат барагында ар бир пиндин түсү абдан жакшы жазылган схемасы бар. Бул диаграмма ошол казыктарды Raspberry PI GPIO казыктарына туташтырууга жардам берүү үчүн арналган. Алар NAME матчына абдан жакшы NAME.

Raspberry Pi пинутун ал бул жерден таба алат: pinout.xyz

Мен бул казыктарды төмөнкүдөй туташтырдым (тиркелген сүрөттү караңыз):

Албетте, мен чынында эле райондук тактаны жасагандыктан, бардык Grounds (GND) бири -бирине туташкан. Ошол эле 3.3V төөнөгүчтөргө да тиешелүү - менин схемам аларды бириктирди.

Белгилей турган бир нече нерсе..

1чи - J2 Pin #5 - RSTn - Мен муну RPi GPIO #17ге туташтырдым (Pin #11) - Бул эскертүүчү болду. Мен анын колдонулганына ишенбейм.

2 - J1 Pin # 6 - INTn - Бул GPIO25 менен туташкан (Pin # 22). Бул талап кылынат, анткени Raspberry Pi IOS конфигурация кадамында биз буга кайрылабыз.

3rd - J1- Pin # 5 - SCNn - Бул Raspberry Pi "CS0" менен туташкан (Pin # 24). Натыйжалуу, бул модулга RPi SPI Bus "Module 0" дарегин берет. Дагы, Raspberry Pi IOS конфигурация кадамында биз буга кайрылабыз.

3 -кадам: Менин Circuit Board

Менин Circuit Board
Менин Circuit Board
Менин Circuit Board
Менин Circuit Board
Менин Circuit Board
Менин Circuit Board

Мен түзгөн Eagle "Point to Point" схемасы тиркелип, аны менен Гербер файлдарын түздүм.

Бул долбоор үчүн мен түзгөн "Райондук тактанын" сүрөттөрү дагы тиркелет.

Бул такта WIZ820io стилиндеги бир катар Wiznet продуктуларын кабыл алат.

4 -кадам: Raspberry Pi IOS (мурунку Raspian) конфигурациясы - "жүктөө" папкасындагы жазуулар

Raspberry Pi IOS (мурунку Raspian) конфигурациясы
Raspberry Pi IOS (мурунку Raspian) конфигурациясы

Raspberry Pi үчүн SPI шинасында жаңы орнотулган WIZ820io модулун "көрүү" үчүн, IOS кабардар болушу керек, андыктан ал "BOOT Up" учурунда аны чече алат.

Бул үчүн, биз жөн гана эки сапты кошобуз:../../boot/config.txt

Биринчиден.. Терминалдын терезесин колдонуу / терезе ==> ls

cd../boot,../bootко өтүңүз жана каталогду (ls) тизмектеңиз

Тиркелген сүрөткө шилтеме.. Ал жерде сиз эки жазуунун бар экендигин издеп жана ырасташыңыз керек - мен аларды кызыл менен тегеректеп алдым.

Бири файл деп аталат: "config.txt"

Экинчиси: "катмарлар" деп аталган папка

== == == ==

Бул экөөнүн тең бар экенин ырастагандан кийин, кийинки кадамга өтсөңүз болот

5 -кадам: Raspberry Pi IOS (мурунку Raspian) конфигурациясы - "катмарлар" каталогундагы жазуулар

Raspberry Pi IOS (мурунку Raspian) конфигурациясы
Raspberry Pi IOS (мурунку Raspian) конфигурациясы
Raspberry Pi IOS (мурунку Raspian) конфигурациясы
Raspberry Pi IOS (мурунку Raspian) конфигурациясы
Raspberry Pi IOS (мурунку Raspian) конфигурациясы
Raspberry Pi IOS (мурунку Raspian) конфигурациясы

Каталогду "катмарлар" каталогуна өзгөртүү

Түрү: CD катмарлары

"Enter" баскычын баскандан кийин, сизди "катмарлар" папкасына алып барат (тиркелген сүрөттү караңыз).

Каталогдун мазмунун тизмектеңиз.

Түрү: ls

"Enter" баскычын баскандан кийин, сиз ошол каталогдун мазмунунун узун тизмесин көрүшүңүз керек. Тизме алфавиттик түрдө болушу мүмкүн.

(тиркелген сүрөттөрдү караңыз (2нин)). Дээрлик БАРДЫК файлдар: *.dtbo кеңейтүүсү менен аталып калганына көңүл бурсаңыз, сиз: *.dtb кеңейтүүсү менен аталган бир нече кишини байкай аласыз.

Бул БААРЫ "Device Tree" катмарлуу файлдары

Сиз эки "кабатталган" файлдын бар экендигин ырасташыңыз керек (тиркелген сүрөт файлдарын караңыз).

1 - файл: anyspi.dtbo (бул үчүн, сиз терезенин оң жагындагы жылдыруу тилкесин колдонуп, кайра жогору карай жылып, алфавиттик тартипте anyspi.dtbo табышыңыз керек болот).

2чи - w5500.dtbo аттуу файл

== == ==

Эгерде сиз бул файлдардын экөө тең бар экенин ырастай алсаңыз, анда сиз жакшы абалдасыз жана../boot каталогуна кайта аласыз.

Түрү: cd../ ENTER баскычын баскандан кийин, сиз / boot каталогуна кайра алып барышыңыз керек.

Ырастоо үчүн каталогду тизмектеңиз: ls териңиз жана ENTER баскычын басыңыз

6 -кадам: Raspberry Pi IOS (мурунку Raspian) конфигурациясы - Файлды түзөтүү: Config.txt

Raspberry Pi IOS (мурунку Raspian) конфигурациясы - Файлды түзөтүү: Config.txt
Raspberry Pi IOS (мурунку Raspian) конфигурациясы - Файлды түзөтүү: Config.txt
Raspberry Pi IOS (мурунку Raspian) конфигурациясы - Файлды түзөтүү: Config.txt
Raspberry Pi IOS (мурунку Raspian) конфигурациясы - Файлды түзөтүү: Config.txt
Raspberry Pi IOS (мурунку Raspian) конфигурациясы - Файлды түзөтүү: Config.txt
Raspberry Pi IOS (мурунку Raspian) конфигурациясы - Файлды түзөтүү: Config.txt

../Boot каталогунда биз азыр аталган файлга бир нече кичине түзөтүүлөрдү киргизүү үчүн иштей алабыз: config.txt

Биз адегенде "нано" редакторун "супер колдонуучу" катары чакырабыз (sudo)

sudo = 'супер колдонуучу'

нано - биз колдонгон текст редактору

жана айтылгандай, config.txt биз түзөткүбүз келген файл.

Түрү: sudo nano config.txt жана ENTER басыңыз.

Бул редакторду алып келет жана config.txt файлынын мазмунун көрсөтөт. Эгерде редактор ачылбаса же бош ачылса, анда чыккыла (эгер нанодо болсо) жана орфографияңызды эки жолу текшериңиз.

Эгер баары ойдогудай болсо, анда экинчи тиркелген сүрөттөгүдөй нерсени көрүшүңүз керек. "нано" файлдын эң "үстүн" көрсөтөт. сиз эң ылдый карай ылдый жылдырышыңыз керек.

Файлдын эң ылдый жагына төмөндөгү эки "dtoverlay билдирүүсүн" кошуңуз:

dtoverlay = anyspi, spi0-0, dev = "w5500", ылдамдык = 30000000dtoverlay = w5500

Бардык орфографияны эки жолу текшериңиз, жана эгер дал келсе, чыгуу үчүн "Ctrl-x" эки баскычын басыңыз.. сактоо жана чыгуу үчүн тийиштүү түрдө жооп бериңиз.

== == == ==

Кийинки жүктөөдө (жана андан кийин бардык жүктөөлөр үчүн, эгерде ошол эки билдирүү ошол жерде калса), операциялык система эми "anyspi" жана "w5500" деп аталган катмарды чакырат.

"Anyspy" кабаты SPI0-0 автобусун колдонууга операциялык системаны даярдайт (бул жерде биз мурда WIZ820ioду физикалык түрдө туташтырганбыз. "-0" аны "0" дарегин колдонуу үчүн аныктайт-биз мурда WIZ820io пин туташтырганбыз #J1-6 RPi GIPO "башкы директоруна" (Pin #24).

"W5500" катмары операциялык системага WIZ820io модулунда жайгашкан W5500 интегралдык схемасы менен кантип иштөө керектигин айтат. Ошондой эле INTN сигналы катары RPi GPIO25 (Pin #22) колдонууну аныктайт. Дагы бир жолу эсиңизде болсун, биз мурда бул байланышты түзгөнбүз.

Мындай маалыматты GITHubдан табылган бир мисал сыяктуу ар кандай файлдардан тапса болот.

== == ==

RPIди кайра жүктөө убактысы жана мунун баары күчүнө кириши керек.

7-кадам: Биз кайра жүктөлдү. Сиз жылмайып жатасыз деп үмүттөнөм

Биз кайра жүктөдүк. Сиз жылмайып жатасыз деп үмүттөнөм
Биз кайра жүктөдүк. Сиз жылмайып жатасыз деп үмүттөнөм
Биз кайра жүктөдүк. Сиз жылмайып жатасыз деп үмүттөнөм
Биз кайра жүктөдүк. Сиз жылмайып жатасыз деп үмүттөнөм

Эгер баары ойдогудай болсо, сиздин RPi кадимкидей кайра жүктөлүшү керек. Жылмайыңыз.

IOSтун эки жаңы файлды жүктөгөнүн жана тиркелген WIZ820io модулун тааныганын текшерүү убактысы келди.

Дагы бир жолу "Command" терезесин ачыңыз.

Бул ирет ifconfig териңиз (же жаңы "ip" командасын колдонуңуз) жана Enter баскычын басыңыз.

Сиз, балким, узун жооп аласыз, андыктан кайра өйдө карай жылдырууңуз керек болот.

Үстүнкү жагында, эки бөлүмдү издеңиз:

Бири eth0, экинчиси: eth1 - тиркелген сүрөттү караңыз.

Менин тутумумда, eth0 - RPIдеги Ethernet порту. eth1 - бул жаңы WIZ820io Ethernet порт.

== == ==

Эгерде сиз эки портту көрүп жатсаңыз, анда RPI да ошондой. Тиркелген сүрөттөгү эскертүү, eth1 пакеттерди жөнөткөн жана катасыз.

Мен муну баштапкы порт кабелин ажыратып, браузерди колдонуу менен YouTube жана башка вебсайттарга текшерип көрдүм.. Ал иштейт. Мен аны бир нече башка түзмөктөн "пинг" кылдым жана ал иштейт.

== == ==

Эгерде сиз RPI3 же RPi4теги eth0дон башка eth1 (же окшош нерсени) көрбөй жатсаңыз, анда кайра кайтып келип, config.txtтин туура редакцияланганын жана сакталганын текшерип көрүңүз. Эки катмар орун алганын жана орфографиянын туура экендигин текшериңиз (менде жок болгон чоң тамгалар жок - бул тутумда баш тамгалар маанилүү).

== == ==

Эгерде эки порт бар болсо, анда кийинки кадамга өтүү үчүн бир аз конфигурация иштери болушу мүмкүн …

8 -кадам: Raspberry Pi IOS (мурунку Raspian) конфигурациясы - IP дарегин коюу

Бул менин дөңгөлөктүү үйүмдөн бир аз алыс, ошондуктан мен азырынча көрсөтмө бере албайм.

Мындай маалыматты берген сансыз вебсайттар, YouTube видеолору жана билдирүү такталары бар экенин билиңиз.

бирок.. сиз текшерип, бул жерде бир нече нерсени кылгыңыз келиши мүмкүн.

1 - Жаңы портуңуздун учурдагы IP дарегин эки жолу текшериңиз. бул сиздин DHP сервериңиз тарабынан дайындалганбы же демейки IPби - 169.254.xxx.yyy диапазонунда бир нерсе? Башка нерсе беле ??

2- Сиз статикалык (туруктуу) IP дарегин же Динамикалык IP дарегин (DHCP сервериңиз тарабынан дайындалган) каалайсызбы?

Сиздин RPI туташкан которгучту / роутерди текшериңиз.. ал сиздин жаңы портуңузду көрөбү? аны "пинг" кыла алабы? (эгер муну кылсаңыз, баштапкы порт кабелин ажыратууну унутпаңыз - антпесе RPi сизди алдап коюшу мүмкүн).

Ifconfig (же жаңы "ip" буйругун) колдонуп, келип -кетип жаткан маалыматтар "кадимкидей" (мындайча айтканда) жана ашыкча катасыз болуп жатканын көрүңүз.

== == ==

Акырында.. Мен ишенем, бул w5500.dtbo WIZ820io / W5500 модулуна MAC дарегин дайындайт.. бирок мен так ошондой деп айта албайм. Мен бул боюнча дароо маалымат таба алган жокмун.

Мен үчүн, ар бир жүктөлгөндө башка MAC дареги дайындалат окшойт. Мага жеке жакпайт, демек, Mac дарегин орнотуу үчүн жасала турган нерселер бар (мисалы, "macchanger" программасы же аны ip / ifconfig буйруктары аркылуу коюу). Эгер кимдир бирөөңүз буга "жүктөө" / "crontab" чечимин тапсаңыз, эгер сиз бөлүшүүгө ачык болсоңуз, муну кантип жасооңузду угууга кубанычта болом.

Сиз сүрөттө менин менчегимди көрө аласыз.. Mac дарегинин сатуучусун eth0 ==> b827eb үчүн карасам, ал Raspberry Pi Foundation деп чыгат. Eth1 ==> fa9770 үчүн сатуучу белгисиз болуп чыгат, демек, бул менин Пиимде бир убакта пайда болгон.

9 -кадам: Жыйынтык

Бул Нускаманы текшергениңиз үчүн рахмат.

Мен бул кичинекей долбоор аркылуу көп нерсени үйрөндүм.

Эгерде сизде кандайдыр бир суроолор болсо, же мен түзгөн тактайлардын бирин сатып алууга кызыкдар болсоңуз (калк толгонбу же жокпу), менде сатыла турган жана биз талкуулай турган кошумча нерселер бар.

Кандай болбосун, мен сизди комментарий калтырууга, оңдоолорду сунуштоого чакырам (каталар же ыкмалар же ??)

Албетте, эгер сиз муну өзүңүз үчүн жасай турган болсоңуз, мен аны кантип чечкениңиздин сүрөттөрүн жана акыркы жыйынтыктарыңызды / максаттарыңызды көрүп абдан кубанычта болом.

Рахмат.

P. S.: Жетекчилик жана идеялар үчүн бул кишиге рахмат.

10 -кадам: DTBO файлдары

Каптоо папкасына кошуу үчүн эки файл - #4 жана #5 -кадамдар үчүн керек

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