Jump to content

    

showone

Участник
  • Content Count

    27
  • Joined

  • Last visited

Everything posted by showone


  1. благодарю, пришло письмо.
  2. пришлите пожалуйста прошивку 1137B08SIM900M64_ST_DTMF_JD_MMS и загрузчик showone(a)инбокс_ру
  3. оп3 именно так нарисован. с первого вывода оп2 идет сразу на 13 вход(+) оп3.
  4. а что сомнительного ? срисовывал два раза. схема совпадает. по поводу верю не верю. я же написал. что не силен в теории операционников и какие там есть подходы. вот и прошу знающих людей объяснить принцип работы схемы и помочь в понимании. операционник стоящий там - затерт. может 324 может другой. как я понимаю на оп4 собран генератор. на оп1 просто усилитель. далее как работает не знаю. но судя по схеме детектр, фильтр, что-то на оп3. схема хорошо реагирует на перемещение предмета. а вот если предмет остановился между обкладками - схема не реагирует. цель стоит переделать или сделать датчик который реагирует на заполнение обкладок датчика. есть предмет или нет. заполнены обкладки или нет. несколько раз перерисовывал, смотря в инете какие есть стандартные решения. да и чтобы понятнее было.
  5. здраствуйте. попался мне датчик емкостной, срисовал схему. в схемотехнике не силен, расскажите как работает, за что отвечает каждая часть схемы на ОУ.
  6. это то понятно, у меня UDP реализован и работает на ура. но необходимо получать данные именно по TCP/IP вот и не получается пока, знаний мало. может сперва на запрос от компа сразу ответить, потом подготовить данные, и дальше или их переслать, или передать со вторым запросом. или все делается проще. пока у меня затык в этом.
  7. подскажите люди знающие. задача: есть простейший логер, на ATmega168, получает 50 байт по UART и пишет в AT45DB321D. нужно эти данные (все или вновь добавленные) передать по TCP/IP на комп. взял ENC28J60H подключил по примеру http://www.tuxgraphics.org/electronics/200...icle06111.shtml TCP/IP их же. связка заработала. инициатором запроса пересылки данных выступает комп в сети. подскажите как правильно реализовать обмен данными в TCP/IP ? сделал по примеру WEB сервера т.е. на запрос от компа в сети, отвечаю данными по 50 байт - работает. но если за данными приходится лезть во флешку, а потом отвечать на запрос, то приложение на компе вылетает в TIMEOUT. где почитать про обмен данными ? или как правильно реализовать механизм передачи данных из флеш в комп ?
  8. не могли бы вы и мне прислать софт на showone собака mail.ru, хотел заказать M8USBRF, но они почему-то не могут прислать в мой город. жаль, очень, придется спаивать самому.
  9. помогите с выбором и организацией радиоканала связи. требования. частота - не важно. скорость - мин. 38400 желательно бы 115200. расстояние - прямая видимость 60 - 80 метров. условия - центр города. данные будут передаваться от компа на контроллер постоянно, обратно только информация о состоянии прибора. вроде понравился приемепередатчик cc1100 или cc2500. подскажите, есть ли готовые модули, платы ? так чтобы не паять самому ВЧ часть. если есть, то где их можно купить, заказать. нужно всего 2 или 4-и штуки. может есть какие другие модули ? заранее благодарю за любую помощь.
  10. если порт открыт, то его уже через DLL не откроешь. просто терминалка, сторонняя, инициализировала порт как нужно, в плане управления потоком. и потом все это работало дальше, до следующего отключения. а вот как мне это сделать из моей проги, через DLL, у меня так и не получилось. программа работала только после сторонней инициализации. перешел на управление через API т.е. работаю сейча с VCP все класс, запускается сразу же. конечно очень бы хотелось разобраться в чем же дело, но как всегда нет времени. всем спасибо.
  11. да вот и я уже пришел к мысли что нужно переходить на VCP. скажите, а как вы настраиваете именно управление потоком. что-то не нашел я. т.е. инициализация порта средствами WIN API это у меня работает, но где там указать что я использую управление потоком, и как это настроить. или вы используете какой-то компонент для работы с портом. если можно киньте пиримерчик именно инициализации порта и управлением потока или может где почитать ? Заранее спасибо.
  12. значит так. переходник собран на FT232RL на конце стоит ATMEGA168 со стороны компа написана программа на Delphi, использую прямое управление, т.е. работаю через DLL FTD2XX.DLL есть управление потоком через DTR/DSR. все работает ровно и хорошо. но есть такой момент. запускаю я свою программу, а она не видит устройство, т.е. не получает от него данные, иногда, еще реже получает их как-то не корректно. закрываю программу. запускаю любую терминальную программу. закрываю ее. запускаю свою программу, все работает стабильно. есть подозрение что как-то нужно инициализировать порт после или перед открытием из программы. может кто что подскажет. заранее спасибо.
  13. реально. есть рабочий вариант. мега8, 14,7456, SDcard, часы реального времени и 16*2 LCD все работает и пишется в FAT16 в WAV формате 8000ГЦ моно. единственный нюанс, пока флешку форматирую на самой меге, и пишу сектор за сектором, потом формирую фат таблицу. но все на компе считывается, все нормально копируется и открывается. но можно и сразу писать по фат таблице, все успеет. да. сжатия нет, то что с АЦП то и пишем на флешку. ресурсов меги хватило в притык.
  14. вот зашел на сайт http://atmel.ru/Production/tables/avr.htm там написанно про меги 48 88 168 что у них 2 SPI вот это так или нет ?
  15. всем большое спасибо за ответы ! нужно будет менять весь подход в программе по работе с УАРТ.
  16. получается такая фигня. контроллер заполняет в фоне буфер, но в какой-то момент работы с устройством, получает по прерыванию от УАРТ байт, не успевает его обработать, получает следующий байт и этот второй байт теряется. вот и хотелось сделать так, чтобы второй байт не отсылался из компа или буфера FTDI, пока не будет полностью обработан первый. т.е. управление потоком как я понимаю нужно.
  17. устройство на контроллере подключается через FT232BM к USB. задача периодически пополнять внутренний буфер контроллера. контроллер управляет медленным устройством. поэтому если кидать данные без управления потоком, они теряются. если с управлением потока, то вроде все нормально. но иногда все же теряется 1-4 байта. использую DSR-DTR делаю так. в микроконтроллере. interrupt [uSART_RXC] void usart_rx_isr(void) { char status; DSR=1; status=UCSRA; rx_d=UDR; rx_b=1; //DSR=0; } main() { while(1) { if (rx_b) { rx_b=0; get_ser(); } } } void get_ser(void) { // обрабатываю полученный байт, заполнение буфера delay_ms(500); // задержка, вроде как устройство занято. если эту задержку убрать, то вроде как работает, но с ней, байты теряются, из 20 посланных 1-2 теряются. DSR=0; } на Delphi procedure wait_tx; begin repeat Get_USB_Device_ModemStatus; Application.ProcessMessages; until (FT_Modem_Status and $00000020) = $00000020; end; .......................... if Open_USB_Device<>FT_OK then begin exit; end; Reset_USB_Device; FT_Current_Baud:=FT_BAUD_38400; Set_USB_Device_BaudRate; FT_Current_FlowControl:=FT_FLOW_DTR_DSR; FT_XON_Value:=0; FT_XOFF_Value:=0; if Set_USB_Device_FlowControl<>FT_OK then showmessage('Set_USB_Device_FlowControl'); Purge_USB_Device_Out; Purge_USB_Device_IN; ............... for i:=1 to n do begin for j:=0 to 100 do FT_Out_Buffer[j]:=mas[j]; wait_tx; // ждем разрешения DSR Write_USB_Device_Buffer(100); end; т.е. я выдаю в порт по 100 байт. как мне точно узнать что все 100 байт переданы и можно передавать следующие ? пробовал передавать по одному байту, тоже теряются байты. может есть где пример как правильно, или кто что может посоветует. заранее спасибо. ========================================================== ответ zltigo Я все исходники написанные Вами не читал, но: 1. Контроллер после выставления им неготовности обязан принять как минимум один байт 2. Нарезка на байты/порции со стороны PC - побайтовая передача с flush после каждого байта/порции. ========================================================== есть ли где информация как построен сам процес управления потоком? а то велосипед изобретать как-то не очень получается :-) или где можно почитать про это. меня интересует. точнее нужно. есть боьшой масив данных, его нужно передать в контроллер порциями (размером с буфер контроллера 100 байт) причем контроллер может в любой момент замереть в ожидании события почти на две секунды. так вот. управление потоком немного облегчило жизнь, при использовании DTR DSR. но программа на дельфи, которая выкидывает по 100 байт, не может толком понять, кидать ей следующие 100 байт или нет. или лучше кидать по одному байту постоянно, и ждать пока он не дойдет до контроллера и контроллер не разрешит дальнейший обмен. но тогда получается что это уже програмный контроль, а не аппаратный. может есть гре пример нормальной работы или алгаритма работы. заранее спасибо.
  18. не могли бы вы рассказать как построен сам процес управления потоком. а то велосипед изобретать как-то не очень получается :-) или где можно почитать про это. меня интересует. точнее нужно. есть боьшой масив данных, его нужно передать в контроллер порциями (размером с буфер контроллера 100 байт) причем контроллер может в любой момент замереть в ожидании события почти на две секунды. так вот. управление потоком немного облегчило жизнь, при использовании DTR DSR. но программа на дельфи, которая выкидывает по 100 байт, не может толком понять, кидать ей следующие 100 байт или нет. или лучше кидать по одному байту постоянно, и ждать пока он не дойдет до контроллера и контроллер не разрешит дальнейший обмен. но тогда получается что это уже програмный контроль, а не аппаратный. может есть гре пример нормальной работы или алгаритма работы. заранее спасибо.
  19. устройство на контроллере подключается через FT232BM к USB. задача периодически пополнять внутренний буфер контроллера. контроллер управляет медленным устройством. поэтому если кидать данные без управления потоком, они теряются. если с управлением потока, то вроде все нормально. но иногда все же теряется 1-4 байта. использую DSR-DTR делаю так. в микроконтроллере. interrupt [uSART_RXC] void usart_rx_isr(void) { char status; DSR=1; status=UCSRA; rx_d=UDR; rx_b=1; //DSR=0; } main() { while(1) { if (rx_b) { rx_b=0; get_ser(); } } } void get_ser(void) { // обрабатываю полученный байт, заполнение буфера delay_ms(500); // задержка, вроде как устройство занято. если эту задержку убрать, то вроде как работает, но с ней, байты теряются, из 20 посланных 1-2 теряются. DSR=0; } на Delphi procedure wait_tx; begin repeat Get_USB_Device_ModemStatus; Application.ProcessMessages; until (FT_Modem_Status and $00000020) = $00000020; end; .......................... if Open_USB_Device<>FT_OK then begin exit; end; Reset_USB_Device; FT_Current_Baud:=FT_BAUD_38400; Set_USB_Device_BaudRate; FT_Current_FlowControl:=FT_FLOW_DTR_DSR; FT_XON_Value:=0; FT_XOFF_Value:=0; if Set_USB_Device_FlowControl<>FT_OK then showmessage('Set_USB_Device_FlowControl'); Purge_USB_Device_Out; Purge_USB_Device_IN; ............... for i:=1 to n do begin for j:=0 to 100 do FT_Out_Buffer[j]:=mas[j]; wait_tx; // ждем разрешения DSR Write_USB_Device_Buffer(100); end; т.е. я выдаю в порт по 100 байт. как мне точно узнать что все 100 байт переданы и можно передавать следующие ? пробовал передавать по одному байту, тоже теряются байты. может есть где пример как правильно, или кто что может посоветует. заранее спасибо.
  20. помогите разобраться и выбрать модуль BLUETOOTH UART нужно соединить ноутбук и устройство на контроллере по радиоканалу. какой модуль лучше взять для подключения к контроллеру ? из сигналов нужно только RXD и TXD, очень бы не плохо было RTS CTS и или DTR DTS. расстояние радио каналя не менее 50 метров, следовательно, как я понял, нужно использовать BLUETOOTH CLASS 1 с дальностью связи до 100 м. принимаются любые предложения. может есть какие ссылки на уже готовые проекты. Заранее спасибо.
  21. bluetooth uart

    помогите разобраться и выбрать модуль BLUETOOTH UART нужно соединить ноутбук и устройство на контроллере по радиоканалу. какой модуль лучше взять для подключения к контроллеру ? из сигналов нужно только RXD и TXD, очень бы не плохо было RTS CTS и или DTR DTS. расстояние радио каналя не менее 50 метров, следовательно, как я понял, нужно использовать BLUETOOTH CLASS 1 с дальностью связи до 100 м. принимаются любые предложения. может есть какие ссылки на уже готовые проекты. Заранее спасибо.
  22. а в каком точно номере журнала радио есть схема программатора для AT45DB*** сейчас записываю через контроллер, но очень бы хотелось что-нибудь универсальное. или может где есть проекты в интернете? спасибо.
  23. огромное всем СПАСИБО разобрался :-)
  24. тут критерий есть, писать только на АСМ, т.к. это вставка в проект, который уже написан на АСМ. а эта вставка должна выполнять мат операции с числами с фикс запятой. а т.к. используется C8051F121, то там есть встроенный перемножитель 16*16, т.е. два на два байта. а мне нужно перемножать 3-и на два байта или три на три байта сфиксированной запятой. просто раньше так глубоко не влезал в математику для контроллеров. вот пришлось :-) всем спасибо за ответ !!!!
  25. подскажите еще пожалуйста. вот есть mul ab с ним все понятно. а если нужно умножить 388*435 т.е. числа которые больше байта ? т.е. умножить два байта на два или на три байта ? заранее спасибо. А почему не хотите воспользоваться библиотекой с плавающей точкой ? :) пишу на ASM. а где можно посмотреть эту библиотечку ? или примеры любые ?