Fórum Root.cz
Hlavní témata => Vývoj => Téma založeno: Johny 29. 01. 2013, 15:11:40
-
Má někdo zkušenosti s ovládáním AVR prostřednictvím ethernetu?
Na internetu jsem našel plno návodů jak tohle postavit pomocí ENC28j60 a rozchodit to pod bascomem, kde by to po úpravě dodaného zdrojáku mělo vše hned frčet.
To co mi leží v hlavě je to že bych použil něco co někdo nějak vytvořil a já nemám moc páru jak to funguje(teoreticky ano, ale chci znát i přesný význam syntaxe).
Na google jsem toho moc nenašel co by mi objasnilo "co je co", tak pokud je tu někdo, kdo hledal podobný info zdroj a byl by ochotný mi ho sdělit... byl bych mu velice zavázán.
Popřípadě co by jste volili raději? Bascom nebo C?
-
ENC28J60 funguje, ale není to bez práce a není to hned, je s tím drbání tak na 1-4 týdny podle štěstí. Jazyk bezvýhradně C.
Jestli to chceš hned a bez práce, kup si Lantronic XPort.
-
Ještě můžeš použít Wiznet 5100. Používá se často v Arduino shieldech, takže jsou k tomu slušné C++ knihovny.
Jazyk: jednoznačně C nebo C++, podle vkusu.
P.S. nevěřím, že jsi dostatečně googlil. "avr ethernet" i "arduino ethernet" dává spousty relevantních odkazů i se zdrojáky.
-
ENC28j60 rozslapat a vyhodit horici z okna. Taky jsem pro wiznet, delal jsem s tim na arduinu jednou a fungovalo to korektne, sice jsem mel problem s tim, ze mi to zralo stavu z USBcka, takze se to nejak sekalo, ale po pripojeni adapteru k usb hubu to jelo v poho...
-
sice jsem mel problem s tim, ze mi to zralo stavu z USBcka
Wiznet zere hodne. Dokonce mi jednou nejel s tenkym USB kabelem - když jsem nasadil tlustší, bylo to najednou v pohodě. Potvora :)
-
To co mi leží v hlavě je to že bych použil něco co někdo nějak vytvořil a já nemám moc páru jak to funguje(teoreticky ano, ale chci znát i přesný význam syntaxe).
V tom pripade si napis cely TCP/IP stack pro AVR sam jako ja :) Ja to psal z duvodu ze uIP pouziva priserne rozhrani a byl jsem zvyklej na rozhrani typu BSD sockets - z PHP a pozdeji C. Takze jsem si udelal vlastni stack a vim presne jak se to chova, co od toho muzu a nemuzu cekat a jak se to ovlada. Uznavam, ze to je hodne prace navic a dnes je jednodussi si poridit nejaky ARM kde bude linuxovy kernel a lze si s tim jednoduseji hrat.. ale kdo chce jit do hloubky, at se do toho pusti :)
-
No našel jsem tohle http://www.hobbycomponents.com/index.php?route=product/product&product_id=162 a došel rychle k názoru, že asi bude rychlejší použít uvedené knihovny :O/
Bohužel se mi jeví ENC28J60 za pomocí výše uvedeného linku jako rychle uveditelné do provozu. Tak u toho taky asi zůstanu.
V C si pak napíšu aplikaci serveru a klienta (AVR + ENC28J60), který se bude na server připojovat v zadaných intervalech a nahrávat sejmutá data. Myslím, že i tak to bude dost práce....
-
no jo napsal bych si to sám, ale nemám o tom vůbec ponětí jak to funguje.
Potřebuju nějakou kuchařku a tu sem nikde na netu nenašel :/
-
K té knihovně v tom linku je aspoň nějaký popis, za pomocí kterého budu aspoň schopný realizovat jednoduché kontrolní zařízení...
-
Bohužel se mi jeví ENC28J60 za pomocí výše uvedeného linku jako rychle uveditelné do provozu.
Vyžaduje to ale knihovnu, která je v kdovíjakém stavu. Pro Wiznet je knihovna dobře odzkoušená, protože se s Arduinem běžně používá.
http://arduino.cc/en/Reference/Ethernet
O ENC vs. Wiznet se dá vygooglit spoustu debat. Viz např.: http://arduino.cc/forum/index.php?topic=50488.0
The 28J60 is much harder to understand and takes more experience to bring up.
-
Jelikož jsem v tomhle fakt novopečenej, tak bych si to rád shrnul.
Takže mám Atmge32 a chci řídit třeba ledku.
Abych AVR propojit s ethernetem připojím pomocí SPI vhodný IO.
Buď tedy ENC28J60 nebo wiznet.
Tyto zařízení se neprogramují, pouze komunikují pomocí includovaných knihoven do programu AVR.
A podle Vás je tedy lepší použít Wiznet, protože je má lepší support své knihovny.
Je tomu tak?
-
Abych AVR propojit s ethernetem připojím pomocí SPI vhodný IO.
Buď tedy ENC28J60 nebo wiznet.
Tyto zařízení se neprogramují,
Ano. Ještě se hodí mít jeden pin připojený na reset toho čipu - možnost hardwarově zresetovat se šikne. Někteří lidi mají s náběhem Wiznetu trochu problémy (hodí se po náběhu avr wiznet hw zresetovat a počkat).
pouze komunikují pomocí includovaných knihoven do programu AVR.
Přesněji includovaných a přilinkovaných :)
A podle Vás je tedy lepší použít Wiznet, protože je má lepší support své knihovny.
Podle mě jo - vždycky je lepší použít něco, co používá víc lidí, zvlášť když jsem začátečník.
-
Super!
Měl bych ještě jeden dotaz...
Mám tedy AVR k tomu připojený IO pro čtení čipových karet pomocí RS232.
Po načtení karty potřebuji data ověřit(i zapsat) v MYSQL a podle toho se kontakt sepne nebo nesepne.
Je vůbec možné vytvořit program pro AVR a pomocí WIZNETU a "propojit" program v AVRku s mysql (že bych začlenil mysql_query do programu AVR) ?
Nebo je spíš reálnější napsat program co sejme data ze čtečky, odešle je na server , kde se provede ověření + zápis a odeslání informace o zdaru/nezdaru validace karty?
-
Je vůbec možné vytvořit program pro AVR a pomocí WIZNETU a "propojit" program v AVRku s mysql (že bych začlenil mysql_query do programu AVR) ?
Nebo je spíš reálnější napsat program co sejme data ze čtečky, odešle je na server , kde se provede ověření + zápis a odeslání informace o zdaru/nezdaru validace karty?
Nevím, jak je protokol MySQL složitý, ale pokud chceš jít cestou nejmenšího odporu, udělej si k té databázi nějaké jednodušší rozhraní, klidně webovou službu - na http requesty máš opět knihovnu, bude stačit to jenom spojit všechno dohromady. Napsat webovou službu šahající do db není žádné raketové inženýrství a pro PC se to bude psát pohodlněji než pro avr.
Jenom se nelekni toho, že ty nejdostupnější knihovny jsou psané nad knihovnami Arduina - pokud chceš překládat pro Atmegu32, musíš si buď upravit Arduino IDE (zrovna pro tenhle čip to není úplně triviální), nebo musíš mít makefily pro překlad arduiňáckých knihoven - dá se vyjít třeba z těchto: http://playground.arduino.cc/OpenBSD/CLI
Případně trochu zjednodušené funkční makefily můžu i poskytnout, ale vyžadují bsd make (v linuxových distribucích se tomu občas říká pmake). Jestli existují makefily pro GNU Make, to netuším.
-
Tak na to sem našel i návod
http://www.youtube.com/watch?v=J-Mn2yvRe7k
;D
Vypadá, že by to mohlo jít.
Jak sem se koukal na některé sample kódy z Aurdina tak by tedy měl normálně podporovat i objektové programování?
-
Já jen, že bych AVR naprogramoval tak jak sem normálně zvyklý a pak jenom pomocí knihovny pro Wiznet realizoval spojení...
-
Jak sem se koukal na některé sample kódy z Aurdina tak by tedy měl normálně podporovat i objektové programování?
No je to C++, takže "objektové programování" ala C++ :)
-
Super! Hele děkuju moc za rady!
Zítra se do toho pustím :o)