Hallo,

Ik ben opzoek naar een controller die een UART baud aankan van 750000
Zelf heb ik ervaring met pic van microchip maar die vallen net tussen 625000 en 1250000.

Software UART is mogelijk enkel is er dan niet veel tijd meer over om andere dingen te doen.

Heeft iemand weet hoe ik dit probleem kan oplossen?

Alvast bedankt

http://www.microchip.com/forums/m409288-print.aspx

max bausrate is één ding maar je moet de binnenkomende data ook nog verwerken tussendoor om overflow's te vermijden, zie bovenstaande link

1250000 is toch hoger dan 750000? Dan kan die Uart, als je 'm trager klokt, toch ook 750000 aan?

Ik begrijp, en ben me van dit probleem bewust.
Echter hoef ik enkel data te sturen en niet te ontvangen.

Alvast bedankt

Op 28 februari 2011 22:01:26 schreef Lucky Luke:
1250000 is toch hoger dan 750000? Dan kan die Uart, als je 'm trager klokt, toch ook 750000 aan?

In de datasheet staat geen oplossing voor een baud van 750000.

Welke datasheet? Welke controller wilde je gebruiken?

De baudrate is afhankelijk van je klokfrequentie, de deel factor en vaak ook nog verschillende modi, er zijn veel manieren waarop je deze kunt afstellen.

[Bericht gewijzigd door mr.stijntje op (11%)]

Waarom speciaal een UART voor zo'n hoge frequentie? Beter 115k2 als maximum gebruiken.
Of een meer geschikte poort kiezen zoals USB of LPT(met de PSP poort in de PIC)

mijn excuses, zal het project helemaal uitleggen...

Ik beschik over een pic 16f628.
Ik gebruik hem om te communiceren met een ledtube.
Deze ledtube luistert op een baud van 750000

Momenteel gebruik ik FPGA om deze baud te halen

Ik wil nu de software in een goedkopere microcontroller implementeren.

Voor meer info:
http://www.youtube.com/watch?v=OoA8BpqugGU
http://www.youtube.com/watch?v=S7PtRE7yvtY

Op 28 februari 2011 22:09:38 schreef mr.stijntje:
Welke datasheet? Welke controller wilde je gebruiken?

De baudrate is afhankelijk van je klokfrequentie, de deel factor en vaak ook nog verschillende modi, er zijn veel manieren waarop je deze kunt afstellen.

Zou je me kunnen vertellen welk xtal en welke settings ik zou moeten gebruiken om een baud van 750000 te behalen?

Is een PC met labvieuw + een FPGA niet een klein tikkeltje duurder dan een het oorspronkelijke kastje van de chinees? (in je 2e filmpje zeg je dat het gelukt is om het kastje van de chinees op een vrij goedkope manier na te bootsen).

Wat voor controller zit er eigenlijk in die ledtube?

De UART van de 628 blinkt niet uit in mogelijkheden. De 88 is een gelijkaardige chip met meer mogelijkheden. Maar met het juiste kristal, bijv. 12 MHz, kan de 628 gewoon 750 kbaud aan. Dat is dan z'n hoogste snelheid (12E6 / 16 = 750000).

Op 28 februari 2011 22:23:39 schreef Lucky Luke:
Is een PC met labvieuw + een FPGA niet een klein tikkeltje duurder dan een het oorspronkelijke kastje van de chinees? (in je 2e filmpje zeg je dat het gelukt is om het kastje van de chinees op een vrij goedkope manier na te bootsen).

Wat voor controller zit er eigenlijk in die ledtube?

Ik ben het er volledig met eens dat labiew en FPGA helemaal niet de goedkoopste manier is; dan spreken we over een aantal duizende euros, net daarom dat ik het nu in een controller wil stoppen.

De controller in de ledtube is ATMEL at89c2051.
Deze controller moet inderdaad wel compatibel zijn met een baud van 750000.
Helaas vind ik niet zo makkelijk een datasheet waar de uart in beschreven staan...

Op 28 februari 2011 22:22:05 schreef sammiebuls:
Zou je me kunnen vertellen welk xtal en welke settings ik zou moeten gebruiken om een baud van 750000 te behalen?

De mogelijkheden zijn inderdaad behoorlijk beperkt, maar met 12MHz/16(0+1) kom je toch precies op 750000.

Op 28 februari 2011 22:22:05 schreef sammiebuls:
[...]

Zou je me kunnen vertellen welk xtal en welke settings ik zou moeten gebruiken om een baud van 750000 te behalen?

12 MHz kristal.
Wordt trouwens een een probleem omdat continue eruit te jassen. Als de PIC ook nog de data moet ophalen heb je voor de complete loop, 60 cycles. Met een 24 MHz kristal kan het ook, dan zit je buiten specs (maar het werkt wel :)) en heb je 120 instructie cycles per databyte.

edit: oops, zat er oorspronkelijk een factor 10 naast. 10bits/byte :)

Op 28 februari 2011 22:30:00 schreef JoWi:
[...]12 MHz kristal.
Wordt trouwens een een probleem omdat continue eruit te jassen. Als de PIC ook nog de data moet ophalen heb je voor de complete loop, 60 cycles. Met een 24 MHz kristal kan het ook, dan zit je buiten specs (maar het werkt wel :)) en heb je 120 instructie cycles per databyte.

edit: oops, zat er oorspronkelijk een factor 10 naast. 10bits/byte :)

Een 24Mhz klinkt een goede oplossing. In de ledtubes zit er ook een xtal van 24Mhz.(Had ik mss in het begin ook moeten vermelden)
Wanneer ik de PIC overclock naar 24Mhz doet hij soms wat wilde toeren; dit resulteert in het feit dat hij helemaal stopt met reageren...

Wat bedoel je net met 'eruit te jassen'? Een klok van 12Mhz lijkt mij mss een goed idee om een test op te laten lopen.

(Ik had me voornamelijk gebaseerd op het prefab tabelletje met de verschillende klokfrequenties.
Hierin stond 12Mhz niet vermeld...)

Neem een 16F1827. Pin compatible en gaat tot 32MHz...

Op 28 februari 2011 22:36:31 schreef sammiebuls:
[...]
Wat bedoel je net met 'eruit te jassen'? Een klok van 12Mhz lijkt mij mss een goed idee om een test op te laten lopen.

Ik heb een L.A. met een FTDI232 chip, en met 1Mbit kan ik de UART niet volledig vol houden. En dat is op een 40MHz 18F chip. Ik moet natuurlijk ook nog een aantal andere dingen (oa een ISR) tegelijkertijd doen.

Op 28 februari 2011 22:38:49 schreef Arco:
Neem een 16F1827. Pin compatible en gaat tot 32MHz...

Lijkt me ook een goede oplossing. Een interne klok van 32Mhz is niet niks...

Helaas is de programmer die ik gebruik (xwisp) niet compatibel met deze controller.
Toch maar eens opzoek gaan naar een recentere programmer...

Wacht even, ho, stop, is het wel nodig om continue de UART te belasten? Loopt er de HELE TIJD data?

Want als dat niet het geval is, als je maar een paarhonderd keer per seconde een beetje data moet sturen, kom je er echt wel met 12MHz en een 16F628.

Pickit2 kan de 1827 programmeren... ;)
De 1827 heeft trouwens nog meer voordelen.
Bij gebruik van een ISR heeft 'ie auto context-save en restore, scheelt je iedere interrupt al gauw 16 cycles...

Op 28 februari 2011 23:02:09 schreef mr.stijntje:
Wacht even, ho, stop, is het wel nodig om continue de UART te belasten? Loopt er de HELE TIJD data?

Want als dat niet het geval is, als je maar een paarhonderd keer per seconde een beetje data moet sturen, kom je er echt wel met 12MHz en een 16F628.

Het bakje van de chinezen stuurt elke keer opnieuw de data door met een delay van 5ms; echter uit testen blijkt dit niet nodig te zijn. Waarschijnlijk doen ze dit om er zeker van te zijn dat de ledtubes (mss na enige fouten door storing) de juiste data krijgen.

Ik denk dat ik het best een test opzet met mijn pic16f628 en met een klok van 12Mhz

Op 28 februari 2011 23:02:34 schreef Arco:
Pickit2 kan de 1827 programmeren... ;)
De 1827 heeft trouwens nog meer voordelen.
Bij gebruik van een ISR heeft 'ie auto context-save en restore, scheelt je iedere interrupt al gauw 16 cycles...

Heb wat rondgesnuffeld op ebay. De prijs valt goed mee, zelf goedkoper dan mijn programmer. En er is ook source voor linux.
Mss toch de investering waard;-)

Wat de 1827 betreft, deze ga ik zeker in de toekomst eens van naderbij bekijken!