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

STM32f103c8t6 jako programator ATmega32 - problem z komendą AC 53 00 00

patrgk 05 Mar 2020 13:00 543 7
  • #1 18512117
    patrgk
    Poziom 5  
    Posty: 20
    Ocena: 3
    Witam.
    Mam problem z wejściem mikrokontrolera ATmega32 w stan "programming enable". Używam do tego mikrokontrolera STM32f103c8t6. Konfiguracje SPI do połączenia z avr załączam na ss. Fragment kodu odpowiedzialny za wysłanie komendy AC 53 00 00 również załączam. Jedyne co zwraca mi Atmega to 0xff na każdą wysłaną komendę. W dokumentacji AVR udało mi się znaleźć informację, że kod urządzenia $ff jest zwracany jeśli nie jest gotowy układ avr lub linia miso jest stale podnoszona .Czasami zamiast 0xff zwracane sa jakieś losowe wartości - 0xC0, 0x40, 0xef, 0x32 ale nigdy oczekiwane 0x53 - co może być tego przyczyną? Nie wiem czy zwracane 0xff nie jest związane z ciągłym stanem wysokim panującym na master in - źle skonfigurowałem spi? Nie mam pomysłu co mogę robić źle, spotkał się ktoś może z takim problemem albo wie w czym może tkwić problem?
    Z góry dziękuję za pomoc

    STM32f103c8t6 jako programator ATmega32 - problem z komendą AC 53 00 00 STM32f103c8t6 jako programator ATmega32 - problem z komendą AC 53 00 00 STM32f103c8t6 jako programator ATmega32 - problem z komendą AC 53 00 00
    Załączniki:
    • soft.txt (11.04 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #2 18512637
    Marek_Skalski
    VIP Zasłużony dla elektroda
    Posty: 1338
    Pomógł: 114
    Ocena: 1044
    A dlaczego linia MISO nie jest włączona jako AF? W ten sposób pozostaje odłączona od modułu SPI.
  • #4 18513691
    patrgk
    Poziom 5  
    Posty: 20
    Ocena: 3
    Marek_Skalski napisał:
    A dlaczego linia MISO nie jest włączona jako AF? W ten sposób pozostaje odłączona od modułu SPI.


    AF PP przypadkiem nie może byś ustawiane tylko dla wyjść? Stm w moim przypadku jest masterem. Znalazłem gdzieś na internecie:
    Full duplex / Master -> Input floating / Input pull-up, Full Duplex / slave -> Alternate function push-pull. W samym cube nie mam nawet opcji zmiany na AF, zmieniłem w kodzie ale wtedy wyrzuca mi już same zera
  • #5 18513744
    OliJot86
    Użytkownik obserwowany
    Posty: 28
    Pomógł: 4
    Ocena: 5
    patrgk napisał:
    Marek_Skalski napisał:
    A dlaczego linia MISO nie jest włączona jako AF? W ten sposób pozostaje odłączona od modułu SPI.

    AF PP przypadkiem nie może byś ustawiane tylko dla wyjść?

    Musi dla wejść i wyjść ale Cube robi to o ile dobrze go konfigurujesz. Może właczyłeś halfduplex?
  • #6 18513779
    patrgk
    Poziom 5  
    Posty: 20
    Ocena: 3
    OliJot86 napisał:
    Musi dla wejść i wyjść ale Cube robi to o ile dobrze go konfigurujesz. Może właczyłeś halfduplex?


    Mam ustawione full-duplex. Po konfiguracji w cube konfiguracji w kodzie prezentuje się:
    GPIO_InitStruct.Pin = ISP_SCK_Pin|ISP_MOSI_Pin;
    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);

    GPIO_InitStruct.Pin = ISP_MISO_Pin;
    GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
    GPIO_InitStruct.Pull = GPIO_NOPULL;
    HAL_GPIO_Init(ISP_MISO_GPIO_Port, &GPIO_InitStruct);

    Widać że pin ISP_MISO jest jako wejście, powinno być dodatkowo jako AF_PP? Źle coś konfiguruję w Cube?
  • #7 18515129
    OliJot86
    Użytkownik obserwowany
    Posty: 28
    Pomógł: 4
    Ocena: 5
    patrgk napisał:
    Widać że pin ISP_MISO jest jako wejście, powinno być dodatkowo jako AF_PP? Źle coś konfiguruję w Cube?

    pokaż ustawienie
    STM32f103c8t6 jako programator ATmega32 - problem z komendą AC 53 00 00

    Dodano po 4 [minuty]:

    W
    static void MX_SPI2_Init(void)


    masz
      hspi2.Init.Direction = SPI_DIRECTION_2LINES;
  • #8 18522312
    patrgk
    Poziom 5  
    Posty: 20
    Ocena: 3
    STM32f103c8t6 jako programator ATmega32 - problem z komendą AC 53 00 00

Podsumowanie tematu

✨ Użytkownik ma problem z wprowadzeniem mikrokontrolera ATmega32 w stan "programming enable" przy użyciu STM32f103c8t6 jako programatora. W odpowiedzi na wysyłane komendy, ATmega32 zwraca 0xFF, co sugeruje, że układ nie jest gotowy lub linia MISO jest nieprawidłowo skonfigurowana. Użytkownicy sugerują sprawdzenie ustawienia linii MISO jako Alternate Function oraz upewnienie się, że pin RESET ATmegi jest w stanie niskim. Dodatkowo, pojawiły się pytania dotyczące konfiguracji SPI w CubeMX, w tym ustawienia trybu full-duplex oraz poprawności inicjalizacji pinów GPIO.
Wygenerowane przez model językowy.
REKLAMA