芯片上的批次字样:202386A40
芯片型号:CH341A? SOP28
使用CH341StreamSPI4函数读一次 25 SPI FLASH 的任意数据后, 那怕读一下25芯片的ID后,
那怕用?CH341WriteEEPROM 写一次数据,? 再CH341ReadEEPROM读, 也读不到数据了.
再使用CH341ReadEEPROM函数读 24 EEPROM芯片的数据 则会读不到24芯片的数据了.
需要芯片断电 重新上电,再用CH341ReadEEPROM去读数据 才会读取到数据.
请问这是什么问题?? ?以前购买的批次芯片 一直正常,? ?软件使用多年都正常的.
就是这最后购买批次的芯片发现这个问题?? 会是买到假芯片了吗?? 一直以来都是同一个供应商买的芯片.
附件为测试录像:
测试代码:
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;