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

Jak stworzyć kompletny firmware dla Cypress CY7C68013A w KEIL uVision?

dyna0 10 Lip 2008 15:25 3323 11
REKLAMA
  • #1 5330541
    dyna0
    Poziom 11  
    Posty: 10
    Witam
    Może szybko określę problem: chciałem wykonać szybką transmisję (około 100Mb/s) pomiędzy komputerem a układem zewnętrznym wykorzystując magistralę USB 2.0 High Speed. Przed zrobieniem swojej płytki, zdobyłem kit AVT981, (konwerter USB na LPT). Kwestia zaprogramowania tego konwertera opierała się jedynie na wrzuceniu skompilowanego pliku .I2C do EEPROM-a przez CyConsole dostępny na stronie Cypressa. Mój problem: Po zapisaniu EEPROM-a konsola CyCyclone staje się bezużyteczna. Po wyjęciu pamięci z płytki, zgłasza się ona jako Cypress bez EEPROM-a. Ale teraz jak wrzucam dowolny program z tym przykładowych dostępnych od producenta układ nie chce się Renumerować z nowymi ustawieniami. Moje pytanie brzmi: Jak powinien wyglądać kompletny firmware, aby Cypress działał prawidłowo? Chcę tworzyć to w kompilatorze KEIL uVision. Bardzo proszę o jakąkolwiek pomoc abym mógł zacząć rozmawiać z tym Cypress-em.
  • REKLAMA
  • #3 5331931
    dyna0
    Poziom 11  
    Posty: 10
    Dzięki za odpowiedz. Tą stronę już odwiedziłem.
    Ale bardziej chodzi mi o to jak ma wyglądać kompletny firmware. Może ktoś zagłębiał się tą sprawę. Chcę wykorzystać Cypressa do zrobienia 16 bitowej szyny danych.

    Do tych co programowali Cypressa: Jakiego kompilatora używaliście? W jakim jeżyku pisaliście?

    Pozdrawiam, Jacek.
  • REKLAMA
  • #4 5483496
    dyna0
    Poziom 11  
    Posty: 10
    Witam ponownie

    z poprzednimi problemami poradziłem sobie sam. Mam za to kolejne pytanie dla tych, którzy używali Cypressa (CY7C68013A):

    Jest możliwe programowanie przez kabel USB. układ zgłasza się jako konkretne urządzenie. co prawda zdarzają sie przypadki, że ustawia się na full-speed, co jest niepożądane. Ale działa.

    Problemem jest natomiast bootowanie z EEPROM-a i samo zaprogramowanie tej pamięci. Konsola programowania zgłasza brak EEPROM-a. Przy próbie załadowania programu do pamięci pojawia się komunikat: "EEPROM is not enabled". Czy ktoś sie spotkał z czymś takim? Sprawdziłem połączenia na SDA,, SCL i rezystory pull-up są ok i ścieżki na płytce też są w porządku.

    Bardzo proszę o pomoc. Moja praca magisterska nie może być przez to skończona.

    Pozdrawiam, Jacek.
  • #5 5483855
    Mister_one
    Poziom 13  
    Posty: 54
    Pomógł: 3
    Ocena: 3
    Witam,

    kompilator pod Cypressa to klasyczny KEIL z 8051. Jeżeli chodzi o eeprom to musisz sprawdzić czy masz poprawny typ zalecany przez producenta, czy masz pullupy podłączone do SDA SCL.

    Pozdrawiam
    MiSter
    www.MiSter.net.pl
  • REKLAMA
  • REKLAMA
  • #8 5488736
    dyna0
    Poziom 11  
    Posty: 10
    Mister_one napisał:

    Jeżeli chodzi o eeprom to musisz sprawdzić czy masz poprawny typ zalecany przez producenta, czy masz pullupy podłączone do SDA SCL.


    Witam,

    pullupy oczywiście są: 2,2k według zaleceń Cypressa. Znalazłem rozwiązanie problemu z EEPROMem: nóżki SCL i SDA były zamienione (czeski błąd :P) Teraz wszystko chodzi cacy. ...No oprócz tego, że raz mam high-speed a raz full-speed a czasem nawet "device not recogized". Czy wy tez macie tai problem z Cypressami? Jak sobie z tym radzicie?

    A tak na marginesie: Jak można sprawdzić faktyczną prędkość przesyłu danych przez USB?
  • #9 5489412
    Mister_one
    Poziom 13  
    Posty: 54
    Pomógł: 3
    Ocena: 3
    Witam

    układy Cypressa są bardzo dobrze zaprojektowane, bardzo dobrze działają z USB HS. Jeżeli masz problemy to wynikają one na pewno z:
    - źle poprowadzona para różnicowa od procesora do gniazda B, producent zaleca odpowiednią impedancję falową tej linii.
    - nieodpowiedni kabel połączeniowy. Dość częsty powód nie działania w trybie HS. Proszę zauważyć że większość urządzenie pracuje w FS.
    - czasami problem Hosta ale to raczej w starych modelach.

    Pozdrawiam
    M
  • #10 5493378
    dyna0
    Poziom 11  
    Posty: 10
    Mister_one napisał:

    układy Cypressa są bardzo dobrze zaprojektowane, bardzo dobrze działają z USB HS. Jeżeli masz problemy to wynikają one na pewno z:
    - źle poprowadzona para różnicowa od procesora do gniazda B, producent zaleca odpowiednią impedancję falową tej linii.
    - nieodpowiedni kabel połączeniowy. Dość częsty powód nie działania w trybie HS. Proszę zauważyć że większość urządzenie pracuje w FS.
    - czasami problem Hosta ale to raczej w starych modelach.


    Dziękuję z tą informację. Ale na 99% płyta wykonana jest według zaleceń producenta. No może oprócz tego że jest zaprojektowana na dwóch warstwach. Ciekawe jest natomiast to, że nigdy nie zdarzyło się, żeby układ wszedł w tryb Full Speed przy domyślnych ustawieniach, tzn. przez załadowaniem firmware'u.
  • #11 5496017
    Mister_one
    Poziom 13  
    Posty: 54
    Pomógł: 3
    Ocena: 3
    Witam,

    to, że w firmware występuje problem jeszcze niczego nie przesądza. Co to za firmware i co ono robi? Może się zdążyć, że właśnie w firmware jest przesyłane więcej danych i statystycznie występuje więcej błędów. Pamiętaj również że HS układ ten pobiera znacznie większy prąd, czy układ pracuje jako bus powered?
    Zasadniczo powodem przejścia s trybu HS do FS mogą być tylko błędy.

    Czy masz kabel HS certyfikowany?
    Co z innymi portami EHCI?

    Pozdrawiam
    MiSter
  • #12 5517378
    dyna0
    Poziom 11  
    Posty: 10
    Witam,

    firmware odpowiada za ustawienie układu w tryb Slave FIFO, tryb synchroniczny. Dane są przesyłane tylko w stronę urządzenia. Jeśli chodzi o sposób zasilania to układ ma własne zasilanie. Kabel USB jest certyfikowany na tryb HS. To tyle tytułem odpowiedzi. Dziękuję bardzo wszystkim rozmówcom za pomoc. Urządzenie już działa. Przy projektowaniu PCB założyłem że układ nie będzie wchodził w uśpienie i nóżkę WAKEUP zwarłem do masy. Po przepięciu do VCC naprawiło się. HS jest teraz za każdym razem :D

    Pozdrawiam,
    Jacek

Podsumowanie tematu

LABEL_AI_GENERATED
Dyskusja dotyczy tworzenia kompletnego firmware dla układu Cypress CY7C68013A w środowisku KEIL uVision, z naciskiem na realizację szybkiej transmisji danych (około 100 Mb/s) przez USB 2.0 High Speed. Problemem początkowym było programowanie EEPROM-u przez CyConsole, które powodowało brak renumeracji urządzenia po zapisie, a także niestabilne przełączanie się między trybami Full Speed i High Speed. Rozwiązaniem okazało się poprawne podłączenie linii I2C EEPROM-u (zamiana SDA i SCL) oraz odpowiednie ustawienie nóżki WAKEUP (przepięcie do VCC zamiast masy), co zapewniło stabilne działanie w trybie High Speed. Firmware powinien być pisany w języku 8051 przy użyciu kompilatora KEIL. Problemy z trybem USB HS często wynikają z błędów w projektowaniu PCB, nieodpowiednich kabli USB lub braku certyfikacji kabla. Układ wymaga poprawnego prowadzenia linii różnicowych USB z odpowiednią impedancją falową oraz zastosowania rezystorów pull-up (2,2 kΩ) na liniach SDA i SCL EEPROM-u. Firmware powinien konfigurować układ w tryb Slave FIFO synchroniczny, a zasilanie układu musi być stabilne i niezależne (nie bus powered).
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA