Где-то пропадают данные по дороге из TX в RX

Тема в разделе "Arduino & Shields", создана пользователем Dim_K, 7 июн 2017.

  1. Dim_K

    Dim_K Нуб

    Пришла с поднебесной Arduino Nano 3. Драйвера под CH340 встали без проблем, но скетчи нивкакую не заливаются, хотя после ресета LED13 исправно 4 раза моргает (то есть там есть загрузчик и он ждет данные). Открываю монитор порта, шлю символы - светодиод RX на плате моргает. Дальше начинается самое интересное (см. схему).
    Закорачиваю RX и TX прям на чипе CH340 - шлю символы в монитор порта и те возвращаются, при этом моргает только RX, TX так и не моргает.
    Закорачиваю RX и TX на чипе ATMEGA328P - шлю символы в монитор порта и те уже не возвращаются, при этом перестает моргать и RX, TX так и не моргает. То же самое, если закорачиваю TX и RX на выводах платы.
    Прозвонил все дорожки от CH340 до ATMEGA и дальше к выводам платы - проблем не нашел.
    Собственно вопрос, из-за чего такое может быть?
    ЗЫ: осциллографа нет :(
     

    Вложения:

  2. rkit

    rkit Гуру

    Из-за отсутствия проводимости между ch340 и атмегой, чего тут думать-то.
     
  3. Dim_K

    Dim_K Нуб

    <сарказм mode on>
    Уважаемый гуру, раз уж вы снизошли ответить нубу, не затруднит вас дать более развернутый нубовменяемый ответ?
    <сарказм mode off>
     
  4. rkit

    rkit Гуру

    Что вам не понятно? Вы не понимаете, что такое электрическая проводимость?
    Вроде контакты замыкать додумались, значит должны знать.
     
  5. ostrov

    ostrov Гуру

    Я прочитал два раза и не понял, а вникать нет времени и желания. Если коротко, данные уходят от одной платы на другую и не приходят? На контакты не думать?
     
  6. Dim_K

    Dim_K Нуб

    Мне не понятна ваша фраза "Из-за отсутствия проводимости между ch340 и атмегой"
    В каком конкретно месте, по вашему, эта проводимость отсутствует?
     
  7. rkit

    rkit Гуру

    Откуда мне знать, в каком конкретно? На битву экстрасенсов обращайтесь с такими вопросами
     
  8. Dim_K

    Dim_K Нуб

    5 баллов :)
     
  9. mcureenab

    mcureenab Гуру

    CH340 плохо припаяна.
     
  10. Dim_K

    Dim_K Нуб

    Если она плохо припаяна, тогда почему я от нее эхо вижу в мониторе порта?
     
  11. mcureenab

    mcureenab Гуру

    Я так понял, что вы щамыкаете нори rx tx непосредственно на чипе. И эхо проходит. Значит до ног чипа сигнал доходит. А замыкание проводников дальше по схеме эхо не создаёт.
    Может быть, печатный проводник оборван рядом с CH340 . Но чаще имеет место дефект пайки.
    Причем касаясь ножки микросхемы вы можете прижимать её к пятачку и восстанавливать контакт.
     
  12. Unixon

    Unixon Оракул Модератор

    А почему на схеме UART между CH340/ATmega соединен как TX-TX RX-RX, а не перекрестно?
     
  13. Onkel

    Onkel Гуру

    чтобы usart работал на ардуине его не забыли инициализировать serial.begin()?
     
  14. Radius

    Radius Гик

    Попробуйте перед зашивкой платы выбрать в настройках плату не Arduino Nano, а Arduino Uno, или Arduino Mini. У меня так было с платой Arduino Mini, прошивалась только тогда когда в настройках ставил Arduino Nano. Если не поможет попробуйте перепрошить через SPI загрузчик.
     
  15. sslobodyan

    sslobodyan Гик

    Ваши закоротки в 1 посте ничего не решают. При закоротке 340 получите нормальное эхо потому что есть резисторы до меги. А вот если мега выставила какойто уровень на тх, то этот уровень передавит сигнал с 340 через 1ком резистор. Проблема в непрошивке скорее всего в скорости прошивающей проги и скорости загрузчика. Выше вам посоветовали попробовать прошивать как другой тип ардуины на аналогичном контролере, и это наверняка решит проблему.
     
  16. Dim_K

    Dim_K Нуб

    Собрал ISP из MEGA2560, пытаюсь прошить напрямую через разъем ICSP, но походу не отвечает там никто.

    Arduino: 1.6.11 (Windows 7), Плата:"Arduino Nano, ATmega328"

    Скетч использует 928 байт (3%) памяти устройства. Всего доступно 30 720 байт.
    Глобальные переменные используют 9 байт (0%) динамической памяти, оставляя 2 039 байт для локальных переменных. Максимум: 2 048 байт.
    C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avrdude -CC:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf -v -patmega328p -cstk500v1 -PCOM7 -b19200 -Uflash:w:C:\Users\User\AppData\Local\Temp\build9c9ef3bdfe2fccb480bc6e4bac749e41.tmp/Blink.ino.hex:i

    avrdude: Version 6.0.1, compiled on Apr 15 2015 at 19:59:58
    Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
    Copyright (c) 2007-2009 Joerg Wunsch

    System wide configuration file is "C:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf"

    Using Port : COM7
    Using Programmer : stk500v1
    Overriding Baud Rate : 19200
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x03
    AVR Part : ATmega328P
    Chip Erase delay : 9000 us
    PAGEL : PD7
    BS2 : PC2
    RESET disposition : dedicated
    RETRY pulse : SCK
    serial program mode : yes
    parallel program mode : yes
    Timeout : 200
    StabDelay : 100
    CmdexeDelay : 25
    SyncLoops : 32
    ByteDelay : 0
    PollIndex : 3
    PollValue : 0x53
    Memory Detail :

    Block Poll Page Polled
    Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
    ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
    eeprom 65 20 4 0 no 1024 4 0 3600 3600 0xff 0xff
    flash 65 6 128 0 yes 32768 128 256 4500 4500 0xff 0xff
    lfuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
    hfuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
    efuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
    lock 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
    calibration 0 0 0 0 no 1 0 0 0 0 0x00 0x00
    signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00

    Programmer Type : STK500
    Description : Atmel STK500 Version 1.x firmware
    Hardware Version: 2
    Firmware Version: 1.18
    Topcard : Unknown
    Vtarget : 0.0 V
    Varef : 0.0 V
    Oscillator : Off
    SCK period : 0.1 us

    avrdude: AVR device initialized and ready to accept instructions

    Reading | ################################################## | 100% 0.02s

    avrdude: Device signature = 0x000000 (retrying)

    Reading | ################################################## | 100% 0.03s

    avrdude: Device signature = 0x000000 (retrying)

    Проблема загрузки в плату. Помощь по загрузке: http://www.arduino.cc/en/Guide/Troubleshooting#upload .
    Reading | ################################################## | 100% 0.02s

    avrdude: Device signature = 0x000000
    avrdude: Yikes! Invalid device signature.
    Double check connections and try again, or use -F to override
    this check.


    avrdude done. Thank you.

    Для себя я ничего полезного там не нашел, может кто поопытнее увидит там причину или укажет направление, куда копать дальше.
    ЗЫ: Скорость в boards.txt выставил как в скетче 19200
     
  17. sslobodyan

    sslobodyan Гик

    И скорость в загрузчике 1200 и загрузчик перекомпилирован и прошит? Если нет, то зачем менять в boards? И каким образом скорость порта в скетче связана со скоростью загрузчика? Восстановите boards и просто в настройках иде перебирайте варианты плат, которые на 328 меге.