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

andrew_by

Участник
  • Постов

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

  • Посещение

Сообщения, опубликованные andrew_by


  1. ищу исполнителя на создание эл схемы и ее разводка желательно в DIPTRACE , также написание кода для Atmega   или STM32

    компоненты которые участвуют в схеме

    CPU Atmega32U4 или STM32

    ublox Zed-f9p

    слот microsd

    mpu6500 гироскоп

    lora передатчик

    smd пищалка

    пара светодидов 

    разьем  type-c

    липо батарейка 200-300 mah

    зарядка  это батарейки через type-c

     

     

  2. вы для начала определитесь - "хочу с вайфай, не хочу с вайфай", что за странные метания?

     

    судя по вопросам, вам прямой путь такой - покупаете что-то типа SD с WiFi (врядли существуют uSD подобного конструктива), Raspberry Pi с набортным WiFi и ищете совместимый с этой малиной шилд с LTE.

    первый адаптер суете в ваше загадочное устройство, через адаптер по WiFi фотки гоните на малину, которая через подходящий пакет или скриптами шлет их по LTE. всё, задача решена, ничего делать не надо, просто дописать под свою задачу..

     

    для справки - адаптер SD с WiFi можно поискать на основе linux и влезть в заводскую прошивку или подсунуть свою кастомную

    линукс это гуд , насчет связки sd-wifi <-> wifi - малина -lte .. нахрена wifi мост? .. он лишний

     

     

    врядли ТС понимает о чем тут написано..

    уж точно понимаю)

  3. А что там сложного? EzShare вроде предоставляет доступ по HTTP по фиксированному IP к своим фоткам. Т.е. - Вам достаточно написать прогу, которая по HTTP заберёт фотки и отправит их почтой или ещё чем куда надо. А возможно даже есть готовые утилиты, которые грабят содержимое HTTP и отправляют в мэйл.

    связку Wifi хочу убрать ... хочу сразу фотку слать через LTE .. категорично ) .. уже и денег готов отсыпать от 5к руб

  4. На raspberry pi эмулировать microsd - гемор.

    Может попробовать использовать WIFI microSD?

     

     

    вот и я понимаю что гимор .. но вот есть адаптеры типа EzShare которые как раз такую шнягу делают, но мне охота что бы картинка слалась через LTE а не через Wi-fi .. к тому же Ezshare не может слать на почту или что-то еще.. вобщем слишком тупой - а мне охота свою логику отправки фотки написать

     

    Проще подключить к малине камеру и делать фото каждые пять секунд.

    https://www.raspberrypi.org/products/camera-module-v2/

    или веб-камеру через USB, но там больше вероятность проблем с софтом.

    не могу... нужно грабить фотки именно с устройства

  5. итак есть ус-во , которое 1раз в 5сек делает фото и кладет себе на карточку микросд,

     

    хочу вместо карточки подключить малинку , а в малинку уже подключить карточку микросд,

     

     

    задача - нужно чтобы фотки клались на микросд через малинку , а когда фотка записана, малинка считывала ее и отправляла по wi-fi мне эту фотку на почту..

     

     

    как сделать такой адаптер? кто поможет - можно не бесплатно

  6. Важно, причем адреса есть только в файле линкера у того, кто ее компилировал. Причем он может быть любой, вектора меняет бутлоадер.

    ЗЫ. Вы уверены, что основная прошивка не зашифрована? Очень может быть, если это коммерческая прошивка...

     

    прошивка приаттачена в первом посте my.zip

  7. Берете программатор (скажем j-flash из комплекта segger), записываете и запускаете.

     

    Насчет отладчика- как я понимаю есть только hex? Лично я отладчик без elf и исходников запускать не пробовал. Но подозреваю нет ничего невозможного :)

    это то понятно ... что залить и запустить... вот только по какому адресу класть прошивку или это неважно?? (спрашиваю потому-что такое никогда не делал)

  8. товарищи, подскажите плз есть stm32f427 и есть к нему прошивка , но к этой прошивке нужен еще бутлоадер, который при загрузке как полагаю кладет прошивку по нужному адресу. Можно ли прошивку положить тупо со сдвигом и запустить ее работать . Или есть какие нить симуляторы 427 го ? .

     

    если кого напрягает бесплатная помощь) оплату можем обсудить ..

     

    в итоге хочу хоть каким то способом запустить прошивку на 427 камне и подключить к нему дебаг для наблюдения за поведением проца

    my.zip

  9. есть три устройства, у всех разные процы, у них у всех стоят CAN-драйверы MAX3051 ..

     

    1ы1 и 2ой девайсы отлично вяжутся по Кану и работают... подключаю вместо второго треттий.. все валится. по шине идут только импульсы частотой 38.65кГц

     

    в чем загвоздка ? ессно обвязка у драйверов одинаковая ) резюки 120Ом стоят на обоих концах линии.. линия длинной 50см.

    post-90244-1483457980_thumb.jpg

    post-90244-1483457989_thumb.jpg

  10. народ подскажите кто знает, в чем может быть косяк...

     

    соединяю STM32f405 и LPC11c24 , у СТМки кан драйвер использую MAX3051 , у LPC драйвер встроенный .

     

    проблема вот в чем - при отправке сообщения от STM, LPC принимает и тут же его ретранслирует. Но! когда вместо STM ставлю другой модуль - STM32f427 c кан драйвером SN65HVD230Q, то ретраснляции не происходит ивсе работает нормально..

     

     

    как избавиться от ретрансляции со стороны LPC

     

    код пишу в Keil.

  11. товарищи.. нужно допилить код.. но сам уже запутался.. помогите кто чем может )

     

    суть такая.. есть 2 устройства с UART , я в разрыв вставляю Дисковери и хочу что бы все данные которые шли от устр1 шли без оработки к устр2 ,

    а данные от устр2 заходили на Дисковери и если пакет данных соответсвует условию.. то посылались б другие , а если нет .. то также просзрачно слались бы..

     

    или натолкните на правильный пример ..

     

    #include "main.h"
    
    uint16_t delay_count=0;
    uint8_t	Mode=0;
    uint16_t Mode_count=0;
    uint8_t Mode_new=0;
    
    uint8_t Button_count=0;
    uint8_t Button_state=0;
    
    
    
    char GetData10[] = {0x55,0x12,0x00,0xA6,0xA0,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
    ,0xD3,0xDF};
    char DataOtvet1[] = {0x55,0x1C,0x00,0x7A,0xA0,0x01,0x00,0x12,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
    ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xAB,0x1A};
    char GetData20[] = {0x55,0x12,0x00,0xA6,0xA0,0x00,0x40,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
    ,0x2e,0x92};
    char DataOtvet2[] = {0x55,0x1C,0x00,0x7A,0xA0,0x01,0x01,0x13,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
    ,0x00,0x00,0x00,0x00,0xC0,0x2F,0x00,0x00,0x00,0x00,0xAA,0x5B};
    char GetData30[] = {0x55,0x12,0x00,0xA6,0xA0,0x00,0x40,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
    ,0x29,0x44};
    char DataOtvet3[] = {0x55,0x1C,0x00,0x7A,0xA0,0x01,0x02,0x12,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
    ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x16,0xAC};
    char GetData40[] = {0x55,0x12,0x00,0xA6,0xA0,0x00,0x40,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
    ,0xD4,0x09};
    char DataOtvet4[] = {0x55,0x1C,0x00,0x7A,0xA0,0x01,0x03,0x13,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
    ,0x00,0x00,0x00,0x00,0xC0,0x2F,0x00,0x00,0x00,0x00,0x17,0xED};
    char GetData50[] = {0x55,0x12,0x00,0xA6,0xA0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
    ,0xA8,0x8E};
    char DataOtvet5[] = {0x55,0x1C,0x00,0x7A,0xA0,0x01,0x00,0x12,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
    ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xAB,0x1A};
    
    char GetData21[] = {0x55,0x12,0x00,0xA6,0xA0,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
    ,0x55,0xc3};
    
    char GetData60[] = {0x55,0x0D,0x04,0x33,0x03,0x0c,0x01,0x00,0x40,0x00,0x01,0xC3,0x41};
    char DataOtvet6[] = {0x55,0x2B,0x04,0x58,0x0c,0x03,0x01,0x00,0xc0,0x00,0x01,0x00,0x10,0x58,0x43,0x4f
    ,0x52,0x45,0x5f,0x45,0x53,0x43,0x5f,0x56,0x78,0x00,0x00,0x00,0x00,0x02,0x02,0x00
    ,
    0x01,0x00,0x00,0x0a,0x01,0xad,0x9f,0x01,0x04,0x4d,0x8c};
    char GetData70[] = {0x55,0x0D,0x04,0x33,0x03,0x2c,0x02,0x00,0x40,0x00,0x01,0x6f,0xd9};
    char DataOtvet7[] = {0x55,0x2B,0x04,0x58,0x2c,0x03,0x02,0x00,0xc0,0x00,0x01,0x00,0x10,0x58,0x43,0x4f
    ,0x52,0x45,0x5f,0x45,0x53,0x43,0x5f,0x56,0x78,0x00,0x00,0x00,0x00,0x02,0x02,0x00
    ,
    0x01,0x00,0x00,0x0a,0x01,0xbe,0x59,0x01,0x04,0xae,0x53};
    char GetData80[] = {0x55,0x0D,0x04,0x33,0x03,0x4c,0x03,0x00,0x40,0x00,0x01,0x9a,0x55};
    char DataOtvet8[] = {0x55,0x2B,0x04,0x58,0x4c,0x03,0x03,0x00,0xc0,0x00,0x01,0x00,0x10,0x58,0x43,0x4f
    ,0x52,0x45,0x5f,0x45,0x53,0x43,0x5f,0x56,0x78,0x00,0x00,0x00,0x00,0x02,0x02,0x00
    ,
    0x01,0x00,0x00,0x0a,0x01,0xc1,0xe2,0x01,0x04,0x57,0x0a};
    char GetData90[] = {0x55,0x0D,0x04,0x33,0x03,0x6c,0x04,0x00,0x40,0x00,0x01,0x26,0xe0};
    char DataOtvet9[] = {0x55,0x2B,0x04,0x58,0x6c,0x03,0x04,0x00,0xc0,0x00,0x01,0x00,0x10,0x58,0x43,0x4f
    ,0x52,0x45,0x5f,0x45,0x53,0x43,0x5f,0x56,0x78,0x00,0x00,0x00,0x00,0x02,0x02,0x00
    ,
    0x01,0x00,0x00,0x0a,0x01,0xdb,0x38,0x01,0x04,0x05,0x38};
    
    
    
    char GetData11[] = {0x55,0x12,0x00,0xA6,0xA0,0x00,0x40,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
    ,0xa8,0x8e};
    char GetData31[] = {0x55,0x12,0x00,0xA6,0xA0,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
    ,0x52,0x15};
    char GetData41[] = {0x55,0x12,0x00,0xA6,0xA0,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
    ,0xaf,0x58};
    
    
    struct CMsg
    {
     char * In;
     char * Out;
     int SizeIn;
     int SizeOut;
    
    };
    
    void Init ( struct CMsg * msg , char * in, int size_in, char * out, int size_out )
    {
    msg -> In = in;
    msg -> Out = out;
    msg -> SizeIn = size_in;
    msg -> SizeOut = size_out;
    }
    
    struct CMsg Messages [ 13 ];
    
    //----------------------------------------------
    //
    //----------------------------------------------
    void SysTick_Handler(void)//1ms
    {
    
    }
    
    
    
    //----------------------------------------------
    //
    //----------------------------------------------
    void delay_ms(uint16_t delay_temp)
    {
    delay_count = delay_temp;
    
    while(delay_count){}
    }
    
    
    //----------------------------------------------
    //
    //----------------------------------------------
    void SendStrtoPC(char* str_p, uint16_t count)
    {
    	uint16_t i=0;
    
    	while(i < count)
    	{
    		while(USART_GetFlagStatus(USART2, USART_FLAG_TC) == RESET){}
    		USART_SendData(USART2, str_p[i]);
    		i++;
    	}
    }
    
    char ReadByte (void )
    {
    while(USART_GetFlagStatus(USART2, USART_FLAG_RXNE) == RESET){}
    return USART_ReceiveData ( USART2 );
    }	
    
    
    void loop() {
    
     char cur;
    char msg_len;
     char Buffer [ 256 ];
    int i = 0 ,j=0, Valid;
    
     do
     {
    cur = ReadByte ();
    	Buffer [ 0 ] = cur;
     }
     while ( cur != 0x55);
    
    
     msg_len = ReadByte ();
    
     Buffer [ 0 ] = 0x55;
     Buffer [ 1 ] = msg_len;
     for ( i = 2; i != msg_len; ++i )
     {
    Buffer [ i ] = ReadByte ();
     }
    
     for ( i = 0; i != sizeof ( Messages ) / sizeof ( struct CMsg); ++i )
     {
    if ( Messages [ i ].SizeIn != msg_len  )
      continue;
    
    Valid = 1;
    for ( j = 0; j != msg_len; ++j )
    {
      if ( Messages [ i ].In [ j ] != Buffer [ j ] )
      {
    	Valid = 0;
    	break;
      }
    }
    
    if ( Valid )
    {
      for ( j = 0; j != Messages [ i ].SizeOut; ++j )
    		{
    			while(USART_GetFlagStatus(USART2, USART_FLAG_TC) == RESET)
    			{}
    		  USART_SendData(USART2, Messages [ i ].Out [ j ] );
    		}
    
      return; // reply sent
    }
     }
    }
    
    
    int main(void)
    {
    
     Init ( &Messages [0], GetData10, sizeof (GetData10), DataOtvet1, sizeof (DataOtvet1) );
     Init ( &Messages [1], GetData11, sizeof (GetData11), DataOtvet1, sizeof (DataOtvet1) );
     Init ( &Messages [2], GetData20, sizeof (GetData20), DataOtvet2, sizeof (DataOtvet2) );
     Init ( &Messages [3], GetData21, sizeof (GetData21), DataOtvet2, sizeof (DataOtvet2) );
     Init ( &Messages [4], GetData30, sizeof (GetData30), DataOtvet3, sizeof (DataOtvet3) );
     Init ( &Messages [5], GetData31, sizeof (GetData31), DataOtvet3, sizeof (DataOtvet3) );
     Init ( &Messages [6], GetData40, sizeof (GetData40), DataOtvet4, sizeof (DataOtvet4) );
     Init ( &Messages [7], GetData41, sizeof (GetData41), DataOtvet4, sizeof (DataOtvet4) );
     Init ( &Messages [8], GetData50, sizeof (GetData50), DataOtvet5, sizeof (DataOtvet5) );
     Init ( &Messages [9], GetData60, sizeof (GetData60), DataOtvet6, sizeof (DataOtvet6) );
     Init ( &Messages [10], GetData70, sizeof (GetData70), DataOtvet7, sizeof (DataOtvet7) );
     Init ( &Messages [11], GetData80, sizeof (GetData80), DataOtvet8, sizeof (DataOtvet8) );
     Init ( &Messages [12], GetData90, sizeof (GetData90), DataOtvet9, sizeof (DataOtvet9) );
    
    
    SysTick_Config(SystemCoreClock/1000);//1 ms
    
    USART2_ini();
    
    while(1)
    {
    
    	loop ();
    }
    }

     

    это код когда есть только устр1 и дисковери .. устр1 шлет пакеты, дисковери смотрит если находит у себя в списке похожий то выдает ответ, если не находит то молчит.

×
×
  • Создать...