16+
Пятница
16 ноября
Вход |Карта сайта | |Upload |codebook | PARTS

 О смысле всего сущего 0xFF

 Средства и методы разработки

 Мобильная и беспроводная связь

 Блошиный рынок Объявления

caxapa

Микроконтроллеры ARM 

AVR PIC MSP PLD,FPGA,DSP 

Кибернетика Технологии 

Схемы, платы, компоненты 

Микроконтроллеры AVR

 
   Новая тема Правила Регистрация Поиск »» Архив
Вернуться в конференциюТопик полностью
Adept  (29.06.2018 22:45 - 29.06.2018 22:48) , в ответ на Полный текст функции в студию! автор: AU08
да нет там никакой функции - три строчки на ассемблере :)) 
Read_CalibrationBYTES:

#warning "wrong ReadCalibrations!!" //неверно читаются калибровочные данные (какая-то фигня, м.б. с режимами NWM-контроллера??

	// калибровочные байты системы тактирования считываются аппаратно сразу после сигнала RESET
	// DFLLRC2M_CALB, DFLLRC2M_CALA		- RC2M  CLC 
	// OSC_RC32KCAL				- RC32K CLC
	// DFLLRC32M_CALB, DFLLRC32M_CALA	- RC32M CLC
	// остальные калибровочные константы нужно считывать и прописывать в соответствующие регистры "вручную".
	;---------------------------- 
	LDZ	PROD_SIGNATURES_START+NVM_PROD_SIGNATURES_LOTNUM0_offset	;Установим в Z адрес первой считываемой константы в Signature Row
	PUSH_TMP_SREG					;\ запомним статус прерываний		
	cli						;запретим на время выполнения LPM (на самом деле на всю процедуру) прерывания, как рекомендовано в даташите).

	;---------------------------- Chip ID (Signature)
	;.equ NVM_PROD_SIGNATURES_LOTNUM0_offset = 0x08		// Lot Number Byte 0, ASCII
	S_LDI	NVM_CMD,NVM_CMD_READ_CALIB_ROW_gc	;Активизация команды чтения Calibration Row
	lpm	TMP,Z+					
	sts	S_DevID0,TMP					
	;.equ NVM_PROD_SIGNATURES_LOTNUM1_offset = 0x09		// Lot Number Byte 1, ASCII
	S_LDI	NVM_CMD,NVM_CMD_READ_CALIB_ROW_gc	;Активизация команды чтения Calibration Row
	lpm	TMP,Z+					
	sts	S_DevID1,TMP					
	;.equ NVM_PROD_SIGNATURES_LOTNUM2_offset = 0x0A		// Lot Number Byte 2, ASCII
	S_LDI	NVM_CMD,NVM_CMD_READ_CALIB_ROW_gc	;Активизация команды чтения Calibration Row
	lpm	TMP,Z+					
	sts	S_DevID2,TMP					
	;.equ NVM_PROD_SIGNATURES_LOTNUM3_offset = 0x0B		// Lot Number Byte 3, ASCII
	S_LDI	NVM_CMD,NVM_CMD_READ_CALIB_ROW_gc	;Активизация команды чтения Calibration Row
	lpm	TMP,Z+					
	sts	S_DevID3,TMP					
// ...
ну и дальше в таком духе :) казалось бы чего там в трёх соснах плутать, однакож :(( такое впечатление, что адрес SignatureRow неверный. Вроде, как я понимаю, адрес у него действительно с нуля, но в своей выделенной области памяти, которая адресуется командой NWM контроллера (т.е. по нулевому адресу я должен вроде как читать CalibrationROW, а не флешь, как сейчас :((( но в ДШ на этот счёт ничего внятного :((
Главная | Карта сайта | О проекте | Проекты | Файлообменник | Регистрация | Вебмастер | RSS
Лето 7527 от сотворения мира. При использовании материалов сайта ссылка на caxapу обязательна.
MMI © MMXVIII