LINUX.ORG.RU

прошивка avr через /dev/spidev

 attiny, ,


0

1

cast ncrmnt

Подключен attiny2313a к spi на mb77.07, rst заведен на gpio20.

Указываю это в /etc/avrdude.conf в разделе linuxspi, но avrdude не видит мк. при этом проверил пробником - до ножек мк сигналы доходят. Подключил к lpt порту на пк, указал dapa, увиделось сразу.

Из замеченых разниц:

1) параллельный порт держит 1 когда не программируешь, а при использовании mb77.07 gpio переводится в высокоомное состояние, когда не программируешь

2) параллельный порт подтягивает вход (MISO) к 1.

В какую сторону имеет смысл копать?

★★★★★

Последнее исправление: cvs-255 (всего исправлений: 2)

Попробуй поиграться флажком -B для аврдудки. Аппаратный SPI сильно быстрее LPT, если ты флюзы не прошивал на внешний кварц - аврка тактируется 1Mhz, и на «быстрый» программатор не ответит.

ncrmnt ★★★★★
()
Ответ на: комментарий от ncrmnt

Ставил разный бодрейт через конфиг - ничего

cvs-255 ★★★★★
() автор топика
Последнее исправление: cvs-255 (всего исправлений: 1)
Ответ на: комментарий от cvs-255

На SPI там заходит 56Mhz (можно глянуть в dt), и в SSP есть регистр делителя частоты. Набор там выходит достаточно обширный. Точно не помню, надо самому смотреть вспоминать. На 3.18 потыкаю с avrками.

ncrmnt ★★★★★
()
Ответ на: комментарий от ncrmnt

Вариация -B тоже не дает ничего. Причем судя по пробнику, она ни на что не влияет.

Что неудивительно исходя из

-b <baudrate>              Override RS-232 baud rate.
-B <bitclock>              Specify JTAG/STK500v2 bit clock period (us).
cvs-255 ★★★★★
() автор топика
Последнее исправление: cvs-255 (всего исправлений: 1)
Ответ на: комментарий от ncrmnt

по факту я такого не наблюдаю

cvs-255 ★★★★★
() автор топика
Ответ на: комментарий от ncrmnt

Осциллограф мне подсказал, что cat /dev/zero > /dev/spidev0.0 происходит со скоростью 14 МГц.

А также то, что avrdude точно также пишет, несмотря на все опции

cvs-255 ★★★★★
() автор топика
Ответ на: комментарий от cvs-255

Эм, это скорее либо погрешность осцилла (офсет нуля), либо землю не туда завел. IRL отрицательная напруга не земле никак не может получиться там.

ncrmnt ★★★★★
()
Ответ на: комментарий от ncrmnt

0 на осцилле я проверил, проблема сохраняется, даже если отключить вообще мою плату и мерять на гребенке.

Если там правее посмотреть, похоже что это из-за паразитных емкостей и индуктивностей - там, где напряжение стабильно ставится в 0, видны характерные затухающие колебания в начале

cvs-255 ★★★★★
() автор топика
Последнее исправление: cvs-255 (всего исправлений: 1)
Ответ на: комментарий от ncrmnt

Не знаю. Запихнул дебаг-printf, пересобрал, заработало, убрал printf, работает.

cvs-255 ★★★★★
() автор топика
Ответ на: комментарий от ncrmnt

Таки прошивка залилась, но возникла другая странность:

при общении с прошивкой через SPI даже на скорость 10000 возникали ошибки. На 1000 работает. Использую USI модуль для SPI-slave. Но как-то странно, что так получается.

cvs-255 ★★★★★
() автор топика
Ответ на: комментарий от ncrmnt

А, не, выяснилось, что по прежнему avrdude не умеет сам выставлять скорость spi. А в тот раз начало работать, т.к. я своей прогой до этого писал в spi, выставив нужную скорость.

cvs-255 ★★★★★
() автор топика
Последнее исправление: cvs-255 (всего исправлений: 1)
Ответ на: комментарий от cvs-255

Ога, понятно. Ну это тогда вопрос к дудке, а не к MB77.07 ;) Хотя вроде в оригинальном патчсете они это делали через флажок -b

ncrmnt ★★★★★
()
Последнее исправление: ncrmnt (всего исправлений: 1)
Ответ на: комментарий от ncrmnt

И в коде есть установка скорости. Но все равно по факту, не ставится. Если я своей прогой поставлю скорость 1000, то avrdude будет писать очень медленно, хотя у него -b 10000

cvs-255 ★★★★★
() автор топика
Ответ на: комментарий от ncrmnt

Так ровно так и сделано. avrdude в buildroot входит, а в buildroot я указал ядро от mb77.07. Или ты что другое имел ввиду?

cvs-255 ★★★★★
() автор топика
Последнее исправление: cvs-255 (всего исправлений: 2)
Ответ на: комментарий от cvs-255

А, ты билдрутом, тогда должно быть ок, проблема дудки 146%. Просто если юзать бинарные пакеты стабильного дебиана, то они собираются относительно 3.2. Вдруг кто-то умный в LKML догадался ioctlку поменять или юзерспейс апи поломать в spidev. Такое нечасто, но быть может.

Сам не тыкал, надо притащить еще будет какую-нибудь борду с дачи с avr и выкроить момент. Я сейчас поколено в форвардпорте ядра на 3.19. Если интересно, могу дать потыкать, но там пока не работает greth, нет crypto, easynmc, i2c... Только mnand и стандартные блоки.

ncrmnt ★★★★★
()
Ответ на: комментарий от ncrmnt

А много изменений в ядре, что надо существенно патчить при переносе драйверов на 3.19?

i2c

А разве там не i2c-ocores драйвер?

cvs-255 ★★★★★
() автор топика
Последнее исправление: cvs-255 (всего исправлений: 1)
Ответ на: комментарий от ncrmnt

надо притащить еще будет какую-нибудь борду с дачи с avr

борда для определения, что avrdude не умеет ставить скорость spi не обязательна;)

cvs-255 ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.