Jump to content

    
Sign in to follow this  
wless.ru

Wi-Fi-микросхема Atmel WINC1500

Recommended Posts

Это очень хорошая цена за модуль в единичных количествах, но учитывайте, что ПО частично сырое и в граничных условиях есть баги, но они фиксятся оперативно.

Там стоимость $12 при покупке 500 штук. Это на сайте у них так. На mouser.com цены примерно такие же.

Спасибо огромное за ответ!

Мне случайно достался в руки этот ATWINC1500 и он пришелся кстати) Хочу сделать игрушку и если людям понравится, то может попробую опытную партию изготовить.

Раз уж на то пошло, то хотел еще маленький вопросик задать: у меня есть связка SAMD21 (Cortex-M0+ CPU, 48MHz) и этот Wi-Fi модуль. Справится ли такая связка с такими задачками:

1. работать с RSS

2. принимать почту и парсить принимаемый текст

3. принимать команды от устройств в локальной сети (то есть работать как простенький сервер)?

Edited by Расул

Share this post


Link to post
Share on other sites
1. работать с RSS

2. принимать почту и парсить принимаемый текст

3. принимать команды от устройств в локальной сети (то есть работать как простенький сервер)?

Зависит от нагрузки, особенно часть про сервер. В принципе я не вижу особых проблем, принимая во внимание, что сервер работает на МК на 48 МГц.

Share this post


Link to post
Share on other sites
Мне кажется, это придется воспроизводить с D21. Если есть реальная проблема с настоящими роутерами, то это значительно хуже и будет проще ускорить починку.

Давно не писал. После обновления до 18.3 на D21 не удается фатально уронить систему. Работает, не падает. В режиме отправки udp пакетов получил скорость 1.9Мбит/с. Это бесконечный цикл, в котором без пауз засылаются пакеты. Быстрее уже и не сделать.

 

На моей системе с плис скорость udp доходит до 6Мбит/с. Наверно из-за этого на ней иногда происходит фатальное зависание. Так то работа над проектом закончена.

 

ataradov благодарствую!

Share this post


Link to post
Share on other sites

Здравствуйте.

 

Тоже использую данный модуль в связке с ПЛИС. Кто какой скорости достигал в режиме TCP?

Мой показатель пока 5.45 МБ/c. (Режим SPI 24мгц.)

Edited by Inanity

Share this post


Link to post
Share on other sites

Здравствуйте.

А расскажите о своей системе, что за плис используете?

Я tcp чуток задействовал, там буквально несколькими запросами обмен происходит, так что скорость там не нужна.

SPI на 25мгц работает.

По скорости у меня сложилось такое представление.

Вот прикрепил картинку.

Загнать в spi данные можно очень быстро, ничего в принципе не мешает, с частотой 25мгц можно гнать. И получим все 25 мбит/с.

Но на каждый мой sento() приходит прерывание, которое нужно обработать. Обработка заключается в считывании, что же за прерывание пришло, обнуление регистра прерывания в winc, вызов коллбеков. Все это - разовые запросы по spi, а вот они очень медленные у меня получились, пока ниос вызовет функцию, пока ей передаст данные, пока дождется, когда аппаратные spi отправит данные в винк и т.д. На это в лучшем случае у меня получилось 180 тактов частоты 100мгц. И таких порций по 180 тактов уйма.

Потом при вызове sendto() драйвер сперва сообщает винку, что он сейчас будет передавать udp данные, формирует заголовок IP, заголовок UDP и т.д.

Это опять небольшими обращениями по spi. И это опять уйма порций по 180 тактов.

 

У вас скорее всего точно также получается. Сами данные то быстро запихиваются, а вот обработка и подготовка - половина времени.

 

post-52845-1434391663_thumb.png

Share this post


Link to post
Share on other sites
А расскажите о своей системе, что за плис используете?

 

ПЛИС Xilinx Spartan-6. Соответственно microblaze на частоте 96мгц (96/4 = 24 - SPI). Для управления используем исходники атмела (правда, там дикая вложенность в функциях, надо переписывать всё). Первоначально управляли модулем через ядро SPI-AXI, но там CS дергается вручную (записью в регистр), поэтому медленно получалось. Заменили на Quad-SPI-AXI, там CS аппаратный, данные пишутся

в FIFO и отправляются. Отправляем команду, потом 256 байт данных. В таком виде это дало 5.45Мб/с. Пока делаем профайлинг, может можно ещё что-то оптимизировать.

 

Интересно, какой объём данных модуль может за раз принять? т.е. в после одной команды и в течение опущенного CS?

Edited by Inanity

Share this post


Link to post
Share on other sites

Я сперва использовал альтеровский компонент SPI, но после стал искать на чем скорость падает, обнаружил, что их компонент слишком много не нужных (мне не нужных) операций делает, типа, проверка готовности, сброс регистра ошибок чтения, в который выставляется ошибка, если производилась только запись, и т.п. Написал свой spi компонент, это позволило ускорить работу.

 

По поводу объема данных, который модуль может принять за раз.

Посмотрит файл nm_bus_wrapper_samd21.c, там есть такой дефайн: #define NM_BUS_MAX_TRX_SZ 2048

Изначально там 256.

 

Еще посмотрите файл nmbus.c, функцию nm_read_block (в nm_write_block аналогично):

    uint16 u16MaxTrxSz = egstrNmBusCapabilities.u16MaxTrxSz - MAX_TRX_CFG_SZ;
    uint32 off = 0;
    sint8 s8Ret = M2M_SUCCESS;

    for(;;)
    {
        if(u32Sz <= u16MaxTrxSz)
        {
            s8Ret += p_nm_read_block(u32Addr, &puBuf[off], (uint16)u32Sz);
            break;
        }
        else
        {
            s8Ret += p_nm_read_block(u32Addr, &puBuf[off], u16MaxTrxSz);
            if(M2M_SUCCESS != s8Ret) break;
            u32Sz -= u16MaxTrxSz;
            off += u16MaxTrxSz;
            u32Addr += u16MaxTrxSz;
        }
    }

    return s8Ret;

 

По сути, если вы засылаете (или читаете) блок данных по spi, больше, чем NM_BUS_MAX_TRX_SZ-MAX_TRX_CFG_SZ, то драйвер разбивает их на порции.

 

Я с этим столкнулся, когда пытался с помощью sendto() в udp засунуть 1400 байт, и подофигел, увидев в wireshark'e вместо одного пакета аж шесть пакетов.

 

Параметр увеличил до 2048, но по udp максимальный блок засылаю 970 байт, больше - какие то проблемы возникли у драйвера, уже не помню подробности.

Share this post


Link to post
Share on other sites

Не могу загрузить прошивку используя UART. Подключил шнурок непосредственно к модулю, подал питание ChipEnable и сброс.

 

батник для загрузки, поставляемый производителем вываливает следующее

 

Mode UART
Downloading Image...
********************************************
*  >Programmer for WINC1500 SPI Flash<     *
*      Owner:  Atmel Corporation           *
********************************************
Firmware Path (2B0) C:\REL_ATWINC1500_AT_COMMAND_V0_9_1_20160311\firmware_tools\
firmware\m2m_aio_2b0.bin
Firmware Path (3A0) C:\REL_ATWINC1500_AT_COMMAND_V0_9_1_20160311\firmware_tools\
firmware\m2m_aio_3a0.bin
>>Initialize programmer.
Detecting ports...
(APP)(ERR)[nm_bus_port_detect][577]Failed to find any COM ports
0 of ports found
(ERR)Failed To intilize programmer
Fail
   #######################################################################
   ##                                                                   ##
   ##                    ########    ###     ####  ##                   ##
   ##                    ##         ## ##     ##   ##                   ##
   ##                    ##        ##   ##    ##   ##                   ##
   ##                    ######   ##     ##   ##   ##                   ##
   ##                    ##       #########   ##   ##                   ##
   ##                    ##       ##     ##   ##   ##                   ##
   ##                    ##       ##     ##  ####  ########             ##
   ##                                                                   ##
   #######################################################################

 

 

Попытка запустить АТ-прошивку (если она с завода зашита???) тоже не увенчалась успехом. Модуль реагирует на сброс и CE изменяя потребление.

Share this post


Link to post
Share on other sites
Не могу загрузить прошивку используя UART. Подключил шнурок непосредственно к модулю, подал питание ChipEnable и сброс.

 

батник для загрузки, поставляемый производителем вываливает следующее

 

Mode UART
Downloading Image...
********************************************
*  >Programmer for WINC1500 SPI Flash<     *
*      Owner:  Atmel Corporation           *
********************************************
Firmware Path (2B0) C:\REL_ATWINC1500_AT_COMMAND_V0_9_1_20160311\firmware_tools\
firmware\m2m_aio_2b0.bin
Firmware Path (3A0) C:\REL_ATWINC1500_AT_COMMAND_V0_9_1_20160311\firmware_tools\
firmware\m2m_aio_3a0.bin
>>Initialize programmer.
Detecting ports...
(APP)(ERR)[nm_bus_port_detect][577]Failed to find any COM ports
0 of ports found
(ERR)Failed To intilize programmer
Fail
   #######################################################################
   ##                                                                   ##
   ##                    ########    ###     ####  ##                   ##
   ##                    ##         ## ##     ##   ##                   ##
   ##                    ##        ##   ##    ##   ##                   ##
   ##                    ######   ##     ##   ##   ##                   ##
   ##                    ##       #########   ##   ##                   ##
   ##                    ##       ##     ##   ##   ##                   ##
   ##                    ##       ##     ##  ####  ########             ##
   ##                                                                   ##
   #######################################################################

 

 

Попытка запустить АТ-прошивку (если она с завода зашита???) тоже не увенчалась успехом. Модуль реагирует на сброс и CE изменяя потребление.

Василий, вроде прошивку через UART производитель и не обещал, или что-то поменялось сейчас?

Насколько помню, процедура была разработана для прошивки через SPI и использования отладочной платы Xplained PRO.

Мы для прошивки модулей делали плату с пружинящими "илогками", подключали к отладке и прошивали.

Если хотите - дадим попользоваться.

---------------------------------------------------------------

Извиняюсь, отстал от жизни)!

Действительно, теперь можно шить и по UART, и это хорошо!

Смущает только предупреждение в http://www.atmel.com/Images/Atmel-XXXXX-AT...icatio_Note.pdf:

Several previous versions of ATWINC1500 AT command firmware(version 0.6.1 ~ 0.7.8) used auto start mode on UART2by programming an eFuse. These versions are incompatible with the current version so an ATWINC1500 module which has been programmed with one of these versions can’t use the current version again...

 

Ждем комментариев Алекса Тарадова)

Edited by WLESS.RU

Share this post


Link to post
Share on other sites
Парни я только начал работать с WINC1500. Не можете описать всё воркфлоу как правильно проапдейтить фирмваре. где взять бинарные файлы.

Поройтесь в проектах Atmel Studio для WINC1500 - там и мануал подробный, и файлы прошивки должны быть.

 

Share this post


Link to post
Share on other sites

Здравствуйте.

Стал счастливым обладателем данного модуля, пытаюсь подключить к STM32 на собственной плате. Framework скачал с сайта атмела отдельно, AVR studio 7.0 установлена, но я ей не пользуюсь (последней студией, которой пользовался была 4.19 и Avr32Studio).

Пример под STM адаптировал, естественно получаю ошибку M2M_ERR_FW_VER_MISMATCH. (драйвер 19 версии, прошивка 17.1).

Сейчас модуль распаян проводками, один раз к компьютеру подключить я могу, но что делать дальше? Как вообще атмел планировал применять эти модули в готовых системах? На AvrFreaksнарод тоже интересуется этим вопросом, но внятного ответа я не увидел.

Share this post


Link to post
Share on other sites

Похоже атмел загибается (уже загнулся?). Сайт третий день не работает, никаких файлов скачать нельзя. Мануалы по обновлению прошивки и по запуску примеров не соответствуют действительности (7-й студии). Несколько часов искал, где вообще прошивка лежит. С первого раза ничего не зашилось, не может найти компорт. Судя по всему проблема такая не только у меня, вот товарищ написал развернутый мануал.

http://community.atmel.com/forum/how-firmw...25-xplained-pro

 

Вообще хоть кому-нибудь удалось апгрейдить прошивку без отладочной платы samd21?

Share this post


Link to post
Share on other sites

В итоге смог обновиться через мост USB-UART. Почему-то долго не получалось, так и не понял, что нужно сделать, чтобы работало. Похоже в модуле есть какой-то таймаут, после которого загрузчик перестает ждать прошивки. Если включить USB, потом сразу модуль (нужные сигналы сброса у меня внешний МК формирует), потом сразу утилиту, то все работает.

Самый последний документ по поводу прошивки лежит в папке ASF

xdk-asf-3.33.0\common\components\wifi\winc1500\firmware_update_project\doc

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this