Hallo allemaal,

Ik gebruik jal 4.60 om softwarematige usart tot stand te brengen tussen een 16f84a op 4mhz en een 16f628a. Het princiepe werkt wel maar ik krijg telkens aan het begin een aantal rare tekens mee. Ik laat de 16f84a continu tekens uitzenden om te testen en de 16f628A leest 20 tekens en wacht dan tot ik op een knopje druk om zo weer overnieuw te beginnen met 20 tekens binnen te halen. De tekens worden op een lcd'tje weergegeven.

Maar nou heb ik bijna elke keer het geval dat aan het begin van de ontvangst er een aantal rare tekens zijn(nooit in het midden of aan het eind van de tekst). Het verschilt ook van soms geen tot een stuk of 3-4 tekens.

Wat ik dus vreemd vind is dat het alleen aan het begin is en nooit midden in een transmissie. De baudrate staat op 1200 en ik gebruik een 4mhz kristalletje. Zou dit aan een te hoge baudrate liggen ( kan het me haast niet voorstellen )? Of komt dit gewoon doordat het softwarematig is?

Groeten Erik

Tsja, dat kan aan veel dingen liggen :).

Het eerste dat in me opkwam is dat er in het begin iets mis is met de sync van de data, en dat deze na die 3, 4 karakters correct verloopt.

Als ik jouw was zou ik het gewoon 'the-easy-way' oplossen: Zend voor je daadwerkelijke data een soort van startcode. Als de ontvangende partij dan de startcode leest, dan kan deze de rest wat achter die startcode komt op het lcd scherm laten zien. Misschien beetje dirty, maar zal wel werken :).

Trouwens die baudrate... Te hoog? Haha, ik wist niet eens dat je zo laag kon gaan! Meestal is 9600 gebruikelijk.

Daar ben ik al mee bezig met een startcode ja. Maar baudrate kan nog stukken lager( 300 en zelfs 110) ik las namelijk dat iemand zo'n zelfde probleem had en het pas bij 300 baud opgelost was dat komt neer op 37,5 tekens per seconde. gelukkig hoef ik maximaal 10 karakters per keer te versturen dus ik denk dat ik dat zo even ga proberen. Hardwarematige usart is natuurlijk mooier maar ik zit even met de pinbezetting in de knoei. Dus ik probeer eerst met software matige en als het echt niet lukt dan ga ik hardwarematige proberen.

Ik heb het denk ik al opgelost door wanneer ik de startbyte verstuur naar de ontvanger ik de ontvanger een halve seconde laat wachten en dan pas data terugstuur. De delay zal wel een stuk korter kunnen maar het lijkt nu iig te werken. Het zal dus een timingprobleem aan 1 van de 2 kanten zijn. Als ik zeker ben dat het hier aan ligt zal ik het laten weten zodat het misschien anderen kan helpen.