Vítejte na Elektro Bastlírn?
Nuke - Elektro Bastlirna
  Vytvořit účet Hlavní · Fórum · DDump · Profil · Zprávy · Hledat na fóru · Příspěvky na provoz EB

Vlákno na téma KORONAVIRUS - nutná registrace


Nuke - Elektro Bastlirna: Diskuzní fórum

 FAQFAQ   HledatHledat   Uživatelské skupinyUživatelské skupiny   ProfilProfil   Soukromé zprávySoukromé zprávy   PřihlášeníPřihlášení 

I2C mezi atmega16 a attiny2313
Jdi na stránku Předchozí  1, 2, 3  Další
 
Přidat nové téma   Zaslat odpověď       Obsah fóra Diskuzní fórum Elektro Bastlírny -> Programování PIC, ATMEL, EEPROM a dalších obvodů
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
vasek125



Založen: Oct 13, 2005
Příspěvky: 132

PříspěvekZaslal: st červen 17 2009, 8:56    Předmět: Citovat

Tak nastal velký problém. Četl jsem, že atmega16 má 2 samostatné USART zařízení, kdežto podle datasheetu to vypadá na jedno, které teď využívám je komunikaci s PC. TO už asi nepůjde použít ke komunikaci se slave že?
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Andrea



Založen: Sep 07, 2007
Příspěvky: 9340

PříspěvekZaslal: st červen 17 2009, 9:01    Předmět: Citovat

vasek125 napsal(a):
Tak nastal velký problém. Četl jsem, že atmega16 má 2 samostatné USART zařízení, kdežto podle datasheetu to vypadá na jedno, které teď využívám je komunikaci s PC. TO už asi nepůjde použít ke komunikaci se slave že?

To sis asi spletl s atmega162, ta má dva USARTy, mega16 má jen jeden. Pokud ho používáš pro komunikaci s PC a mcu je jako slave, tak asi použít nepůjde.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
vasek125



Založen: Oct 13, 2005
Příspěvky: 132

PříspěvekZaslal: st červen 17 2009, 9:37    Předmět: Citovat

Hm, takže stejně budu muset použít i2c, respektive twi, jak tomu říkají u atmega.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
vasek125



Založen: Oct 13, 2005
Příspěvky: 132

PříspěvekZaslal: st červen 17 2009, 9:48    Předmět: Citovat

Co tohle: http://todbot.com/arduino/sketches/GPSWiiUI/twi_funcs.h ? To by mohlo fungovat ne?
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Zirafka



Založen: Aug 20, 2006
Příspěvky: 819

PříspěvekZaslal: st červen 17 2009, 10:00    Předmět: Citovat

Andrea napsal(a):
RS-232 neumožňuje multipoint komunikaci, má jen dva stavy log.1 -12V a log.0 +12V, oba jsou dominantní, takže nějak nechápu, jak to máte zapojené.


Když to neumožňuje, tak to naše zařízení asi opravdu nefunguje Wink

Je to zapojené takto:

U počítače je spojené Tx a Rx a dále se to vede jedním drátem k lokálním jednotkám systému. U nich je také spojené Tx a Rx a celá komunikace běží po tom jednom drátu. Všechna zařízení jsou spojená paralelně, čemuž se v zabezpečovací technice říká "multipl".

Počítač se opakovaně dotazuje lokálních jednotek a ty jen poslouchají. Když se dotáže, tak dotazovaná jednotka odpoví, ty ostatní stále mlčí. Když chce jednotka odpovědět, tak si zkontroluje, jestli někdo jiný nevysílá a pak sama začne.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Andrea



Založen: Sep 07, 2007
Příspěvky: 9340

PříspěvekZaslal: st červen 17 2009, 10:01    Předmět: Citovat

Variola napsal(a):
Andrea napsal(a):
RS-232 neumožňuje multipoint komunikaci, má jen dva stavy log.1 -12V a log.0 +12V, oba jsou dominantní, takže nějak nechápu, jak to máte zapojené.


Když to neumožňuje, tak to naše zařízení asi opravdu nefunguje Wink

Je to zapojené takto:

U počítače je spojené Tx a Rx a dále se to vede jedním drátem k lokálním jednotkám systému. U nich je také spojené Tx a Rx a celá komunikace běží po tom jednom drátu. Všechna zařízení jsou spojená paralelně, čemuž se v zabezpečovací technice říká "multipl".

Počítač se opakovaně dotazuje lokálních jednotek a ty jen poslouchají. Když se dotáže, tak dotazovaná jednotka odpoví, ty ostatní stále mlčí. Když chce jednotka odpovědět, tak si zkontroluje, jestli někdo jiný nevysílá a pak sama začne.

No ale to není RS-232 Cool
RS-232 neumí "mlčet", umí jen + nebo - 12V. A když spojíme např. 5 RS-232 vysílačů, které "mlčí" +12V a jeden který "mluví" -12V, co vznikne?
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Zirafka



Založen: Aug 20, 2006
Příspěvky: 819

PříspěvekZaslal: st červen 17 2009, 11:29    Předmět: Citovat

To záleží na tom, který vysílač je silnější a také na jejich vnitřních odporech.

Až budu mít čas a náladu, můžu mrknout do přesných schémat a něco ti z nich naskenovat.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Bernard



Založen: May 27, 2005
Příspěvky: 3647

PříspěvekZaslal: st červen 17 2009, 21:24    Předmět: Citovat

Asi by se muselo těch +12V dávat bias odporem a -12 spínat (dominantně) tranzistorem, zkrátka otevřený kolektor. A kdyby ještě Slave poslouchal co sám vysílá, podobalo by se to na nějakou nesymetrickou odrůdu (nebo zrůdu?) CAN. V tom případě bez UARTu.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
ZdenekHQ
Administrátor


Založen: Jul 21, 2006
Příspěvky: 25741
Bydliště: skoro Brno

PříspěvekZaslal: čt červen 18 2009, 8:46    Předmět: Citovat

To už se dá rovnou předělat na RS485.

Jinak předpokládám, že oni tu RS232 provozují na TTL úrovni, tudíž to není RS232 a tam to (nejspíš) fungovat bude.

_________________
Pro moje oslovení klidně použijte jméno Zdeněk
Správně navržené zapojení je jako recept na dobré jídlo.
Můžete vynechat půlku ingrediencí, nebo přidat jiné,
ale jste si jistí, že vám to bude chutnat[?
]
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovy WWW stránky
vasek125



Založen: Oct 13, 2005
Příspěvky: 132

PříspěvekZaslal: pá červen 19 2009, 16:01    Předmět: Citovat

Tak jsem našel hezký připravený kód zde: http://www.atmel.com/dyn/products/app_notes.asp?family_id=607. Upravil jsem ho pro avr-gcc a úspěšně zkompiloval. Jedná se konkrétně o příklad: "Using the USI module as a I2C slave". Myslím, že to slouží jen pro přenos jednoho bajtu. Jak se pomocí toho dá přenášet příkaz(text)?
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Andrea



Založen: Sep 07, 2007
Příspěvky: 9340

PříspěvekZaslal: pá červen 19 2009, 16:51    Předmět: Citovat

vasek125 napsal(a):
Tak jsem našel hezký připravený kód zde: http://www.atmel.com/dyn/products/app_notes.asp?family_id=607. Upravil jsem ho pro avr-gcc a úspěšně zkompiloval. Jedná se konkrétně o příklad: "Using the USI module as a I2C slave". Myslím, že to slouží jen pro přenos jednoho bajtu. Jak se pomocí toho dá přenášet příkaz(text)?

Slouží to pro přenos kolika bajtů chceš. Je tam i příklad použití.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
vasek125



Založen: Oct 13, 2005
Příspěvky: 132

PříspěvekZaslal: so červen 20 2009, 10:49    Předmět: Citovat

Supr, tak už komunikuju. Musel jsem ale vypnout interní pull-upy a dát vnější. Proč nemohu na atmega16(i2c/twi master) nastavit interní pull-upy, respektive mohu, ale pak to nefunguje? Podle dokumentace to možné je i při použití TWI.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Andrea



Založen: Sep 07, 2007
Příspěvky: 9340

PříspěvekZaslal: so červen 20 2009, 10:55    Předmět: Citovat

vasek125 napsal(a):
Supr, tak už komunikuju. Musel jsem ale vypnout interní pull-upy a dát vnější. Proč nemohu na atmega16(i2c/twi master) nastavit interní pull-upy, respektive mohu, ale pak to nefunguje? Podle dokumentace to možné je i při použití TWI.

Asi komunikuješ rychle, interní pull-upy mají 20-50 kOhmů a to stačí jen pro nízké rychlosti a malé kapacitní zatížení sběrnice. Kolik máš ty externí pull-upy a jak rychle komunikuješ?
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
vasek125



Založen: Oct 13, 2005
Příspěvky: 132

PříspěvekZaslal: so červen 20 2009, 11:14    Předmět: Citovat

S interními prošel občas jen 1. příkaz/komunikace, pak ani ťuk, jelo to cca na 100kHz, teď tam mám externí 3k3 odpory a zvedl jsem rychlost na cca 400kHz a naprosto bez problémů.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Andrea



Založen: Sep 07, 2007
Příspěvky: 9340

PříspěvekZaslal: so červen 20 2009, 11:24    Předmět: Citovat

100kHz/400kHz je hodně, to je maximum standardní I2C. Kdybys jel na 5kHz, tak by ty interní pull-upy asi stačily, tedy pokud nekomunikuješ přes 10m plochého kabelu Smile
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Zobrazit příspěvky z předchozích:   
Přidat nové téma   Zaslat odpověď       Obsah fóra Diskuzní fórum Elektro Bastlírny -> Programování PIC, ATMEL, EEPROM a dalších obvodů Časy uváděny v GMT + 1 hodina
Jdi na stránku Předchozí  1, 2, 3  Další
Strana 2 z 3

 
Přejdi na:  
Nemůžete odesílat nové téma do tohoto fóra.
Nemůžete odpovídat na témata v tomto fóru.
Nemůžete upravovat své příspěvky v tomto fóru.
Nemůžete mazat své příspěvky v tomto fóru.
Nemůžete hlasovat v tomto fóru.
Nemůžete připojovat soubory k příspěvkům
Můžete stahovat a prohlížet přiložené soubory

Powered by phpBB © 2001, 2005 phpBB Group
Forums ©
Nuke - Elektro Bastlirna

Informace na portálu Elektro bastlírny jsou prezentovány za účelem vzdělání čtenářů a rozšíření zájmu o elektroniku. Autoři článků na serveru neberou žádnou zodpovědnost za škody vzniklé těmito zapojeními. Rovněž neberou žádnou odpovědnost za případnou újmu na zdraví vzniklou úrazem elektrickým proudem. Autoři a správci těchto stránek nepřejímají záruku za správnost zveřejněných materiálů. Předkládané informace a zapojení jsou zveřejněny bez ohledu na případné patenty třetích osob. Nároky na odškodnění na základě změn, chyb nebo vynechání jsou zásadně vyloučeny. Všechny registrované nebo jiné obchodní známky zde použité jsou majetkem jejich vlastníků. Uvedením nejsou zpochybněna z toho vyplývající vlastnická práva. Použití konstrukcí v rozporu se zákonem je přísně zakázáno. Vzhledem k tomu, že původ předkládaných materiálů nelze žádným způsobem dohledat, nelze je použít pro komerční účely! Tento nekomerční server nemá z uvedených zapojení či konstrukcí žádný zisk. Nezodpovídáme za pravost předkládaných materiálů třetími osobami a jejich původ. V případě, že zjistíte porušení autorského práva či jiné nesrovnalosti, kontaktujte administrátory na diskuzním fóru EB.


PHP-Nuke Copyright © 2005 by Francisco Burzi. This is free software, and you may redistribute it under the GPL. PHP-Nuke comes with absolutely no warranty, for details, see the license.
Čas potřebný ke zpracování stránky 0.21 sekund