Hi, ich habe einen ROM speicher an einen Atmega16 angeschlossen und diesen wiederrum an einen FT232BM chip. Das ganze funktioniert auch... relativ. Es kommen immer wieder ab und zu komische Daten beim PC an oder werden verschluckt (ich lese das ROM aus und sende es zum PC). Am Auslesen des ROMs liegt es wahrscheinlich nicht, ich habe erst alle Verbindungen zum ROM geprüft und einen Test durchgeführt, der anstatt den ROM daten einfach ein Zeichen sendet und es traten selbst bei einen sich einfach wiederholenden Zeichen Fehler bei der Übertragung auf (Es sind ein paar Zeichen einfach verschwunden, der rest wurde aber richtig übertragen). Auf niedrigeren Baudraten geht es auch nicht so recht (momentan benutze ich 460800 baud was mir von der geschwindigkeit her sehr gut gefällt :)), ich habe z.B. 9600 ausprobiert. Bei einigen baudraten will der µC das kommando vom PC nicht empfangen. Ich habe einen Interrupt der bei SIG_USART_RECV ausgelöst wird, dann das byte überprüft das vom PC empfangen wurde (das Kommando zum senden des ROM-Inhaltes) und dann einfach anfängt zu senden (mit der Sende-Funktion aus den Tutorials hier). Ich habe auch schon einen 14.7456 mhz quarz eingebaut um sicher zu stellen das eine ordentliche Baud-rate vorhanden ist aber das hat anscheinend nichts gebracht :( Welche Einflüsse können zu solch einen Verhalten führen? Das USB kabel ist 3 meter lang und hängt an meiner Tastatur. Kann es vielleicht sein das irgend eine Fehlfunktion oder sogar ein Kurzschluss zwischen den Pins beim auslesen des ROMs zu einem Fehlverhalten des FT232BM führt? Kann es an meinen Programm liegen? Dies ist der Code den ich zum lesen des FT232BM benutze: //button click wurde ausgeführt.... hEvent=CreateEvent(NULL,false,false,""); FT_SetEventNotification(ftHandle,FT_EVENT_RXCHAR,hEvent); FT_Purge(ftHandle, FT_PURGE_TX | FT_PURGE_RX); FT_Write(ftHandle, &cmdByte, 1, &lBytesWritten); FT_Purge(ftHandle, FT_PURGE_TX); while(WaitForSingleObject(hEvent,5000) != WAIT_TIMEOUT) { FT_GetStatus(ftHandle,&RxBytes,&TxBytes,&dwEvent); if((dwEvent & FT_EVENT_RXCHAR) && (RxBytes > 0)) { lBytesWritten = 0; FT_Read(ftHandle, ReadBuffer,RxBytes,&lBytesRead); if(lBytesRead > 0) WriteFile(hFile,ReadBuffer,lBytesRead,&lBytesWritten,NULL); } } Hat jemand irgend eine idee woran es liegt? Ich hab bis jetzt nur Probleme mit den FT232BM, obwohl der eigentlich voll einfach sein soll (und wahrscheinlich auch ist) aber ich bin halt absoluter neuling sorry ;( Mfg & Danke, Marius
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.