Jump to content

    

Dele

Участник
  • Content Count

    30
  • Joined

  • Last visited

Community Reputation

0 Обычный

About Dele

  • Rank
    Участник
  1. Всем добрый день! Озадачился проблемой измерения Ph раствора (для домашней гидропоники). В настоящее время распространены приборы на основе стеклянных датчиков а они 1-хрупкие, 2-со временем дрейфуют, 3-не долго хранятся на складе, 4- да и не современно это все уже. Сейчас уже давно есть специальные ионселективные полевые транзисторы (ISFET) которые реагируют на количество ионов водорода в растворе, на эту тему много статей в инете, они естественно мелкие, не дрейфуют, долго хранятся, точные и быстрые, рассчитаны на широкие диапазон и пр. то что нужно для обратной связи в автоматической гидропонной установке. Сейчас такие электроды стоят минимум от 4 тыс рублей вроде как находил да и то только в Америке делают их (к примеру https://www.campbellsci.com/cs526). Так вот вопрос, где бы отдельно найти и купить такой транзистор? Я думаю что отдельно он не должен дорого стоить, никак не могу найти...
  2. RFM69HW -> USB

    Удалось запустить RFM69H на STM32L151, кому надо могу поделиться проектом. Сейчас пытаюсь принять пакет от RFM22b, теоретически это возможно, но пока ловлю на 69-м только мусор, передаю без CRC, и Header-ов. Помогите советом
  3. Добрый день! Может немного не суда, но все же... Имею плату ez-usb fx2lp на CY7C68013A поменял ЕЕПРОМ пробывал и Saleae Logic и USBee Suite, последняя впринцепи устраивает но тормозит, а в первой Saleae Logic нету режима неприрывного сканирования и как-то неочень удобно без него, может я чего-то не понял кто сталкивался с таким? В USBee Suite это кнопка Capture Many
  4. RFM69HW -> USB

    Думаю что запустить его не сложней RFM22 примеров запуска которого куча, тем более что они совместимы.
  5. RFM69HW -> USB

    Цитата(x893 @ Jun 5 2014, 15:59) Google давно уже делится со всеми а на Github прямо коды на С лежат Коды под Arduino слишком замудренные и непонятные мне
  6. RFM69HW -> USB

    Никто не хочет поделиться исходниками запуска RFM69 на STM32?)
  7. RFM69HW -> USB

    Достал нормальную отладочную плату на ft2232h и все нормуль, подключил, шлю пакеты в эфир)
  8. RFM69HW -> USB

    Отключил RFM69 от FT2232D и такой же результат, программа открывается и чето там показывает как будто есть соединение
  9. RFM69HW -> USB

    Цитата(x893 @ May 7 2014, 20:37) Я бы так поступил взял программу от SX1231SKB или RFM6X-TOOL они используют FT2232 (я использовал FT2232D хотя 420 рублей тоже жаба душила) Semtech хочет что бы FTDI назывался так SX1231SKB-915 или SX1231SKB или Semtech USB bridge HopeRF хочет другие названия так RFM6X-915 или RFM6X или HOPERF USB bridge Но это не важно - просто добавляем или меняем на стандартное название FT2232D Dual RS232 На канал A соединяем SPI от SX1231 ( SCK - 24 ADBUS0 MOSI - 23 ADBUS1 MISO - 22 ADBUS2 CS - 21 ADBUS3 DIO0-5 - BDBUS0-5 Как то так Раздобыл FT2232D подключил SCK - 24 ADBUS0 MOSI - 23 ADBUS1 MISO - 22 ADBUS2 CS - 21 ADBUS3 DIO0-5 - BDBUS0-5 Изменил имя на HOPERF USB bridge в итоге соединилось... Но в разделе Irq flags почему то все регистры горят зеленым в отличие от мануала И не доступна кнопка Start для отправки пакета...
  10. RFM69HW -> USB

    Добрый день! Пытаюсь разобраться с радиосборкой Hope RF RFM69HW c чипом SX1231. USER GUIDE говорит что надо соединять сборку к компу через interfaced via the FTDI USB Bridge to the USB type ‘A’ interface of a host PC, но как так, ведь FTDI это преобразователь UART но сама сборка работает по SPI? Схему этого FTDI USB Bridge я не нашел, облазил все. Софт установит он естественно пишет ERROR unable to open USB bridge device. Есть набор SX1231-31SKB в составе USB моста и самой платы радиомодуля, но отдавать за него 2 тыс как то неохото... http://www.hoperf.com/rf/fsk_module/RFM69HW.htm Примеров мало... как ее подключить к компу?
  11. usart stm32l

    Планирую дальше организовать радиосвязь между двумя платами STM32DISCOVERY, модуль HOPE RFM22B, приемник выводит через UART в терминал то что пришло от передатчика... чувствую скоро еще тему создам)
  12. usart stm32l

    Пробовал уже без пина на ввод РА3 так же. USART1 тактировал через APB2, USART2 соответственно через APB1, как описано в stm32l1xx_usart.h Я был бы рад кракозябрям, да и их то нету( А прерывания по USART настраивать это если только самому принимать данные, мне же надо только отправить... Вообщем заработало! Посмотрел дебагером, в функции Usart1_Transmit_str(char* str) на while(str[i]) отправляет нас в startup_stm32l1xx_md.c а там в бесконечный цикл static void Default_Handler(void) { /* Go into an infinite loop. */ while (1) { } } Такие вот дела...
  13. usart stm32l

    Цитата(alexdos @ Apr 13 2014, 08:55) не вижу включение тактирования альтернативных функций. В самом начале определил тактирование на все порты и Альт. функции в RCC_Configuration(void)
  14. usart stm32l

    Цитата(Timma @ Apr 13 2014, 06:29) while(!(USART2->SR & USART_SR_TC)); //Ждем установки флага TC - завершения передачи USART1->DR = data; Ждете и настраиваете второго, пишите в первый. Поправил результат тот же, это я сначала первый пробовал думал там контакты LCD мешают, теперь так же со вторым пробую и так же...
  15. usart stm32l

    Добрый день! Неполучается уже второй день запустить USART на STM32L-DISCOVERY Среда Coocox Логическим анализатором смотрю нету ничего... РА 2Tx PA 3Rx КОД: CODE#include "stm32l1xx_gpio.h" #include "stm32l1xx_rcc.h" #include "stm32l1xx.h" #include "misc.h" #include "stm32l1xx_usart.h" void Usart1_Transmit(uint8_t); //Объявление функции передачи символа через USART void Usart1_Transmit_str(char* str); //Объявление функции передачи строки через USART void usart(void); void RCC_Configuration(void) { SystemInit(); // Сброс по умолчанию GPIO_DeInit(GPIOA); GPIO_DeInit(GPIOB); GPIO_DeInit(GPIOC); GPIO_DeInit(GPIOD); GPIO_DeInit(GPIOE); RCC_AHBPeriphClockCmd( RCC_AHBPeriph_GPIOA | RCC_AHBPeriph_GPIOB | RCC_AHBPeriph_GPIOC | RCC_AHBPeriph_GPIOD | RCC_AHBPeriph_GPIOE, ENABLE); RCC_AHBPeriphClockCmd(RCC_AHBENR_GPIOAEN, ENABLE); RCC_AHBPeriphClockCmd(RCC_AHBENR_GPIODEN, ENABLE); RCC_AHBPeriphClockCmd(RCC_AHBENR_GPIOBEN, ENABLE); } void init_led() { GPIO_InitTypeDef PORT; PORT.GPIO_Pin = (GPIO_Pin_7 | GPIO_Pin_6); PORT.GPIO_Mode = GPIO_Mode_OUT; PORT.GPIO_Speed = GPIO_Speed_10MHz; GPIO_Init( GPIOB , &PORT); } void init_but() { GPIO_InitTypeDef BUTA; BUTA.GPIO_Pin = GPIO_Pin_0; BUTA.GPIO_Mode = GPIO_Mode_IN; BUTA.GPIO_Mode = GPIO_PuPd_NOPULL; BUTA.GPIO_Speed = GPIO_Speed_10MHz; GPIO_Init( GPIOA , &BUTA); GPIO_InitTypeDef BUTD; BUTD.GPIO_Pin = GPIO_Pin_2; BUTD.GPIO_Mode = GPIO_Mode_IN; BUTD.GPIO_Mode = GPIO_PuPd_UP; BUTD.GPIO_Speed = GPIO_Speed_10MHz; GPIO_Init( GPIOD , &BUTD); } void usart() { RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE); //Включаем тактирование USART1 GPIO_PinAFConfig(GPIOA, GPIO_PinSource3, GPIO_AF_USART2); //Rx GPIO_PinAFConfig(GPIOA, GPIO_PinSource2, GPIO_AF_USART2); //Tx GPIO_InitTypeDef GPIO_InitStruct; GPIO_InitStruct.GPIO_Pin = (GPIO_Pin_2); //Настройки будут производится для вывода PA2 TX GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF; //Режим альтернативной функции GPIO_InitStruct.GPIO_OType = GPIO_OType_PP; //Выход Push-Pull GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_NOPULL; //Выход без подтягивающих резисторов GPIO_InitStruct.GPIO_Speed = GPIO_Speed_40MHz; //Скорость порта максимальная GPIO_Init(GPIOA, &GPIO_InitStruct); //Заданные настройки сохраняем в регистрах GPIOА GPIO_InitStruct.GPIO_Pin = (GPIO_Pin_3); //Настройки будут производится для вывода PA3 //Rx GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IN; //Режим альтернативной функции GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF; //Режим альтернативной функции GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_NOPULL; //Выход без подтягивающих резисторов GPIO_InitStruct.GPIO_Speed = GPIO_Speed_40MHz; //Скорость порта максимальная GPIO_Init(GPIOA, &GPIO_InitStruct); //Заданные настройки сохраняем в регистрах GPIOА //Инициализация USART1 USART_InitTypeDef USART_InitStruct; USART_InitStruct.USART_BaudRate = 9600; //Скорость обмена 9600 бод USART_InitStruct.USART_WordLength = USART_WordLength_8b; //Длина слова 8 бит USART_InitStruct.USART_StopBits = USART_StopBits_1; //1 стоп-бит USART_InitStruct.USART_Parity = USART_Parity_No ; //Без проверки четности USART_InitStruct.USART_HardwareFlowControl = USART_HardwareFlowControl_None; //Без аппаратного контроля USART_InitStruct.USART_Mode = USART_Mode_Tx ; //Включен только передатчик USART1 USART_Init(USART2, &USART_InitStruct); //Заданные настройки сохраняем в регистрах USART1 USART_Cmd(USART2, ENABLE); //Включаем USART1 } void Usart1_Transmit(uint8_t data) { while(!(USART2->SR & USART_SR_TC)); //Ждем установки флага TC - завершения передачи USART2->DR = data; } void Usart1_Transmit_str(char* str) { uint8_t i=0; while(str[i]) { Usart1_Transmit(str[i]); i++; } Usart1_Transmit('n'); Usart1_Transmit('r'); } int main(void) { RCC_Configuration(); init_led(); init_but(); usart(); int i=0; while(1) { Usart1_Transmit_str('STM32L-DISCOVERY'); //Вызов функции передачи строки через USART for(i=0; i<1000; i++); //Временная задержка } }