Bastl: AVR a ethernet

Johny

Bastl: AVR a ethernet
« kdy: 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?


Rax

Re:Bastl: AVR a ethernet
« Odpověď #1 kdy: 29. 01. 2013, 15:38:04 »
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.

Re:Bastl: AVR a ethernet
« Odpověď #2 kdy: 29. 01. 2013, 15:47:18 »
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.

3ugeene

Re:Bastl: AVR a ethernet
« Odpověď #3 kdy: 29. 01. 2013, 15:49:23 »
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...

Re:Bastl: AVR a ethernet
« Odpověď #4 kdy: 29. 01. 2013, 15:57:49 »
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 :)


RDa

  • *****
  • 2 935
    • Zobrazit profil
    • E-mail
Re:Bastl: AVR a ethernet
« Odpověď #5 kdy: 29. 01. 2013, 16:15:59 »
Citace
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 :)

Johny

Re:Bastl: AVR a ethernet
« Odpověď #6 kdy: 29. 01. 2013, 16:21:57 »
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....

Johny

Re:Bastl: AVR a ethernet
« Odpověď #7 kdy: 29. 01. 2013, 16:23:46 »
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 :/

Johny

Re:Bastl: AVR a ethernet
« Odpověď #8 kdy: 29. 01. 2013, 16:24:35 »
K té knihovně v tom linku je aspoň nějaký popis, za pomocí kterého budu aspoň schopný realizovat jednoduché kontrolní zařízení...

Re:Bastl: AVR a ethernet
« Odpověď #9 kdy: 29. 01. 2013, 16:42:40 »
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.

Johny

Re:Bastl: AVR a ethernet
« Odpověď #10 kdy: 29. 01. 2013, 17:22:21 »
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?

Re:Bastl: AVR a ethernet
« Odpověď #11 kdy: 29. 01. 2013, 17:28:27 »
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.

Johny

Re:Bastl: AVR a ethernet
« Odpověď #12 kdy: 29. 01. 2013, 17:48:48 »
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?


Re:Bastl: AVR a ethernet
« Odpověď #13 kdy: 29. 01. 2013, 17:58:45 »
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.

Johny

Re:Bastl: AVR a ethernet
« Odpověď #14 kdy: 29. 01. 2013, 18:11:08 »
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í?