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

slavokhire5

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

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

  • Посещение

Репутация

0 Обычный

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

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

Информация

  • Город
    Array
  1. да, я знаю. я пробовал лочить JTAG из кода - получается. Теперь тем же кодом хочу его разлочить (только записывая ff). Но не могу его залить с помощью MSP-FET и BSL Scripter
  2. Привет всем. Пытаюсь разобраться с разблокированием JTAG на msp430f6721. Использую программатор MSP-FET (который черный, версия прошивки по утверждению MSPFlasher_1.3.8 - последняя), в качестве ПО - BSL_scripter v3.1.0.0. Win7 x64 после чтения бесчисленной документации от TI я пришел к выводу, что можно через BSL залить в МК прошивку, которая стирает адреса 0x17fc-0xf17ff (устанавливает в ff), тем самым сбрасывая лок JTAG-a Проблема в том, что я не могу достучаться через BSL до МК - скриптер пытается что-то делать, довольно долго. Но содержимое флеш не меняется Вот мой скрипт: LOG MODE 6xx UART COM5 VERBOSE RX_PASSWORD pass32_wrong.txt MASS_ERASE RX_DATA_BLOCK jtag_unlock.txt TX_DATA_BLOCK 0x17f0 0x10 Data_Read.txt COM5 в моей системе - MSP Application UART1 Схема включения: МК MSP-FET RST/SBWTDO - TDO/TDI (pin1) TEST/SBWTCK - TCK (pin7) VCC - VCC_TOOL (pin2) GND - GND (pin9) BSL_TX - UART_TXD (pin12) BSL_RX - UART_RXD (pin14) пробовал эту схему включения, тоже без результата https://e2e.ti.com/cfs-file/__key/community...-Connection.png
  3. STM32F0 и CRC16

    Если вы пишете расчет контрольной суммы для передающей и принимающей стороны, то вы можете написать что угодно, лишь бы одинаково с обоих сторон) допустим использовать 16 байт из CRC32 :) для всяких "ручных" расчетов сумм я обычно использую сумму флетчера - намного меньше процессорного времени хавает. особенно на каких-нибудь чахлых контроллерах с 8 битами и низкой тактовой частото =)
  4. Привет всем. Апну тему по AD7705 Раньше по старту проводил zero-калибровку (AIN+ и AIN- соединялись на это время полевиком). Сейчас это решение не подходит. При self калибровке АЦП начинает работать нелинейно. Без калибровки по старту вообще все время выдает нули. Пробовал стартовать с zero-калибровкой, но после этого в Offset register писать результаты "домашней" калибровки. Значение в offset регистре меняется на "домашнее", но АЦП работает так, как будто я в offset ничего не писал. Думаю, я как-то неправильно работаю с АЦП. Частота SPI == 4 МГц. Контроллер - mega88pa. Вот мой код: void init_SD_ADC(uint8_t channel, uint8_t cal_mode) { PORTB |= (1 << PB6); // reset в высокий PORTB &= ~0x04; // CS ADC _delay_us(10); ADC_Write(0x20 | channel); // Active Channel select, next operation as write to the clock register ADC_Write(0x04); // master clock enabled, 2.4576MHz Clock, set output rate to 50Hz ADC_Write(0x10 | channel); // Active Channel select, next operation as write to the setup register ADC_Write(0x24 | cal_mode << 6); // gain = 16, unipolar mode, buffer off, clear FSYNC _delay_us(10); PORTB |= 0x04; } // опрос результатов измерения: PORTB &= ~0x04; _delay_us(10); ADC_Write(0x38 | SD_ADC_Channel); data = SPI_ADC_tx(0) << 8; data += SPI_ADC_tx(0); _delay_us(10); PORTB |= 0x04; Возможно кто=то даст хороший совет по калибровке или исправит ошибки в моем коде? :)
  5. Если написать свои библиотеки на всю переферию какого-то жирного стм32, то кода там будет ого-го. Велосипед может быть весьма хорош. А может и не быть. Допускаю переписывание части библиотек, только если не будет хватать производительности.
  6. Я за стандартные либы. Да, местами криво. Да, жрут. Но представьте, что вам достался чужой глючный проект с десятками тысяч строк кода, и все либы - велосипед...
  7. 1. да, можете посмотреть содержимое памяти по адресу вашего массива. Одно из отладочных окошек должно называться "Memory", или как-то так. я не спец в кейле:) 2. считайте так, чтобы было понятно тем, кто будет в будущем ваш код читать 3. в большинстве случаев платформозависимые дефайны хранятся в *.h 4. на макросы распространяется тоже 5. нижнее подчеркивание обычно обозначает, что ф-ция зарезервирована какой-то стандартной либой. старайтесь в своих ф-циях не использовать нижнее подчеркивание в начале названия 6. возможно потому, что поля структуры придется заполнять перед вызовом ф-ции. итого n лишних строк кода
  8. Вероятно проблемы с не выровнянным доступом. В f0 серии этого нельзя делать. Падает на инструкции загрузки полуслова. Если пытаетесь взять полуслово с не четного адреса, то это и есть ваша проблема)
  9. IDE и DevBoards

    Господа инженеры, не ссорьтесь) Верну разговор к истокам. Вчера пришлось перевести проект с stm32f051 на stm32f091. До этого в основном пользовался кокосом. Решил попутно сменить иде - на sw4stm32. Завелась с пол-пинка. Перетащил на нее проект минут за 10. Первое впечатление - в sw4stm32 намного меньше эклипсовых штук выпилено. Сама среда и дебаг запускаются намного быстрее чем кокос.
  10. вероятнее всего переменная не отображалась в протеусе, т.к. CVAvr ее оптимизировал (убил за ненадобностью) в том месте, где вы ее пытались смотреть. volatile сказал компилятору, что нужно оптимизировать осторожнее :) 100 раз подумайте, перед тем, как использовать в AVR переменные типа float - огромное потребление ресурсов.
  11. Такая сложная логика работы? Может Вам за 1-2к возможно накатают прошивку с нуля и на мк и на комп
  12. опыта во взломе контроллеров нет, скажу только то, что вычитал на форумах: 1. китайцы стравливают пластик на чипе и что-то пережигают/восстанавливают в области фьюзов. ювелирная работа, стоит от 1к у.е. 2. если устройство может обновляться шифрованной прошивкой, ее возможно ломануть. есть метод взлома защиты с помощью анализа питания - каждая инструкция имеет свой уровень энергопотребления. таким образом спецы, имеющие очень серьезное оборудование, подбирают ключ шифрования. может уйти несколько недель. цены тоже в тысячах долларов)
  13. я небольшой спец в блютуз, работал только с одним чипом - BLUENRG и по его же докам разбирался (кстати весьма хреновые). ком-порт может и тяжело, а байтики гонять от телефона в устройство - вполне нормальная штука. альтернативный способ соединения телефона с железкой - ЮСБ (не думаю, что это просто со стороны телефона, полюбому куча устройств не будут поддерживать), вайфай (совсем другой уровень потребления). ну и все. можно еще ИК-модуль вспомнить, но это не все телефоны далеко. или аудиоканал, но тут будет оочень низкая скорость передачи, на порядок-два ниже того же BLE
  14. можно и среди мег найти контроллеры с UID. допустим atmega48pb (и более жирные версии). пока у них проблемы с доступностью, но это временно. говорят, у USB-версий мег тоже UID есть. по поводу UID в STM32 - он есть, но допустим в stm32f030 вырезан с целью экономии :) у СТМ часто так, нужно очень внимательно их доки читать:)
  15. RTOS для MSP430

    а в сторону FreeRTOS не смотрели? вроде бы в списке поддерживаемых МК на ядре MSP430X есть, есть примеры для IAR и для CCS, а CCS, если я не ошибаюсь, на gcc работает http://www.freertos.org/a00090.html#TI
×
×
  • Создать...