ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
29 марта
851846
Adept (29.06.2018 19:21 - 21:07, просмотров: 7295)
не могу считать "Calibration Row" в XMEGA, вроде делаю всё как надо 
Read User Signature Row / Calibration Row The Read User Signature Row and Read Calibration Row commands are used to read one byte from the User Signature Row or Calibration Row. 1. Load the Z-pointer with the byte address to read. 2. Load the NVM CMD register with the Read User Signature Row / Calibration Row command 3. Execute the LPM instruction. The destination register will be loaded during the execution of the LPM instruction. To ensure that LPM for reading flash will be executed correctly it is adviced to disable interrupt while using either of these commands.
- запрещаю прерывания - пищу в Z адрес "PROD_SIGNATURES_START" (это 0x0000, и читать будем весь вектор) - гружу в командный регистр NWM команду "NVM_CMD_READ_CALIB_ROW_gc" (0x02) - в цикле читаю lpm TMP,Z+ (перед каждым lpm опять прописываю командный регистр NWM, ибо он сбрасывается при чтении по lpm) в итоге получаю данные из памяти программ с нулевого адреса :(( вроде по описанию не нужно ставить бит исполнения NWM-команды, т.к. триггером является команда "lpm" (каюсь, пробовал и с этим битом, через механизм CCP, ессно) - всё глухо уже и в ручную в отладчике пошагово проходил всё с ручным изменением нужных регистров :( - без толку, упорно читаются данные из флеша. битый час мучаюсь ЧЯДНТ ?? :(( ------------------- пошёл искать аппноты на сайт некрочипа :((
...делать нужно так, как нужно. А как ненужно - делать не нужно (С) Винни-Пух :)