Ich wollte mir mit nem FT232BL ein Datenkabel von einem Atmega8 zum PC bauen. Nu hab ich das Problem, das am PC keine Daten ankommen.
Der Mega sendet ununterbrochen "Hallo" aber ankommen tut nix...
Hat vielleicht jemand Zeit, um sich das mal anzusehen?
Schaltplan: Hier
Layout: Hier
Code:
#include <stdio.h>
#include <windows.h>
#include "FTD2XX.H"
void main(void)
{
FT_HANDLE ftHandle;
FT_STATUS ftStatus;
DWORD EventDWord;
DWORD TxBytes=0;
DWORD RxBytes=0;
DWORD BytesReceived;
char RxBuffer[256];
for(int i=0;i<256;i++)
RxBuffer[0] = ' ';
ftStatus = FT_Open(0, &ftHandle);
if(ftStatus != FT_OK) {
printf("Open failed\n");
return;
}
ftStatus = FT_ResetDevice(ftHandle);
if(ftStatus != FT_OK)
{
printf("Reset failed\n");
return;
}
ftStatus=FT_SetBaudRate(ftHandle,19200);
if(ftStatus!=FT_OK)
{
printf("SetBaudRate failed\n");
return;
}
ftStatus = FT_SetDataCharacteristics(ftHandle,FT_BITS_8,FT_STOP_BITS_1,FT_PARITY_NONE);
if(ftStatus != FT_OK)
{
printf("SetDataCharacteristics failed\n");
return;
}
ftStatus = FT_SetTimeouts(ftHandle,1000,0);
if(ftStatus !=FT_OK)
{
printf("SetTimeouts failed\n");
return;
}
while(RxBytes==0)
FT_GetStatus(ftHandle,&RxBytes,&TxBytes,&EventDWord);
printf("%d - %d - %x\n",TxBytes,RxBytes,EventDWord);
if (RxBytes > 0) {
ftStatus = FT_Read(ftHandle,RxBuffer,RxBytes,&BytesReceived);
if (ftStatus == FT_OK) {
// FT_Read OK
printf("Read ok,%d - %s\n",BytesReceived,RxBuffer);
}
else {
// FT_Read Failed
printf("Read failed");
}
}
else
printf("Nothing\n");
FT_Close(ftHandle);
}
PS: Das Programmiern des EEProms funktioniert, also wird die Schaltung wohl in Ordnung sein, oder?!
Lesezeichen