Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

На вопросы тут отвечу...

Отправлено Гудвин (78.138.168.169) 13 марта 2010, г. 13:23
В ответ на: Мой 320-ый тю-тю - на выставку в Питер уехал вот в таком виде... Картинка правда не шибко презентабельна :) ПерчУ сейчас ЖЖ 2100 wide/CЕ 6.0 ( пытаюсь сграбить картинку из видеопотока от камеры) и PN-355. Отвечу тут: отправлено Гудвин 13 марта 2010, г. 12:49

align=Top
По Pelles:
Нашел баг в последнеей версии. Автор переоптимизировал :)
По ссылке...
Посему откатился на предыдущую. Глюков пока вроде не обнаружил.


По портам:

Искал просто - открывал порт и пулял туда данные.
RX аналогично - тыкал отверткой и смотрел не сыпется ли что на вход.

В нафигатораз на Atlas III для GPS служит порт COM7.
Его можно юзать напрямую.
На Atlas IV в образе прикручен специальный драйвер, который создает виртуальный порт COM1 и перенаправляет GPS данные с COM7. К нему и нужно обращаться. Из удобств - скорость можно не выставлять вообще.
И хорошая фишечка - он управляет питанием GPS приемника и LNA. Если при открытии порта включет питание, при закрытии выключает. Обнарижил это только вчера при потрошении JJ2100. Позволяет жить аккумулятору подольше...

В старых девайсах на CE5/Atlas III можно в режиме хоста подтыкАть внешний USB->COM. По умолчанию дается имя COM5.


В новых можно юзать USB device как COM порт.
Вот моя правка реестра, которая определяет COM8:
Надо только еще убрать галочку автоподключения в ControlPanel-> Connections, иначе будет мешать - пытаться подключаться...
С компа девас будет виден как простой CDC девайс, не пытаясь запустить ActiveSinc.


REGEDIT4

[HKEY_LOCAL_MACHINE]

[HKEY_LOCAL_MACHINE\Drivers]

[HKEY_LOCAL_MACHINE\Drivers\USB]

[HKEY_LOCAL_MACHINE\Drivers\USB\FunctionDrivers]
"DefaultClientDriver"="USBSER_Class"
"ClientDriver"="\\Drivers\\USB\\FunctionDrivers\\Serial_Class"

[HKEY_LOCAL_MACHINE\Drivers\USB\FunctionDrivers\Mass_Storage_Class]
"Dll"="usbmsfn.dll"
"InterfaceSubClass"=dword:00000006
"InterfaceProtocol"=dword:00000050
"DeviceName"="DSK1:"
"FriendlyName"="Mass Storage"
"idVendor"=dword:0000045E
"Manufacturer"="SiRF Technology Inc."
"idProduct"=dword:0000FFFF
"Product"="SiRF GPS HH"
"bcdDevice"=dword:00000000

[HKEY_LOCAL_MACHINE\Drivers\USB\FunctionDrivers\Mass_Storage_Class\FlashDrv]
"Enabled"=dword:00000001
"Partitions"=hex:\
02
"Removable"=dword:00000000
"CDROM"=hex:\
00
"DeviceFlag"=dword:00000000

[HKEY_LOCAL_MACHINE\Drivers\USB\FunctionDrivers\Mass_Storage_Class\SDMemory]
"Enabled"=dword:00000001
"Partitions"=hex:\
00
"Removable"=dword:00000001
"CDROM"=hex:\
00
"WriteProtectIOCTL"=dword:00071800
"DeviceIOCTL"=dword:00071800
"Alias"="MMC"
"DeviceFlag"=dword:00000000
"Number"=dword:00000001

[HKEY_LOCAL_MACHINE\Drivers\USB\FunctionDrivers\Serial_Class]
"Dll"="usbserialfn.dll"
"DeviceName"="USBFNS1:"
"Prefix"="COM"
"DeviceArrayIndex"=dword:00000000
"RxBufferSize"=dword:00004000
"IClass"="{CC5195AC-BA49-48a0-BE17-DF6D1B0173DD}"
"idVendor"=dword:0000045E
"Manufacturer"="SiRF Technology Inc."
"idProduct"=dword:000000CE
"Product"="SiRF GPS HH"
"bcdDevice"=dword:00000000
"Tsp"="Unimodem.dll"
"DeviceType"=dword:00000000
"InterfaceSubClass"=dword:000000FF
"InterfaceProtocol"=dword:000000FF
"Order"=dword:00000008
"Index"=dword:00000008
"FriendlyName"="USB Cable:"

[HKEY_LOCAL_MACHINE\Drivers\USB\FunctionDrivers\Serial_Class\Config]
"EnableFlowHard"=dword:00000000
"EnableFlowSoft"=dword:00000000

[HKEY_LOCAL_MACHINE\Drivers\USB\FunctionDrivers\USBSER_Class]
"Dll"="serialusbfn.dll"
"DeviceName"="USBFNS2:"
"Prefix"="COM"
"DeviceArrayIndex"=dword:00000001
"RxBufferSize"=dword:00004000
"IClass"=hex(7):\
7B,43,43,35,31,39,35,41,43,2D,42,41,34,39,2D,34,38,61,30,2D,42,45,31,37,\
2D,44,46,36,44,31,42,30,31,37,33,44,44,7D,00,7B,43,33,37,35,43,37,38,37,\
2D,42,37,32,31,2D,34,62,38,65,2D,42,36,37,46,2D,41,31,31,32,44,35,43,30,\
41,34,30,34,7D,00,00
"idVendor"=dword:0000045E
"Manufacturer"="Simplex LTD"
"idProduct"=dword:00000079
"Product"="USB Serial Port"
"bcdDevice"=dword:00000090
"Tsp"="Unimodem.dll"
"DeviceType"=dword:00000000
"Order"=dword:00000008
"Index"=dword:00000008
"FriendlyName"="USB Serial Port:"

[HKEY_LOCAL_MACHINE\Drivers\USB\FunctionDrivers\USBSER_Class\Config]
"EnableFlowHard"=dword:00000000
"EnableFlowSoft"=dword:00000000

[HKEY_LOCAL_MACHINE\Drivers\USB\FunctionDrivers\MTP_Class]
"Dll"="usbmtpfn.dll"
"FriendlyName"="MTP"
"idVendor"=dword:0000041E
"idProduct"=dword:00004123
"Manufacturer"="SiRF Technology Inc."
"bcdDevice"=dword:00000000
"Product"="MTP Player"
"InitialDataBufferSize"=dword:00020000
"TransferThreadPriority"=dword:00000064
"Profile"="SDMemory,PCMCIA"
"StoreRoot"="\\DataStorage"


По встроенным портам (выведенным на пятачки):
Там их два:

URT8 - на него по-умолчанию сыпется отладочный вывод операционки.
URT9 - вот его и пользовал....

Это имена драйверов. Посему и юзать их надо в таком же виде...
от мой тестовый кусок для Pelles С:
(Писать в порттоже как обычно - WriteFile(). В этом куске не пользую... )

#include "rfid.h"

#define SizeBuf 128

#define PATTERN 'A'
#define GAP 0x10


extern HWND sav_handle;
HANDLE hComRFID;
BOOL Stp;

int GetRFIDData(CHAR *buf)
{
DWORD dw;
if(hComRFID!=INVALID_HANDLE_VALUE)
{
ReadFile(hComRFID,buf,SizeBuf,&dw,NULL);
}
return dw;
}


int ParseRFID(void)
{
CHAR Data[SizeBuf];
CHAR *S;
S=Data;
unsigned int i=0;
int nb=0;
while(!Stp)
{


ZeroMemory(Data,SizeBuf);
nb=GetRFIDData(Data);


for (i=0;i<nb;i++) // идем по строке
{
if (S[i]==PATTERN)
{
SendMessage(sav_handle, WM_USER, 0, 0);
Sleep(1000);
PurgeComm(hComRFID, PURGE_RXCLEAR);
break;
};

}

}
return 0;
}


HANDLE OpenRFID(void)
{
WCHAR CP[10];
DCB dcb;
COMMTIMEOUTS CommTimeOuts;
swprintf(CP,L"URT9:");
HANDLE hPort = CreateFile( CP,
GENERIC_READ | GENERIC_WRITE,
0,
NULL,
OPEN_EXISTING,
0,//FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED,
NULL);

if(!GetCommState(hPort,&dcb))
{
CloseHandle(hPort);
return 0;
}
dcb.DCBlength=sizeof(dcb);
dcb.BaudRate=9600;
SetCommState(hPort,&dcb);

CommTimeOuts.ReadIntervalTimeout= 10;
CommTimeOuts.ReadTotalTimeoutMultiplier = 1;
// значений этих тайм – аутов вполне хватает для уверенного приема
// даже на скорости 110 бод
CommTimeOuts.ReadTotalTimeoutConstant = 50;
// используется в данном случае как время ожидания посылки
CommTimeOuts.WriteTotalTimeoutMultiplier = 0;
CommTimeOuts.WriteTotalTimeoutConstant = 0;
SetCommTimeouts(hPort, &CommTimeOuts);

PurgeComm(hPort, PURGE_RXCLEAR);

return hPort;
}

int InitRFID(void)
{
hComRFID = OpenRFID();
Stp = 0;
DWORD dwThreadId;
CreateThread(NULL,1024,(LPTHREAD_START_ROUTINE)ParseRFID,NULL,0,&dwThreadId);
return hComRFID!=INVALID_HANDLE_VALUE;
}



int CloseRFID(void)
{
Stp = 1;
if(hComRFID!=INVALID_HANDLE_VALUE)
CloseHandle(hComRFID);
return 0;
}



"Распиновка" :)

Для JJ 320A на Atlas IV:

1 -
2 - 1.2В
3 -
4 - URT8_RX (отладочный вход) подтянут резистором к +3.3В.
5 -
6 - URT9_TX
7 - URT8_TX (отладочный выход)
8 - URT9_RX -
9 - 3.3В (когда включен. во сне тоже включен) силовой
10 - JTAG
11 - JTAG
12 - JTAG
13 - JTAG
14 - JTAG
15 - GND
16 - JTAG
17 - 3.3В
18 - напряжение зарядки/usb
19 - 2.5В (когда включен. во сне тоже включен) силовой
20 - средняя точка УНЧ (1.25В)
21 - 3.3В (когда включен. во сне вЫключен) "грязный"
22 - + батареи
23 - GND

24 - контакт рядом с кнопкой включения - напряжение батареи во время нажатия.
25 - контакт рядом с левой частью разъема ЖКИ - питание подсветки (управляемое!)




Картинка: http://upload.caxapa.ru/pins.jpg
Ссылка: http://caxapa.ru/183577.html

Составить ответ | Вернуться на конференцию

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
введите число 45:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru