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

vakinin

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

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

  • Посещение

Репутация

0 Обычный
  1. Считай, что нельзя: даже если защита отключена, попытка чтения по BSL занимает слишком много времени, чтобы действовать перебором
  2. Значит, я в свое время неправильно понял этот кусок даташита :) Но факт есть факт: я пишу какое-то значение в указанную область памяти, и к нам на завод уже возвращались по рекламации приборы со стертой прошивкой.
  3. MSP430 и RTC

    Если еще актуально - то я делал так: запускал счетчик кварца не до 32768, а до 32772, и ежечасно прибавлял к числу в TAR некоторую константу, которая определялась при помощи частотомера. Это достаточно распространенный в массовом производстве подход, если нужно - могу его расписать подробнее.
  4. Брут-форс тоже не поможет: в MSP есть такая фича, что после скольки-то неверных попыток получения доступа по BSL программа стирается. Если ее включили (а я, например, включаю) - после пары попыток в руках оказывается кирпич.
  5. Вставлю свои пять копеек а). По поводу DOS/BIOS - если не пользоваться недокументированными функциями DOS - то никаких глюков не будет. BIOS действительно более гибок, но топикстартеру не нужны такие возможности, как вывод текста в произвольном месте произвольным цветом буква и фона. Так что прерывание 21h рулит :) б). Есть такая книжка, Зубков "Программирование на языке Ассемблера" - почитайте, в интернете в куче мест валяется в виде CHM-файла, там куча примеров. в). Насчет ввести строку - по мне, исходя из постановки задачи, гораздо эффективнее читать побуквенно. То есть - 1. Запуск. Сброс используемых регистров, вывод приветственных надписей 2. Вызов функции 01h 21-го прерывания/ Здесь читается символ с клавиатуры. С эхом (то есть он появится на экране) 3. Если символ - цифра, то умножаем значение CX на 10 (на первом шаге там должен быть ноль) и прибавляем нашу цифру. Как символ в цифру превратить - писать? Если символ - пробел, то пишем в СХ 0, и переходим к шагу 5. Если символ - CR, то переходим к шагу 6 4. Переходим к шагу 2 5. Сюда мы попадаем, если прочитан пробел. Заносим число из CX в массив. Обнуляем СХ и переходим к шагу 2. 6. Сюда мы попадаем, если нажат Enter. Сортируем массив. 7. Переводим числа в 16-ричную систему (там довольно просто) 8. Выводим на экран 9. Бежим обмывать отметку.
  6. На самом деле поменял значения указанных выше регистров и все пошло :) Но на 250к почему-то не идет пока, я пробовал такую скорость ставить. С другой стороны - для меня критична дальность передачи, а она на низких скоростях вроде как побольше. А насчет ухода частоты - всерьез думаю по частотному выходу с GDO0 контроллером определять частоту кварца, и расчитывать параметры...
  7. Такое значение MDMCFG2 мне посоветовал как раз Smart RFstudio Но спасибо за наводку, буду копать в этом направлении. Может еще на какие регистры посоветуете обратить внимание?
  8. Добрый день. У меня есть схема, состоящая их контроллера MSP430F2131 и трансивера СС1101, разводка СС1101 взята из даташита. Одну такую схему я запрограммировал на постоянную передачу, другую - на постоянный прием, скорость - 1200 бод. На данный момент проблема в том, что ни один пакет целым передать не удалось. Если включить автоочищение буфера RX при получении неправильного CRC - то вообще тишина. Если отключить эту фичу, то приемник постоянно ловит кучу мусора вперемешку с кусками посылаемого пакета, причем - часто даже не может корректно обнаружить границы байт. То есть, грубо - посылаю "12345", а получаю - "bdfhj", то есть, фактически - то самое "12345", сдвинутое влево на 1 бит. Попадаются пакеты, сдвинутые на 2, 3 и более бит, как вправо, так и влево. Уровень RSSI при этом у меня порядка 40h..70h, в зависимости от взаимного расположения приемника и передатчика (то есть, как я понял из даташита, практически максимально возможный), LQI - постоянно равен нулю. Кварц - 27 мегагерц, я смотрел осциллографом на ножке GD00 - частота вроде бы та, которая нужна (у приемника - ровно 27 мегагерц, у мередатчика - 27.001352 МГц). Подстройку частоты регистрами FREQ2..FREQ0 я пробовал делать - эффекта мало. Я подозреваю, что дело попросту в настройках приема-передачи. Не подскажете в чем может быть дело? Заранее спасибо На всякий случай: содержимое настроечных регистров, которыми я инициализирую трансивер: IOCFG2 DC8 06h IOCFG1 DC8 2Eh IOCFG0 DC8 3Fh FIFOTHR DC8 07h SYNC1 DC8 0D3h SYNC0 DC8 91h PKTLEN DC8 020h PKTCTRL1 DC8 012h PKTCTRL0 DC8 04h ADDR DC8 0h CHANNR DC8 0h FSCTRL1 DC8 06h FSCTRL0 DC8 0h FREQ2 DC8 20h FREQ1 DC8 25h FREQ0 DC8 0EDh MDMCFG4 DC8 085h MDMCFG3 DC8 75h MDMCFG2 DC8 10h MDMCFG1 DC8 22h MDMCFG0 DC8 0E5h DEVIATN DC8 46h MCSM2 DC8 07h MCSM1 DC8 32h MCSM0 DC8 18h FOCCFG DC8 16h BSCFG DC8 6Ch AGCCTRL2 DC8 03h AGCCTRL1 DC8 40h AGCCTRL0 DC8 91h WOREVT1 DC8 87h WOREVT0 DC8 6Bh WORCTRL DC8 0FBh FREND1 DC8 56h FREND0 DC8 10h FSCAL3 DC8 0E9h FSCAL2 DC8 2Ah FSCAL1 DC8 0h FSCAL0 DC8 1Fh RCCTRL1 DC8 41h RCCTRL0 DC8 0h FSTEST DC8 59h PTEST DC8 7Fh AGCTEST DC8 3Fh TEST2 DC8 81h TEST1 DC8 35h TEST0 DC8 09h
×
×
  • Создать...