Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien
Toon posts:

Baud rate & Fosc bij pics (beginner)

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben even in de war met de SPBRG value berekenen voor de baud rate voor een RS232 communicatie. De formule is SPBRG = FOSC/(64*B) - 1 (bij BRGH=0). Het gaat over die Fosc: In de datasheet staat letterlijk 'Operation Frequency: DC - 40Mhz', maar wat verderop beschrijft hij echter verschillende oscillation modes zoals bijvoorbeeld Low Power mode die zijn maar tegen 32kHz zijn ding doet.
Welke van de twee frequenties moet ik hier nu gebruiken ?

Ter illustratie van de vraag:

Mijn programma draait perfect in een simulator, en het circuit heb ik ondertussen 20 keer gecontroleerd. In het template van MPLAB wordt echter standaard de LP mode ingesteld als oscillation mode (tot voor vanavond had ik geen flauw idee wat men daarmee bedoelde.. :) ) en ik heb mijn baud rate voor 40Mhz berekend. Wanneer ik het programma echter via hyperterminal uitteste, reageerde hij totaal niet dus er is wel degelijk IETS mis. Ik weet niet hoe de simulator van mplab werkt maar als hij ietwat deftig is, is volgens mij het enige verschil tussen de simulatie en het werkelijke circuit de communicatie tussen de pc & microcontroller. De snelheid daarvan moet worden afgestemd via de baud rate, dus ben ik beginnen zoeken naar wat er daar allemaal fout mee kan gegaan zijn, wat mij terug naar het begin van deze post brengt.


Thanks! ;)

  • kluyze
  • Registratie: Augustus 2004
  • Niet online
Wat ook nogal eens mis kan gaan tussen de µC en hyperterminal is de "datatransportbesturing" die standaard op "hardware" staat maar met de keren dat ik de verbinding heb gemaakt moest deze op "geen" staan.

Staat die juist? Of daar al eens mee getest?

  • Rmanen
  • Registratie: September 2003
  • Laatst online: 18-11 17:03
Ten eerste is het wel zo makkelijk om even te vermelden welke PIC je gebruikt.

Wanneer je zeker weet dat je berekeningen kloppen, kan je iets hardwarematig fout gedaan hebben, bouw dus even de RGB moodlight van William op dit forum even na. Hier staat ook de source code bij, dan weet je in ieder geval of je PIC nog okee is.

De laatste optie, als je berekeningen kloppen, is dat je even teraterm download. Deze terminal app werkt vele malen beter dan hyperterm.

Om je verder te helpen is het dus nuttig om te vermelden welke PIC je gebruikt, welke programmer, heb je al getest of je pic het wel echt doet (laat bv eens een LEDje knipperen) en welke baud rate je wil. In de datasheet staat ook een stap voor stap hoe krijg ik een verbinding aan de gang.

  • Cassettebandje
  • Registratie: Juli 2002
  • Laatst online: 21-11 20:56

Cassettebandje

SA-C90 TDK

Verwijderd schreef op zaterdag 18 november 2006 @ 00:07:
Ik ben even in de war met de SPBRG value berekenen voor de baud rate voor een RS232 communicatie. De formule is SPBRG = FOSC/(64*B) - 1 (bij BRGH=0). Het gaat over die Fosc: In de datasheet staat letterlijk 'Operation Frequency: DC - 40Mhz', maar wat verderop beschrijft hij echter verschillende oscillation modes zoals bijvoorbeeld Low Power mode die zijn maar tegen 32kHz zijn ding doet.
Welke van de twee frequenties moet ik hier nu gebruiken ?
Fosc is de snelheid van de oscillator van je pic. Als je bijvoorbeeld een 8 MHz kristal gebruikt dan is dat 8000000. Gebruik je een pic 16f628 met zijn interne oscillator dan is dat 4MHz. Ik weet niet zeker of mplab ook seriele verbindingen simuleert zodat je hyperterminal kunt gebruiken. Ik dacht dat mplab voor simulaties een eigen terminal venster heeft.

  • Super_ik
  • Registratie: Maart 2001
  • Laatst online: 12:20

Super_ik

haklust!

Fosc is de frequency van je externe of intere oscillator.

volgens mij is lp mode ook niet correct
je moet iets hebben van xt of h(nogiets) om het externe cristal te gebruiken.

kijk even in de datasheet wat de modussen beteken en kies de correcte.

8<------------------------------------------------------------------------------------
Als ik zo door ga haal ik m'n dood niet. | ik hou van goeie muziek


  • naftebakje
  • Registratie: Februari 2002
  • Laatst online: 08:44
Super_ik schreef op zaterdag 18 november 2006 @ 10:48:
Fosc is de frequency van je externe of intere oscillator.

volgens mij is lp mode ook niet correct
je moet iets hebben van xt of h(nogiets) om het externe cristal te gebruiken.

kijk even in de datasheet wat de modussen beteken en kies de correcte.
Hoofdstuk "special feature's of the PIC" is dat, als ik me niet vergis. Daar vind je de mogelijke oscillatoren, en tussen welke frequentie's welke modussen moeten worden gebruikt.

Die datasheet is inderdaad een hele pak om door te lezen, maar elke keer je een datasheet doorneemt wordt je er beter in, als je wat ervaring hebt vind je in elke datasheet erg snel wat je zoekt.
Voor PIC's raad ik altijd aan om de datasheet 5 keer door te lezen, zo heb ik het ook geleerd. Eerste keer snap je er niet veel van, 2e keer beginnen een aantal zaken duidelijk te worden, 3e keer snap je een aantal zaken goed, en begin je in te zien wat je wel en niet nodig hebt, 4e keer kijk je specifiek voor je programma wat je nodig hebt, en de 5e keer is tijdens het programmeren zelf, dat je vanalles nakijkt. Na die 5 keer ken je de opbouw, en vind je alles erg snel terug, dan ben je vertrokken in de wondere wereld die PIC heet :*)

Als de boer zijn koeien kust, zijn ze jarig wees gerust. Varkens op een landingsbaan, leiden nooit een lang bestaan. Als de boer zich met stront wast, zijn zijn hersens aangetast. Als het hooi is in de schuur, zit het wijf bij den gebuur.


  • Super_ik
  • Registratie: Maart 2001
  • Laatst online: 12:20

Super_ik

haklust!

naftebakje schreef op zaterdag 18 november 2006 @ 11:11:
[...]
Voor PIC's raad ik altijd aan om de datasheet 5 keer door te lezen, zo heb ik het ook geleerd.
[snip]
snel terug, dan ben je vertrokken in de wondere wereld die PIC heet :*)
idd, zo heb ik het ook allemaal geleerd, en doe t nog steeds zo :Y)

8<------------------------------------------------------------------------------------
Als ik zo door ga haal ik m'n dood niet. | ik hou van goeie muziek


  • guus.assmann
  • Registratie: Augustus 2006
  • Laatst online: 27-04-2021
Nog een opmerking over de oscillator met kristal.
Kijk na wat voor snelheid je nodig hebt en ga zo laag mogelijk zitten.
Daar zijn wat redenen voor.
1) Stroomverbruik (Warmteontwikkeling) Hoe langzamer de klok, hoe zuiniger.
2) EMC. Hoe sneller de oscillator, hoe meer storing naar de buitenwereld gaat.
3) En wat tragere klok is vaak stabieler. Kristal is minder gevoelig.
4) Externe logica kan het soms niet bijhouden.

Guus Assmann


Verwijderd

Topicstarter
kluyze schreef op zaterdag 18 november 2006 @ 00:10:
Wat ook nogal eens mis kan gaan tussen de µC en hyperterminal is de "datatransportbesturing" die standaard op "hardware" staat maar met de keren dat ik de verbinding heb gemaakt moest deze op "geen" staan.

Staat die juist? Of daar al eens mee getest?
Jah, alle instellingen staan zoals ik ze wil: 9600 baud, geen parity, 1 stopbit en geen hardware flow control of hoe het ook noemt.
Rmanen schreef op zaterdag 18 november 2006 @ 00:15:
Ten eerste is het wel zo makkelijk om even te vermelden welke PIC je gebruikt.

Wanneer je zeker weet dat je berekeningen kloppen, kan je iets hardwarematig fout gedaan hebben, bouw dus even de RGB moodlight van William op dit forum even na. Hier staat ook de source code bij, dan weet je in ieder geval of je PIC nog okee is.
De pic die ik gebruik is de 18F4525, hardwarematig is er volgens mij echt niets fout. Ik heb alles tien keer vergeleken met (verschillende versies van) schema's die ik op tutorial sites en dergelijke heb gevonden.
Ik heb nog niet getest of de pic eigenlijk werkt, maar wordt zonder problemen geprogrammeerd met de pickit2 dus hij vertoont wel tekenen van leven... Ik heb mijn programma geschreven met de usart sectie van de datasheet naast mij dus dat zou normaal ook niet het probleem mogen zijn.
Ik zal inderdaad eerst dat programma eens proberen te draaien dan, bedankt voor de hint.


Uit de comments heb in ieder geval de grote, domme fout afgeleid. LP is dus inderdaad voor een externe oscillator terwijl ik gebruik wilde maken van een interne ... 8)7 Geen wonder dat hij niet reageerde. Ik ging er eigelijk van uit dat het template van mplab standaard voor een interne oscillator ingesteld zou zijn... niet dus.

Ik zal het maandag eens opnieuw proberen (heb mijn circuit op kot laten liggen). Bedankt voor de reacties in ieder geval! ;)
Pagina: 1