http://www.engbedded.com/fusecalc
По умолчанию процессор работает на внутреннем генераторе, вам надо переключить его на кварц, вероятно и внутренний делитель выключить...
Благодарю за линк. Удач!
Код: Выделить всё
function TMainForm.ReadParams:Boolean;
var
B0,B3,B4,B5,B6:Byte;
begin
Result:=false;
PClear;
if not TReset then exit;
Result:=true;
TByte($33); //Read ROM
CRC:=0;
B0:=TByte($FF); B1:=TByte($FF);
B2:=TByte($FF); B3:=TByte($FF);
B4:=TByte($FF); B5:=TByte($FF);
B6:=TByte($FF); TByte($FF);
EID.Text:=Format('%.2xH',[B0]);
if B0=$10
then
if (B6*256+B5)>=8
then EName.Text:='DS18S20'
else EName.Text:='DS1820'
else EName.Text:='UNKNOWN';
ESnum.Text:=Format('%.2x%.2x%.2x%.2x%.2x%.2xH',
[B6,B5,B4,B3,B2,B1]);
if CRC=0 then ECRC.Text:='OK' else ECRC.Text:='FAIL';
if not TReset then exit;
TByte($CC); //Skip ROM
TByte($B8); //Recall EEPROM
if not TReset then exit;
TByte($CC); //Skip ROM
TByte($BE); //Read Scratchpad
TByte($FF); TByte($FF);
Usr1:=TByte($FF); Usr2:=TByte($FF);
EUsr1.Text:=Format('%.2xH',[Usr1]);
EUsr2.Text:=Format('%.2xH',[Usr2]);
UpDOwn1.Position:=Usr1;
UpDOwn2.Position:=Usr2;
UpDown1.Enabled:=true;
UpDown2.Enabled:=true;
EUsr1.Enabled:=true;
EUsr2.Enabled:=true;
MWrUsrBytes.Enabled:=true;
end;Шить буду в SO8 to DIP8, без spi. Ставить так же, галка = 0 ?Да. про фьюзы забыл в статье упомянуть.
выставляем их таким образом:
все CKSEL без галки
все SUT с галкой
CKDIV8 галка!!