Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
16.10.2010, 11:21
|
|
Вид на жительство
Регистрация: 30.12.2006
Адрес: Junktown
Сообщений: 300
Сказал спасибо: 164
Сказали Спасибо 171 раз(а) в 59 сообщении(ях)
|
Re: Вопросы ENC28J60
Цитата:
|
!AIVDM,1,1,,A,14hn4R802ARC:GnIud3dQ:0P2D1s,0*0A
!AIVDM,1,1,,A,15`:ql0P1u2›a7nI=We7pnBN80S›,0*73
!AIVDM,1,1,,A,17bhov0P1MR›I4HJ;R`L4gvL06Qp,0*37
$GPGGA,,4624.77151,N,03043.48728,E,7,04,,,,,,,*5A
!AIVDM,1,1,,B,143q?F0P0mR‹vWpJV0=DmwvL089N,0*13
!AIVDM,2,1,4,A,A02VEhB1LnNh0OwGlQh3wvBwjlBwvcw0AP0 C04›5P0lwkd60:Cw7P‹0KhD2,0*3
|
Очевидно, эти данные идут в виде текстовой строки, и они заканчиваются числами 0x0D 0x0A (это можно проверить)
По этим числам можно определять конец пакета принимаемых данных, и тогда формировать IP пакет.
__________________
Всегда стремись к недоступному
|
|
|
|
16.10.2010, 15:10
|
|
Частый гость
Регистрация: 01.07.2005
Сообщений: 14
Сказал спасибо: 0
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
|
Re: Вопросы ENC28J60
тогда надо использывать функцию plen=fill_tcp_data_p(buf,plen,PSTR()) только вместо PSTR() нужно передавать указатель на буфер сообщения.
|
|
|
|
17.10.2010, 10:16
|
|
Прохожий
Регистрация: 25.09.2007
Сообщений: 8
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Вопросы ENC28J60
Сообщение от rear
|
Очевидно, эти данные идут в виде текстовой строки, и они заканчиваются числами 0x0D 0x0A (это можно проверить)
По этим числам можно определять конец пакета принимаемых данных, и тогда формировать IP пакет.
|
Так и есть 0x0D 0x0A . И определение пакета будет однозначно .
Пока хочу попробовать хоть что-то передать .
|
|
|
|
17.10.2010, 10:26
|
|
Прохожий
Регистрация: 25.09.2007
Сообщений: 8
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Вопросы ENC28J60
Сообщение от artist
|
тогда надо использывать функцию plen=fill_tcp_data_p(buf,plen,PSTR()) только вместо PSTR() нужно передавать указатель на буфер сообщения.
|
Вот! Спасибо.
Теперь с этой функции по подробнее.
Может даже буду задавать вопросы дурацкие.
Т.е. как я понял сначало у меня в МК должен должен быть буфер с сообщением? Указатель на буфер где в ENC28j60 или в моем МК?
На сколько я понимаю то мои данные я сначала должен передать целиком в буфер передачи ENC28j60 а потом при помощи функции указать на какой адрес и порт нужно кинуть данные из ТХ буфера. Или есть готовая функция ? При этом
ENC28j60 сама разбирается с коллизиями и передачей в сеть как модем.
|
|
|
|
17.10.2010, 11:31
|
|
Частый гость
Регистрация: 01.07.2005
Сообщений: 14
Сказал спасибо: 0
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
|
Re: Вопросы ENC28J60
Нужно но создать буфер в мк в который нужно записать данные с uart, затем передаеш этот буфер функции uint16_t fill_tcp_data(uint8_t *buf,uint16_t pos, const char *s) где const char *s указатель на твои данные а уж функция сама запишет что куда надо while (*s) {
buf[TCP_CHECKSUM_L_P+3+pos]=*s;
pos++;
s++;
}
и вернет указатель конца данных return(pos);
который будет использыватся при следующих обращениях к функции
далее зовеь goto SENDTCP;передает их make_tcp_ack_with_data(buf,plen); там в конце enc28j60PacketSend(IP_HEADER_LEN+TCP_HEADER_LEN_PL AIN+ETH_HEADER_LEN,buf);она отправляет твой пакет enc.
|
|
|
|
17.10.2010, 11:33
|
|
Частый гость
Регистрация: 01.07.2005
Сообщений: 14
Сказал спасибо: 0
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
|
Re: Вопросы ENC28J60
Нужно но создать буфер в мк в который нужно записать данные с uart, затем передаеш этот буфер функции uint16_t fill_tcp_data(uint8_t *buf,uint16_t pos, const char *s) где const char *s указатель на твои данные а уж функция сама запишет что куда надо while (*s) {
buf[TCP_CHECKSUM_L_P+3+pos]=*s;
pos++;
s++;
}
и вернет указатель конца данных return(pos);
который будет использыватся при следующих обращениях к функции
далее зовеь goto SENDTCP;передает их make_tcp_ack_with_data(buf,plen); там в конце enc28j60PacketSend(IP_HEADER_LEN+TCP_HEADER_LEN_PL AIN+ETH_HEADER_LEN,buf);она отправляет твой пакет enc.
"ENC28j60 сама разбирается с коллизиями и передачей в сеть как модем "
да она полностью контролирует передачу и прием.
|
|
|
|
21.02.2011, 14:12
|
|
Прописка
Регистрация: 16.11.2010
Сообщений: 196
Сказал спасибо: 20
Сказали Спасибо 42 раз(а) в 42 сообщении(ях)
|
Re: Вопросы ENC28J60
Народ ни у кого не завалялось схемки в Протеусе для ENC28J60 c PIC18(я буду связывать с PIC18F4620), так чтобы разводкой на RJ-45? Или проще на PIC18F67J60 перебежать, плохо его в Протеусе нет...
Последний раз редактировалось george carpenter; 21.02.2011 в 14:14.
|
|
|
|
21.02.2011, 15:50
|
|
Частый гость
Регистрация: 01.07.2005
Сообщений: 14
Сказал спасибо: 0
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
|
Re: Вопросы ENC28J60
Тогда проще на PIC18F67J60 меньше разводки получится,я сам делал на avr, сейчас подумываю сделать на пике, вот только надо новый программатор делать
|
|
|
|
21.02.2011, 16:20
|
|
Прописка
Регистрация: 16.11.2010
Сообщений: 196
Сказал спасибо: 20
Сказали Спасибо 42 раз(а) в 42 сообщении(ях)
|
Re: Вопросы ENC28J60
Сообщение от artist
|
Тогда проще на PIC18F67J60 меньше разводки получится,я сам делал на avr, сейчас подумываю сделать на пике, вот только надо новый программатор делать
|
Да сам хочу на PIC18F67J60 и схемы разводки есть только плохо в Протеусе его нет.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 20:34.
|
|