3x TDA7318 na ATmega 16 – Mikrokontroléry – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

3x TDA7318 na ATmega 16 – Mikrokontroléry – Fórum – Programujte.com3x TDA7318 na ATmega 16 – Mikrokontroléry – Fórum – Programujte.com

 

Deko
~ Anonymní uživatel
17 příspěvků
9. 9. 2009   #1
-
0
-

Ahoj hoši, mám takový problémek. Rozhodnul jsem se postavit si 6 kanálový digitálně řízený korekční předzesilovač. Až po koupi obvodů jsem ale přišel an něco co mi zasadilo ránu. Obvody nemají pin na ADDR. U prvních dvou napojených na jedno I2C by to nebyl problém protože každý čip ma 3 stereo vstupy a 4 výstupy (z každého stereo vstupu jde signál do 4 výstupů takže jsou jen jakoby dva a zadní hrajou to samé jako přední repro). Takže na jednom čipu bude zapojen výstup na první pár a druhého na druhý pár. Problém mi nastává s samotným třetím čipem. Chtěl jsem to vyřešit dalším procesorem (attiny2313) který by byl zapojen přes UART s hlavním procesorem (ATmega16). Attiny spojena přes i2c s posledním tda.

Uart komunikace je jenom jednosměrná tedy od Atmegy k attině. Můj dotaz zní. Pin txd na atmeze se spojuje s pinem rxd na atině?

Druhá část dotazu je programová. Samotný program na ovládání LCD atd mám, potřebuju jen rozchodit uart. Chci po Uartu přenášet jbinární čísla do attiny která je pošle dál přes i2C do tda. Používám BASCOM.

Dim C As Byte

C = &B00110101
PrintBin (C)

Nebo se to musí dělat jinak?

A jak to pak bude v attině? Ta bude pořád jen čekat s příkazem InputBin?
Vše bude v 8-mi bitech jak vysílání tak příjem.




Nahlásit jako SPAM
IP: 213.195.211.–
KIIV
~ Moderátor
+43
God of flame
9. 9. 2009   #2
-
0
-

to uz bych radsi ovladal ten treti cip softwarove.. je to sice narocnejsi, ale napsat si ty rutiny na ovladani IIC je prace na hodinku.. pokud ten protokol znas

Nahlásit jako SPAM
IP: 80.188.94.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Deko
~ Anonymní uživatel
17 příspěvků
9. 9. 2009   #3
-
0
-

neznam. No víš co udělám to úplně jinak. Kašlu na uart. Vezmu si 4 piny na atmeze a 4 na atině a budu kombinovat jejich stavy. To ještě zvládnu naprogramovat. Dík za rady

Nahlásit jako SPAM
IP: 213.195.211.–
durmitor
~ Redaktor
0
Věrný člen
11. 9. 2009   #4
-
0
-

Doporučoval bych opravdu vytvořit softwarově druhé I2C, nic na tom není, v datasheetu je to určitě popsané

Nahlásit jako SPAM
IP: 77.236.208.–
Nejhorší není nemít práci. Nejhorší je nechtít práci...
Deko
~ Anonymní uživatel
17 příspěvků
12. 9. 2009   #5
-
0
-

už mám dps hotov a program pro ten druhý mcu hotov, jen ještě dotaz zdali musím vkládát odpor mezi ty 4 piny na kterých se mění ty logické stavy, přeci jen jeden pin ze sebe dokáže vymáčknout 20 mA a pull up zapínat nechci. Nebo nemusím dávat nic?

Nahlásit jako SPAM
IP: 80.188.27.–
KIIV
~ Moderátor
+43
God of flame
12. 9. 2009   #6
-
0
-

To Deko : kdyz nebudes zapinat vystup proti vystupu tak tam zadny odpory davat nemusis, ani pull-upy

Nahlásit jako SPAM
IP: 77.237.136.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Deko
~ Anonymní uživatel
17 příspěvků
13. 9. 2009   #7
-
0
-

Na jednom výstup na druhým vstup

Nahlásit jako SPAM
IP: 80.188.27.–
Deko
~ Anonymní uživatel
17 příspěvků
13. 9. 2009   #8
-
0
-

Jo ještě jak je to v bascomu s acknowledgement u I2C?

Dá se to použít třeba takto?:

I2cstart
i2cwbyte &H88
i2cwbyte &B00000111, ack
waitus 10
i2cstop

nebo jaký by měl být tvar tohoto?

Nahlásit jako SPAM
IP: 80.188.27.–
KIIV
~ Moderátor
+43
God of flame
13. 9. 2009   #9
-
0
-

Nevim jak v bascomu, ale ack odpovida obvykle strana co prijimala data.
master posle start, posle adresu s priznakem r/w a slave odpovi ack .. a tak dale, nastuduj poradne protokol, pak se s tim dela mnohem snadneji

Nahlásit jako SPAM
IP: 77.237.136.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Deko
~ Anonymní uživatel
17 příspěvků
13. 9. 2009   #10
-
0
-

Problém je v tom, že ta "druhá strana" je neprogramovatelná, ale zkusím ještě mrknout mám takový pocit že je tam jen časová prodleva ve které to TDA automaticky pošle ack.

Nahlásit jako SPAM
IP: 213.195.211.–
xhans690
Návštěvník
26. 9. 2009   #11
-
0
-

@Deko
nejak mi nesedi tve pocty chipu a procesoru. Pokud se dobre divam do DS od TDA, tak ma jen jedinou adresu, takze pokud si das 2 chipy se stejnou adresou na jednu sbernici, bude dochazet ke kolizim. (beru to z tveho popisu ze chces pouzit 3ks, cili 2 na M16 a jeten na dalsim) A ver mi ze dochazi, mam to vyzkouseno. Takze pokud ti muzu doporucit napis si vlastni rutinu pro I2C ovladani a dej kazdy svab na jine piny. Mam dojem ze by se dal pouzit jeden datovy pro vsechny a 3 hodinove pro kazdy chip. Neni to nic sloziteho. Po prostudovani DS k TDA zjistis jak ma byt casovani, jaky je protokol, kdy chodi ack (nemusis ho kontrolovat, ale musis udelat hodinovy pulz).
TDA neni nachylne na frekvenci hodinovych pulzu, takze se nemusis bat pokud netrefis presnych 100kHz. Ja jsem fungoval az nekde do 123kHz. Navic TDA je "jednosmerne" cili do nej jenom zapisujes data. Takze si nemusis delat hlavu se ctenim v rutinach, pouze odeslani.
Rutinu muzes psat klidne blbe stylem nahod, pockej, shod, pockej. Jestli najdu nekde svou rutinu pro I2C master tak ti ji poslu, ale bude v C

Nahlásit jako SPAM
IP: 81.30.255.–
Anonymní uživatel
~ Anonymní uživatel
0 příspěvků
4. 10. 2009   #12
-
0
-

To xhans69 :
díky za snahu, ale podle specifikací když uvážím že to jedno tda má 2 stereo výstupy které hrajou to samé tak když na jednom čipu bude to hrát na prvních dvou (předky) a na druhém na druhý pár (čili zadek) nebude se to ovlivňovat protože v i2c má každý pin své vlastní ovládání takže když budu chtít zeslabit zadky pošlu nějaký kód a když zadek tak zase jiný v tom problém nevidím. Ale už to mám hotové a teďka se snažím rozchodit i2c a zatím to nejde, zkouším teprve první čip a nechce se mu zmetkovi, zkouším různě kombinovat kód ale pořád nic. odpory jsou 5k6

Nahlásit jako SPAM
IP: 213.195.211.–
xhans690
Návštěvník
11. 10. 2009   #13
-
0
-

tak nevim jestli jsme si rozumeli a jestlis pochopil funkci i2c
jde tu o to ze posles adresu, chip ji potvrdi, posles byte dat, chip potvrdi, dalsi byte, potvrzeni. Takze kdyz das 2 chipy paralelne na 1 sbernici s tou samou adresou a jeden z nich bude o neco pomalejsi, treba o 1 takt, tak se ti to rozhodi
protoze posles 8 bitu adresu, udelas 9ty na ack a ten ack ti posle jenom chip 1, ale chip 2 jeste ne, jenze tys uz ack dostal tak zacnes posilat data. Zase posles 8 bitu, jenze ten pomalejsi svab uz je rozhozeny, protoze jsi nepockal na jeho ack

nemel jsem na mysli ze by se nejak ovlivnovaly analogy

a pokud ti to nefunguje, prodluz casove prodlevy mezi pulzama (nemuzes napsat nahod, shod, nahod)

Nahlásit jako SPAM
IP: 193.165.16.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 1 host

Podobná vlákna

ATmega a smyčka while — založil Palkic.89

Programovanie v atmega 16 — založil BESTTRACKER

Atmega tachometr — založil kohut

ATmega a brown-out — založil morganzd

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý