J'ai actuellement un périphérique intégré connecté à un PC via un port série. J'ai des problèmes avec la réception de données sur le PC. Lorsque j'utilise ma carte de port série PCI, je peux recevoir des données immédiatement (sans délai). Quand j'utilise ma prise USB-To-Serial ou les cartes mères intégrées au port série, je dois retarder la lecture des données (40ms pour les paquets de 32 octets).Délai de transfert UART de transfert série
La seule différence que je peux trouver entre le matériel est l'UART. La carte PCI utilise un 16650 et la prise/carte mère utilise un 16550A standard. La carte PCI est configurée pour interrompre à 28 octets et la prise est configurée pour interrompre à 14 octets.
Je suis connecté à 56700 Bauds (si cela aide).
Le retard devient la majeure partie du cycle de service et augmente réellement le temps de transfert. (10min de transfert vs 1 heure de transfert).
Quelqu'un at-il une explication pour pourquoi je dois utiliser un retard avec la prise/carte mère? Quelqu'un peut-il suggérer une solution possible pour minimiser ou supprimer ce retard?
Avez-vous activé le contrôle de flux matériel? Votre appareil intégré utilise-t-il un 16650? – nmichaels
Non, le contrôle de flux matériel n'est pas activé. Je n'utilise actuellement que RX/TX et une ligne au sol. L'appareil embarqué utilise un atmel atmega 128L et un cristal 7,3728 MHz. Je suppose que cela est considéré comme "16650 compatible". Peter: Oui, je peux ajuster le point d'interruption de la carte mère. Cependant, sa portée est également de 1-14 octets en raison de l'utilisation d'un UART 16550 (tampon FIFO 16bytes). Le retard a effectivement aidé à minimiser les erreurs d'incompatibilité sur la connexion de la carte mère de centaines à moins de 10 pendant le transfert d'une heure. –