Например TDA7294

Форум РадиоКот • Просмотр темы - про реализацию стека для ENC28j60
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Вт апр 16, 2024 10:05:16

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: про реализацию стека для ENC28j60
СообщениеДобавлено: Пн янв 30, 2017 06:52:19 
Встал на лапы

Зарегистрирован: Пн дек 06, 2010 12:26:45
Сообщений: 98
Рейтинг сообщения: 0
Здравствуйте коты!
Когда то давно нашел в Интернете пример использования ENC28J60 - проект WEB_TIMER
автор подписался так: * Created: 30.11.2014 17:31:19
* Author: stalin

Более найти не могу, а то бы указал ссылку, поэтому прикреплю архив,
Там реализован http сервер

Хотел поменять используемый порт SPI на PORTА (реализовано же программно, правильно?)
Убился, не пойму зачем строка в файле enc28j60.h :
#define SPI_SS (1<<PB4) // для нормальной работы SPI вывод SS должен быть настроен либо как выход либо как вход и на нем должна быть лог. 1

что за линия SS - нет такой на модуле с чипом ENC28j60

Понимаю что схема бы помогла - но нет её
Может какие мысли будут без неё, может кто использовал этот пример


Вложения:
Комментарий к файлу: пример http сервера
WEB_TIMER.rar [200.86 KiB]
Скачиваний: 178
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: про реализацию стека для ENC28j60
СообщениеДобавлено: Пн янв 30, 2017 07:50:31 
Родился
Аватар пользователя

Зарегистрирован: Сб янв 09, 2016 23:58:44
Сообщений: 14
Рейтинг сообщения: 0
SS - это Slave Select его еще называют CS - отвечает за выбор конкретного устройства на шине SPI.

Вы похоже не читали про SPI шину иначе таких вопросов бы не возникало.

3 сигнала общие для всех устройств
MOSI - Master Output Slave Input - выход данных с ведущего(микроконтроллера)
MISO - Master Input Slave Output - вход данных на ведущий(микроконтроллер)
SCK - Стробирующий сигнал обеспечивает синхронность данных

SS(CS) - отдельный для каждого устройства - пока неактивен остальные 3 должны "висеть в воздухе" - 3 состояние не 0 и не 1.

Когда начинается работа с устройством SS устанавливается в активный уровень(обычно низкий)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: про реализацию стека для ENC28j60
СообщениеДобавлено: Пн янв 30, 2017 12:32:47 
Встал на лапы

Зарегистрирован: Пн дек 06, 2010 12:26:45
Сообщений: 98
Рейтинг сообщения: 0
Смутило вот что
#define ENC28J60_SPI_CS (1<<PB2)
#define ENC28J60_SPI_MOSI (1<<PB5)
#define ENC28J60_SPI_MISO (1<<PB6)
#define ENC28J60_SPI_SCK (1<<PB7)
#define SPI_SS (1<<PB4) // для нормальной работы SPI вывод SS должен быть настроен либо как выход либо как вход и на нем должна быть лог. 1

Добавлено after 2 hours 14 minutes 46 seconds:
Состряпал я болваночку, убрал всё лишнее использую только lan.c и enc28j60.c:
Спойлер
Код:
//....тут стандартные инклуды - пропустил
#include "lan.h" //работа по TCP c 28J60

uint32_t tick_count=0;//возвращает количество мс с момента включения питания. Назначение мне пока не очень ясно...

ISR( TIMER2_OVF_vect )   //   1 кГц
{
tick_count++;//счетчик числа милисекунд от начала включения  - нужно для lan.c
}//1кГц


uint8_t tcp_listen(uint8_t id, eth_frame_t *frame)
{
// Коллбэк, вызываемый при получении запроса на соединение. Должен возвращать ненулевое значение, если приложение
// подтверждает соединение. id — индекс соединения (которое будет открыто, если приложение подтвердит установку
// соединения), frame — указатель на буфер пакета, содержащий полученный пакет   

   ip_packet_t *ip = (void*)(frame->data);
   tcp_packet_t *tcp = (void*)(ip->data);

   if (tcp->to_port == htons(80))   return 1;
   else                     return 0;
}   


// Коллбэк, вызываемый при получении данных по TCP. id — индекс соединения, frame — указатель на буфер пакета, len — количество полученных полезных данных
void tcp_write(uint8_t id, eth_frame_t *frame, uint16_t len)
{
   ip_packet_t *ip = (void*)(frame->data);
   tcp_packet_t *tcp = (void*)(ip->data);
   char *req = (void*)tcp_get_data(tcp);
   
///ИспользуемПолученнуюСтроку((unsigned char*)req);
wdt_reset();
}//proc



int main (void)
{
ip_addr = IP_ADDR;//определены в lan.h
ip_mask = IP_SUBNET_MASK;
ip_gateway = IP_DEFAULT_GATEWAY;

tick_count = 0;
lan_init();
sei();
wdt_enable(WDTO_1S);

while(1)
{
 lan_poll();
 wdt_reset();
}//while


}//main

Ожидал увидеть ответ на ping. Да не тут то было!
Вроде подвисает на lan_init();
В чём дело???

Добавлено after 1 hour 49 minutes 58 seconds:
Вопрос выродился вот в какой:
Помогите переделать функцию - из аппаратной реализации SPI:
Код:
uint8_t enc28j60_rxtx(uint8_t data)
{
   SPDR = data;
   while(!(SPSR & (1<<SPIF)))
      ;
   return SPDR;
}
#define enc28j60_rx() enc28j60_rxtx(0xff)
#define enc28j60_tx(data) enc28j60_rxtx(data)


сделать программную, на максимальной скорости кварца, где порты заданы так:
Код:
#define ENC28J60_SPI_SCK   (1<<PA2) 
#define ENC28J60_SPI_MOSI   (1<<PA1) 
#define ENC28J60_SPI_MISO   (1<<PA0)

Помогите а?


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: про реализацию стека для ENC28j60
СообщениеДобавлено: Сб фев 04, 2017 00:48:51 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1289
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4510
Откуда: Планета Земля
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
SPI - самый элементарнийший интерфейс. Какие тут могут возникнуть проблемы ? Обычный ногодрыг :facepalm:
Да и в тырнэте по нему инфы - море. Даже не море, а океан...


Вернуться наверх
 
Организация питания на основе надежных литиевых аккумуляторов EVE и микросхем азиатского производства

Качественное и безопасное устройство, работающее от аккумулятора, должно учитывать его физические и химические свойства, профили заряда и разряда, их изменение во времени и под влиянием различных условий, таких как температура и ток нагрузки. Мы расскажем о литий-ионных аккумуляторных батареях EVE и нескольких решениях от различных китайских компаний, рекомендуемых для разработок приложений с использованием этих АКБ. Представленные в статье китайские аналоги помогут заменить продукцию западных брендов с оптимизацией цены без потери качества.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: про реализацию стека для ENC28j60
СообщениеДобавлено: Сб фев 04, 2017 11:28:38 
Друг Кота
Аватар пользователя

Карма: 62
Рейтинг сообщений: 840
Зарегистрирован: Вт апр 24, 2007 07:45:40
Сообщений: 5592
Откуда: Minsk
Рейтинг сообщения: 7
Не думаю, что программно можно достичь большей скорости, чем аппаратным способом, который можно настраивать в очень широком диапазоне скоростей.
СпойлерИ если уж дозарезу "на максимальной скорости кварца", то уж никак не на Си. Я так думаю. И не раздувания флейма ради, а вспоминания прописных истин для.

_________________
Изображение


Вернуться наверх
 
Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: про реализацию стека для ENC28j60
СообщениеДобавлено: Ср фев 08, 2017 06:48:43 
Потрогал лапой паяльник
Аватар пользователя

Карма: 1
Рейтинг сообщений: 14
Зарегистрирован: Сб сен 19, 2009 07:02:19
Сообщений: 378
Рейтинг сообщения: 0
Здесь цикл статей:
http://easyelectronics.ru/ethernet-modu ... 28j60.html


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 6 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y