| Автор |
Съобщение |
|
darkyp
Ранг: Ориентиран
Регистриран на: Пон Дек 12, 2005 6:03 pm Мнения: 263 Местоположение: София
|
 18F66J60 - Проблем с Етернет-а
Подкарах един такъв контролер. Програмирах го - диода мига  Етернета светва когато има кабел. За да разбера, че всичко правя както трябва и го пипам подобаващо му размених софтуерно значението на двата диода. Става. После почнах да мятам пакети (UDP за най-лесно). Става, обаче само донякъде. Диода конфигуриран да показва активността по мрежата мига когато изпраща. Насрещното устройство - суич с прав кабел или PC с кроснат също мига. Обаче на PC-то (XP) нищо не се засича. Не се увеличават received пакетите. Wireshark нищо не хваща. Реших, че не пълня добре етернет буфера - за целта след като го запиша после го изчитам и го записвам във flash-а. Ами едно към едно е. Погледнах сигнала на осцилоскопа. Вървят там някви вълни.
Същия пакет го изпращам без проблем с ENC28J60 и един PIC16F88. Вълните на осцилоскопа са подобни (подобни от към честота и амплитуда, защото е по-простичък 60MHz и не може да се види кой знае какво). Wireshark го вижда, UDP програмата ми го получава.
Единственото, което ми идва наум, е ако Ethernet CRC-то не се смята и не се добавя. Ама на какво ли да се дължи? Всичките реггистри съм ги конфигурирал уж правилно.
Ако на някой му идват други идеи моля да сподели, че аз за сега съм без. Ако е необходимо ще постна сорса.
Благодаря!
|
| Пон Май 05, 2008 7:08 am |
|
 |
|
mndsl
Ранг: Новодошъл
Регистриран на: Вто Май 23, 2006 4:56 pm Мнения: 113 Местоположение: Варна
|
Размени пиновете TPIN+ и TPIN-
|
| Вто Май 06, 2008 10:53 pm |
|
 |
|
darkyp
Ранг: Ориентиран
Регистриран на: Пон Дек 12, 2005 6:03 pm Мнения: 263 Местоположение: София
|
Благодаря за идеята. В интерес на истината и на мен ми дойде по едно време, но я отхвърлих след като си проверих връзките от пиновете до RJ/Traf-а и след като гледах на осцилоскопа. Ще пиша пак след като пробвам, че в момента нямам възможност.
|
| Чет Май 08, 2008 11:19 am |
|
 |
|
darkyp
Ранг: Ориентиран
Регистриран на: Пон Дек 12, 2005 6:03 pm Мнения: 263 Местоположение: София
|
Нямах успех. Нито с разменени TPIN-/+ нито с разменени TPOUT-/+.
|
| Нед Май 11, 2008 9:46 am |
|
 |
|
mndsl
Ранг: Новодошъл
Регистриран на: Вто Май 23, 2006 4:56 pm Мнения: 113 Местоположение: Варна
|
Ping поне има ли? С коя версия на стека си, всичко правилно ли е конфигурирано? Дай малко повече инфо.
|
| Нед Май 11, 2008 9:04 pm |
|
 |
|
darkyp
Ранг: Ориентиран
Регистриран на: Пон Дек 12, 2005 6:03 pm Мнения: 263 Местоположение: София
|
Без стек съм. За UDP не ми трябва. Програмата ми е от-до моя, asм. Пращам един статичен пакет, който съм си изградил сам, т.е. самото MCU не го смята. Има си го във флаша и от там го слага в буфера на Ethernet модула. Същия пакет ползвам и при ENC28J60 + PIC16F88 където работи. В самия пакет дари да има грешки Wireshark трябва да го хваща. Няма да го хване ако се филтрира от NIC-а на PC-то поради грешка в CRC на ниво Ethernet. Между другото има ли нещо което да покаже колко грешни пакета, pause фрейми и т.н. примерно е хванал NIC-а на PC-то? Това ми дойде сега като идея, поне ще видя какъв му е проблема (може би зависи от драйверите и самия хардуер, но си струва да се заровя). Сега и ще потърся.
|
| Нед Май 11, 2008 10:23 pm |
|
 |
|
ike
Ранг: Форумен бог
Регистриран на: Пет Фев 04, 2005 9:59 pm Мнения: 6019 Местоположение: София
|
Не разбирам от микроконтролери.
Но ако имах такъв проблем бих направил следната постановка PIC-switch-PC.
От този линк http://www.dcs.gla.ac.uk/~lewis/network ... tFrame.htm
констуирам EthernetFrame с Preamble , Start frame delimiter , MAC dest addresses за по безопасно бих написал FF-FF-FF-FF-FF-FF за броадкаст. За MAC source addresses бих избрал някой от друг компютър взет защото мисля че не може да е изцяло рандом мисля че има и резервирани MAC addresses. След това Length/EtherType. 100 байта данни. И най-важното Checksum CRC-32. Гледаш първо switch-а. Ако той мига значи пакета е ОК. Ако има грешка ще го дропне(изхвърли). Ако мига switch-а поглеждаш дали мига лан картата на РС-то. Ако мига значи нещо е стигнало до него. За ХР сп2 любимия ми снифер е http://www.ethereal.com/ . Успех и кажи какво е станало.
_________________ Warriors of the Night, ASSEMBLER!!!
|
| Пон Май 12, 2008 1:08 am |
|
 |
|
darkyp
Ранг: Ориентиран
Регистриран на: Пон Дек 12, 2005 6:03 pm Мнения: 263 Местоположение: София
|
PIC-а сам си прави Preamble, Start frame delimiter, останалите байтове ги пиша аз (примерно 256 данни + хх UDP/IP хедъри), CRC-32 съм оставил той да си го прави. Switch-а мига. PC от switcha не мига. PC мига ако го вържа без switch към PIC-а с кроснат кабел. Не съм пробвал с broadcast dest mac. Ще пробвам, въпреки че дори адреса да не е този на PC-то снифера трябва да хване пакета във варианта с кроснат кабел.
Wireshark е наследника на Ethereal.
[edit]Пробвах с FF-FF-FF-FF-FF-FF за dst mac през switch-а - няма щастие.[/edit]
|
| Пон Май 12, 2008 7:23 am |
|
 |
|
goose
Ранг: Популярен
Регистриран на: Сря Окт 03, 2007 3:39 pm Мнения: 311
|
Намери си хъб отнякъде и пробвай да видиш какво тече през него, за разлика от суича той си е просто водопроводна тръба и каквото влезе, това и излиза от него :>
|
| Пон Май 12, 2008 12:06 pm |
|
 |
|
darkyp
Ранг: Ориентиран
Регистриран на: Пон Дек 12, 2005 6:03 pm Мнения: 263 Местоположение: София
|
същото го правя с кроснатия кабел директно към NIC-а на PC-то.
|
| Пон Май 12, 2008 3:59 pm |
|
 |
|
darkyp
Ранг: Ориентиран
Регистриран на: Пон Дек 12, 2005 6:03 pm Мнения: 263 Местоположение: София
|
Сега видях, че Wireshark вади статистики поддържани от драйвера на мрежовата карта и прилича да изписва бройката грешни пакети (грешни в какъв смисъл не разбрах) и грешни поради CRC. След няколко дена ще опитам пак, пък да видим.
|
| Пон Май 12, 2008 4:17 pm |
|
 |
|
ike
Ранг: Форумен бог
Регистриран на: Пет Фев 04, 2005 9:59 pm Мнения: 6019 Местоположение: София
|
Това означава че пакета не е читав и switcha го дропи.
Пробвай с ръчно сметнат CRC-32.
_________________ Warriors of the Night, ASSEMBLER!!!
|
| Пон Май 12, 2008 5:08 pm |
|
 |
|
relsys
Ранг: Форумен бог
Регистриран на: Пет Ное 25, 2005 11:41 am Мнения: 1680
|
Имам работеща постановка с 97J60, ако искаш дай кода да го тествам.
|
| Пон Май 12, 2008 10:32 pm |
|
 |
|
darkyp
Ранг: Ориентиран
Регистриран на: Пон Дек 12, 2005 6:03 pm Мнения: 263 Местоположение: София
|
На лично е. Благодаря за което!
|
| Вто Май 13, 2008 1:05 am |
|
 |
|
darkyp
Ранг: Ориентиран
Регистриран на: Пон Дек 12, 2005 6:03 pm Мнения: 263 Местоположение: София
|
Експериментирах малко. На PC-то с Realtek 8139 няма статистика за CRC/FCS грешки. На лаптопа с Broadcom има. С Wireshark се показват като бройка, без самите пакети. Резултатът е, че Received packets е 0, а CRC/FCS и Alignment errors непрекъснато растат като бройка... Ще изчакам relsys да каже дали проблема е в кода или в мойта постановка.
|
| Пет Май 16, 2008 10:25 am |
|
|