.......
Схемы, 
виртуальные приборы 
и др
.
mylab.wmsite.ru


Главная · Карта сайта · форум · Климат

НОВОСТИ
В данном разделе новостей нет, приносим извинения.


Праздники России http://en.wikipedia.org/wiki/Jean-Paul_Rodrigue

использование USB-Serial(UART/I2C/SPI) Моста на CY7C65211  для тестирования I2C/SPI устройств.

Приходится знакомиться с Visual Studio.
Поэтому решил сделать для USB-Serial(UART/I2C/SPI) Моста  из КИТа PSoC® 4 CY8CKIT-049 4xxx Prototyping Kits
простенькую програмку для поиска устройств с неизвестным адресом на шине I2C .
И, если получится, то поработать с регистрами I2C устройства.
Это моя первая программа на С++, поэтому не стоит принимать её всерьез.
Только как отправную точку для знакомства с CY7C65211.
Не забудьте перепрограммировать  CY7C65211 в USB->I2 мост   c Vid 0x04B4 Pid 0x004
с помощью Cypress USB-Serial Configuration Utility как описано, например здесь:
 CY8CKIT-049, USB-Serial CY7C65211 use as an I2C master.

Более серьезные проекты следует искать в других местах.
например: О USB–Serial конвертере на CY7C65211 и сенсоре давления LPS25H

Архив проекта для  VISUAL STUDIO-2015 (C++):

      vs_usb_I2C.zip






EXE файл программы:   I2C_finder.exe
  









Язык C++ оказался для меня несравнимо сложнее чем LabVIEW. В нем слишком много надо тупо знать и запоминать всяких букв - это уже не для моей памяти.
Поэтому я пока решил использовать Visual Studio только для решения проблемы совместимости LabVIEW и библиотек от National Instruments и других, написанных на C++.
Для использования сложных функций этих DLL в LabVIEW народ создает дополнительные DLL-врапперы в которых эти функции становятся удобоваримыми для LabVIEW .
Я пошел по этому же пути: создал (как смог) проект-заготовку который буду использовать для создания своих DLL.
Проект создает единственный файл EasyDLL.dll в котором нужные мне функции облечены в понятную LabVIEW форму.
Основная идея:
- включаете в проект нужную вам   библиотеку     (в моем случае это cyusbserial.dll    cyusbserial.h     cyusbserial.llb)
- переписываете обращение к нужной вам функции так, чтобы было совместимо с LabVIEW
- делаете эти функции экспортируемыми:
extern "C" __declspec(dllexport) int __cdecl Ваша функция():   // объявление  функции
                 __declspec(dllexport) int __cdecl Ваша функция()
{ ----тело функции---- }

В примере для работы с I2C мостом на CY7C65211 можно увидеть как это выглядит в файле WRAP_DLL.cpp
Не знаю насколько все сделано правильно , но это работает - этого пока достаточно.

Пример проекта создания DLL-обертки для работы с I2C мостом на CY7C65211:   LV_Wrapper_VS2015.zip

Примеры для LabVIEW 5.0    7.1   и   LabVIEW 2014:   LabVIEW__.zip
  
              EXE_ файл для WIN_XP и WIN7_32:   I2C_Finder_exe.zip


для тестирования в качестве I2C устройства использовались:
 микросхема памяти 24LC02B (slaveAddress = 0x50)
датчик давления BMP085 (slaveAddress = 0x77)
магнитометр HMC5883L slaveAddress = 0x1E)

Пример использования моста на CY7C65211 для тестирования датчика магнитного поля на микросхеме HMC5883L:

































Датчик требует не более 3.5 Вольт питания - поэтому я заменил предохранитель F1 моста на красный светодиод.

Программа позволяет настраивать некоторые параметры датчика и создает текстовый файл для программ MagCal или Magneto.
Результаты расчета Magneto можно ввести в поля матрицы  (b и  A)  и проверить качество калибровки:
чем ровнее график внизу экрана тем лучше калибровка.

Файл для  LabVIEW 2014:               HMC5883L.llb(zip)     


--------------- РЕЖИМ     SPI  -----------------

для тестирования в качестве SPI устройства использовался АЦП ADS7835  и    ADS8675

Не забудьте перепрограммировать CY7C65211 в USB->SPI мост c Vid 0x04B4 Pid 0x004    и задать  конфигурацию SPI и GPIO



































Файлы  для LabVIEW 2014:        SPI_test_LV_2014.zip                                      ADS8675_2014.vi    


Гостевая книга · Ссылки · Обо мне · Мои разработки
Схемы, LabVIEW и др.
ВебСтолица.РУ: создай свой бесплатный сайт!  | Пожаловаться  
Движок: Amiro CMS