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

I_am_Lexx

Участник
  • Публикаций

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

  • Посещение

Репутация

0 Обычный

Информация о I_am_Lexx

  • Звание
    Участник
  • День рождения 26.07.1984

Контакты

  • Сайт
    http://
  • ICQ
    0
  1. Не получается работать с flash.

    Всем доброго дня. Проблема в следующем. Не могу научиться писать/стирать flash в микроконтроллере PIC24FJ1024GB606. Среда: MPLAB X. Компилятор: XC16 ver.1.26. Сказу скажу, что в структуре памяти разбираюсь не очень, но программирую PIC давно. Так что некоторые вещи понимаю. Ранее для записи настроечных параметров в микроконтроллер, типа PIC24FJ64GB004, использовал библиотеку DEE Emulation 16-bit - эмулятор EEPROM. Использовал функции read, write и горя не знал. При попытке запустить ее (DEE) на PIC24FJ1024GB606 оказалось, что она не работает. Стал смотреть ее. Оказалось регистр NVMCOM - регистр контроля Flash памяти в библиотеке DEE не соответствует требуемому. Попробовал поменять - не помогло. Далее в библиотеке разбираться не стал. Открыл документы даташит на мк и "PIC24F Flash Program Memory" - DS30009715C. Надергал примеров из документа на flash. В итоге получилось следующее: unsigned int __attribute__((section(".defaults"), space(prog))) factoryPARAM[512]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}; // объявил область памяти. Доработанный пример стирания из даташита на мк: void erasing(void) { // C example using MPLAB XC16 unsigned long progAddr = (unsigned long)(&factoryPARAM); // Address of row to write unsigned int offset; //Set up pointer to the first memory location to be written NVMADRU = progAddr>>16; // Initialize PM Page Boundary SFR NVMADR = progAddr & 0xFFFF; // Initialize lower word of address NVMCON = 0x4003; // Initialize NVMCON asm("DISI #5"); // Block all interrupts with priority <7 // for next 5 instructions __builtin_write_NVM(); // check function to perform unlock // sequence and set WR } Не стирает. Пример ниже выдернул из "PIC24F Flash Program Memory". factoryPARAM - моя область памяти. void erasing(void) { unsigned int offset; NVMCON = 0x4003; offset = __builtin_tbloffset(factoryPARAM); TBLPAG = __builtin_tblpage(factoryPARAM); __builtin_tblwtl(offset, 0); __builtin_disi(5); __builtin_write_NVM(); } Ничего не стирает. Прошу помочь разобраться, чего я делаю не так. С библиотекой начинал работать за 5 мин. Сейчас убил 2 дня пробуя все варианты. Читать документы полностью тяжко. Естественно, прошу помощи именно по указанному семейству МК, типа PIC24FJ1024GA610/GB610 FAMILY, ну или аналоги.
  2. Время выхода из сна RN-171 (Wifi)

    Привет! Хочу снизить энергопотребление модуля Wifi (RN-171) при помощи введения его в сон. Модуль раз в секунду периодически просыпается, скидывает на сервер информацию с датчиков и вновь уходит в сон. Режим работы TCP Client. ОДНАКО(!) при выходе из сна 200-300 мс тратится на готовность к передаче (при периоде 1 сек). Таким образом теряются все выгоды скважности. Можно или каким образом настроить модуль, чтобы время готовности к передаче стало менее (< 10 - 100 мс). Или же это так Wifi устроен в принципе. И еще, у меня все настройки номер канала Wifi и IP сервера прописано жестко. Так, что время на поиск канала и сети должно быть минимально.
  3. Помогите создать большой массив

    Помогите создать большой массив для PIC18F25K20, MPLAB C18. В документации у них все просто получается, а у меня более 256 байт в массиве выдает syntax error. Думаю надо чего-то в link-файле прописать, а что именно не знаю. Я примерно так делаю или вроде того(многое перепробовал) типа ключей const и изменения имен секций //---------------------------------------- #pragma romdata const_table rom unsigned ASCII[][16] = { //0x00 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, //0x01 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, ....... }; #pragma const_table //-----------------------------------------
  4. Вопросы по FEKO

    Так и не смог разобраться с Feko. Знающих прошу обратить внимание. http://electronix.ru/forum/index.php?showtopic=101065
  5. Здравствуйте! Требуется разработать антенну для RFID 860 Мгц. Антенна должна быть согласована с чипом RFID(двухинтерфейсная память spi и rfid). Входные данные: - Известен входной импеданс чипа - Антенна должна работать с ридером на дальности не хуже других пассивных rfid датчиков с таким же размером - Антенна планируется планарная для печатной платы - Длина антенны < 10см Возможный путь решения задачи - CadFeko, но в Feko не преуспел - не моя специализация. Здесь обсуждал свои попытки в форуме: http://electronix.ru/forum/index.php?showt...5809&st=330 На счет цены вопроса, жду предложений от Вас, ибо сколько это стоит понятия не имею. А хватит денег оплатить разработку или нет зависит от денег конторы. Так, что жду предложений от Вас и буду благодатен за консультацию по ценам. Т.е. тех кто знает, прошу отписать сколько это стоит. С уважением, Алексей.
  6. Вопросы по FEKO

    Цитата(antenna_hunter @ Feb 24 2012, 15:23) К сожалению, у меня есть только версия 6.0, а Ваш проект создан, по всей видимости, в 6.1 и не запускается. Эх, как бы заполучить работающую 6.1... Вот для примера картинка "успешного" возбуждения диполя, находящегося в свободном пространстве: А скажите каким образом у Вас порт получается с обозначением красно-синим кружочком посередине линии. У меня красно-синий кружок в вершине line. Может это принцииально!? И еще, соединены ли все компаненты при помощи union? Если не соединять порт, то mesh можно выполнить, но выдает ошибку при расчетах. На счет версии 6.1.1 у меня trial версия 45 дней, потом "кердык" или ставить lite со всеми ее ограничениями.
  7. Вопросы по FEKO

    Цитата(I_am_Lexx @ Feb 22 2012, 14:03) Нужно промоделировать какой будет импеданс у простого полуволнового вибратора, чтобы знать нужно ли согласование антенны с входным импедансом подключаемой микросхемы. Как сделать правильно. Если линия на которой порт встык с диполями выдает ошибку. Если порт длиннее(налазит на диполи), тоже выдает ошибку. Ошибка выдается при слиянии компанентов командой union. После этого выполнить команду mesh невозможно.((
  8. Вопросы по FEKO

    Цитата(antenna_hunter @ Feb 24 2012, 13:06) Для вибратора этот самый элемент "line" следует поместить между двумя его плечами. За счет Voltage source сами плечи возбудятся противофазно, что и должно быть в действительности. А как на счет длины line? имеет ли смысл его длина? И в какую точку полосков его подсоединять. Ведь если разместить вершины line на стороны(edges) прямоугольных плеч вибратора, то при расчетах Feko выдаст ошибку, т.к. при выполнении операции mesh получится треугольник, у которого одна сторона совпадает в двумя другими. Надеюсь понятен вопрос. А то весьма сложное предложение получилось. Если в чем-то я не прав - поправьте.
  9. Вопросы по FEKO

    Цитата(antenna_hunter @ Feb 24 2012, 09:30) Постройте модель самого вибратора, например, из цилиндров или полоскового исполнения (Вы не сказали, какой именно формы он будет), и задайте возбуждение посредством порта Voltage source. Такой вариант как раз позволит определить величину входного сопротивления. Исполнение в виде полосков. В примере видел, что Voltage source размещается на геометрическом элементе line. Причем, подключение к антенне производят в одной точке. Как же мне указать, что антенна должна быть подключена к микросхеме в двух точках, как указано на рисунке выше, и, как повлияет длина элемента line(если пользоваться им) на параметры модели.
  10. Вопросы по FEKO

    Подскажите. Установил Feko. Особенности моделирования не знаю. Нужен конкретный совет. Нужно промоделировать какой будет импеданс у простого полуволнового вибратора, чтобы знать нужно ли согласование антенны с входным импедансом подключаемой микросхемы. Видел у Feko есть множество примеров. Может какой-то пример полностью моделирует мою ситуацию или, что нужно поменять, чтобы приблизить модель к нужной ситуации. В примерах диполи моделируются безразмерным стержнем, а мне нужно учесть влияние размеров антенны на ее импеданс. Спасибо за советы!
  11. Все оказалось просто. При старте контроллер всегда проверяет security code и сверяет его с key code. Помогло добавление кода из pdf техаса, в котором сверяется соответствие security code с key code: //C Code Example to Unsecure volatile int *CSM = (volatile int *)0x000AE0; //CSM register file volatile int *PWL = (volatile int *)0x003F7FF8; //Password location volatile int tmp; int I; // Read the 128-bits of the password locations (PWL) // in flash at address 0x3F 7FF8 - 0x3F 7FFF // If the device is secure, then the values read will // not actually be loaded into the temp variable, so // this is called a dummy read. for (I=0; I<8; I++) tmp = *PWL++; // If the password locations (PWL) are all = ones (0xFFFF), // then the device will now be unsecure. If the password // is not all ones (0xFFFF), then the code below is required // to unsecure the CSM. // Write the 128-bit password to the KEY registers // If this password matches that stored in the // PWL then the CSM will become unsecure. If it does not // match, then the device will remain secure. // An example password of: // 0x11112222333344445555666677778888 is used. asm(" EALLOW"); // Key registers are EALLOW protected *CSM++ = 0x1111; // Register KEY0 at 0xAE0 *CSM++ = 0x2222; // Register KEY1 at 0xAE1 *CSM++ = 0x3333; // Register KEY2 at 0xAE2 *CSM++ = 0x4444; // Register KEY3 at 0xAE3 *CSM++ = 0x5555; // Register KEY4 at 0xAE4 *CSM++ = 0x6666; // Register KEY5 at 0xAE5 *CSM++ = 0x7777; // Register KEY6 at 0xAE6 *CSM++ = 0x8888; // Register KEY7 at 0xAE7 asm(" EDIS"); Кстати эта функция есть в файле DSP2802x_SysCtrl.c, который поставляется с примерами программирования, функция CsmUnlock(). Можно вызвать ее, чтобы открыть доступ к засекреченным областям памяти. Good luck!
  12. кто-нибудь имплементировал 'TI С28x Real Library' на >1024 точек?

    Зачем флуд-то разводить, создавая 5 одинаковых тем???

  13. ЦитатаЭлектронщика немного смутило что при прошивке с2000 не пишет о верификации. В Manul на программу c2000 указано, что функции верификации там нет, но благодаря CRC ошибка программирования мала: "C2oooProg does not feature a ”verify” function. Since each line of the hex-file is being transmitted over RS-232 with a 16-bit cyclic redundancy code (CRC) and all flash writes are verified, the likelihood of a programming error is extremely small."
  14. Цитата(Сергей27 @ Feb 10 2010, 08:44) Подскажите как быть в моей ситуации. Прошил процессор F2808 с установленными числами в DSP280x_CSMPasswords.asm из примеров. Прошилось, работает, но перепрошить уже не удаётся даже если скомпилировано с этими же числами. Попробуй так: http://electronix.ru/forum/index.php?s=&am...st&p=688996 Прошивка должна быть c изначальным code security 0xFFFF, ..., 0xFFFF, а в c2000 ввести пароль, которым залочена прошивка
  15. Так что ж, Братцы! Никто не закрывал доступ к прошивке на мк TMS28x. Прошу у тех кто имеет опыт популярно, по шагам объяснить последовательность требуемых действий.