Перейти к содержанию

    

795ft

Участник
  • Публикаций

    27
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

Информация о 795ft

  • Звание
    Участник

Посетители профиля

761 просмотр профиля
  1. Цитата(a123-flex @ May 7 2018, 11:44) если вы готовы тратить +30% своего времени на разработку ПП, терпеть бесконечные глюки, никогда не получать исправления багов системы, тратить полжизни на получение нормальных выходных файлов на производство, иметь совместимость проектов исключительно снизу вверх, в случае падения базы проекта размером 100ГБайт навсегда попрощаться со своим проектом - Ментор Ваш выбор ! с Altium подобного гемора не наблюдается?
  2. собстна решил перейти с P-CAD, т.к он устаревает задачи всё сложнее и с некоторыми он перестанет справляться, в объявленьях о работе P-Cad вообще не котируется . вот думаю на, что переходить , варианта 2 Altium и Mentor. Хотелось бы услышать плюсы минусы , глючность какова. Ну может ещё кто чего умного расскажет
  3. А вообще есть опыт у кого нибудь использования модулей LE70-868, или может какие то другие модули может кто посоветовать ISM диапазона чтобы без лишних заморочек с проектированием антенны можно было получить стабильных 1,5 -2 км дальности ??
  4. Цитата(Aner @ Aug 17 2015, 14:19) Если снизу земля, то отверстие не делает закоротку проводника идущего по плате? И еще посчитайте длину волны, с укорочением для этого кабеля. И сделайте требуемую длину кабеля, при плохом ксв это важно. нет отверстие не коротит. А где то есть примеры подсчётов длины кабеля ??? я в радиочастотных делах не сильно опытен
  5. Цитата(Aner @ Aug 17 2015, 13:38) как подключили эту вашу антенну? что в ближней зоне антенны, фотку, описание ... К сожалению фотки девайса нет пока пришлось отдать, и поразмышлять что не так было . описание такое это плата 70 на 90 мм , 4х слойная один TOP слой полностью земля, телитовский модуль обращён RF выходом к 70 мм стороне, от RF выхода модуля до края платы дорожка шириной 0.5мм, вокруг дорожки до края платы слой земли зазор до доржки около 1мм , и на обратной стороне до края платы сплошная земля . На краю платы 3 отверстия одно на дорожке и два на земле, в эти отверстия паялась кабельная сборка , вот такая http://www.wless.ru/images/products/big/SMA_F_MMCX_M_RA.jpg . У этой сборки был откушен разъём MMCX и провод припаян к плате. В SMA разъём вворачивалась антенна . Далее я брался за провод антенна вверх, плата болталась на проводе поднимал антенну на уровень грудной клетки и шёл в доль улицы , второй человек делал тоже самое и шёл в другом направлении, Пока не пропадёт сигнал. Далее стояли на месте то поднимали выше антенны то опускали ниже но сигнал уже был не устойчивый (то примет строку то нет) расходились ещё на 50 метров и пропадал совсем Цитата(Aner @ Aug 17 2015, 13:57) проверяйте тянет ли ваша кабельная сборка сантиметров 10 длиной (кабель rg174) эту частоту. Сколько затухает на этом? как сделана дорожка с каким волновым и пайка без флюса? Флюс часто портит все. Питание проверьте по просадке питающего. Часто нужен быстрый источник c низким внутренним сопротивлением с Low ESR конденсаторами, аналогично как питание GSM модемов. Еще проверьте заявленые 2A. Питальник тянет это точно , схема проверенная как раз из изделия где питала GSM модем, там на серии всё норм работает. Тем более телит заявляет потребление при передаче меньше 500мА. Ну про кабельную сборку поразбираюсь сейчас просто там длина маленькая я думал на такой длине не играет особой роли толщена кабеля. Паял без флюса , ну только то что в канальном припое содержится , потом смывкой отмывал просушивал
  6. Цитата(Aner @ Aug 17 2015, 12:24) Антенна непонятно какая там, как согласовали, как подключили, и тд ... на этом диапазоне все же настройка антенны требуется, так же как и контроль подводимого питания. По приборам проверять желательно. Затем 10Км это скорее всего с направленными антеннами типа яги на прямой видимости без препятствий, или как часто пикалываются вдоль поверхности реки, озера. Там же бюджет указан 144 дБ вот и пляски с бубном от этой цифры. А если кабелем длинным подключили не тем, не так, то и потери большие. до антенны кабельная сборка сантиметров 10 длиной (кабель rg174), припаянная к плате , по плате дорожка сантиметра 1,5 до модуля, на этом всё. По поводу питания проблемы мало вероятны запитано от линейника mic 29302 по выходу у него примерно 1000 мкФ , а он запитан от аккумулятора с USB выходом для зарядки телефонов , у него заявлено 5 В 2 A .
  7. Цитата(draksnov @ Aug 17 2015, 11:59) Первое что заметил: radio data rates from 4.8 to 57.6 kbps . Может ему не хорошо от 1.2 kbps? Ну, на такой частоте (мощность не панацея) 10 км получить можно с крыши высокого здания, наверное. Но и 600 метров мало. Где проверяли? Здание? Улица? Поле? Ещё есть мнение, для тех, кто по SPI общается, что частый опрос снижает чувствительность. Тут UART вроде, но всё равно можно проверить. (частым опросом я называю избыточные команды, например считывание RSSI и прочее). Кстати антенны эти очень так себе. Кусок проволоки, что на 1\4 длины волны работать может лучше. Ну по порядку про скорость там есть некоторые нюансы , во общем у LE70-868 2 диапазона 866 и G3 в 866 он может работать на 1200 [attachment=94688:le70.jpg] Проверял на улице а конкретно Москва ул Вавилова, конкретно от пересечения Вавилова и Бардина , до Вавилова д. 37 [attachment=94690:_________.jpg] никаких опросов не производится вообще модуль настраивается при включении и дальше каждые 5 секунд отправляет строку диной 20 байт по UART, а приёмный модуль когда примет что то выплёвывает по UART. а по поводу антенн можете что- то посоветовать, просто эти я считал хорошим вариантом и не думал что кусок проволоки в 1/4 будет лучше работать, ведь за что то же они берут по 15-20 баксов за антенну...
  8. Во общем использую 2 модуля Telit LE70-868 на передающем питание 3,6 В на приёмном 3,3 В мощность установил максимальную +27 dBm (500 мВт) скорость минимальная 1200 режим : transparent mode использую вот такую антенну http://www.compel.ru/infosheet/LINX/ANT%25...-HWR%2520RPSMA/ передаю строку 20 байт через 600 метров (вдоль улицы) строка уже не приходит полностью. Кто работал с этими модулями, или с похожими, в чём проблема? почему в место заявленных 10 км получается в 20 раз меньше?? что сделать чтобы увеличить дальность хотя бы до 3х км
  9. Дальность работы bluetooth

    имеется два модуля BT33 от Amp'ed http://www.ampedrftech.com/products.php?product=BT33 в документации написано, что дальность связи до 50м (а гдето и до 80м) , на практике попробовал метров 5-7 получается. Под антенной полигоны пустые как и по документации, питание 3,3 В , 10мкФ керамики по питанию. Работает в качестве удалённого ком порта Кто то работал с такими модулями? ситуация с дальностью такая же была? Может ктото может посоветовать более дальнобойные модули bluetooth желательно с простым управлением AT комдами , типо как у BT33 от Amp'ed .
  10. не могу разоброаться с nxpUSBlib

    всё нашёл косяк перед вызовом CDC_Host_SetLineEncoding нужно было аот эту часть структуры проинициализировать CDC_InterfaceInfo1.State.LineEncoding.BaudRateBPS = 9600; CDC_InterfaceInfo1.State.LineEncoding.CharFormat = CDC_LINEENCODING_OneStopBit; CDC_InterfaceInfo1.State.LineEncoding.ParityType = CDC_PARITY_None; CDC_InterfaceInfo1.State.LineEncoding.DataBits = 8; надо тонкости английского учить, в описании структуры этот кусок я понял как то что можно эти поля не инициализировать)) /**< State data for the USB class interface within the device. All elements in this section * <b>may</b> be set to initial values, but may also be ignored to default to sane values when * the interface is enumerated. P.S. мб кому пригодится
  11. не могу разоброаться с nxpUSBlib

    nxpUSBlib Делаю CDC USB Host на процессоре lpc1766 использую библиотеку nxpUSBlib v0.98b. Написал по аналогии с примерами с клавиатурой и флешкой для CDC host примера нет . Проходит событие EVENT_USB_Host_DeviceEnumerationComplete в этом событии успешно выполняются следующие функции USB_Host_GetDeviceConfigDescriptor CDC_Host_ConfigurePipes USB_Host_SetDeviceConfiguration CDC_Host_SetLineEncoding CDC_Host_SendControlLineStateChange В основном цикле вызываю постоянно : CDC_Host_USBTask(&CDC_InterfaceInfo1); USB_USBTask(); Далее раз в какое-то время Пытаюсь отправить данные на usb девайс tmp_8=0x35; tmp=CDC_Host_SendByte(&CDC_InterfaceInfo1 , tmp_8); в ответ не приходит сообщение об ошибке, т.е. вроди как всё отправляется. Но данные на USB девайс не приходят USB девайс сделан на процессоре 1768 на базе примера из библиотеки, при подключении usb девайса к usb компа через терменалку туда данные посылаются и приходят. Собственно вопрос в чём может быть проблема почему данные от моего хоста не приходят в девайс, и так и эдак смотрел, никаких сообщений об ошибки не приходит энумирация проходит девайс распознаются а данные не идут. Упарился уже искать причину. P.S. пробовал просто скопировать весь текст файла с main из примера Host клавиатуры и Host флешки , и вставить его в свой проект , флешка и клавиатура работают на ура. Вот проект под Keil, на разные файлообменники загрузил, может с какогото быстрее качается: NXP_LPC_1766_2_.zip NXP_LPC_1766_2_.zip вот текст файла с main CODE /* * Copyright© NXP Semiconductors, 2012 * All rights reserved. * * Software that is described herein is for illustrative purposes only * which provides customers with programming information regarding the * LPC products. This software is supplied "AS IS" without any warranties of * any kind, and NXP Semiconductors and its licensor disclaim any and * all warranties, express or implied, including all implied warranties of * merchantability, fitness for a particular purpose and non-infringement of * intellectual property rights. NXP Semiconductors assumes no responsibility * or liability for the use of the software, conveys no license or rights under any * patent, copyright, mask work right, or any other intellectual property rights in * or to any products. NXP Semiconductors reserves the right to make changes * in the software without notification. NXP Semiconductors also makes no * representation or warranty that such application will be suitable for the * specified use without further testing or modification. * * Permission to use, copy, modify, and distribute this software and its * documentation is hereby granted, under NXP Semiconductors' and its * licensor's relevant copyrights in the software, without fee, provided that it * is used in conjunction with NXP Semiconductors microcontrollers. This * copyright, permission, and disclaimer notice must appear in all copies of * this code. */ /** \file * * Main source file for the MassStorageHost demo. This file contains the main tasks of * the demo and is responsible for the initial application hardware configuration. */ #include "MassStorageHost.h" #include "CDCClassHost.h" #include "KeyboardHost.h" #include "LPC17xx.h" #include "lpc17xx_gpio.h" #include "lpc17xx_uart.h" #include "lpc17xx_clkpwr.h" #include "lpc17xx_pinsel.h" #include "lpc_types.h" #include "HIDClassHost.h" #include "USB.h" uint32_t j, j2; volatile uint16_t tmp_16; volatile uint8_t tmp_8, tmp; volatile uint8_t tmp_8buf[10]= { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0}; /* Macros: */ /** Endpoint number of the CDC device-to-host notification IN endpoint. */ #define CDC_NOTIFICATION_EPNUM 1 /** Endpoint number of the CDC device-to-host data IN endpoint. */ #define CDC_TX_EPNUM 2 /** Endpoint number of the CDC host-to-device data OUT endpoint. */ #if defined(__LPC17XX__)||defined(__LPC177X_8X__) #define CDC_RX_EPNUM 5 #else #define CDC_RX_EPNUM 3 #endif /** Size in bytes of the CDC device-to-host notification IN endpoint. */ #define CDC_NOTIFICATION_EPSIZE 8 /** Size in bytes of the CDC data IN and OUT endpoints. */ #define CDC_TXRX_EPSIZE 16 USB_ClassInfo_CDC_Host_t CDC_InterfaceInfo1 = { .Config = { .DataINPipeNumber = CDC_TX_EPNUM, .DataINPipeDoubleBank = false, .DataOUTPipeNumber = CDC_RX_EPNUM, .DataOUTPipeDoubleBank = false, .NotificationPipeNumber = CDC_NOTIFICATION_EPNUM, .NotificationPipeDoubleBank = false, .PortNumber = 0, }, }; int main(void) { SetupHardware(); /////////////////////////////////////////////////////////////////// GPIO_SetDir ( 0, 0x10, 1 ) ; GPIO_ClearValue ( 0, 0x10 ) ; GPIO_SetValue ( 0, 0x10 ) ; GPIO_SetDir ( 1, 0x2000000, 1 ) ; //GPIO_ClearValue ( 1, 0x2000000 ) ; //GPIO_SetValue ( 1, 0x2000000 ) ; GPIO_ClearValue ( 1, 0x2000000 ) ; sei(); puts_P(PSTR("START__HOST !!!!!!\r\n")); for (;;) { CDC_Host_USBTask(&CDC_InterfaceInfo1); USB_USBTask(); j++; if ((j>3000000)&& (USB_HostState[CDC_InterfaceInfo1.Config.PortNumber] == HOST_STATE_Configured)) { j=0; tmp_8=0x35; tmp=CDC_Host_SendByte(&CDC_InterfaceInfo1 , tmp_8); // CDC_Host_Flush(&CDC_InterfaceInfo1); tmp= GPIO_ReadValue ( 0 ) ; if ((tmp >> 4) & 1 ) GPIO_ClearValue ( 0, 0x10 ) ; else GPIO_SetValue ( 0, 0x10 ) ; } j2=0 ; while( j2<10000 ) { j2++ ; j++; } while ( (CDC_Host_BytesReceived(&CDC_InterfaceInfo1)!=0) ) { GPIO_SetDir ( 0, 0x10, 1 ) ; GPIO_ClearValue ( 0, 0x10 ) ; tmp=CDC_Host_ReceiveByte(&CDC_InterfaceInfo1) ; } } } //******************************************************************************** ************************************** /** Configures the board hardware and chip peripherals for the demo's functionality. */ void SetupHardware(void) { bsp_init(); SystemInit (); Serial_Init(9600, false);// LEDs_Init(); USB_Init(); /* Create a stdio stream for the serial port for stdin and stdout */ Serial_CreateStream(NULL); } /** Task to manage an enumerated USB Mass Storage device once connected, to print out * data from the device. */ void EVENT_USB_Host_DeviceAttached(const uint8_t corenum) { printf_P(PSTR("Device Attached on port %d\r\n"),corenum); // LEDs_SetAllLEDs(LEDMASK_USB_ENUMERATING); } /** Event handler for the USB_DeviceUnattached event. This indicates that a device has been removed from the host, and * stops the library USB task management process. */ void EVENT_USB_Host_DeviceUnattached(const uint8_t corenum) { printf_P(PSTR("\r\nDevice Unattached on port %d\r\n"),corenum); // LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY); } /** Event handler for the USB_DeviceEnumerationComplete event. This indicates that a device has been successfully * enumerated by the host and is now ready to be used by the application. */ //******************************************************************************** ********************** void EVENT_USB_Host_DeviceEnumerationComplete(const uint8_t corenum) { puts_P(PSTR("EVENT_USB_Host_DeviceEnumerationComplete \r\n")); uint16_t ConfigDescriptorSize; uint8_t ConfigDescriptorData[512]; if (USB_HostState[corenum] ==HOST_STATE_Addressed) puts_P(PSTR("ADRESED \r\n")); if (USB_Host_GetDeviceConfigDescriptor(corenum, 1, &ConfigDescriptorSize, ConfigDescriptorData, sizeof(ConfigDescriptorData)) == HOST_GETCONFIG_Successful) { puts_P(PSTR("DESKRIPTOR_OK ")); } tmp = CDC_Host_ConfigurePipes(&CDC_InterfaceInfo1,ConfigDescriptorSize, ConfigDescriptorData) ; switch (tmp){ case CDC_ENUMERROR_NoError : puts_P(PSTR(" CDC_ENUMERROR_NoError \r\n \r\n \r\n +++++++++++++++++++++++++ \r\n")); break; case CDC_ENUMERROR_InvalidConfigDescriptor: puts_P(PSTR(" CDC_ENUMERROR_InvalidConfigDescriptor\r\n")); break; case CDC_ENUMERROR_NoCompatibleInterfaceFound : puts_P(PSTR("CDC_ENUMERROR_NoCompatibleInterfaceFound \r\n")); break; case CDC_ENUMERROR_PipeConfigurationFailed: puts_P(PSTR(" CDC_ENUMERROR_PipeConfigurationFailed\r\n")); break; default: puts_P(PSTR("??? \r\n")); break; } if (USB_Host_SetDeviceConfiguration(CDC_InterfaceInfo1.Config.PortNumber,1) != HOST_SENDCONTROL_Successful) { puts_P(PSTR("Error Setting Device Configuration.\r\n")); // LEDs_SetAllLEDs(LEDMASK_USB_ERROR); return; } else puts_P(PSTR("USB_Host_SetDeviceConfiguration +++ \r\n")); if (CDC_Host_SetLineEncoding(&CDC_InterfaceInfo1)!=HOST_SENDCONTROL_Successful) { puts_P(PSTR("Error HOST_SET_line incoding \r\n")); // LEDs_SetAllLEDs(LEDMASK_USB_ERROR); return; } if (CDC_Host_SendControlLineStateChange(&CDC_InterfaceInfo1)!=0) { puts_P(PSTR("Error CDC_Host_SendControlLineStateChange \r\n")); // LEDs_SetAllLEDs(LEDMASK_USB_ERROR); return; } } //******************************************************************************** ********************************************* /** Event handler for the USB_HostError event. This indicates that a hardware error occurred while in host mode. */ void EVENT_USB_Host_HostError(const uint8_t corenum, const uint8_t ErrorCode) { USB_Disable(); printf_P(PSTR(ESC_FG_RED "Host Mode Error\r\n" " -- Error port %d\r\n" " -- Error Code %d\r\n" ESC_FG_WHITE), corenum, ErrorCode); // LEDs_SetAllLEDs(LEDMASK_USB_ERROR); for(;;); } /** Event handler for the USB_DeviceEnumerationFailed event. This indicates that a problem occurred while * enumerating an attached USB device. */ void EVENT_USB_Host_DeviceEnumerationFailed(const uint8_t corenum, const uint8_t ErrorCode, const uint8_t SubErrorCode) { printf_P(PSTR(ESC_FG_RED "Dev Enum Error\r\n" " -- Error port %d\r\n" " -- Error Code %d\r\n" " -- Sub Error Code %d\r\n" " -- In State %d\r\n" ESC_FG_WHITE), corenum, ErrorCode, SubErrorCode, USB_HostState[corenum]); // LEDs_SetAllLEDs(LEDMASK_USB_ERROR); }
  12. USB HOST

    Цитата(mantech @ Dec 17 2013, 23:34) Именно это и хотел сказать. В своих устройствах USB использую только как временное подключение (скачать логи на флешку, залить файл с настройками и пр...), а для работы 24\7 только RS-485, или 232. Сколь перепробовал USBшных девайсов, с библиотеками от СТМ, Prolific, FT232... только последние еще более-менее могут работать долгое время без зависаний компа или "отваливания" соединения... в моём случае мой хост будет работать с девайсом долгое время возможно и 24/7 . При реализации и хоста и девайса на микроконтроллере велика ли вероятность "отваливания" и зависания???
  13. USB HOST

    Golikov A. спасибо теперь хоть немного понятно куда двигатся Цитата(kovigor @ Dec 17 2013, 00:08) Кстати, COM - порт устарел только в их воображении, не более того. к сожалению не все это понимают(((
  14. USB HOST

    Цитата(kovigor @ Dec 16 2013, 20:32) Быстро ? Сомнительно. Если надо быстро, то берите отладочную плату с предустановленным Линуксом, там уже все реализовано. Но только на этом МК Линукс не заработает. Вот российские отладочные платы: с линуксом в жизни не сталкивался , думаю это долгая история получится, да и к тому же там реал тайм нужен, и задержки в 1мс уже могут доставлять неудобства, с линуксом наверно сложно будет чётко время расчитывать. да и девайс ограничен в размерах. Цитата(kovigor @ Dec 16 2013, 20:32) А вот виртуальный COM - порт - нет. У МК этих портов и без того куча, причем реальных ... так то оно так, только те кто делал то с чем мне конектится надо, решили уйти от устаревших ком портов, и передавать данные размером в 10ки байт по USB. и объяснять им, что это маразм оказалось бесполезно. Цитата(Golikov A. @ Dec 16 2013, 20:52) А LPC 1768 вам почему как хост не нравится? Зачем элементную базу плодить? у него стандартный железный хост интерфейс, который много чего делает сам, и к нему написано куча оберток упрощающих жизнь. на уровне приконектился - отконектился, такие контрольные точки, такие данные пришли, такие данные отправить... так получилось что из ARMов я только с stm работал и то не плотно, поэтому решил на них, но если вы говорите что на LPC это может оказаться намного быстрее и проще наверно стоит посмотреть в эту сторону, а так называемые обёртки , они на оф сайте есть или надо рыскать на просторах интернета? просто кроме FTDI я вообще USB никакой не делал, и соответственно даже не знаю с чего и начать??? HOST поднимать это не по UARTу в FTDIку данные кидать
  15. USB HOST

    есть usb device реализованный на процессоре Cortex-M3 NXP LPC1768, при подключении к компьютеру как виртуальный ком порт, usb там реализован на МК. Требуется сделать для него хост. у меня есть отладка на STM32F207ZET6 решил начать с неё , первое с чем столкнулся это вот http://gyazo.com/b3b84ac864b6e089c610db52759cf8a0 в документе UM1021 User manual STM32F105xx, STM32F107xx, STM32F2xx and STM32F4xx USB On-The-Go host and device library. Правильно ли я понимаю что хост можно сделать ТОЛЬКО ДЛЯ : 1 Mass storage 2 HID (keyboard + mouse) 3 FAT FS file system и соответственно с помощью этой библиотеки я не смогу сделать нужный хост?? STM32F207ZET6 на этом проце можно както быстро реализовать хост который мне нужен?