芯片上的批次字樣:202386A40
芯片型號(hào):CH341A? SOP28
使用CH341StreamSPI4函數(shù)讀一次 25 SPI FLASH 的任意數(shù)據(jù)后, 那怕讀一下25芯片的ID后,
那怕用?CH341WriteEEPROM 寫一次數(shù)據(jù),? 再CH341ReadEEPROM讀, 也讀不到數(shù)據(jù)了.
再使用CH341ReadEEPROM函數(shù)讀 24 EEPROM芯片的數(shù)據(jù) 則會(huì)讀不到24芯片的數(shù)據(jù)了.
需要芯片斷電 重新上電,再用CH341ReadEEPROM去讀數(shù)據(jù) 才會(huì)讀取到數(shù)據(jù).
請(qǐng)問這是什么問題?? ?以前購(gòu)買的批次芯片 一直正常,? ?軟件使用多年都正常的.
就是這最后購(gòu)買批次的芯片發(fā)現(xiàn)這個(gè)問題?? 會(huì)是買到假芯片了嗎?? 一直以來都是同一個(gè)供應(yīng)商買的芯片.
附件為測(cè)試錄像:
測(cè)試代碼:
Var
? TmpBuf: Array[0..4096] Of Byte;
? Buffer: Array[0..4096] Of Byte;
Procedure TFrmMain.Button1Click(Sender: TObject);
Var
? j: Integer;
Begin
? Test1.Clear;
? FillChar(Buffer, SizeOf(Buffer), $FF);
? CH341ReadEEPROM(mIndex, ID_24C02, 0, 256, @Buffer);
? For j := 1 To 256 Do
? Begin
? ? Test1.Text := Test1.Text + IntToHex(Buffer[j - 1], 2) + ' ';
? ? If (j Mod 16 = 0) Then
? ? ? Test1.Text := Test1.Text + #13#10;
? End;?
? Test1.Refresh;
End;
Procedure TFrmMain.Button2Click(Sender: TObject);
Var
? j: Integer;
Begin
? Test2.Clear;
? FillChar(TmpBuf, SizeOf(TmpBuf), $FF);
? SPI_Read_Block(mIndex, 0, 256, @TmpBuf, Read);
? For j := 1 To 256 Do
? Begin
? ? Test2.Text := Test2.Text + IntToHex(TmpBuf[j - 1], 2) + ' ';
? ? If (j Mod 16 = 0) Then
? ? ? Test2.Text := Test2.Text + #13#10;
? End;
? Test2.Refresh;
End;