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

west329

Свой
  • Постов

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

  • Посещение

Весь контент west329


  1. Всем привет. Подскажите пожалуйста можно ли dsPic подключить USB флешку емкостью 8 гб напрямую. Кто то пробовал подобное подключение ? Как я понял такой объем поддерживатеся начиная с FAT32. Спасибо.
  2. Моя инициализация на 800 мгц. Взят с сети. Разарботал немецкий программист. Большенство ссылаются именно на этот код как самы рабочий :) for(unsigned long a = 0;a<100000;a++){asm("nop");}; // wait until POR done rf22_write(0x07, 0x80); // software reset for(unsigned long a = 0;a<100000;a++){asm("nop");}; // wait until software reset done rf22_write(0x05, 0x02); // valid packed received interrupt on rf22_write(0x06, 0x00); // all interrupts off rf22_write(0x07, 0x01); // operating mode: ready mode rf22_write(0x09, 0x7f); // xtal load capacitance rf22_write(0x0A, 0x02); // uC CLK: 10MHz rf22_write(0x0b, 0xf2); // GPIO0: TX_ANT - f2 rf22_write(0x0c, 0xf5); // GPIO1: RX ANT - f5 rf22_write(0x0d, 0x00); // GPIO2: uC Clock out rf22_write(0x0e, 0x00); rf22_write(0x0f, 0x70); // ADC Input: GND rf22_write(0x10, 0x00); // ADC offset: 0 rf22_write(0x12, 0x00); // temp sensor calibration off rf22_write(0x13, 0x00); // temp sensor offset: 0 rf22_write(0x1d, 0x40); // enable AFC rf22_write(0x1e, 0x0A); // afc timing rf22_write(0x1f, 0x03); // afc timing rf22_write(0x1C, 0x05); // IF bandwidth rf22_write(0x20, 0x83); // Clock Recovery Oversampling Rate rf22_write(0x21, 0xC0); // Clock Recovery Offset 2 rf22_write(0x22, 0x13); // Clock Recovery Offset 1 rf22_write(0x23, 0xA9); // Clock Recovery Offset 0 rf22_write(0x24, 0x00); // Clock Recovery Timing Loop Gain 1 rf22_write(0x25, 0x04); // Clock Recovery Timing Loop Gain 0 rf22_write(0x2A, 0x24); rf22_write(0x27, 0x10); // RSSI Threashold: -120dB rf22_write(0x30, 0x8c); // data access: RX/TX packet handling, enable crc: CCIT rf22_write(0x32, 0xff); // header check enable rf22_write(0x33, 0x42); // 2 word synchronisation rf22_write(0x34, 0x10); // preamble length: 16 nibbles, = 64bits rf22_write(0x35, 0x30); // preamble detection control: 6 nibbles = 24bits rf22_write(0x36, 0x2d); // sync word 3 rf22_write(0x37, 0xd4); // sync word 2 rf22_write(0x38, 0xAA); // sync word 1 rf22_write(0x39, 0xAA); // sync word 0 rf22_write(0x3a, 'h'); // transmit header 3 rf22_write(0x3b, 'o'); // transmit header 2 rf22_write(0x3c, 'p'); // transmit header 1 rf22_write(0x3d, 'e'); // transmit header 0 rf22_write(0x3e, 17); // packet length rf22_write(0x3f, 'h'); // check header 3 rf22_write(0x40, 'o'); // check header 2 rf22_write(0x41, 'p'); // check header 1 rf22_write(0x42, 'e'); // check header 0 rf22_write(0x43, 0xff); // header enable mask 3 rf22_write(0x44, 0xff); // header enable mask 2 rf22_write(0x45, 0xff); // header enable mask 1 rf22_write(0x46, 0xff); // header enable mask 0 rf22_write(0x69, 0x60); // AGC on rf22_write(0x6a, 0x0b); // agc override 2 rf22_write(0x6d, 0x0F); // tx power: +17dBm rf22_write(0x6E,0x13); // set baud high rf22_write(0x6F,0xa9); // set baud low rf22_write(0x70, 0x2C); // modulation control rf22_write(0x71, 0x22); // modulation control 2: FIFO mode, OOK //0x21 / 0x00 rf22_write(0x72, 0x50); // frequency deviation: 45kHz rf22_write(0x73, 0x00); // offset: 0 rf22_write(0x74, 0x00); // offset: 0 rf22_write(0x79, 0x0); // frequency hopping off rf22_write(0x7a, 0x0); // frequency hopping off #ifdef BAND_868 rf22_write(0x75, 0x73); // 860-880MHz range #else rf22_write(0x75, 0x53); // 430-440MHz range #endif Сейчас тестировал такой код. Програмный SPI. Вручную дёргаю ногами передача прием. Уже не знаю на что грешить. void SPI_RFM_INIT (void) { SPI_WRITE(0x06, 0x00); // interrupt all disable SPI_WRITE(0x07, 01); // to ready mode SPI_WRITE(0x09, 0x7f); // cap = 12.5pf SPI_WRITE(0x0a, 0x05); //clk output is 2MHz SPI_WRITE(0x0C,3);//SPI_WRITE(0x0C,0b00010111); //SPI_WRITE(0x0C,0b00010111); // GPIO Configuration 0. SPI_WRITE(0x0B,3);//SPI_WRITE(0x0B,0b00011000); // GPIO Configuration 1. SPI_WRITE(0x0d, 0x00); // GPIO2 for MCLK output SPI_WRITE(0x0e, 0x00); //GPIO port use default value SPI_WRITE(0x0f, 0x70); // NO ADC used SPI_WRITE(0x10, 0x00); //no adc used SPI_WRITE(0x12, 0x00); // no temperature sensor used SPI_WRITE(0x13, 0x00); // no temperature sensor used SPI_WRITE(0x70, 0x20); // no mancheset code, no data whiting, data rate < 30Kbps SPI_WRITE(0x1c, 0x04); // IF filter bandwidth SPI_WRITE(0x1d, 0x40); // AFC LOOP SPI_WRITE(0x1e, 0x08); //AFC timing SPI_WRITE(0x20, 0x41); //clock recovery SPI_WRITE(0x21, 0x60); //clock recovery SPI_WRITE(0x22, 0x27); //clock recovery SPI_WRITE(0x23, 0x52); //clock recovery SPI_WRITE(0x24, 0x00); //clock recovery timing SPI_WRITE(0x25, 0x06); //clock recovery timing SPI_WRITE(0x6e, 0x27); // Tx data rate 1 SPI_WRITE(0x6f, 0x52); // Tx data rate 0 SPI_WRITE(0x30, 0x8c); // data access control SPI_WRITE(0x32, 0xff); // header control SPI_WRITE(0x33, 0x42); // // header 3, 2, 1,0 used for head length, fixed packet length, synchronize word length 3, 2, SPI_WRITE(0x34, 64); // 64 nibble = 32byte preamble SPI_WRITE(0x35, 0x20); //0x35 need to detect 20bit preamble SPI_WRITE(0x36, 0x2d); // synchronize word SPI_WRITE(0x37, 0xd4); SPI_WRITE(0x38, 0x00); SPI_WRITE(0x39, 0x00); SPI_WRITE(0x3a, 's'); // set tx header SPI_WRITE(0x3b, 'o'); SPI_WRITE(0x3c, 'n'); SPI_WRITE(0x3d, 'g'); SPI_WRITE(0x3e, 1); // total tx 17 byte SPI_WRITE(0x3f, 's'); // set rx header SPI_WRITE(0x40, 'o'); SPI_WRITE(0x41, 'n'); SPI_WRITE(0x42, 'g'); SPI_WRITE(0x43, 0xff); // all the bit to be checked SPI_WRITE(0x44, 0xff); // all the bit to be checked SPI_WRITE(0x45, 0xff); // all the bit to be checked SPI_WRITE(0x46, 0xff); // all the bit to be checked SPI_WRITE(0x6d, 0x03); // tx power to Max SPI_WRITE(0x79, 0x0); // no frequency hopping SPI_WRITE(0x7a, 0x0); // no frequency hopping SPI_WRITE(0x71, 0x22); // Gfsk, fd[8] =0, no invert for Tx/Rx data, fifo mode, txclk -->gpio SPI_WRITE(0x72, 0x48); // frequency deviation setting to 45k = 72*625 SPI_WRITE(0x73, 0x0); // no frequency offset SPI_WRITE(0x74, 0x0); // no frequency offset SPI_WRITE(0x75, 0x53); // frequency set to 434MHz SPI_WRITE(0x76, 0x64); // frequency set to 434MHz SPI_WRITE(0x77, 0x00);// frequency set to 434MHz SPI_WRITE(0x08, 0x03); // fifo reset SPI_WRITE(0x08, 0x00);
  3. Добрый день. Поделитесь рабочей конфигурацией на 800мгц. Любой канал лишь бы была уже проверена в железе на 800. Уже двое суток не встаю из за кампа. Попробовал несколько конфигураций пока безрезультатно. Попаду домой выставлю схемку и инициализацию свою. Уже переехал с аппаратного SPI на програмный. Благодарю.
  4. Да в прошивке поменять не проблема. Значит достаточно в конфигах указать порт для прошивки и все
  5. Тоесть всетаки надо на 1 прошивать, и сказать что будем работать на втором ?
  6. Подскажите пожалуйста. В контроллере DSPIC33FJ128GP804 есть 3 входа для прошивки 1 - PGEC1 PGED1 2 - PGEC2 PGED2 3 - PGEC3 PGED3 Всегда был 1й. Потом стукнуло нашим инжинерам. Сделали плату и разъем программирования завели на 2 вход. Вопрос. Будут ли зашиваться контроллеры. Или его надо будет всеравно с 1 переключать на 2 или на 3й выход. Платы пока не приехали. Проверить не на чем.
  7. Где можно скачать схему для SIM900 EVB KIT и SIM900 TE ????
  8. А если SIM800H будет ещё ЕАТ поддерживать, революция не за горами.
  9. Нельзя. Получатся хорошие антенны. Если их шунтировать пропадет обмен с картой. Потом не будите знать откуда глюки.
  10. Я думал есть ещё какие то варианты, так наверно и поступлю. Забыл спросить, команда AT+CPIN проверка сим карты на пин. Как лучше её опрашивать до регистрации в сети или после ?
  11. Всем читающим привет. Хотел все время спросить но как то стеснялся. думал, что все и так понятно. На днях потребовалось работать с SIM900 с СМС, а именно конфигурировать удаленно устройство. Интересует все же когда начинать работать с SIM900 а вернее сим карта полностью работоспособна. Есть много вариантов, от запроса первого номера с карты до паузы в 40секунда. Моя реализация следующая После включения SIM900 Кручусь опрашиваю модуль AT+CSQ и AT+CREG Потом по алгоритму нужно удалить все смс AT+CMGD=1 тут вопрос сколько ждать и как правильно ждать, какой выделять таймаут, или может сим ещё не готова к таким командам ?
  12. Boot STM32F100

    Все таки можно на этапе линковки сместить таблицу векторов прерываний. Просто за ради теста проверил, полет нормальный. Изменения в BOOTstm32f100xB.icf define symbol __ICFEDIT_intvec_start__ = 0x08000000 + 0x400; define symbol __ICFEDIT_region_ROM_start__ = 0x08000000 + 0x400; Изменения в system_stm32f10x.c #define VECT_TAB_OFFSET 0x400 теперь можно смело писать 2 независимых приложения загрузчик и рабочий код, правда думаю перед выходом с загрузчика нужно остановить все прерывания, иначе можно улететь не туда переключение таблицы выполняет void SystemInit(void) кому интетесно #ifdef VECT_TAB_SRAM SCB->VTOR = SRAM_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal SRAM. */ #else SCB->VTOR = FLASH_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal FLASH. */ #endif Спасибо за помощь. Ваша ссылка разкоментила много пробелов относительно работы прерываний.
  13. Boot STM32F100

    Жаль что нельзя обойтись просто записью в линковщике, чтоб перенести векторы. как то так define symbol __ICFEDIT_intvec_start__ = 0x08000000 + 0x400; проверил, стартует нормально до доходит до первого прерывания и улетает в космосс
  14. Boot STM32F100

    Пишу простой загрузчик под F100. В планах на старте использовать UART, а потом переехать на SPI, чтоб была возможность ещё и отлаживать собственные данные. Недавно перебрался с ПИК, мозги ещё немного не перелинковал под АРМ. Тело загрузчика размещаю в начале памяти RОМ первые 10 страниц памяти 10кБ. По аналогии полез в линковщик прописал ему смещение относительно базового адреса 0x08000000 + 10кБ. ИАР не возражал и перенёс исполняемый код по смещению. Собственно сам загрузчик будет работать нормально, вопрос возник с рабочей программой, которая про загрузчик ничего не знает и самое главное вектора прерываний указываю на загрузчик а не на основную программу. Вектора как понял сидят по адресу 0х8000000-0х800011f Вопрос следующий, как перенести вектора прерываний, после загрузчика ?
  15. Подскажите, можно через эту микросхему удлинить USB 3g модем ?
  16. Какой минимальный уровень RSSI приемлем для стабильной работы GPRS ?? Подключил штыревую антенну напрямую через разъем RSSI=16 81dB штыревую антенну с кабелем 30см уровень RSSI=14 85dB штыревую антенну с кабелем 3m уровень RSSI=11 91dB что можете сказать за такие замеры ув. читатели ?
  17. Есть ли возможность не использовать встроенные АТ для передачи ??? Хочется просто, не выйдет, за это приходится платить быстродействием. Напиши простой РРР клиент. Подымай сессию и вперед, пакуй данные в PPP-IP-UDP заголовки и отсылай в модем. Не нужно будет дожидаться > и SEND OK, только так. Проверено на СИМ900.
  18. а его в каком формате как обычно ? AT+CMGS="+380661213140"<r> , виде в ДАТАШИТЕ его китайцы как то по хитрому пишут
  19. Хотите сказать, что можно смело после AT+CSCS="UCS2" передавать unicode подобно такому виду ? AT+CSMP=17,167,0,25<r> AT+CSCS="UCS2"<r> AT+CMGS="041F04400438043204350442" //Unicode Привет не прибегая к форматированию PDU ???? могу предположить, что модуль уже своими средствами сам сформирует PDU строку на основе введенных данных
  20. AT+CLCC=1 рулит. Получаю две строки с номером телефона звонящего, в начале звонка и в конце. С диким набором параметров.
  21. У меня когда звонят только RING RING RING RING Щас проверим
  22. Заборол таки русский через PDU. Если кому интересно выложу, пишите. Подскажите команду, чтоб модуль при входящем звонке отображал номер звонящего ?
×
×
  • Создать...