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

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:
http://www.electronicsblog.net/wp-content/uploads/pinout_TEA5767module.png

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.

"Shipping Cost: US $33.36 to Netherlands Via DHL"

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?

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?

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.