logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Konwerter i2c-tiny-usb na Atmega8.

p4trykx 16 Kwi 2012 13:41 4324 10
  • #1 10800037
    p4trykx
    Poziom 16  
    Chciałbym uruchomić konweret i2c-tiny-usb na układzie Atmega8. Na elektrodzie były już doniesienia, że ktoś zbudował działający konwerter na attiny45. Na stronie projektu http://www.harbaum.org/till/i2c_tiny_usb/index.shtml jest też wersja na Atmegę8 jednak nie udało mi się jej uruchomić. W udostępnionej paczce w katalogu firmware są źródła, które kompilują się bez problemu. Jest też opisane jak ustawić fusy oraz odpowiedni Makefile dla atmegi.
    Napisałem do autora odpisał, że dawno temu zrobił jeden prototyp więc powinno chyba działać.

    Czy ktoś może próbował zrobić taki konwerter albo mógłby rzucić okiem na źródła?

    Jeśli chodzi o bład to problem pojawia się już na początku z komunikacja USB.
    [  761.152052] usb 2-1: new low speed USB device using uhci_hcd and address 14
    [  761.332053] usb 2-1: device descriptor read/64, error -71
    [  761.612058] usb 2-1: device descriptor read/64, error -71
    


    Spróbowałem, też pierwszy z brzegu projekt konwerter USB<->serial
    http://www.recursion.jp/avrcdc/cdc-232.html#usage
    Co prawda są inne piny dla usb ale działa więc rezonator, diody i rezystory od USB są chyba poprawnie podłączone.

    Czy ktoś mógłby u siebie spradzić czy mu to działa. Załączam .hex oraz schemat.
    Konwerter i2c-tiny-usb na Atmega8.
    Programuję tak
    avrdude -c usbtiny -p atmega8 -U lfuse:w:0x9f:m -U hfuse:w:0xc9:m -U flash:w:firmware.hex
    
  • #3 10800334
    gaskoin
    Poziom 38  
    Zdradzę jeszcze taką tajemnicę, że w standardzie USB linie D+ i D- powinny mieć 3,3 V a nie 3,6. Nie wiem dlaczego w projektach z v-usb stosuje się 3,6 ? Żeby Atmega "lepiej" wykrywała stany czy z jakiegoś innego powodu ? Mieści się to niby w poziomach standardu ale to już jest max, który dopuszcza :D
  • #4 10800545
    mirekk36
    Poziom 42  
    gaskoin napisał:
    Zdradzę jeszcze taką tajemnicę, że w standardzie USB linie D+ i D- powinny mieć 3,3 V a nie 3,6. Nie wiem dlaczego w projektach z v-usb stosuje się 3,6 ? Żeby Atmega "lepiej" wykrywała stany czy z jakiegoś innego powodu ? Mieści się to niby w poziomach standardu ale to już jest max, który dopuszcza :D


    I dlatego przez te diody 3,6V czasem układy V-USB nie działają z niektórymi komputerami (szczególnie notebookami). Zwykle wymiana diod 3,6V na 3,3V gwałtownie pomaga ;)
  • #5 10800721
    p4trykx
    Poziom 16  
    Wydaje mi się, że mój laptop działa nawet z bez tych diód czyli na 5V ponieważ z tym testowym projektem serial<->usb nie było problemów. Działał zarówno po bezpośrednim podłączeniu jak i przez zasilanego huba usb.
    Oczywiście z innymi komputerami pewnie jest różnie. Znalazłem też taką przestrogę, że te diody zenera mogą być zbyt wolne dla transmisji usb.

    Jeśli chodzi o podłączenia to podłączyłem też AVCC, AGND oraz rezystor do RESETu ale nic to nie dało.
  • #6 10800754
    mirekk36
    Poziom 42  
    p4trykx napisał:
    Wydaje mi się, że mój laptop działa nawet z bez tych diód czyli na 5V ponieważ z tym testowym projektem serial<->usb nie było problemów.


    Masz rację "wydaje ci się" .... po co tam słuchać jakichś porad jak mi działa dobrze? no nie ? - hmmm tylko zaraz, zaraz - dlaczego działa źle ?

    p4trykx napisał:
    Znalazłem też taką przestrogę, że te diody zenera mogą być zbyt wolne dla transmisji usb...


    Takie przestrogi groźne bardzo mi się podobają ;) Są za wolne bo co? nie mogą dogonić tej transmisji ? (sorry ale to taka porada fajna)

    Masz rację - "w ogóle nie słuchaj co ci tu radzą" ;) kichaj na to - przecież w końcu ty wiesz lepiej - a poza tym masz jakieś fajne i tajne źródła gdzie czytasz "przestrogi" ..... dlaczego tam nie doczytasz co może dolegać w twoim projekcie ?
  • #7 10800834
    p4trykx
    Poziom 16  
    to jest moje źródło
    http://www.harbaum.org/till/i2c_tiny_usb/index.shtml
    Cytat:

    The zener diodes in the schematic are optional. They may be required since the i2c-tiny-usb is directly powered from the USBs VBUS singnal at 5V. The USB data lines (D+ and D-) are supposed to be operated at 3.3V only. Some PCs encounter problems at 5V and limiting the voltage to at most 3.6V may help. My prototype lacks these diodes since my PC works fine with D+ and D- at 5V.

    Czyli podsumowując, ten prototyp na attiny45 działa bez diód na 5V. Więc można wywnioskować, że niektóre komputery ich nie potrzebują.
    Inny przykład użycia Atmegi8(usb<->serial) na 5V "u mnie" bez diód działa. Może źle, zrozumiałeś, że miałem na myśli usb<->i2c.

    Cytat:

    Problem: The device is not properly detected. Linux reports an an error like "device descriptor read/all, error -71" in the system log.

    Solution: The device is working partly and the USB transfers are unreliable. This is often cauesed by "slow" high current zener diodes. On a previous reichelt list i had those wrong zener types. These slow diodes often seem to have thicker wires than the other parts. You can just try to remove the zener diodes and the device will work if your host PC copes with 5V on the USB data lines. Also using a USB hub between a device without zener diodes and the PC may lead to a working setup. Otherwise you need faster diodes as a replacement (reichelt no "zf 3,6" as on the current reichelt list).


    Co do porad, to zastosowałem się do wszystkich(minimalne podłączenie, diody) i nie dalej nie działa. Więc chyba najprawdopodobniej coś jest źle w programie, na razie nie mam umiejętności, żeby to sprawdzić dlatego napisałem prośbę o pomoc. Chyba najprościej jakby ktoś mógł u siebie zobaczyć na płytce testowej czy u niego działa. Wydaje mi się, że to nie jest dużo roboty.
  • #9 10801703
    mirekk36
    Poziom 42  
    p4trykx napisał:
    .... Wydaje mi się, że to nie jest dużo roboty.


    Masz rację - wydaje ci się..... Tak jak słyszałeś - pokaż co masz dokładnie po poprawkach które rzekomo wprowadziłeś i pokaż swoje PCB .... może jakieś fotki ? A jeśli masz to na stykówce to tym bardziej - bo jeszcze więcej baboli mogłeś narobić.
  • #10 10801765
    gaskoin
    Poziom 38  
    Pokaż jeszcze deskryptory, diody nie są za wolne dla takiej transmisji (max 187500 bajtów na sekundę, Ty masz dużo mniej) Nie używaj tego urządzenia bez tych diod.
  • #11 10802039
    p4trykx
    Poziom 16  
    Chyba znalazłem problem. Popatrzyłem na inne podobne projekty i widzę, że D+ jest jeszcze podłączone do PD2(INT0).
    http://www.harbaum.org/till/lcd2usb/schematic.gif
    Podłączyłem i chyba działa. Znaczy się urządzenie jest wykrywane dokładne testy zrobię później.
    W oryginale na attiny45 oraz w tym innym projekcie, który testowałem tak się złożyło, że D+ było od razu podłączone do INT0 i pewnie dlatego działało. Widać tu jednak moją ignorancję jeśli chodzi o programowanie uC. Jak wszystko uruchomię to wrzucę do DIY.
    Dziękuję za porady.

    Tak to teraz wygląda
    Konwerter i2c-tiny-usb na Atmega8.
REKLAMA