| Форум РадиоКот https://radiokot.ru/forum/ |
|
| Простые советы для применяющих AVR https://radiokot.ru/forum/viewtopic.php?f=57&t=181536 |
Страница 1 из 1 |
| Автор: | ARV [ Вс фев 27, 2022 15:37:08 ] |
| Заголовок сообщения: | Простые советы для применяющих AVR |
не смог придумать, куда бы написать, создал тему... возможно, будут еще советы от других. лично от меня совет, выстраданный трем сутками поисков проблемы: не забывайте настраивать вывод SS на выход, когда используете SPI в режиме мастера! трое суток искал проблему: протеус моделирует все нормально, на макете - поведение сильно отличается, а в реальном изделии и того хуже - то так, то этак. а проблема заклчалась в том, что забыл о режиме порта на линии SS... в протеусе там всегда уровень неизменный, а в реале - как фишка ляжет, в итоге совершенно непредсказуемо режим мастера выключался и процедура отправки байта намертво висла (поллингом флага завершения передачи). |
|
| Автор: | Starichok51 [ Вс фев 27, 2022 17:06:32 ] |
| Заголовок сообщения: | Re: Простые советы для применяющих AVR |
странно, что ты с таким большим опытом совершил такую "детскую" ошибку. я чуть более года назад впервые решил освоить SPI. но я почитал внимательно даташит, и такой ошибки не совершил. и я решил освоить не просто отвлеченный пример, а сразу с применением функций последовательного программирования. до собственно программирования (заливки флеши и еепром) я так и не дошел, но сделал чтение сигнатуры, всех фьюзов и всех калибровочных байтов. а также сделал запись фьюзов и стирание чипа. проверял только на АТмега8, так как кроме АТмега8 у меня других МК просто нет. если эту мою разработку довести до логического конца, то получится программатор, которому не нужен специальный драйвер, как, например, для USBASP нужен драйвер. соединение с компом у меня по СОМ-порту через конвертер USB-to-TTL. а у этого конвертора в системе уже есть драйвер виртуального СОМ-порта. и исходя из сказанного мной, самый главный совет - читайте внимательно даташит на свой МК. |
|
| Автор: | ARV [ Вс фев 27, 2022 17:16:53 ] |
| Заголовок сообщения: | Re: Простые советы для применяющих AVR |
Starichok51, я пал жертвой именно своего "опыта". известно ведь, что под напряжение чаще других попадают именно опытные электромонтеры... я был уверен, что помню все наизусть, и даташит читать не обязательно - с SPI я сделал несколько десятков проектов! и был самим собой наказан за это самомнение... когда что-то делаешь впервые, даташит читать не лень... а вот потом... кстати, еще одна штука, которая потрепала мен нервы - функции для бутлоадера, входящие в avr-libc. описание скудное, а "самодокументирующиеся имена" переменных создали впечатление, что в функцию void boot_program_page (uint32_t page, uint8_t *buf) надо передавать НОМЕР страницы... а на самом деле - АДРЕС её начала. так что если кому потребуются советы по созданию бутлоадера, можете обращаться, пока в памяти свежо |
|
| Автор: | Starichok51 [ Вс фев 27, 2022 18:24:51 ] |
| Заголовок сообщения: | Re: Простые советы для применяющих AVR |
ну, и у меня уже частенько бывает склероз. как никак уже 71 исполнился ... что-нибудь и забуду сделать, а потом долго вылавливаю ошибку. |
|
| Автор: | VNS [ Вс фев 27, 2022 18:29:16 ] |
| Заголовок сообщения: | Re: Простые советы для применяющих AVR |
не смог придумать, куда бы написать, создал тему... На эти грабли Вы уже наступали как показал поиск по сайту... viewtopic.php?f=57&t=172951 Видимо забыли тот случай... |
|
| Автор: | ARV [ Вс фев 27, 2022 18:31:59 ] |
| Заголовок сообщения: | Re: Простые советы для применяющих AVR |
похвальная дотошность |
|
| Автор: | VNS [ Вс фев 27, 2022 19:06:20 ] |
| Заголовок сообщения: | Re: Простые советы для применяющих AVR |
ну да, забыл, о чем и признался давеча честно:))) Я, не в упрёк...
|
|
| Автор: | Demiurg [ Вс фев 27, 2022 20:21:22 ] |
| Заголовок сообщения: | Re: Простые советы для применяющих AVR |
Не обязательно на выход. Можно и входом оставить, но, если используется SPI, и режим мастер, держать единицу на входе, чтобы в слейв не переключился, |
|
| Автор: | COKPOWEHEU [ Ср мар 02, 2022 12:30:18 ] |
| Заголовок сообщения: | Re: Простые советы для применяющих AVR |
если эту мою разработку довести до логического конца, то получится программатор, которому не нужен специальный драйвер, как, например, для USBASP нужен драйвер. Я для той же цели использую avrdoper-HID и ft232-bb. Ни тому, ни другому специальный драйвер не нужен. ARV писал(а): не забывайте настраивать вывод SS на выход, когда используете SPI в режиме мастера! Действительно странная ошибка, если не забывать, что к одному SPI может быть подключено множество slave'ов, и переключение всегда осуществляется вручную. То есть вывод CS ничем не лучше любой другой свободной ножки. |
|
| Автор: | ARV [ Ср мар 02, 2022 14:37:21 ] |
| Заголовок сообщения: | Re: Простые советы для применяющих AVR |
COKPOWEHEU писал(а): странная ошибка, если не забывать, что к одному SPI может быть подключено множество slave'ов, и переключение всегда осуществляется вручную количество подключенных слейвов тут совершенно ни при чем: SS - это управляющий ВХОД, и это является причиной ошибок для тех, кто наивно (как я) полагает, что в режиме МАСТЕР состояние УПРАВЛЯЮЩЕГО ВХОДА "ВЫБОР ВЕДОМОГО" не играет роли - еще как играет! о том и предостерегаю
|
|
| Автор: | COKPOWEHEU [ Ср мар 02, 2022 15:38:23 ] |
| Заголовок сообщения: | Re: Простые советы для применяющих AVR |
А, вы про баг когда режим мастера сбрасывается. Я в него не втыкался, потому что в качестве CSа обычно удобнее всего было использовать именно CS. |
|
| Автор: | Demiurg [ Ср мар 02, 2022 19:41:25 ] |
| Заголовок сообщения: | Re: Простые советы для применяющих AVR |
Как бы это не баг. Все логично. Если пин настроен на вход, то при низком уровне будь любезен, служи. |
|
| Автор: | ARV [ Ср мар 02, 2022 19:50:44 ] |
| Заголовок сообщения: | Re: Простые советы для применяющих AVR |
Не мне обзывать багом эту фичу, но выглядит она странно: если МК изнутри сам себя назначил мастером, кто имеет право снаружи его перенастроить?! Это как в машине дать пассажиру свой отдельный руль. |
|
| Автор: | COKPOWEHEU [ Чт мар 03, 2022 00:07:10 ] |
| Заголовок сообщения: | Re: Простые советы для применяющих AVR |
Как бы это не баг. Все логично. Если пин настроен на вход, то при низком уровне будь любезен, служи. Угу. А если на произвольный аналоговый вход подается напряжение - будь добр измерить, и плевать что в коде этот вывод не задействован вообще ни под что. Или XCK вывод UART - если на него приходят импульсы, будь добр переключиться в синхронный режим и подстраивайся. Нет уж, если в данной настройке периферии какой-то вывод не используется, он должен работать как обычный GPIO, а не как грабли. Для мастера SPI назначение всех линий CS одинаково - управление слейвами и ничего другого. Если уж очень хочется реализовать специальный режим с переключением мастера (лично вам хоть раз пригодилось?), выделите под это отдельный бит настройки. |
|
| Автор: | Demiurg [ Чт мар 03, 2022 03:44:44 ] |
| Заголовок сообщения: | Re: Простые советы для применяющих AVR |
Не хочешь служить, объяви пин выходом. Делов-то... |
|
| Автор: | COKPOWEHEU [ Чт мар 03, 2022 13:41:16 ] |
| Заголовок сообщения: | Re: Простые советы для применяющих AVR |
А если мне не нужен еще один выход, а нужна кнопка? |
|
| Автор: | Jack_A [ Чт мар 03, 2022 15:58:53 ] |
| Заголовок сообщения: | Re: Простые советы для применяющих AVR |
И ещё. Даже если slave единственный - не нужно его CS садить на 0. По срезу CS призводится очистка приёмного буфера в slave. Я на этом погорел давно тому назад. Если в линию случайно попадёт лишний импульс (бит) - он сдвинет все биты на 1 позицию, и так - до скончания времён. Откуда он возьмётся - ХЗ. Не это важно. А вот если правильно рулить CS'ом - в худшем случае будет испорчен 1 байт. Ущучим его по контрольной сумме и передадим повторно. |
|
| Автор: | Demiurg [ Вс мар 06, 2022 05:46:11 ] |
| Заголовок сообщения: | Re: Простые советы для применяющих AVR |
Детали в студию |
|
| Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|


