Hallo,
Ik ga een radio met een pic maken.
Nu heb ik jullie hulp nog een beetje nodig.
Ik ga de volgende chip gebruiken: TEA5767
De microcontroller weet ik nog niet.
De radio ic gebruikt de 3 wire bus of het i2c systeeem. Ik ga voor het i2c systeem.
Hier heb ik nog niet veel mee gewerkt dus lijkt me een leuke uitdaging. Vooral omdat er geen voorbeelprogrammas zijn te vinden op internet voor deze radio in proton pic basic.
Ik heb (denk ik) het belangrijkste allemaal gelezen uit de datasheet.
Ik begrijp dat je telkens 5bytes moet sturen. elke byte bevat 8 bits. en elke bit kan je een functie mee aan of uit zetten.(toch?)
de write code voor het ic'tje is (denk ik) 11000000
nu ga ik even een code regel schrijven. Zouden jullie deze kunnen controleren?
mute wil ik uit = 0
search mode wil ik uit = 0
frequentie wil ik op 100mhz = 10111111001010
sud wil ik op up = 1
search stop level wil ik uit = 00
hlsi geen idee wat dit is doe maar op 1 = 1
ms wil ik op stereo = 0
mr wil ik uit = 0
ml wil ik uit = 0
swp1 wil ik low = 0
swp2 wil ik low = 0
stby wil ik uit = 0
bl op europa = 0
xtal wil ik op 38.***mhz = 0
smute wil ik uit = 0
high cut control wil ik uit = 0
stereo noise cancelling wil ik uit = 0
search indicator wil ik aan = 1
pllref moet uit = 0
dtc weet ik niet zet ik nu wel op 0 = 0
busout %11000000[00101111,11001010,10010000,00000001,00000000]
Zal dit nu gaan werken?
als ik nu de output op een versterker aansluit, krijg ik dan 100mhz te horen?
Ik hoor het graag van jullie.
datasheet : http://www.sparkfun.com/datasheets/Wireless/General/TEA5767.pdf
Groeten,
Thijs
plantrekker
True story bro!
Op 22 oktober 2011 12:01:58 schreef tysie:
Ik ga voor het i2c systeem.
Waarom? Heb je echt een geadresseerde bus nodig? Zoniet kan je die overhad vermijden door gebruik te maken van de 3 wire bus.
PS, plaats effe linkje naar de datasheet, da's handiger voor de lezers.
i2c systeem lijkt mij leuker om te leren. En het scheelt 1 connectie met de pic. en in de datasheet wordt niet gesproken over de commando's voor de i2c. en ik koop het ic'tje op een opzetprint die alleen i2c ondersteunt volgensmij.
Maar klopte mijn code zo?
datasheet:
http://www.sparkfun.com/datasheets/Wireless/General/TEA5767.pdf
er zitten ook nog wat functies op die ik nog niet snap.
zoals hlsi(High/Low Side Injection) of dtc(if DTC = 1 then the de-emphasis time constant is 75 ms; if DTC = 0
then the de-emphasis time constant is 50 ms).
Ik denk dat ik die gewoon ga proberen en dan kijken wat er gebeurt.
Maar ik zou graag wel weten wat de soft mute functie doet.
Weet iemand dat?
En voor de volumeregeling, die zit hier denk ik niet op?
Moet ik dit dan via een digitale potmeter doen? Of ik pak gewoon een analoge. dat ga ik nog even bekijken.
[Bericht gewijzigd door tysie op (44%)]
Ik denk niet dat veel mensen hier die specifieke chip in hun bezit hebben om zo te controleren of je code gaat werken. Daar komt bij dat we ook geen idee hebben hoe je schakeling eromheen in elkaar zal gaan zitten. Je hebt immers nog niets fysieks.
Op basis van ervaring zeg ik dat je opstelling en code niet zal gaan werken. Waarom? Zelf heb ik zelden in 1x een stuk code goed, ik vergeet altijd wel een instelling. Ook wil de schakeling er om heen wel eens een foutje bevatten, bijvoorbeeld een select / mode pin vergeten aan te sluiten. Dus met 90% zekerheid zeg ik dat het niet werkt de eerste keer.
Maar goed, alle gekheid op een stokkie, gewoon bouwen en proberen. Mocht je tegen zaken aanlopen kunnen wij je misschien helpen en van advies voorzien. Wel zou ik het heel erg leuk vinden dat, wanneer je het voor elkaar hebt, een artikel voor de site schrijft over die chip en het gebruik er van. De chip lijkt me namelijk erg interessant.
OKe bedankt voor je bericht!
Ik heb mn paypal rekening weer aangevuld dus ik zal hem morgen of overmorgen kunnen bestellen.
Het gaat om de volgende chip: http://www.ebay.nl/itm/FM-Stereo-Radio-Module-TEA5767-full-version-for…
Met het volgende aansluitschema:
Hij is dus absoluut niet moeilijk aan te sluiten.
Maar moeten de SDA of SCL nog een pull-up weerstand o.i.d?
groeten,
Ik raad aan eens de opzet en werking van de I2C bus op te zoeken, dat zal je slagingskans vergroten.
Een I2C bus heeft pull-ups nodig, ik gebruik zelf 4k7 - 10k bij 5V.
Hoi,
Ik heb net een heel verslag gelezen over het i2c gebeuren.
Ik begrijp het al een stuk beter.
Ik zal hem gaan bestellen en evt. vragen zal ik hier weer neer zetten.
Groeten,
Ik denk dat de module die jij wil kopen bij sparkfun niet meer te koop is.
Dezelfde module hebben ze echter wel bij andere webshops:
2 stuks voor 4.20euro
10 stuks voor 13.40 euro
Alletwee gratis verzending.
EDIT: Ah, je wou hem op ebay kopen. Blijkbaar ongeveer dezelfde prijs als je 1 stuk koopt.
dawmast
Zorg dat je er bij komt, bij de Marine. Sympathisant van de Koninklijke Marine. Luistert graag naar militaire muziek.
Hoe kan een microcontroller zoals de PIC nu FM-radiosignalen decoderen? Kun je met zo'n ding een rechtuit- of een superhet ontvanger programmeren?
Als je de thread gelezen hebt is dat een malle vraag.
'Een schemerlamp met een crème trekkoordje' is ook niet hetzelfde als 'een schemerlamp van een crème trekkoordje'. Dat laatste gaat inderdaad niet.
Het gaat hier om een fm radio mèt een pic, niet vàn een pic. 
Ik heb hem dinsdag via ebay besteld.
2 euro, nog wat. gratis verzending.
Het is alleen de aansturing met de pic.
De rest word dus geregeld door die module.
Weet iemand wat high side en low side injection is?
Want die heb ik nodig om mijn frequentie uit te rekenen.
Maar ik kom er nog niet achter wat het betekent.
Hoi,
Ik heb hem nu binnen maar het lukt niet.
Eerst gebruik ik deze code:
DEVICE = 16F628A
CONFIG INTRC_OSC_NOCLKOUT, CP_OFF, WDT_OFF, PWRTE_ON, LVP_OFF, MCLRE_OFF, BODEN_off
DELAYMS 200
ALL_DIGITAL=true
PORTB_PULLUPS=true
DECLARE LCD_RSPIN PORTA.2
DECLARE LCD_ENPIN PORTA.3
DECLARE SCL_PIN PORTA.1
DECLARE SDA_PIN PORTA.0
DELAYMS 500
BUSOUT %11000000[00110000,01011100,10010000,00000001,00000000]
CLS
PRINT "afgestemd op"
PRINT AT 2,1, "101.2 mhz."
PRINT AT 3,-3, "SkyRadio"
END
Hiermee hoor je sky radio te horen.
Er komt echter niks op mijn speakers.
Het verbruik van de radiochip is ongeveer 4 mA. Maar als ik dan de pic ook aan zet vraagt hij zo'n 8mA.
Dit werkt dus al niet.
Nu dacht ik eens kijken of ik hem uitlezen kan.
Dus daarna pomp ik deze code mn pic in:
DEVICE = 16F628A
CONFIG INTRC_OSC_NOCLKOUT, CP_OFF, WDT_OFF, PWRTE_ON, LVP_OFF, MCLRE_OFF, BODEN_off
DELAYMS 200
ALL_DIGITAL=true
PORTB_PULLUPS=true
DECLARE LCD_RSPIN PORTA.2
DECLARE LCD_ENPIN PORTA.3
DECLARE SCL_PIN PORTA.1
DECLARE SDA_PIN PORTA.0
DIM var1 AS BYTE
DIM var2 AS BYTE
DIM var3 AS BYTE
DIM var4 AS BYTE
DIM var5 AS BYTE
DELAYMS 500
BUSIN %11000001,0, [var1,var2,var3,var4,var5]
CLS
PRINT DEC var1, " ", DEC var2
PRINT AT 2,1, DEC var3
PRINT AT 3,-3, DEC var4
PRINT AT 4, -3, DEC var5
END
Nu krijg ik als uitvoer 5 keer een 0.
Waar kan dit aan liggen?
Nu moet ik wel zeggen dat het met solderen een beetje fout is gegaan.
De soldeerpad van de SDA pin had daardoor los gelaten. Ik heb hem nu aan een weerstandje gesoldeerd waarvan ik denk dat daar de sda pin op zit.
Hebben jullie een oplossing?
edit:
Ik heb een code gevonden op itnernet. die ene beetje aangepast en ingeladen. Deze werkt echter ook niet.
Wel hoor ik als de frequentie 0,1 omhoog gaat dat er dan een tik uit de luidspreker komt. Dit gebeurt echter ook als het rado ic uit staat.
Dit is de code:
DEVICE = 16F628A
CONFIG INTRC_OSC_NOCLKOUT, CP_OFF, WDT_OFF, PWRTE_ON, LVP_OFF, MCLRE_OFF, BODEN_off
DELAYMS 200
ALL_DIGITAL=true
PORTB_PULLUPS=true
DECLARE LCD_RSPIN PORTA.2
DECLARE LCD_ENPIN PORTA.3
DECLARE SCL_PIN PORTA.1
DECLARE SDA_PIN PORTA.0
' adres tea5767
SYMBOL tea5767 = %11000000
' up en down toets
SYMBOL Toetsup = PORTB.0
SYMBOL Toetsdown = PORTB.1
' Variabelen
DIM Frequentie AS WORD
DIM Pll AS DWORD
TRISB= %00000011
DECLARE ALL_DIGITAL = True
CLEAR
' Init lcd
CLS
DELAYMS 100
' init opstart freq (waterstad fm)
Frequentie = 932
GOSUB displayfreq
GOSUB progtea
main:
IF Toetsup = 0 THEN GOSUB frequp
IF Toetsdown = 0 THEN GOSUB freqdown
GOTO main
frequp:
DELAYMS 100
Frequentie = Frequentie + 1
IF Frequentie > 1080 THEN Frequentie = 1080
GOSUB displayfreq
GOSUB progtea
RETURN
freqdown:
DELAYMS 100
Frequentie = Frequentie - 1
IF Frequentie < 875 THEN Frequentie = 875
GOSUB displayfreq
GOSUB progtea
RETURN
progtea:
Pll = Frequentie * 100000 + 225000
Pll = Pll * 4 / 32768
BUSOUT tea5767,[Pll.BYTE1,Pll.BYTE0,$10,$10,$00]
RETURN
displayfreq:
PRINT AT 1,1,DEC Frequentie / 10,".",DEC1 Frequentie // 10," Mhz "
RETURN
[Bericht gewijzigd door tysie op (34%)]
Ik heb hem nu aan een weerstandje gesoldeerd waarvan ik denk dat daar de sda pin op zit
Gissen is missen!
Krijg je wel een ACK als je de chip aanroept met het juiste adres?
Anders kun je beter eerst ervoor zorgen dat je 100% zeker bent van de juiste aansluiting. Als je datalijn niet aangesloten is zal er bijzonder weinig gebeuren.
Heb je verder pull-up weerstanden op je I2C lijnen zitten?
Pull-up weerstanden zitten erop.
Ik kan helaas geen schema vinden van de module.
Wat bedoel je met een ACK?
Lees deze eens http://www.circuitsonline.net/forum/view/98969
Ik zie daar hele andere statements voorbij komen om I2C aan te sturen.
er bestaan meerdere commando's
Ik heb vaker met i2c gewerkt en altijd gewerkt met busout en busin
Zou het misschien handig zijn een nieuwe te bestellen en die wel goed te solderen?
[Bericht gewijzigd door tysie op (30%)]
Als de master naar de slave wil schrijven stuurt tie een start-bit, vervolgens een adres van de slave, en daarna een bit dat zegt offie wil lezen of schrijven naar de slave (0= write, 1 = read). Als de slave bestaat op de bus dan reageert tie met een acknowledge, "ACK".
Probeer die eerst te krijgen, dan weet je dat je aansluiting in elk geval goed is 
ps. is je slave adres MSB first?
joopv
Golden Member
Op 2 november 2011 18:49:49 schreef tysie:
Weet iemand wat high side en low side injection is?Want die heb ik nodig om mijn frequentie uit te rekenen.
Maar ik kom er nog niet achter wat het betekent.
Ben je hier al uit?
Ik denk dat het boven cq ondermenging is. Oftewel: zit de oscillator hoger of lager dan de ontvangstfrekwentie.
Het veschil is altijd de (eerste) middenfrekwentie (MF).
Dus stel je 1ste MF = 10,7MHz en je wilt 100MHz ontvangen, dan kan de oscillator frekwentie 110,7 of 89,3MHz zijn. Beide leveren na menging met 100MHz een 10,7MHz signaal op.
Je kunt dan wel met zo'n alles-in-1 chip werken, maar het is toch ook wel handig om de basics van ouderwetse radio ontvangst onder de knie te hebben.
Ik kan zo snel geen leuke URL vinden om dit te bestuderen.
Je zou eens wat blokschema's van transistor radio's kunnen bestuderen. Heb je al eens een kristal ontvanger gebouwd?
Nee nog maar 1 keer een radio gebouwd. maar dat was zon kant en klaar bouwpakket.
Maar het gaat nu vooral om die i2c omdat een standaardcode ook niet werkte.
Ik denk dat ik mijn printplaatje gewoon heb gesloopt.
Ik ga maar een nieuwe bestellen denk ik.
Hebben jullie een idee hoe ik dit printje gemakkelijk in mn breadboard kan verwerken?
Stan1
Read the fuc.... manual and read the fuc.... datasheet! {Proton IDE: V2.0.1.2 / Proton Compiler: V3.5.4.5}
Allereerst is mijn advies om een MC te gebruiken die I2C ondersteund,
dat doet de 16F628A niet. Je maakt dan gebruik van software I2C in
combinatie met de interne oscillator en dit wil wel problemen geven.
Op 9 november 2011 16:42:02 schreef tysie:
...
Hebben jullie een idee hoe ik dit printje gemakkelijk in mn breadboard kan verwerken?
Wat is de pitch? Als dit 0,1" (2,54mm) is zou ik er twee 5-polige pinheaders aanzetten.
Mijn idee was ook die pinheaders. Maar die passen dus niet.
Op 9 november 2011 16:52:26 schreef Stan1:
Allereerst is mijn advies om een MC te gebruiken die I2C ondersteund,
dat doet de 16F628A niet. Je maakt dan gebruik van software I2C in
combinatie met de interne oscillator en dit wil wel problemen geven.
Het gaat tot nu toe altijd nog goed. Ik denk echt dat het gewoon aan die gebroken pen ligt.
Op 9 november 2011 17:01:05 schreef Hugo Welther:
[...]
Wat is de pitch? Als dit 0,1" (2,54mm) is zou ik er twee 5-polige pinheaders aanzetten.
pitch is 80 mil
[Bericht gewijzigd door tysie op (84%)]
Zoek in de datasheet de juiste pin op voor SDA en traceer die naar een punt waar je iets op aan kunt sluiten. Eventjes doorpiepen met de multimeter doet wonderen. Een nieuwe print kopen kun je altijd nog.