-
Постов
378 -
Зарегистрирован
-
Посещение
Весь контент west329
-
Всем привет. Подскажите пожалуйста можно ли dsPic подключить USB флешку емкостью 8 гб напрямую. Кто то пробовал подобное подключение ? Как я понял такой объем поддерживатеся начиная с FAT32. Спасибо.
-
Моя инициализация на 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);
-
Помогите запустить пару модулей RFM22-868S2
west329 опубликовал тема в RF & Microwave Design
Добрый день. Поделитесь рабочей конфигурацией на 800мгц. Любой канал лишь бы была уже проверена в железе на 800. Уже двое суток не встаю из за кампа. Попробовал несколько конфигураций пока безрезультатно. Попаду домой выставлю схемку и инициализацию свою. Уже переехал с аппаратного SPI на програмный. Благодарю. -
Да в прошивке поменять не проблема. Значит достаточно в конфигах указать порт для прошивки и все
-
Тоесть всетаки надо на 1 прошивать, и сказать что будем работать на втором ?
-
Подскажите пожалуйста. В контроллере DSPIC33FJ128GP804 есть 3 входа для прошивки 1 - PGEC1 PGED1 2 - PGEC2 PGED2 3 - PGEC3 PGED3 Всегда был 1й. Потом стукнуло нашим инжинерам. Сделали плату и разъем программирования завели на 2 вход. Вопрос. Будут ли зашиваться контроллеры. Или его надо будет всеравно с 1 переключать на 2 или на 3й выход. Платы пока не приехали. Проверить не на чем.
-
Благодарю за помощь.
-
Где можно скачать схему для SIM900 EVB KIT и SIM900 TE ????
-
А если SIM800H будет ещё ЕАТ поддерживать, революция не за горами.
-
SIM900 длинный шлейф до SIM
west329 ответил stiff тема в Сотовая связь и ее приложения
Нельзя. Получатся хорошие антенны. Если их шунтировать пропадет обмен с картой. Потом не будите знать откуда глюки. -
Интересно зачем нужно начальное меню ???
-
Лучше вообще не спрашивать AT+CPIN ??
-
Я думал есть ещё какие то варианты, так наверно и поступлю. Забыл спросить, команда AT+CPIN проверка сим карты на пин. Как лучше её опрашивать до регистрации в сети или после ?
-
SIM900 начальная инициализация
west329 опубликовал тема в Сотовая связь и ее приложения
Всем читающим привет. Хотел все время спросить но как то стеснялся. думал, что все и так понятно. На днях потребовалось работать с SIM900 с СМС, а именно конфигурировать удаленно устройство. Интересует все же когда начинать работать с SIM900 а вернее сим карта полностью работоспособна. Есть много вариантов, от запроса первого номера с карты до паузы в 40секунда. Моя реализация следующая После включения SIM900 Кручусь опрашиваю модуль AT+CSQ и AT+CREG Потом по алгоритму нужно удалить все смс AT+CMGD=1 тут вопрос сколько ждать и как правильно ждать, какой выделять таймаут, или может сим ещё не готова к таким командам ? -
Все таки можно на этапе линковки сместить таблицу векторов прерываний. Просто за ради теста проверил, полет нормальный. Изменения в 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 Спасибо за помощь. Ваша ссылка разкоментила много пробелов относительно работы прерываний.
-
Жаль что нельзя обойтись просто записью в линковщике, чтоб перенести векторы. как то так define symbol __ICFEDIT_intvec_start__ = 0x08000000 + 0x400; проверил, стартует нормально до доходит до первого прерывания и улетает в космосс
-
Пишу простой загрузчик под F100. В планах на старте использовать UART, а потом переехать на SPI, чтоб была возможность ещё и отлаживать собственные данные. Недавно перебрался с ПИК, мозги ещё немного не перелинковал под АРМ. Тело загрузчика размещаю в начале памяти RОМ первые 10 страниц памяти 10кБ. По аналогии полез в линковщик прописал ему смещение относительно базового адреса 0x08000000 + 10кБ. ИАР не возражал и перенёс исполняемый код по смещению. Собственно сам загрузчик будет работать нормально, вопрос возник с рабочей программой, которая про загрузчик ничего не знает и самое главное вектора прерываний указываю на загрузчик а не на основную программу. Вектора как понял сидят по адресу 0х8000000-0х800011f Вопрос следующий, как перенести вектора прерываний, после загрузчика ?
-
Кто работал с LAN9500?
west329 ответил Марик тема в Микросхемы
Подскажите, можно через эту микросхему удлинить USB 3g модем ? -
Уровень сигнала
west329 ответил MKdemiurg тема в Сотовая связь и ее приложения
Какой минимальный уровень RSSI приемлем для стабильной работы GPRS ?? Подключил штыревую антенну напрямую через разъем RSSI=16 81dB штыревую антенну с кабелем 30см уровень RSSI=14 85dB штыревую антенну с кабелем 3m уровень RSSI=11 91dB что можете сказать за такие замеры ув. читатели ? -
Есть ли возможность не использовать встроенные АТ для передачи ??? Хочется просто, не выйдет, за это приходится платить быстродействием. Напиши простой РРР клиент. Подымай сессию и вперед, пакуй данные в PPP-IP-UDP заголовки и отсылай в модем. Не нужно будет дожидаться > и SEND OK, только так. Проверено на СИМ900.
-
а его в каком формате как обычно ? AT+CMGS="+380661213140"<r> , виде в ДАТАШИТЕ его китайцы как то по хитрому пишут
-
Хотите сказать, что можно смело после AT+CSCS="UCS2" передавать unicode подобно такому виду ? AT+CSMP=17,167,0,25<r> AT+CSCS="UCS2"<r> AT+CMGS="041F04400438043204350442" //Unicode Привет не прибегая к форматированию PDU ???? могу предположить, что модуль уже своими средствами сам сформирует PDU строку на основе введенных данных
-
AT+CLCC=1 рулит. Получаю две строки с номером телефона звонящего, в начале звонка и в конце. С диким набором параметров.
-
У меня когда звонят только RING RING RING RING Щас проверим
-
Заборол таки русский через PDU. Если кому интересно выложу, пишите. Подскажите команду, чтоб модуль при входящем звонке отображал номер звонящего ?